Protocolo de Deveres: Compreender o Protocolo Blockchain

Onde há sistemas, há protocolos

A tecnologia Blockchain surgiu como a solução inovadora que as pessoas não sabiam que precisavam para problemas que não sabiam que tinham. Com ele surgiu uma infinidade de termos e conceitos que ainda hoje não são explicados. Um desses termos é protocolo de cadeia de blocos – um termo frequentemente utilizado como sinónimo de redes de cadeia de blocos, embora não seja exatamente a mesma coisa.

Nesta publicação, vamos analisar o conceito de um protocolo de cadeia de blocos, as suas diferenças em relação à cadeia de blocos propriamente dita, bem como alguns dos seus principais funcionamentos e aplicações.

O que é uma rede Blockchain?

Uma cadeia de blocos é a camada base de todas as coisas criptográficas. É uma rede descentralizada que permite transacções rápidas, sem permissão, anónimas e seguras com um ativo digital peer-to-peer em todo o mundo. A rede funciona como uma base de dados distribuída: todas as transacções efectuadas na blockchain são abertas, anónimas, armazenadas em blocos e podem ser vistas por qualquer pessoa.

Uma cadeia de blocos é alimentada por uma rede distribuída de nós – computadores que funcionam para manter a rede a funcionar em todo o mundo. Os nós funcionam normalmente como mineiros (em redes Proof of Work, como a Bitcoin) ou como stakers/delegators (como em redes Proof of Stake, como a Ethereum ou a Cardano). Pelos seus esforços, os mineiros e os stakers recebem uma parte das taxas de transação que ajudam a verificar.

Os mineiros nas redes de Prova de Trabalho têm a tarefa de decifrar o hash – um identificador criptográfico único – do próximo bloco de transacções. Para isso, utilizam a capacidade de computação bruta e competem essencialmente na velocidade de cálculo. Nas redes Proof-of-Stake, isto não é feito através de computação, mas sim através da detenção de uma grande quantidade da moeda nativa da rede, tendo assim uma palavra a dizer sobre os blocos a aprovar a seguir.

A cadeia de blocos foi pioneira na Bitcoin, tal como a BTC, a primeira criptomoeda existente. Concebida por uma entidade desconhecida chamada Satoshi Nakamoto, a cadeia de blocos Bitcoin foi trazida à vida de forma bastante simbólica por um grupo descentralizado de entusiastas.

A moeda criptográfica Bitcoin serve de combustível para a rede, uma vez que os utilizadores pagam uma parte das suas transacções como taxa de transferência.

A cadeia de blocos Ethereum foi construída com base na Bitcoin e expandiu o arsenal da cadeia de blocos com contratos inteligentes. Os contratos inteligentes são algoritmos pré-codificados que se executam quando um determinado conjunto de condições é cumprido. Por exemplo, envia 200 ETH para o endereço (X) assim que o número do token NFT (XYZ) for recebido do referido endereço.

Os contratos inteligentes permitem uma flexibilidade sem paralelo na implementação de aplicações de cadeia de blocos e são essencialmente o tecido de toda a DeFi atual. Pioneiros da rede Ethereum, os contratos inteligentes ganharam fama e foram implementados pela maioria dos protocolos de cadeia de blocos conhecidos atualmente.

Agora que já estabelecemos o que é uma rede blockchain, vamos descobrir o que é um protocolo blockchain.

Um protocolo blockchain é essencialmente as regras que regem o funcionamento da rede blockchain. NÃO é a rede blockchain em si, mas sim um conjunto de regras incorporadas em todo o seu funcionamento. Define quando, como e até que ponto os diferentes elementos da rede podem ou não fazer determinadas coisas.

Protocolos Blockchain e o seu funcionamento

A espinha dorsal de cada cadeia de blocos é o conjunto de protocolos que regem todos os seus movimentos. Estes protocolos são os pilares que sustentam a segurança, a conetividade e os procedimentos de consenso da rede, garantindo que tudo funciona como um relógio. Sem uma autoridade central para supervisionar as transacções, estes protocolos são os principais intervenientes na manutenção de uma cópia de um registo de confiança e na verificação das transacções através de um método de consenso. Uma vez validados, são registados em blocos inalteráveis.

Principais protocolos à nossa volta

Onde há sistemas, há protocolos. Um protocolo é uma camada fundamental de código que diz a algo como deve funcionar. É claro que os protocolos não são exclusivos da criptomoeda. São fundamentais para o funcionamento da Internet, regulando a transmissão de dados de um computador para outro.

