O que é o Tendermint? Como funciona o consenso do Tendermint?

IntermediárioJan 08, 2024
O Tendermint é um novo protocolo blockchain que visa resolver o problema da tolerância a falhas bizantinas usando um modelo de rede parcialmente síncrono e um algoritmo de consenso determinístico. Foi concebido para ser escalável e seguro e pode ser usado para criar blockchains públicos e privados.
O que é o Tendermint? Como funciona o consenso do Tendermint?

O mundo da blockchain pode ser um lugar confuso mesmo quando se olha para o “mais simples” dos protocolos como o Bitcoin. As coisas ficam um pouco mais complicadas quando passamos para protocolos mais novos como o Ethereum, ou mesmo novos que pegam o que as gerações 1 e 2 nos ensinaram e procuramos construir sobre isso com novas ideias e conceitos.

Um desses projetos que procura revolucionar a forma como abordamos o desenvolvimento e a utilização da tecnologia blockchain é o Tendermint.

Tendermint é um novo protocolo que ajuda a ordenar eventos numa rede distribuída em condições adversas. Mais comumente conhecido como algoritmo de consenso Bizantine Fault Tolerant (BFT) ou transmissão atómica, o problema atraiu atenção significativa nos últimos anos devido ao sucesso generalizado das moedas digitais baseadas em blockchain, como Bitcoin e Ethereum.

Estas duas moedas resolveram com sucesso o problema de gerir tal rede num ambiente público sem uma autoridade central, criando o que hoje chamamos blockchains públicos descentralizados. O Tendermint moderniza o trabalho académico clássico sobre o assunto e simplifica o design do algoritmo BFT, contando com um protocolo de fofoca ponto a ponto entre nós.

O que vai aprender 👉

Um olhar mais atento ao Tendermint


O Tendermint existe numa pilha com o Cosmos, uma plataforma blockchain que serve como mediadora e autodenomina-se “Internet of Blockchains”; esta plataforma lançou a sua blockchain há apenas alguns dias, iniciando a existência prática do ecossistema Cosmos/Tendermint. Todo o ecossistema funciona de forma semelhante ao Ethereum, exceto que é mais modular, flexível e mais fácil de desenvolver.

O Cosmos SDK atua como a camada de aplicação do ecossistema (semelhante ao EVM do Ethereum) enquanto o Tendermint representa tanto a camada de consenso (algoritmo de consenso de prova de participação tolerante ao BFT) como a camada de rede (Tendermint Core).

Algoritmo de consenso + protocolo de rede p2p que são unidos sob a pilha Tendermint Core estão ligados ao Cosmos SDK através de outro elemento separado do ecossistema chamado Interface Blockchain de Aplicação (ABCI).

O Cosmos SDK é a implementação básica do ABCI e representa a parte modular do ecossistema; é uma camada de aplicação básica que os programadores podem pegar e melhorar com funcionalidades personalizadas. Isto permite que blockchains já existentes criem aplicações baseadas no Tendermint que podem ligar-se ao ecossistema e trocar mensagens e valor entre si.

É por isso que o Tendermint e o Cosmos usam o apelido “Internet of Blockchains”; todo o sistema quer tornar-se um hub que permitiria a interoperabilidade entre diferentes blockchains.

Uma empresa californiana com fins lucrativos por trás do projeto (também chamada Tendermint) separou os três principais elementos mencionados acima e depois conectou a camada de rede/consenso sob a pilha Tendermint.

Isto é feito para tornar os componentes da tecnologia mais fáceis de usar e consertar, sem ter de desenvolver para todo o ecossistema quando quer mudar alguma coisa. Os principais desenvolvedores Jae Kwon como Ethan Buchman queriam criar algo que fosse fácil de entender, implementar e desenvolver, e o Tendermint é o resultado final dos seus esforços.

⚡️ Antes do Tendermint, construir uma cadeia de blocos exigia construir todas as três camadas (rede, consenso, aplicação) a partir do zero. O Ethereum simplificou isto fornecendo uma blockchain de máquina virtual na qual qualquer pessoa poderia implementar lógica personalizada na forma de Contratos Inteligentes. Um problema permaneceu: o desenvolvimento da própria cadeia de blocos. O Tendermint simplifica significativamente o processo, uma vez que os programadores só precisam de se preocupar com a camada de aplicação.

