O que é a Blockchain?

A blockchain ou protocolo da confiança originalmente referia-se à estrutura de dados utilizada pela Bitcoin para listar todas as transações feitas pelos seus utilizadores desde o seu início: as transações são agrupadas em blocos encadeados, e os blocos são adicionados à cadeia ao longo do tempo.

Este registo é partilhado entre os membros de uma rede, razão pela qual é por vezes designado como um registo distribuído.

Desde 2015, a blockchain também se refere à tecnologia de consenso descentralizado ressuscitada pela Bitcoin.

Esta tecnologia refere-se portanto ao conjunto de métodos que permitem aos participantes de uma rede distribuída chegarem a acordo sem a utilização de um terceiro de confiança.

Neste artigo explicamos o que é a blockchain, para que possa compreender tudo sobre esta “revolução”.

De onde vem a blockchain?

O conceito de blockchain tal como o conhecemos hoje foi inventado por Satoshi Nakamoto e descrito no livro branco Bitcoin a 31 de Outubro de 2008.

Fotografia do Satoshi Nakamoto que inventou o Bitcoin em 2008 que usa a tecnologia da blockchain
Satoshi Nakamoto inventou o Bitcoin em 2008

Satoshi Nakamoto não cunhou o termo, no entanto, e devemos isso a Hal Finney, que o utilizou pela primeira vez na sua resposta do 7 de Novembro de 2008 à Satoshi para se referir à cadeia de prova de trabalho de Bitcoin.

Na altura, soletrou-a “block chain”, em duas palavras. O termo foi mais tarde adotado pela Satoshi no código fonte da versão 0.1 do Bitcoin, e tornou-se gradualmente popular dentro da comunidade.

No entanto, a tecnologia por detrás da blockchain não foi inteiramente criada com Bitcoin e os elementos que a compõem são muito mais antigos do que se poderia pensar: a blockchain é de facto o resultado de muitos anos de investigação em economia, ciência da computação e criptografia.

Blockchain promove a ideia de descentralização, que, não surpreendentemente, se opõe à centralização. Hoje, vivemos num mundo onde a maioria das coisas à nossa volta estão centralizadas.

São governados por estados, bancos, grandes empresas… Confiamos neles, ou não, mas não podemos passar sem eles.

Estes atores a que nos referimos são aquilo a que chamamos terceiros de confiança. A cadeia de bloqueio, por outro lado, funciona sem uma autoridade central.

O Bitcoin, que utiliza tecnologia do protocolo da confiança, torna possível prescindir de terceiros de confiança para a transmissão de valor entre duas entidades.

Esta é a primeira aplicação concreta desta tecnologia. É agora possível, graças ao Bitcoin e à cadeia de bloqueio, transferir valor através da Internet entre duas entidades sem intermediário.

Isto era muito mais complicado antes.

Por exemplo, se enviar um ficheiro a um amigo através da Internet, este é duplicado. Tem uma cópia do ficheiro e o seu amigo também: o ficheiro não é único.

O ficheiro não começa no ponto A e acaba no ponto B. Fica no ponto A e uma cópia aparece no ponto B.

Por isso, não pode funcionar por dinheiro.

Quando dá 1 euro ao seu padeiro para comprar uma baguete, uma cópia da moeda não fica no seu bolso.

A moeda não é duplicada, é única, deixa a sua carteira e vai para a caixa do padeiro.

Era portanto impossível utilizar os sistemas de transferência de valores existentes na Internet no contexto da criação de um sistema monetário na web.

A moeda teria perdido o seu valor, porque em cada troca teria sido duplicada.

O desafio era criar uma moeda na Internet que pudesse funcionar como na vida quotidiana.

Graças ao Bitcoin, isto é agora possível. Foi criado um sistema monetário funcional, fiável e não confiável.

Veremos muitas outras aplicações da cadeia de bloqueio neste artigo, e também as encontrará em muitos outros artigos no nosso site.

Antes de continuarmos, é importante lembrar que a blockchain é originalmente apenas uma componente da Bitcoin.

O que é a Blockchain?

A Blockchain pode ser comparada a um livro digital que é mantido por uma rede de computadores.

Os dados são então adicionados a este livro em tempo real e são visíveis para todos os participantes.

Quando uma transacção é feita na cadeia de bloqueio, ela é adicionada a um bloco.

Este bloco contém todas as transacções que tiveram lugar nos últimos minutos (10 minutos para a rede Bitcoin) e que foram partilhadas com toda a rede de computadores.

Os participantes na rede são conhecidos como nós. Alguns destes nós participam na verificação do livro razão: eles são os validadores.

Existem diferentes protocolos para assegurar a cadeia de bloqueio, que influenciarão o nome dado a estes validadores: serão chamados mineiros se a blockchain utilizar prova de trabalho, ou falsificadores se a cadeia de bloqueio utilizar prova de consumo.

