CryptoTimes

Por que redes blockchain são tão seguras?

22 ago 2021, 11:00 - atualizado em 16 set 2021, 14:10
Blockchain
Neste artigo da série “Bê-a-bá Cripto”, você irá compreender o que são, como funcionam e quais os tipos de protocolo de consenso mais conhecidos atualmente (Imagem: Freepik/rawpixel.com)

Segundo o Decrypt, um dos grandes atrativos das redes blockchain é o uso do Sistema de Necessidade Mínima de Confiança (“Trustless System”), o qual consiste no apoio da comunidade daquele blockchain para a verificação da autenticidade das transações.

Mas, você pode estar se perguntando: como isso funciona? Esse sistema apresenta diferentes métodos, que variam de acordo com cada blockchain, mas que indicam o modo de operação de cada rede. Esses métodos recebem o nome de “protocolos de consenso” ou “algoritmos de consenso”.

Neste artigo da série “Bê-a-bá Cripto”, você irá compreender o que são, como funcionam e quais os tipos de protocolo mais conhecidos atualmente.

CONTINUA DEPOIS DA PUBLICIDADE

O que são protocolos de consenso?

Blockchain, a grosso modo, é uma cadeia de blocos, em que cada um apresenta um conjunto de dados e informações. Uma das características importantes do blockchain é que, uma vez que os dados são gravados na sequência de blocos, é muito difícil alterar qualquer informação inserida.

Cada bloco da sequência é composto por três partes: dados, hash do bloco atual e hash do bloco anterior. Os dados registrados dependem de cada blockchain. No caso do blockchain do Bitcoin, são armazenados dados sobre o remetente da transação, o destinatário e a quantidade de moedas movimentadas.

Já o hash de um bloco é um tipo de criptografia que identifica determinado bloco, juntamente com as informações presentes nele. É importante ressaltar que o hash é sempre único em cada bloco. Portanto, se ocorrer alguma mudança em um bloco, esse não será mais o mesmo e seu hash também será alterado.

O hash de um bloco é uma espécie de impressão digital: do mesmo modo que cada pessoa tem uma biometria única, cada bloco de um blockchain apresenta um hash diferente (Imagem: Freepik/vectorpouch)

O hash do bloco anterior permite identificar o antecessor do bloco atual, fazendo com que a cadeia de blocos seja estabelecida de modo eficaz, garantindo a segurança do blockchain. Para ilustrar melhor, imagine que o blockchain funciona como peças sequenciais de quebra-cabeça.

O quebra-cabeça só vai estar completo se as peças tiverem os recortes para os devidos encaixes. No blockchain, esses recortes representam os hashes, os quais ligam os blocos constituintes na sequência necessária.

Desse modo, se um dos blocos é alterado e deixa de ser o mesmo bloco, os demais também sofrerão modificações, tornando-se inválidos.

Do mesmo modo que peças sequenciais de um quebra-cabeça só se encaixam se tiverem o recorte devido, a sequência de blocos de um blockchain só é válida se os blocos tiverem registrado o hash do bloco anterior (Imagem: Freepik/master1305)

O blockchain faz uso de uma tecnologia chamada “tecnologia de registro distribuído” ou “tecnologia distribuída de livro-razão” (do inglês Distributed Ledger Technology, DLT).

É por meio dessa tecnologia que o blockchain “se espalha” por diversos nós (rede de usuários participantes do blockchain), os quais têm o papel de verificar as transações feitas na rede.

A presença de vários nós em um blockchain público torna aquela rede descentralizada, ou seja, não há qualquer empresa ou pessoa que detenha o controle daquele blockchain.

Como consequência da descentralização, qualquer pessoa pode enviar informações para serem armazenadas no blockchain, mas não significa que isso possa ser feito de modo impulsivo e descontrolado.

Para garantir a segurança do blockchain, algumas regras-base são estabelecidas para a comunidade que o utiliza. Essas regras são os protocolos de consenso, que asseguram que a comunidade saiba qual informação adicionar ou descartar do blockchain, além de ajudarem a manter a rede segura.

De acordo com o Decrypt, se “consenso” representa um acordo e se “protocolo” indica regra, o protocolo de consenso de um blockchain pode ser definido como um conjunto de regras de acordos, que é comumente desenvolvido antes de o blockchain ser lançado.

No entanto, isso não vale para todas as redes: a Ethereum, por exemplo, está mudando o protocolo de consenso enquanto a rede está em operação. 

Como funcionam os protocolos de consenso?

O consenso nos blockchains públicos é obtido por meio da votação dos usuários e dos validadores das redes (Imagem: Freepik/pch.vector)

Os protocolos de consenso que estão no centro de um blockchain fornecem informações de revisão e confirmação sobre quais dados devem ou não ser adicionados ao registro do blockchain.

Com a descentralização dos blockchains, não há uma autoridade única que aprova ou desaprova algo a ser realizado. Quem cumpre esse papel são os nós na rede, que devem concordar sobre as decisões a serem tomadas, seguindo as regras do protocolo. 

Para quê servem os protocolos de consenso?