As camadas de rede e consenso já são fornecidas através do motor Tendermint Core; tudo o que precisa fazer é adaptar o ABCI através de uma linguagem de programação de escolha, desenvolver a sua aplicação exclusiva e começar a usar as funcionalidades do Tendermint.

A equipa Tendermint fez algo do género pegando a base de código do Ethereum, retirando o PoW e conectando o resultado final em cima do seu Tendermint Core. Isso criou o Ethermint, um protocolo tipo Ethereum que tinha capacidades de Proof of Stake. Todas as ferramentas Ethereum existentes (Truffle, Metamask,..) são compatíveis com o Ethermint, e pode portar os seus contratos inteligentes para lá sem nenhum trabalho adicional.

Um elemento importante de toda a equação que ainda não mencionamos mas é muito importante para a interoperabilidade da cadeia de blocos é o protocolo de Comunicação Inter-Blockchain (IBC). O IBC permite que cadeias heterogéneas transfiram valor e dados entre si, em última análise, desbloqueando a interoperabilidade entre blockchains que têm diferentes aplicações e conjuntos de validadores.

Para evitar problemas de escalabilidade que podem vir com centenas ou milhares de blockchains futuros, o Cosmos propõe uma arquitetura modular com duas classes de blockchain: Hubs e Zonas.

As zonas são blockchains heterogéneos regulares e os Hubs são blockchains especificamente concebidos para ligar Zonas. Quando uma Zona cria uma ligação IBC com um Hub, pode aceder automaticamente (i.e. enviar e receber de) todas as outras Zonas que estejam ligadas a ela. Como resultado, cada Zona só precisa estabelecer um número limitado de ligações com um conjunto restrito de Hubs.

Os hubs também impedem o dobro de gastos entre as Zonas. Isto significa que quando uma Zona recebe um token de um Hub, só precisa de confiar na zona de origem deste token e no Hub. O primeiro hub (Cosmos Hub) já foi lançado há alguns dias. Algumas cadeias não serão completamente compatíveis com o Tendermint; os programadores imaginaram as chamadas zonas de ligação para lidar com este problema.

A criptografia do Tendermint em si não é tão avançada, com as assinaturas ECDSA sendo a peça de tecnologia mais “exótica” do ecossistema. Agregação de assinaturas BLS, provas de conhecimento zero e contas Ristretto foram mencionadas durante a recente transmissão ao vivo pós-lançamento mas nenhuma delas parece estar no horizonte ainda.

A tecnologia pode ser usada para a criação de cadeias públicas e privadas com as primeiras a operar através de PoS e as últimas através de nós permissionados; ambos os sistemas serão BFT. Os blocos no Tendermint Core podem ter um tempo de bloqueio de um segundo e são considerados instantaneamente finais; caso contrário, seria seguro supor que a rede está a sofrer um ataque de 33% (mais de um terço dos validadores são maliciosos).

Nodos Maliciosos e Tolerância a Falhas Bizantinas


Um blockchain precisa ser Tolerante a Falhas Bizantinas, também conhecido como capaz de tolerar nós potencialmente maliciosos que estão a comunicar estados e mensagens falsos à rede e a pôr em perigo o consenso. A ciência era escassa nos sistemas bizantinos tolerantes a falhas porque este tópico não era tão popular na academia.

Que pequena pesquisa foi feita concentrou-se em pequenas redes de tamanho de amostra de até 7 nós; Os desenvolvedores do Tendermint queriam algo que pudesse escalar a um nível superior. Mesmo quando o Bitcoin introduziu um sistema capaz de suportar milhares de nós independentes, o sistema tinha (e ainda tem) um único domínio administrativo que limita significativamente a sua escalabilidade.

Kwon e os seus parceiros imaginaram um protocolo BFT que pudesse ser dimensionado ao som de centenas de nós no cenário sem permissão com Proof-of-Stake (PoS) como o mecanismo de segurança subjacente. Eles inventaram o sistema baseado em BFT que tem dois elementos-chave que já nomeamos: Tendermint Core que é usado para alcançar consenso e “fofocar” e Cosmos SDK que serve como a camada de aplicação.

