Como funciona uma Blockchain?

Compartilhar
Copied to clipboard!
Ouça este artigo
00:00 / 00:00

Uma parte central de cada rede blockchain é o seu algoritmo de mineração, nesse caso vamos usar o do Bitcoin como exemplo. Mais conhecido como SHA-256 (Secure Hash Algorithm 256), ele recebe uma entrada que pode ser qualquer coisa, texto, números ou até mesmo um arquivo de computador de qualquer tamanho. A saída produzida é conhecida como "hash" e sempre terá o mesmo tamanho todas as vezes, 256bits.

A mesma entrada resultará sempre na mesma saída, não é um método aleatório. Mas se você fizer uma pequena alteração na entrada, a saída mudará completamente.

É também o que chamamos de função unidirecional, isso significa que se você tiver apenas a hash de saída, não poderá calcular qual foi a de entrada. É possível tentar adivinhar, mas as chances de sucesso são de 1 em 2^256, algo praticamente impossível. Em outras palavras, podemos dizer que o algoritmo é totalmente seguro.

Agora que já sabemos qual a função de um algoritmo, vamos demonstrar o funcionamento de uma blockchain usando uma simples transação como exemplo.

Neste caso temos Alice e Bob, os dois com saldo em Bitcoin nas suas respectivas carteiras. Imaginemos que Alice deve dois Bitcoins à Bob.

Para que Alice envie aqueles dois Bitcoins para Bob, ela transmite uma mensagem com a transação que pretende fazer para todos os mineradores da rede.

Nessa transmissão, Alice entrega aos mineradores o endereço público de Bob, a quantidade de Bitcoins que ela deseja enviar, junto com uma assinatura digital e o endereço público dela. Essa assinatura é feita usando a chave privada de Alice, e com isso os mineradores conseguem ter certeza de que Alice é realmente a dona dos fundos usados na transação.

Assim que os mineradores confirmam a validade de uma transação, eles agrupam várias transações em um bloco e tentam minerá-lo. Isso é feito através do algoritmo SHA-256. O hash de saída deve começar com uma certa quantidade de zeros para ser considerado válido. A quantidade de zeros está ligada ao que chamamos de "dificuldade", que é ajustada de acordo com o poder computacional da rede (hash rate).

Para conseguir produzir um hash de saída que comece com a quantidade necessária de zeros, os mineradores incluem no bloco um número chamado "nonce", e então executam o algoritmo. Sabendo que uma pequena alteração na entrada resulta em uma saída completamente diferente, os mineradores tentam vários nonces diferentes de forma aleatória, até encontrarem um hash de saída válido.

Logo após, verificam se o bloco é válido, para que possam adicioná-lo a sua cópia da blockchain, e a transação é concluída. Além disso, os mineradores precisam adicionar o Hash do bloco anterior de forma que todos os blocos da rede fiquem interligados e é isso que dá vida à blockchain (ou cadeia de blocos).

Cada minerador tem sua própria cópia da blockchain e todos confiam na que tem a maior quantidade de esforço computacional empregado, nesse caso a blockchain mais longa. Se um minerador alterar uma transação de um bloco anterior, o hash de saída para aquele bloco será completamente diferente, fazendo com que todos os hashes posteriores também sejam modificados devido à natureza interligada da rede. O minerador teria que refazer todo o trabalho para que alguém aceite a sua blockchain como confiável. Portanto, se um minerador quiser cometer uma fraude, ele precisaria de mais do que 50% do poder computacional da rede, o que é muito improvável. Ataques de rede como esse são chamados de Ataque 51%.

O método usado para fazer com que computadores trabalhem na produção de blocos é chamado de Proof-of-Work (PoW). Existem outros modelos como o Proof-of-Stake (PoS), que não necessita da mesma quantidade de poder computacional e foi intencionalmente desenvolvido com objetivo de usar menos eletricidade na tentativa de ser escalável.

E esses são os princípios básicos de como uma rede blockchain funciona!

Loading