1. Evitam que uma única entidade assuma todo o controle

Com a descentralização proposta pelo blockchain, a aprovação de questões ligadas à rede precisa ter adesão da maioria dos nós participantes.

Com isso, os dados são registrados no blockchain como a “verdade”, permitindo que continue funcionando, à medida que mais dados são adicionados e as transações, aprovadas.

A partir desse mecanismo, o poder de decisão sobre a rede se torna mais diluído, evitando que uma única entidade decida o destino do blockchain ou quais informações são registradas como verdadeiras na rede.

2. Permitem que os usuários da rede descentralizada confiem em outros usuários sem o intermédio de terceiros 

Como dito anteriormente, o protocolo de consenso previne que uma única entidade assuma todo o controle da rede blockchain e altere o histórico de registros.

Um exemplo da tomada de controle e manipulação do blockchain por uma única entidade são os gastos duplos. Nesse tipo de alteração de informações, um invasor poderia gastar alguns bitcoins (BTC) e alterar o bloco em que a transação seria registrada para não mostrar o gasto com a criptomoeda.

Em seguida, o invasor poderia enviar sua própria versão do blockchain, sem que essa constasse o gasto em bitcoin. 

Com essa manipulação do histórico, o invasor teria gastado alguns bitcoins, mas a ausência desse registro no blockchain possibilitaria que gastasse essas criptomoedas novamente.

Em seguida, você verá os cinco principais protocolos usados por blockchains e algumas das redes que os utilizam.

Quais são os protocolos de consenso mais comuns?

1. Proof-of-Work (PoW)

Esse tipo de algoritmo de consenso é usado para validar as transações em um bloco, que são transmitidas ao blockchain. Uma rede que usa o mecanismo PoW, como a do Bitcoin, por exemplo, conta com vários nós, que são comumente chamados de “mineradores”.  

No processo que recebe o nome de “mineração” no PoW, os nós competem entre si para resolver complexos “quebra-cabeças” criptográficos, usando seus próprios recursos computacionais.

Aquele que solucionar primeiro o problema criptográfico confirma a transação e a registra no blockchain. Os outros nós, então, irão confirmar que a solução encontrada está correta.

Em seguida, o minerador que encontrou a solução irá receber uma recompensa pelo tempo e energia gastos para gerar a solução. No caso do blockchain do bitcoin, a recompensa é a própria criptomoeda.

Apesar de ser muito conhecida, a mineração de criptomoedas é um processo caro, pois requer equipamentos de alto valor e grande consumo de energia elétrica para mantê-los em funcionamento (Imagem: Unsplash/Brian Wangenheim)

Cada bloco validado apresenta um hash, o qual contém o trabalho realizado pelo minerador. Foi a partir desse raciocínio que esse algoritmo recebeu o nome de “proof-of-work” (“prova de trabalho”, em tradução livre).

Esse mecanismo do PoW previne que ocorram gastos duplos, mencionados anteriormente, pois, quando a versão do blockchain em que ocorreu o gasto duplo é comparada com outras em outros nós, ela terá algumas diferenças em relação às demais, fazendo com que seja descartada pelos outros nós. 

Uma das críticas ao PoW é de que a mineração da rede por meio desse protocolo é custosa, pois necessita de hardwares próprios, que têm um alto valor, além de consumir uma grande quantidade de energia para manter esses equipamentos em constante funcionamento.

Projetos que utilizam PoW: Bitcoin (BTC), Ethereum (ETH) e Monero (XMR).

2. Proof-of-Stake (PoS)

Antes de darmos início ao PoS, é preciso apresentar algumas diferenças entre esse tipo de protocolo e o PoW. Se no protocolo PoW, os nós que garantem a segurança da rede são chamados de “mineradores”, no protocolo PoS, eles recebem o nome de “validadores”. 

Além disso, no proof-of-work, são usados recursos de hardware (como computadores grandes e caros) para garantir a segurança da rede, enquanto que, no PoS, os validadores da rede usam criptomoedas.

Diferentemente do PoW, em que mineradores “mineram” os blocos de transação na rede, no PoS os validadores emitem novos blocos.

No entanto, para que um nó tenha a chance de se tornar um validador, ele precisa depositar e “bloquear” 32 ETH, no mínimo, os quais não poderão ser gastos. As chances do nó se tornar um validador é proporcional à quantidade de criptomoedas retidas.

Se um nó é escolhido para se tornar um validador, ele precisará verificar se todas as transações do bloco são, de fato, válidas. Em seguida, o validador finaliza o bloco e o adiciona ao blockchain. Como forma de recompensa, o validador recebe todas as taxas de cada transação daquele bloco.

Você pode estar se perguntando: o que acontece se um validador aprovar uma transação fraudulenta? Neste caso, como punição, o validador perde parte das criptomoedas que deixou retidas.

Desde que a quantia de criptomoedas “trancadas” (em stake) seja maior que a quantia a taxas de transação a ser recebida, é possível confiar que os validadores irão desempenhar sua função de modo correto.