Muitas coisas que hoje damos por garantidas foram possibilitadas e regidas por protocolos de rede. Os mais proeminentes incluem o TCP/IP: Transmission Control Protocol/Internet Protocol, utilizado para ligar dispositivos através da Web, e o HTTP/HTTPS: Hypertext Transfer Protocol (HTTP), utilizado para transferir dados entre servidores Web e clientes.

O que torna os protocolos Blockchain diferentes?

No entanto, há uma diferença quando se trata de protocolos de cadeia de blocos. Torna-se mais interessante e complexo do que a transferência de dados tradicional. Uma rede de blockchain é uma estrutura distribuída de organismos de tomada de decisões, cada um com mais funções do que apenas seguir os algoritmos. Isto implica que o conjunto de regras tem de ser acordado, observado e verificado por todos os nós que compõem a rede.

É aqui que as coisas se tornam um pouco complexas. Na verdade, existem 3 tipos de protocolos de blockchain:

  • Protocolo de rede
  • Protocolo de consenso
  • Função de transição de estado

Cada tipo é tão importante como os outros, e todos os três têm de ser seguidos à risca para que tudo corra bem.

Protocolo de rede

O protocolo de rede estabelece as regras segundo as quais os nós da rede podem (e não podem) comunicar. Isto inclui a forma como os nós se descobrem e se reconhecem uns aos outros, trocam informações sobre blocos, transacções e outras coisas do género. Contém a sintaxe que define a forma como os nós devem decifrar as mensagens uns dos outros.

Protocolo de consenso

O protocolo de consenso define a forma como os nós chegam a acordo sobre as transacções que devem ser consideradas válidas ou inválidas. Como provavelmente sabes, cada nó mantém uma cópia completa de toda a rede nos seus discos rígidos. A cópia inclui todos os bits de dados registados na rede. Cada cópia é actualizada em tempo real à medida que novos blocos são forjados e novas transacções validadas.

Assim, quando um nó submete um novo bloco para ser adicionado à rede, não envia apenas um bloco – na verdade, submete toda a sua cópia da cadeia de blocos até à data. E cabe a cada nó da rede analisar, avaliar e (in)validar cada cópia da rede apresentada por todos os outros nós. Em redes de Prova de Trabalho como a Bitcoin, apenas a cadeia mais longa de blocos é validada, o que significa que a maioria dos nós concorda com a sua validade. Como podes imaginar, é muito trabalhoso e consome quase o mesmo poder de computação.

Numa rede de prova de aposta, os validadores são seleccionados aleatoriamente pelas redes entre os nós que detêm grandes quantidades de moedas nativas da rede nas suas carteiras. Alguns poderão equiparar esta abordagem ao monopólio capitalista, mas a perspetiva de monopolizar a rede foi abordada de forma preventiva. Isto inclui a limitação do montante que cada nó pode apostar, o número de transacções que pode verificar, a frequência dessas verificações, etc. Seja qual for o caso, os limites e as restrições estão todos definidos no protocolo.

Função de transição de estado

É aqui que as coisas se tornam realmente técnicas.

O estado é essencialmente o que a rede “pensa” ser o caso num determinado momento. As “localizações” actuais, as relações entre, e os movimentos de todos os nós, transacções e blocos – tudo isto constitui o estado da rede.

O Estado da rede muda com o tempo, tal como o conjunto e o equilíbrio dos elementos que a compõem. A transição de estado tem de ser registada de uma forma específica, e o protocolo de rede também se encarrega disso. À medida que os nós entram e saem da rede, trocam informações e alteram o tecido da blockchain, surgem novas possibilidades, juntamente com novas complicações.

O estado encapsula tudo o que a rede pode e não pode fazer num determinado momento. Se as condições A e B estiverem preenchidas, então a rede não pode fazer mais X e Y. Se o estado é definido pelas condições C e D, então as únicas acções possíveis são W e Z. Esta mudança de lógica é crucial para o funcionamento da rede.

Um protocolo blockchain tem de ser seguido por todos os nós da rede

Cada parte descrita acima serve como uma peça de um puzzle trino chamado Estado Verificado. À medida que as informações sobre as transacções entram no protocolo de rede, são aí validadas ou rejeitadas. Se for verificado, passa então para os protocolos de consenso, que funcionam como guardiões. Permite que os dados entrem no estado da rede se estiverem de acordo com os de outros nós.

Se forem aceites, os dados são transferidos para a função de transição de estado, onde se tornam o novo estado verificado da rede. O Estado Verificado é a fronteira prática que define o que realmente “acontece” depois de o bloco ser adicionado à cadeia. Isto pode incluir a alteração do saldo de uma determinada carteira ou o lançamento de um contrato inteligente.