Para saber mais sobre isto, ver o nosso artigo sobre as diferenças entre a prova de trabalho e a prova de concurso.

Para manter as coisas simples, concentrar-nos-emos aqui na prova de trabalho e, portanto, nos menores.

Os mineiros não devem ser confundidos com os utilizadores da blockchain.

No caso do Bitcoin, os mineiros competem para resolver “puzzles criptográficos“, o que permite validar transacções.

O primeiro mineiro a resolver o puzzle recebe uma recompensa pelo seu trabalho, o que, lembre-se, ajuda a assegurar e manter a rede.

O puzzle é extremamente difícil de resolver e esta dificuldade aumenta com o tempo.

Assim, os mineiros devem utilizar computadores potentes para resolver estes cálculos.

A validação das transacções corresponde à sua inclusão e ao seu carimbo temporal dentro de um bloco.

Isto permitirá então que blocos recentemente validados sejam ligados a blocos validados mais antigos.

Forma-se uma cadeia de blocos contendo cada transacção feita na blockchain.

Esta cadeia é actualizada e está acessível a todos os membros da rede. A descentralização resultante permite total transparência e imutabilidade.

Assim, qualquer pessoa pode visualizar os dados disponíveis na rede da blockchain.

Compreender como funciona uma transacção de bitcoin na blockchain

Vamos tentar simplificar as coisas:

  • A blockchain permite a troca de unidades (dinheiro, fichas, etc.) sem a necessidade de um terceiro de confiança (bancos, estados, etc.)
  • A rede blockchain pode ser comparada a uma folha Excel na qual todas as transacções são registadas por ordem cronológica. Contém os tempos, os montantes, os destinatários… de todas as transacções efectuadas
  • A blockchain é indecifrável: não é possível modificar uma transacção uma vez registada na blockchain. Para falsificar este registo, mais de metade dos validadores da rede teriam de ser “corrompidos”. Isto é conhecido como um ataque de 51%.
  • Esta rede é de fácil acesso, qualquer pessoa pode aceder a ela e ver todas as transacções

Com a blockchain, estamos a passar de uma arquitectura centralizada para uma arquitectura descentralizada:

Como funciona uma arquitectura descentralizada na blockchain
Como funciona uma arquitectura descentralizada na blockchain

Aqui está um diagrama sintético que explica como funciona uma blockchain pública durante uma transacção.

Esquema de funcionamento de uma blockchain durante uma transacção

Blockchain: como é que funciona?

Esta parte é mais complexa do que a anterior. Explica com mais detalhes como funciona a blockchain.

Cada pessoa que participa na rede do protocolo da confiança tem uma cópia da base de dados (a colecção de transacções) e deve mantê-la actualizada.

Assim, as pessoas que participam na rede Bitcoin devem ter uma cópia da blockchain Bitcoin num computador e actualizá-la regularmente.

Note-se que a blockchain Bitcoin pesa actualmente cerca de 120 GB.

Estes indivíduos que participam na manutenção da cadeia de bloqueio são conhecidos como nós.

A partir de Abril de 2020, a rede Bitcoin tinha cerca de 10.000 nós públicos.

Mapa mundial dos 9279 Nós da Bitcoin
Mapa mundial dos Nós da Bitcoin @wildlycoin.com

Numa cadeia de bloqueio pública, todos os nós têm os mesmos direitos para maximizar a segurança e transparência da rede.

Para corromper a rede seria necessário que mais de metade dos validadores da rede fossem maliciosos. A isto chamar-se-ia um ataque de 51%.

Do mesmo modo, enquanto um nó estiver presente na cadeia de bloqueio, a cadeia de bloqueio é sempre mantida.

Os dados sobre a blockchain são assegurados através da criação de hashes, chamados impressões digitais.

As impressões digitais correspondem a uma sequência de números hexadecimais, ou seja, na base 16.

Como lembrete, um número hexadecimal é uma sequência composta pelos seguintes números e letras: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f.

Os dados da cadeia de bloqueio são incluídos nas impressões digitais hexadecimais.

Isto permite incluir uma grande quantidade de dados encriptados num formato que permanece sempre o mesmo, com um comprimento específico em função da cadeia de bloqueio.

O número de caracteres e a forma das impressões digitais são sempre idênticos, a menos que seja feita uma alteração.

Isto contribui para a segurança da blockchain.

Por exemplo, Bitcoin utiliza o algoritmo SHA-256, enquanto Ethereum utiliza o Keccak-256.

As impressões digitais do Bitcoin têm a seguinte forma:

Hash Bitcoin : b79c6c131c2fcfc7b1f78cf3cc10674e938c3752d34f53cf96e3e94b68c796c4

As impressões digitais de Ethereum têm esta forma:

Hash Ethereum: 0xe037f3bdb3b8f6ae4fbb2692b8413b4b58a3bdde42a4cd35db4e9c66b1a8ce76

Estas impressões digitais serão utilizadas na assinatura das transacções.