Projetos que utilizam PoS: Cardano (ADA), Polkadot (DOT), Algorand (ALGO) e Avalanche (AVAX).

3. Delegated Proof-of-Stake (DPoS)

Desenvolvido em 2014, esse tipo de protocolo de consenso foi desenvolvido como uma tentativa de implementar a democracia no âmbito digital.

O protocolo DPoS, ao invés de usar probabilidade para escolher seus validadores, como acontece no protocolo PoS, utiliza um processo de eleição. 

No DPoS, os detentores de criptomoedas votam para escolherem delegados (também chamados de “testemunhas”). É importante ressaltar que a quantidade de votos é proporcional à quantidade de criptomoedas do detentor.

Essas testemunhas escolhidas são responsáveis pela produção e pela validação de novos blocos. Essa produção acontece em revezamento e costuma levar poucos segundos para ser concluída. 

No entanto, se alguma testemunha age de má fé ou não consegue produzir os blocos, ela perde sua reputação, além de ser rejeitada pela rede e substituída por outra testemunha.

Determinados blockchains exigem, como forma de comprometimento, que o delegado deposite alguns fundos e os mantenha reservados em stake. Caso o delegado aja de forma maliciosa, esses fundos serão confiscados.  

Projetos que utilizam DPoS: BitShares (BTS), Steem (STEEM) e EOS (EOS).

4. Proof-of-Authority (PoA)

Diferentemente dos protocolos anteriores, o protocolo PoA não depende de equipamentos caros ou do stake de criptomoedas, mas, sim, da reputação do validador da rede. 

Nesse algoritmo de consenso, os nós (ou “validadores”) da rede colocam o valor de sua identidade e reputação em jogo. A segurança do protocolo está nos nós que são pré-selecionados arbitrariamente como entidades confiáveis.

Devido ao número limitado de validadores do bloco, a rede se torna altamente escalável, pois os blocos e as transações são analisadas por esses validadores pré-aprovados, que atuam como moderadores do blockchain. 

O processo para que um nó se torne validador da rede inclui algumas etapas, como: a confirmação da identidade real, testes com um certo nível de dificuldade para garantir o comprometimento a longo prazo e um sistema padronizado para validadores, a fim de garantir que todos os nós candidatos a moderadores passem pelo mesmo processo.

Apesar de ser um protocolo de consenso, o PoA compromete o fator de descentralização. O número limitado de validadores pré-aprovados torna o poder do sistema mais centralizado, o que suscita questões se o blockchain da rede é ou não imutável.

Por esse motivo, geralmente recomenda-se esse tipo de protocolo em blockchains privados, como o da Microsoft Azure.

Além disso, outro fator que gera algumas críticas é de que as identidades dos validadores são visíveis para qualquer pessoa, o que pode fazer com que terceiros influenciem negativamente os validadores, na tentativa de manipular e comprometer o sistema.   

Projetos que utilizam PoA: Elysian (ELY), Hyperledger e Kovan Testnet.

5. Proof-of-History (PoH)

Para que você possa compreender melhor o que é o mecanismo PoH, utilizaremos como explicação o processo que ocorre no blockchain Solana (SOL), o principal projeto que usa esse recurso.

Todas as transações que acontecem no blockchain Solana passam pelo algoritmo de criptografia hash, o qual transforma dados de entrada (“input”) de todos os tamanhos em dados de saída (“output”) padronizados.

Esses dados de saída têm o mesmo tamanho e a mesma quantidade de caracteres alfanuméricos, independentemente do tamanho inicial dos dados.

Por exemplo, um artigo com 2500 palavras e uma senha de oito dígitos, ao passarem pela criptografia hash, terão saídas alfanuméricas padronizadas, com o mesmo tamanho e quantidade de caracteres.

O blockchain Solana
é o mais novo “Ethereum killer”?

O blockchain Solana pega o output de uma transação e o utiliza como input para o hash seguinte. Com isso, a rede consegue ordenar, de modo bem definido, as transações com base nesses dados. Em seguida, um validador da rede adiciona a transação ao blockchain.

Tendo em vista que as transações já permanecem ordenadas, sem o validador precisar conferir e inserir dados relativos ao tempo e ao horário de processamento da transação, como acontece com a rede Bitcoin, a quantidade de informações a serem transmitidas a cada bloco diminui, reduzindo também o tempo de confirmação de cada bloco.

Por não precisar da inserção de dados, esse mecanismo também evita que haja a manipulação dessas informações.

Portanto, o protocolo proof-of-history não é um protocolo de consenso como os demais. Sua principal função e atrativo é a redução considerável do tempo de confirmação dos blocos, pelo fato de as transações já terem sido ordenadas.

Projeto que utiliza PoH: Solana (SOL).

O protocolo proof-of-work é o mais conhecido dentre todos, pois solidificou a confiável segurança do blockchain Bitcoin. Porém, esses outros tipos de algoritmos tentam não depender do consumo elétrico e tentam depender mais da tecnologia e da participação de seus validadores e usuários.

Cada blockchain é um ecossistema diferente, então os desenvolvedores implementam o protocolo que mais se adequa ao projeto.