Pode um nó afastar-se do protocolo?

Pode um nó desobedecer ao protocolo e, em caso afirmativo, o que acontece? Como já foi dito, a validação de blocos requer que todos os nós verifiquem todos os dados submetidos por todos os outros nós online. Para isso, o protocolo blockchain tem de ser seguido à risca. Se um nó não obedecer, não será capaz de cooperar com outros nós e, portanto, não poderá colher os frutos. Isto significa que não há espaço para discordância numa blockchain, tornando o seu estado essencialmente totalitário.

No entanto, por vezes, uma blockchain é dividida à força ou deliberadamente em duas partes, o que se chama um fork. A bifurcação acontece precisamente porque alguns nós submetem dados que entram em conflito com os do resto do livro-razão distribuído.

Uma cadeia de blocos mantém apenas os blocos acordados por todos os nós da rede

Em condições normais de trabalho, a rede não se dá ao trabalho de descobrir as razões pelas quais os dados estão defeituosos – simplesmente corta o nó do resto da rede, deixando-o sem nada. Assim, os nós potencialmente maliciosos são impedidos de afetar a rede. É possível que a maioria das cópias “erradas” de cada blockchain ainda esteja guardada algures neste momento.

No entanto, os garfos também podem ser uma coisa boa. Uma rede blockchain não pode simplesmente “atualizar” o seu estado atual. Cada novo estado verificado é uma nova cópia completa da rede.

Uma rede blockchain pode dividir-se em duas, criando por vezes novas redes pelo caminho

Já deves ter ouvido falar que cada grande atualização da blockchain é chamada de Fork. Assim, quando as cadeias de blocos precisam de ser actualizadas, são deliberadamente bifurcadas numa nova cópia pelos seus criadores. A versão pré-atualizada é mantida como legado, enquanto a versão recém-fornecida se torna o verdadeiro negócio.

Compreender o protocolo Bitcoin

Vamos aprofundar um pouco mais o que rege um protocolo de cadeia de blocos. Como exemplo, toma a rede Bitcoin.

As bitcoins não são distribuídas como se fossem pedaços de ouro. Sempre que envias e recebes BTC, não estás realmente a “receber” ou a “dar” bitcoins. O que realmente acontece é que cada nova transação regista uma assinatura digital. A assinatura contém um hash – a identificação criptográfica única da transação anterior – e a chave pública do destinatário. Assim, cada transação é garantida por uma prova criptográfica, que não pode ser alterada ou falsificada.

A estrutura da transação na blockchain da Bitcoin

A principal preocupação dos compradores e vendedores em linha é o facto de, a dada altura, poderem ser enganados e cair numa fraude financeira. Isto pode acontecer sob a forma de phishing ou de transacções totalmente falsas. Há também o problema da dupla despesa, bem como a mera manipulação do sistema em busca de lucros injustos. Como uma cadeia de blocos não é governada por uma entidade central, todas as preocupações com a segurança das transacções recaem inteiramente sobre os ombros do protocolo.

Os criadores da Bitcoin abordaram essas preocupações e introduziram mecanismos como assinaturas digitais e provas criptográficas para as atenuar. Assim, o protocolo Bitcoin só permite validar blocos que tenham uma prova criptográfica que coincida com a presente noutros nós.

Servidor de carimbo de tempo e sistema de prova de trabalho

A duplicação de gastos é um grande problema na cadeia de blocos. Trata-se de um cenário em que um utilizador tenta gastar a mesma moeda digital duas vezes. Isto pode ocorrer devido à natureza digital da moeda, que pode facilitar a sua reprodução ou cópia sem ser detectada.

Imagina que um utilizador tem 1 BTC e tenta gastá-lo duas vezes, enviando-o para dois endereços diferentes. Num sistema de pagamento tradicional, o sistema detectaria a tentativa de despesa dupla e rejeitaria a transação. No entanto, numa rede blockchain descentralizada, isto é evitado pelo sistema de prova de trabalho e pelo algoritmo de consenso, que garante que cada transação é válida e não foi já gasta.

Cada bloco tem um carimbo de data e hora

Para garantir isso, o protocolo Bitcoin implementou um servidor de timestamp que cola uma etiqueta de tempo única ao hash de cada transação. O sistema de proof-of-work toma nota de cada timestamp e rejeita quaisquer transacções com um hash que coincida com as já registadas no sistema.

