Como funciona a BlockChain?
A grosso modo o banco de dados da BlockChain é estruturado em blocos interligados análogos a planilhas do Excel. Contadores poderão imaginar um grande livro-razão contendo o mínimo de informações necessários para um registro contábil: a origem da transação, o destino da transação e o valor da transação. Portanto este é o principio básico de como funciona uma Blockchain.

Entretanto a característica essencial do BlockChain é ser descentralizado e distribuído, significa dizer que todos que participam da rede devem manter uma cópia de todos os blocos (planilhas Excel) do banco de dados consigo, similarmente ao que acontece com o compartilhamento de arquivos via Torrent. Por isso cada Minerador da rede BitCoin tem uma cópia do BlockChain público em suas máquinas, ocupando algo em torno de 400GB em Julho de 2019.
Tornar Transação Privada
Outra característica essencial da arquitetura BlockChain é o sigilo e a privacidade dos dados, a princípio não é possível saber quem são os atores envolvidos em uma transação. Para isso é preciso obscurecer as informações utilizando criptografia e então tornar a transação privada. A arquitetura BlockChain utiliza o conceito de “endereço” para obscurecer as operações, ou seja, uma grande sequência de caracteres gerada a partir de operações criptográficas.

Primeiramente Marcos Paulo Silva deseja enviar R$ 9.025,23 para Miguel Carvalho Luiz, em vista disso Miguel precisa informar a Marcos um endereço. Perceba que a partir do endereço criptografado não há como descobrir a identidade de Marcos Paulo Silva ou Miguel Carvalho Luiz. Estes usuários estão obscurecidos por um pseudônimo e portanto podem assumir as propriedades desses endereços para ter controle sobre os saldos a partir de uma chave privada. Tanto Marcos e Miguel guardam suas chaves privadas em locais seguros (um cofre ou em um programa do tipo “carteira” no computador ou smartphone).
Confirmar Transação na Rede
Quando Marcos Paulo Silva faz uma transação e envia Bitcoins a Miguel Carvalho Luiz a transação não é incluída no BlockChain de pronto,em primeiro lugar ela precisa ser validada. Para isso a transação permanece em uma espécie de área temporária aguardando ser incluída na corrente de blocos quando então é confirmada.

Em cerca de dez minutos a transação será analisada por um minerador que deve incluir transações pendentes no BlockChain. Desta forma o minerador “recebe um prêmio” em Bitcoins e além disso a soma das taxas das transações presentes no bloco. O minerador também deve verificar a autenticidade de cada transação e impedir que alguém simplesmente crie endereços falsos e então simule transações para sua própria conta. Para isso existe a assinatura digital, quando Marcos fez a transação para Miguel assinou digitalmente as informações dessa transação com sua chave privada.

Carimbo de tempo
O minerador deve verificar a assinatura correspondente aos dados de cada transação afim de confirmar operação, logo após é necessário oficializar a data da transação através de um carimbo de tempo. Um carimbo de tempo funciona adicionando dados de data e hora a um bloco de itens e então publicando-os. O carimbo de tempo prova que os dados precisam ter existido naquele tempo para que sejam incluídos na codificação. Cada carimbo de tempo inclui o carimbo de tempo anterior em sua codificação assim formando uma corrente, onde cada carimbo de tempo adicional reforçará os blocos anteriores. A partir destes dados o minerador deve posteriormente assinar a transação e gerar um número de transação ou “transaciona id” (TxID) utilizando criptografia.

Perpetuar Transação na Corrente de blocos
Logo após é necessário impedir que alguém apague uma transação, atualize seus dados ou mude seus valores, mas como proceder se todos tem uma cópia desta planilha? A transação recebe uma assinatura digital, entretanto seria simples mudar os dados da transação e da assinatura digital em conjunto.
A solução da arquitetura BlockChain é criar uma corrente onde os dados de um bloco serão então usados para validar os blocos anteriores e posteriores a ele. Para realizar esta espécie de entrelaçamento entre os blocos a arquitetura BlockChain usa hashs criptográficos. Um hash é uma função matemática que produz um código que pode ser usado para identificar um arquivo. Uma espécie de assinatura de um conjunto de dados qualquer. Somente um conjunto de dados especifico pode produzir um hash específico e dois conjuntos de dados diferentes nunca produzirão o mesmo hash. Quando aplica um método de hash sobre um determinado texto, ele irá gerar a mesma sequência simplificada de caracteres e números, se modificar qualquer caractere no texto, o hash irá mudar totalmente.
Acesse https://anders.com/blockchain/block.html
O minerador dever validar a corrente gerando um hash calculado a partir de todas as transações que estavam pendentes no bloco.

Quando o bloco é inserido no BlockChain outra operação ocorre é realizada nova operação que gera um hash final para esse novo bloco a partir do hash do bloco anterior e do hash das transações desse bloco.

O elo da corrente
Cada bloco adicionado no BlockChain é armazenado e criptografado usando informações do bloco anterior, todos os registros do nosso banco de dados estão entrelaçados de forma que o bloco 57 depende do 56, que depende do 55 remetendo até o início do BlockChain no bloco gênesis. Para alterar os dados de uma transação qualquer, ou mesmo excluir uma transação do BlockChain seria necessário alterar todos os registros entrelaçados a ele. E ainda que seja possível em uma local não seria possível alterar as demais cópias do BlockChain.
Supondo que um atacante altere o valor de uma transação que foi realizada a cinco anos, de pronto o hash da transação é modificado e também o hash do bloco é modificado. Desta forma o hash do próximo bloco é modificado propagando esta modificação para todos os demais blocos e transações ocorridas até hoje seriam modificados. Esta operação não entraria no consenso da rede, o processamento computacional necessário para modificar isso e recalcular os HASHEs em todas as cópias existentes do BlockChain é incalculável.
Entretanto é perceptível que quanto mais recente a transação menor sua força de entrelace sendo teoricamente mais fácil de ser adulterada. De fato, alterar dados do último bloco minerado é tecnicamente e computacionalmente mais simples que um bloco profundo mais ainda necessitaria de grande força computacional.