O seu algoritmo BFT Proof-of-Stake supera o Problema dos Generais Bizantinos usando um modelo de rede parcialmente síncrono, o que significa que os validadores que votam num bloco não precisam de agir ao mesmo tempo. Os blocos neste sistema não são votados de acordo com um calendário nem têm um tamanho determinado.

⚡️ No Bitcoin, que é considerado “totalmente síncrono”, temos um prazo definido de 10 minutos que os nós têm de procurar, recolher, validar e adicionar transações a um bloco. Com o Ethereum, este prazo é de apenas 15 segundos. Isso está tudo bem até que a sincronia esteja quebrada; alguns dos nós podem ficar offline e sofrer problemas de latência, caso em que a cadeia pode parar ou ser bifurcada.

O Tendermint visa implementar um modelo mais centralizado, que recusa estas limitações de tempo devido aos seus nós operarem de forma assíncrona.

O protocolo é mais assíncrono: em vez de cada ronda levar um período de tempo predeterminado, cada passo de uma ronda progride depois de mais de 2/3 dos nós chegarem a um consenso. Esta falta de sincronização é parcial e o projeto refere-se a ela como “fracamente assíncrona”. Os validadores são bem conhecidos e podem comunicar entre si para coordenar os seus esforços e garantir que o consenso da rede seja sempre alcançado. Tudo isto implica que a rede deles, na verdade, nunca irá bifurcar.

A Tendermint reatribui regularmente aos validadores o direito de propor um bloco para mitigar ligeiramente potenciais problemas com a centralização deste processo. Depois que os blocos são propostos, os validadores votam num processo determinístico de várias rondas.

Para expandir isto precisamos de perceber que no mundo dos protocolos, temos protocolos não determinísticos e determinísticos. Os protocolos não determinísticos são os que vemos em sistemas completamente assíncronos. O consenso de um caso puramente assíncrono pode depender de oráculos aleatórios e geralmente incorre em sobrecarga de alta complexidade de mensagem, uma vez que dependem de uma transmissão fiável para toda a comunicação.

O Tendermint evita esta sobrecarga elevada seguindo a rota determinística; nada é realmente aleatório mas sim feito através de uma função matemática definida que nos permite fazer uma previsão de que o protocolo tem a garantia de tomar decisões.

Com o Tendermint, os validadores são rotacionados com a ajuda de um formato de round robin ponderado determinístico. Quanto mais aposta um validador tiver, mais vezes poderá ser eleito como líder. Atualmente, o protocolo está limitado a cem validadores, no entanto, a equipa possivelmente considerará adicionar mais validadores, se necessário. Isto garante que o sistema é seguro em ambientes assíncronos e vivo em ambientes fracamente síncronos. No geral, o mecanismo de consenso sacrifica um certo grau de vida para a segurança do consenso e a finalidade instantânea.

Dando sentido a tudo...


Tendermint é um conceito interessante que talvez pareça e soe mais complicado no papel do que realmente é na realidade. É basicamente EOS de interoperabilidade e tem muitas semelhanças com o Ethereum e toda uma série dos seus projetos de clone. O principal objetivo do Tendermint é abordar a questão da interoperabilidade blockchain e enfrenta uma forte oposição nesse mercado. Ark, ICON, Polkadot, AION e projetos semelhantes têm todos esse mesmo objetivo em mente, então resta saber quem sairá por cima.

Isenção de responsabilidade:

  1. Este artigo foi reimpresso de captainaltcoin]. Todos os direitos autorais pertencem ao autor original [Dobrica Blagojevic]. Se houver objeções a esta reimpressão, contacte a equipa do Gate Learn, e eles tratarão disso imediatamente.

  2. Isenção de responsabilidade: As opiniões e opiniões expressas neste artigo são exclusivamente do autor e não constituem nenhum conselho de investimento.

  3. As traduções do artigo para outras línguas são feitas pela equipa do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.

learn.articles.start.now
learn.articles.start.now.voucher
learn.articles.create.account