Cada novo bloco forjado em uma rede Bitcoin tem uma prova de trabalho anexada a ele. A prova também é chamada Nonce ou Número Gerado Apenas Uma Vez. Serve como prova criptográfica de que um mineiro gastou algum poder de computação para verificar o bloco e foi bem sucedido.

No entanto, existem blocos maus que contêm dados que contradizem o que foi extraído por outros nós. Se for detectado um bloco defeituoso, este é retirado e avaliado para detetar quaisquer inconsistências. Se for considerado válido, o bloco será adicionado à rede como habitualmente. Se não for, deita-a fora.

Grandes protocolos até agora

Dito isto, cada grande rede segue o seu próprio protocolo, criado especificamente para o seu mecanismo de consenso. A rede Bitcoin funciona com o protocolo Bitcoin, Ethereum – com o protocolo Ethereum, etc.

Abaixo estão os protocolos de blockchain mais proeminentes até à data:

Nome
Polkadot (DOT)
Avalanche (AVAX)
Polígono (MATIC)
Solana (SOL)
Binance Smart Chain (BSC)

Polkadot (DOT)

O Polkadot é um protocolo de blockchain pioneiro que revolucionou a interoperabilidade entre diferentes blockchains, permitindo uma comunicação perfeita e a partilha de dados com a ajuda de contratos inteligentes. O seu mecanismo único de consenso NPoS (Nominated Proof of Stake) oferece uma plataforma altamente segura e escalável, com um tempo médio de bloqueio ultrarrápido de apenas 6 segundos e taxas de transação baixas, com uma média de $0,10-0,20.

Projectos notáveis: Kusama, ChainX, Moonbeam, Chainlink, Reef Finance

Avalanche (AVAX)

Avalanche é uma plataforma de código aberto que surgiu como um farol de esperança para entusiastas de finanças descentralizadas (DeFi) e desenvolvedores de blockchain em todo o mundo. O seu mecanismo de consenso de ponta Avalanche permite um elevado rendimento e uma finalização rápida, tornando-o numa das blockchains mais escaláveis e rápidas do mercado. A Avalanche apresenta um tempo médio de bloqueio de 2 segundos e taxas de transação em média inferiores a 1 dólar.

Projectos notáveis: Pangolin, Trader Joe, Benqi, Lydian Lion, SushiSwap

Polígono (MATIC)

O Polygon é uma solução de escalonamento de camada 2 de próxima geração que está a transformar a escalabilidade do Ethereum e os problemas de taxas de transação. O seu mecanismo de consenso Proof-of-Stake (PoS) valida rapidamente as transacções financeiras, com um tempo médio de bloqueio de 2-3 segundos, muito mais rápido do que o Ethereum. Com uma taxa de transação média de 0,002 dólares, o Polygon é a escolha ideal para os programadores que procuram criar aplicações descentralizadas rentáveis.

Projectos notáveis: Aave, Quickswap, Curve Finance, Polymarket, Zapper

Solana (SOL)

Solana é uma plataforma de blockchain de alto desempenho que tomou de assalto a indústria de blockchain graças ao seu mecanismo de consenso Proof-of-History (PoH). O alto rendimento e a rápida finalização de Solana, com um tempo médio de bloqueio de 0,4-0,8 segundos e uma taxa média de transação de US$ 0,00025, fazem dela uma plataforma de blockchain incrivelmente rápida e acessível.

Projectos notáveis: Raydium, Serum, Mango Markets, Audius, Bonfida

Binance Smart Chain (BSC)

A Binance Smart Chain é uma plataforma blockchain que mudou o jogo com a sua compatibilidade com a Ethereum Virtual Machine (EVM) e a sua capacidade de executar aplicações descentralizadas. A sua compatibilidade também a torna uma opção atraente para os programadores que procuram migrar as suas aplicações do Ethereum para uma plataforma mais eficiente e económica.

Projectos notáveis: PancakeSwap, Venus, Protocolo Spartan, BakerySwap, Autofarm

Onde procurar soluções de desenvolvimento de cadeias de blocos

Na ICODA, temos anos de experiência em serviços de desenvolvimento de cadeias de blocos e no desenvolvimento de produtos de cadeias de blocos que funcionam. Se tens um projeto de desenvolvimento de software blockchain, estamos aqui para te ajudar. Se precisas de lançar um token ou uma DApp, uma DEX ou um mercado NFT, ou se estás apenas a tentar descobrir como as soluções de desenvolvimento de blockchain podem beneficiar o teu negócio – vieste ao sítio certo. Contacta-nos agora para obteres um breve plano e começares a trabalhar em breve.