O que é blockchain?

Em resumo, um blockchain é uma lista de registros de dados que funciona como um banco de dados descentralizado. Os dados são organizados em blocos, ordenados cronologicamente e protegidos criptograficamente.

O primeiro conceito de blockchain foi criado no início da década de 1990, quando o cientista da computação Stuart Haber e o físico W. Scott Stornetta usaram técnicas criptográficas em um blockchain para proteger documentos digitais contra adulteração de dados.

O trabalho de Haber e Stornetta certamente inspirou o de muitos outros cientistas da computação e entusiastas da criptografia, o que levou à criação do bitcoin, o primeiro sistema de dinheiro eletrônico descentralizado (e a primeira criptomoeda).

Embora a tecnologia blockchain seja mais antiga que as criptomoedas, foi somente com a criação do bitcoin em 2008 que seu potencial começou a ser reconhecido. Desde então, o interesse na tecnologia blockchain aumentou gradualmente e as criptomoedas estão agora a ser reconhecidas em maior escala.

A tecnologia Blockchain é mais comumente usada para registrar transações de criptomoeda, mas é adequada para muitos outros tipos de dados digitais e pode ser aplicada a uma ampla gama de casos de uso. A maior, mais antiga e segura rede blockchain é o Bitcoin, que foi projetado usando uma combinação equilibrada de criptografia e teoria dos jogos.


Como funciona um blockchain?

No contexto das criptomoedas, uma blockchain consiste numa cadeia de blocos, cada um dos quais armazena uma lista de transações previamente confirmadas. Como a rede blockchain é mantida por uma miríade de computadores distribuídos por todo o mundo, funciona como uma base de dados descentralizada. Isso significa que cada participante (ou nó) mantém uma cópia dos dados do blockchain e se comunica entre si para garantir que estejam na mesma página (ou bloco).

Portanto, as transações blockchain ocorrem dentro de uma rede global peer-to-peer e é isso que torna o bitcoin uma moeda digital descentralizada, sem fronteiras e resistente à censura. Além disso, a maioria dos sistemas blockchain são considerados não confiáveis ​​porque não exigem nenhuma confiança. Não existe uma autoridade única que controle o bitcoin.

Um elemento central de quase todos os blockchains é o processo de mineração, que depende de algoritmos de hash. Bitcoin usa o algoritmo de hash seguro de 256 bits (SHA-256). Ele recebe uma entrada de qualquer comprimento e gera uma saída que sempre terá o mesmo comprimento. A saída produzida é chamada de “hash” e, neste caso, tem sempre 64 caracteres (256 bits).

Portanto, a mesma entrada resultará na mesma saída, não importa quantas vezes o processo seja repetido. Mas se for feita uma pequena alteração na entrada, a saída mudará completamente. Como tal, as funções hash são determinísticas e, no mundo das criptomoedas, a maioria delas é projetada como uma função hash unilateral.

Ser uma função unidirecional significa que é quase impossível calcular a entrada a partir da saída. Só podemos adivinhar qual foi a entrada, mas as chances de adivinhá-la corretamente são extremamente baixas. Esta é uma das razões pelas quais o blockchain Bitcoin é seguro.

Agora que sabemos o que o algoritmo faz, vamos mostrar como um blockchain funciona com um exemplo simples de transação.

Imagine que Alice e Bob tenham, cada um, um saldo de bitcoins. Suponha que Alice deva a Bob 2 bitcoins.

Para que Alice possa enviar a Bob esses 2 bitcoins, ela transmite uma mensagem contendo a transação que deseja fazer para todos os mineradores da rede.

Nesta transação, Alice fornece o endereço de Bob aos mineradores e a quantidade de bitcoins que deseja enviar, juntamente com uma assinatura digital e sua chave pública. A assinatura é feita com a chave privada de Alice e os mineradores podem validar que Alice é a proprietária desses bitcoins.

Assim que os mineradores tiverem certeza de que a transação é válida, eles poderão colocá-la em um bloco com muitas outras transações e tentar minerar o bloco. Para isso, o bloco é submetido ao algoritmo SHA-256. A saída deve começar com um certo número de 0s para ser considerada válida. A quantidade necessária de 0s depende da chamada “dificuldade” que muda dependendo do poder computacional da rede.

Para produzir um hash de saída com a quantidade desejada de 0s no início, os mineradores adicionam o que é chamado de “nonce” ao bloco antes de passá-lo pelo algoritmo. Como uma pequena alteração na entrada altera completamente a saída, os mineradores tentam nonces aleatórios até encontrarem um hash de saída válido.

Depois que o bloco é minerado, o minerador transmite esse bloco recém-minerado para todos os outros mineradores. Eles então verificam se o bloco é válido para que possam adicioná-lo à sua cópia do blockchain e a transação seja concluída. Mas no bloco, os mineradores também devem incluir o hash de saída do bloco anterior para que todos os blocos sejam interligados, daí o nome blockchain. Esta é uma parte importante devido à forma como a confiança funciona no sistema.

Cada minerador tem sua própria cópia do blockchain em seu computador e todos confiam no blockchain que teve mais trabalho ou no blockchain mais antigo. Se um minerador modificar uma transação em um bloco anterior, o hash de saída desse bloco será alterado, o que implicará uma modificação de todos os hashes dos blocos subsequentes. O minerador teria que refazer todo o trabalho para que alguém aceitasse seu blockchain como o correto. Portanto, se um minerador quisesse trapacear, precisaria de mais de 50% do poder computacional da rede, o que é muito improvável. Ataques de rede como esse são, portanto, chamados de ataques de 51%.

O modelo de colocar computadores para trabalhar para produzir blocos é denominado Prova de Trabalho (PoW); existem também outros modelos, como prova de aposta (PoS), que não requer tanto poder de computação e supostamente requer menos eletricidade, ao mesmo tempo que pode ser dimensionado para um número maior de usuários.