A tecnologia Blockchain está em alta ultimamente. Mas o que é essa tecnologia? Como funciona? Quais problemas ela resolve e como pode ser utilizada?
Como o nome indica, a blockchain (block = bloco; chain = corrente) é uma corrente de blocos de informações. Essa técnica foi originalmente descrita em 1991 por um grupo de pesquisadores, e foi originalmente imaginada como uma forma de datar ou “carimbar” informações temporais em documentos, de modo que não fosse possível adulterá-los.[1]
Para melhor entendermos, é similar aos livros utilizados em cartórios, onde nascimentos são registrados. Existem espaços com um número que nunca se repete. Nestes espaços se atesta o dia, mês, ano, hora de nascimento, local e filiação de um recém-nascido. Duas crianças não podem ser confundidas, pois mesmo que possuíssem dados semelhantes, cada uma ocupa seu devido espaço no livro, com uma numeração própria, e o cartório garante isso.
Esse conceito se manteve teórico até 2009, quando Satoshi Nakamoto adaptou-o para criar a moeda digital – ou criptomoeda – Bitcoin.[2]
Sendo assim, a blockchain é um livro contábil distribuído e aberto a todos. Ela possui uma propriedade interessante: uma vez que uma informação é registrada nesse “livro”, se torna muito difícil alterá-la.
Como isso ocorre?
Vamos olhar de perto um desses blocos:
Cada bloco contém:
- Data, ou seja, dados (a informação que será armazenada);
Os dados que são armazenados dentro de um bloco dependem do tipo de blockchain. Por exemplo, o blockchain do Bitcoin armazena os detalhes sobre as transações realizadas com a moeda, os dados de quem envia, quem recebe e a quantidade de moedas.
- Hash deste bloco;
Um bloco também possui um hash, que pode ser comparada a uma impressão digital, pois sempre é único e identifica o bloco e seu conteúdo.[3]
Uma vez criado o bloco, seu hash, ou impressão digital, passa a ser calculado. Toda mudança nos dados causa uma mudança no hash. Portanto, as funções hash são muito úteis quando se deseja detectar alterações nos blocos. Se a impressão digital que identifica um bloco mudar, o bloco já não será mais o mesmo.
- Hash do bloco anterior.
O terceiro elemento de um bloco é o hash do bloco anterior. Isso faz com que se crie uma corrente de blocos, e é a técnica que torna a blockchain tão segura.
No exemplo abaixo temos uma corrente com três blocos. Observa-se que cada bloco possui um hash próprio e o hash do bloco anterior, de forma que o bloco nº 3 se remete ao bloco nº 2, e o bloco nº 2 ao bloco nº 1.
Se alguém adulterar os dados do bloco nº 2, seu hash também será alterado, o que tornará o bloco nº 3 inválido, pois ele deixa de possuir a hash válida do bloco anterior. Isso também tornará todos os outros blocos seguintes inválidos, por haver este rompimento no elo que conecta de um bloco para outro.
Todavia, o uso de funções hash não é suficiente para prevenir adulterações. Os computadores de hoje em dia são muito rápidos e podem calcular milhares de hashes por segundo. Alguém poderia efetivamente adulterar os dados de um bloco e recalcular todas as outras hashes dos outros blocos para tornar a continuidade entre os blocos válida novamente.
Para lidar com este risco, as blockchains possuem um mecanismo chamado Proof-of-Work. Sua função é diminuir a velocidade de criação de novos blocos. No caso do Bitcoin, são necessários cerca de 10 minutos para calcular a Proof-of-Work necessária e adicionar um novo bloco à corrente. Esse mecanismo torna adulterações muito difíceis, pois caso um bloco seja falsificado, será necessário recalcular a Proof-of-Work de todos os blocos seguintes.[4]
Portanto, a segurança da blockchain vem do uso criativo da função hash e do mecanismo Proof-of-Work. Mas ainda existe mais uma forma desta tecnologia garantir sua segurança: através de sua distribuição. Ao invés de centralizar o manejo da corrente a uma única entidade, a blockchain utiliza uma rede ponto a ponto (Peer-to-peer ou P2P), onde é permitido a qualquer um participar.
Esta rede é formada por pontos de comunicação chamados nodes (nós, como aqueles feitos em cordas), onde cada novo participante recebe uma cópia integral da blockchain. O node usa isto para verificar que tudo está em ordem.
Quando alguém cria um novo bloco, este é enviado para todos que integram a rede. Cada node verifica o bloco recém chegado, e assegura que suas informações não foram adulteradas. Se tudo estiver certo, cada node adiciona o bloco em sua corrente.
Todos os nodes da rede chegam ao consenso de quais blocos são ou não são válidos. Blocos adulterados ou falsificados são rejeitados pelos outros membros da rede.
Portanto, a única forma de viabilizar a entrada de um bloco adulterado seria com a adulteração de toda corrente, como citamos anteriormente, seguida pelo novo cálculo de cada proof-of-work em cada bloco subsequente, com a invasão de pelo menos 50% dos nodes de comunicação da rede ponto-a-ponto. Só assim um bloco corrompido poderia ser aceito pelos outros, uma façanha basicamente impossível de se realizar.
As blockchains também estão em constante evolução. Uma das inovações mais recentes é a criação dos Smart Contracts, ou contratos espertos. Estes contratos são programas simples armazenados na blockchain, e podem ser usados para realizar transações monetárias automáticas, com base em condições preestabelecidas.
A tecnologia despertou o interesse de diversas pessoas, que perceberam a possibilidade de utilizá-la para guardar históricos médicos, digitalizar registros notariais e até recolher tributos. Ela também é utilizada para emissão de certificados de propriedade, como os Tokens Não Fungíveis, ou Non Fungible Tokens (NFTs), expandindo ainda mais seu escopo de aplicação.
Bibliografia
Decuyper, X. (2017, novembro). How does a blockchain works. Savjee. https://www.savjee.be/videos/simply-explained/how-does-a-blockchain-work/
[1] Haber, S., & Stornetta, W. S. (1991). How to time-stamp a digital document. Journal of Cryptology, 3(2), 99–111. Disponível em: https://doi.org/10.1007/BF00196791
[2] Nakamoto, S. (2008). Bitcoin: A peer-to-peer electronic cash system. Disponível em: https://bitcoin.org/bitcoin.pdf
[3] Hash é um algoritmo que “embaralha” um valor (frase, número, palavra, senha), e torna impossível que outros descubram seu conteúdo original, ou o modifiquem. Ele nunca muda de tamanho, mesmo que a mensagem possua um ou mil caracteres. Deste modo, um grande volume de dados pode ser transformado em um hash de tamanho fixo. Entretanto, qualquer mudança, mesmo em um caractere, muda completamente o hash. Marcello (2018, abril). Como funciona o Proof-of-Work na blockchain do Bitcoin. Livecoins. https://livecoins.com.br/proof-of-work-blockchain-bitcoin/
[4] Iansiti, M., & Lakhani, K. R. (2017). The Truth About Blockchain. Harvard Business Review, 95(1), 118–127. https://hbr.org/2017/01/the-truth-about-blockchain
Roger Brown