Existem diferentes métodos para as transacções de hash. Por outras palavras, para os validar, registar e fixar na blockchain.

Os dois métodos mais conhecidos são a prova de trabalho (proof-of-work ou PoW) utilizada pela Bitcoin e a prova de consumo (proof-of-stake ou PoS) utilizada pela Tezos, por exemplo.

Vamos continuar a nossa imersão no mundo da cadeia de bloqueio. Pedro quer transferir 2 bitcoins para João e regista a transacção na cadeia de bloqueio.

Como é que sabemos que Pedro é o remetente desta transacção?

Para tal, utilizamos uma assinatura digital baseada na combinação de uma chave pública e uma chave privada.

Quando Pedro envia uma transacção para João, envia-a para o seu endereço público. Este endereço público está ligado à chave privada.

Para provar que João é o novo proprietário de 2 bitcoins, ele terá de se identificar com a sua chave privada.

A sua chave privada deve permanecer sempre confidencial, nunca a partilhe!

Neste artigo, assimilámos voluntariamente uma chave para um endereço, para simplificar a compreensão.

Na realidade, deve saber que os endereços (públicos ou privados) são gerados graças a chaves (públicas ou privadas) utilizando funções matemáticas.

Vimos acima que para algumas blockchains, que utilizam o consenso da proof-of-work como Bitcoin, os mineiros constroem blocos e extraem-nos, tentando encontrar a solução de um problema matemático.

Vários blocos são minados ao mesmo tempo.

Os mineiros que trabalham em dois blocos concorrentes param de trabalhar quando o bloco é criado.

A seguinte regra foi estabelecida: o ramo válido é sempre o ramo mais longo.

No diagrama abaixo, o ramo válido é o preto, e os blocos em roxa são os que foram abandonados.

Todos os mineiros que consideraram os blocos roxos válidos num determinado momento voltaram aos blocos preto.

O ramo valido é sempre o ramo mais longo @wikipedia

É de notar que todas as blockchain públicas trabalham com um token que é o equivalente a um token programável.

Quais são as vantagens da blockchain?

Transparência na utilização e atribuição de fundos

É possível acompanhar a utilização dos fundos por uma empresa ou uma associação.

No caso de fundações e instituições de caridade, seria possível ver como as doações são utilizadas.

Menos corrupção

Da mesma forma que para o rastreio de fundos, é impossível falsificar a blockchain. Por conseguinte, é impossível mentir sobre o montante transferido, etc.

Rumo ao fim de terceiros de confiança

Com a chegada do Bitcoin, é agora possível trocar valor entre duas entidades sem passar por bancos ou qualquer outro intermediário.

Isto minimiza os custos e complicações de ter de confiar num terceiro.

Automatização do contrato

Algumas moedas criptográficas permitem a utilização do que são chamados contratos inteligentes, por vezes chamados contratos inteligentes, contratos autónomos ou contratos auto-executórios em francês.

Estes contratos são programas em execução na cadeia de bloqueio que se desencadeiam quando certas condições são satisfeitas.

Esta utilização foi possível graças à natureza programável do Bitcoin e foi generalizada com a criação do Ethereum em 2015.

Quais são os limites da cadeia de bloqueio?

Um mundo complexo

É preciso aprender uma nova “língua”, novas formas de trabalhar, desenvolver soluções… Isto leva tempo e requer uma aprendizagem específica.

Uma rede em risco de ser saturada

Como se viu no final de 2017, a utilização maciça de uma cadeia de bloqueio pode levar à saturação da rede: estão sujeitos a um problema de escalabilidade.

De facto, no caso do Bitcoin, no final de 2017, havia demasiadas transacções para serem processadas num período de tempo razoável.

Assim, demasiadas transacções tornaram impossível registar todas as transacções num único bloco a cada 10 minutos.

Desde então, foram postas em prática soluções para permitir que a rede Bitcoin se expandisse ainda mais, tais como o desenvolvimento da SegWit e da rede Relâmpago.

Além disso, quando uma rede está saturada, vemos normalmente as taxas de transacção aumentarem drasticamente.

Quanto mais os utilizadores pagarem, mais rapidamente as suas transacções são validadas.

É complicado escalar as redes de cadeias brancas sem questionar a sua descentralização.

Uma governança difícil

No caso de redes descentralizadas, é difícil escolher quais devem ser as regras de validade das transacções e como estas regras devem evoluir ao longo do tempo (não são fixas).

Como resultado, podemos ver fendas nas principais correntes de bloqueio, frequentemente referidas como garfos duros.

Em 2016, após o hack da TheDAO, o Ethereum dividiu-se em duas cadeias separadas desta forma: Ethereum e Ethereum Classic.

Em 2017, foi a Bitcoin que sofreu uma grande divisão como parte do debate sobre a escalabilidade, dando origem ao que agora é conhecido como Bitcoin Cash.