O que é Tendermint

Tendermint é um mecanismo de blockchain de baixo nível que fornece replicação de estado segura e consistente em muitas máquinas. É uma ferramenta fracamente síncrona (principalmente assíncrona), tolerância bizantina a falhas (BFT), usada como um consenso plug-and-play para estados de aplicativos arbitrários e sistemas distribuídos.

Concebido principalmente como um mecanismo de consenso mais eficiente e seguro para o protocolo de prova de trabalho do Bitcoin, o Tendermint evoluiu ao longo de sua existência e agora é o mecanismo de consenso subjacente da Rede Cosmos.

O que é Tendermint

Antecedentes do Tendermint

Tendermint é um projeto de código aberto proposto por Jae Kwon em 2014 em um acadêmico publicação que agora está desatualizado, mas é uma leitura fascinante se você tiver tempo. Ele aborda o problema de replicação segura e consistente em máquinas de estado que são inerentemente difíceis de alcançar.

Em sistemas de blockchain, a necessidade de tolerar que agentes maliciosos comprometam nós e propaguem mensagens falsas é um recurso crítico que permite que eles funcionem e cheguem a um consenso honesto sobre o estado da rede. No entanto, os meios para alcançar este consenso com o modelo de prova de trabalho do Bitcoin são ineficientes e consomem muitos recursos. Tendermint propôs um novo modelo BFT, particularmente também focando em permitir que o motor de consenso primário do software Tendermint seja usado em várias outras redes de blockchain e seja universalmente compatível com outras linguagens de programação.

Tolerância prática a falhas bizantinas

Leia: O que é o Consenso de Nakamoto?

Como resultado, o conceito inicial do Tendermint foi otimizado ao longo dos anos para facilitar seu uso como um mecanismo de consenso de blockchain de propósito geral com uma interface de aplicativo proprietária. Atualmente, o Tendermint é o mecanismo de infraestrutura da Cosmos Network – uma plataforma de estrutura de várias cadeias – comumente conhecida como “Internet of Blockchains”.

No geral, o Tendermint possui alguns recursos exclusivos e tecnologia intrigante. Então, como isso funciona?

Como funciona?

Tendermint é um mecanismo blockchain de propósito geral que pode hospedar estados de aplicativos arbitrários e é composto principalmente de 2 componentes principais:

  1. Tendermint Core – O mecanismo de consenso Tendermint BFT
  2. Application BlockChain Interface (ABCI) – permite a replicação BFT de aplicativos escritos em qualquer linguagem de programação

Tendermint funciona como um prova de aposta protocolo que é BFT. Projetado como uma ferramenta plug-and-play, é intuitivo de usar e criado para interoperabilidade eficiente. Ele pode ser implementado efetivamente como o mecanismo de consenso para qualquer rede blockchain. A ABCI separa o mecanismo de consenso da camada P2P do estado do aplicativo e permite uma interface limpa entre a lógica do aplicativo e o mecanismo de consenso.

O Tendermint usa um mecanismo de prova de estaca, que é fundamental ter em mente ao ler a seção abaixo. Vejamos os 2 componentes principais.

Tendermint Core

O mecanismo de consenso subjacente do software Tendermint geral, o Tendermint Core, garante que as máquinas na rede distribuída registrem a ordem das transações da mesma maneira. Visto que o Tendermint é um mecanismo de consenso BFT, ele faz as mesmas suposições que outros sistemas BFT, especificamente que não mais do que ⅓ dos nós na rede podem ser bizantinos em qualquer instância.

Da mesma forma, ele usa um mecanismo de votação baseado em rodada como outros mecanismos BFT. Para melhor colocar o conceito em contexto, uma lista de mecânicas BFT semelhantes para selecionar o nó líder em cada rodada está abaixo:

  • O BFT prático usa um formato de estilo round-robin para selecionar o nó líder para cada rodada.
  • Prova de tempo decorrido usa um cronômetro aleatório dentro do SGX para seu processo de seleção de líder.
  • Bitcoin usa o Consenso Nakamoto, onde uma prova de quebra-cabeça computacional de trabalho é resolvida em um formato semelhante a loteria para determinar o líder de cada rodada (mineração).

O Tendermint usa uma versão otimizada projetada para escalar para milhares de transações por segundo e permite a funcionalidade plug-and-play fácil. Podemos dividir a rodada no Tendermint BFT em 3 fases:

  • Proposta de Bloco
  • Pré-votação
  • Pre-commit

Os participantes do protocolo são validadores. Os validadores propõem e votam em blocos na rede com base em sua participação geral na rodada. Portanto, a suposição de ⅓ BFT é baseada no “peso” de cada validador – determinado por sua participação correlacionada – ao invés de ⅓ do total de nós participantes.

Os validadores mantêm um nó cliente completo com uma cópia do blockchain e usam chaves públicas como seus identificadores. O proposta de bloco fase é quando um validador propõe um novo bloco em uma rodada.

O pré-votação A fase é onde os validadores votam no bloco proposto e passam para a fase de pré-comprometimento se mais de ⅔ dos validadores votam previamente no bloco proposto. Isso é conhecido como polca.

Na rodada de pré-commit, se mais de ⅔ dos validadores pré-comprometerem o bloco pré-votado, então o bloco está comprometido com o blockchain. Notavelmente, cada pré-compromisso deve ser justificado por uma polca na mesma rodada.

Os validadores que propõem blocos com falha ou assinam blocos inadequados correm o risco de ter sua aposta cortado. O processo de 3 etapas iterado acima é considerado uma rodada.

O Tendermint é principalmente assíncrono (ou fracamente síncrono), portanto, pode levar várias rodadas antes que um bloco seja confirmado. O processo de proposta é parcialmente síncrono, enquanto o processo de votação é assíncrono. De acordo com o Tendermint:

“Os validadores podem falhar ao confirmar um bloqueio por uma série de razões arbitrárias; ou seja, o proponente atual pode estar offline ou uma rede pode estar com latência. O Tendermint permite que um validador seja ignorado. Os validadores aguardam um pequeno período de tempo para receber um bloco de proposta completo do proponente antes de votar para avançar para a próxima rodada. Essa dependência de um tempo limite é o que torna o Tendermint um protocolo fracamente síncrono, em vez de um assíncrono. No entanto, o resto do protocolo é assíncrono e os validadores só progridem depois de ouvir mais de ⅔ do conjunto de validadores. ”

Devido ao seu design, o Tendermint garante que a segurança nunca será violada, portanto, um blockchain do Tendermint nunca bifurcará. No entanto, a rede pode parar devido ao requisito de que a maioria dos validadores tenha 100% de tempo de atividade.

No geral, o mecanismo de consenso sacrifica um grau de vivacidade para segurança de consenso e finalidade instantânea.

Interface BlockChain do Aplicativo (ABCI)

O ABCI é um componente crítico da flexibilidade do Tendermint e permite a replicação BFT de aplicativos a serem escritos em qualquer linguagem de programação.

Tendermint descreve a motivação por trás da ABCI como o design de pilha monolítica das plataformas de criptomoeda atuais, como Bitcoin e Ethereum. Projetos monolíticos levam a complexidades de manutenção do protocolo e limitam a capacidade de outras linguagens de programação de interagir com o blockchain. Por exemplo, Ethereum suporta uma máquina virtual de bytecode Turing-complete, mas as linguagens de programação são limitadas àquelas que podem compilar até aquele bytecode, como Solidity e Vyper.

A implementação primária do ABCI é o Tendermint Socket Protocol (TSP) e é como o Tendermint Core se comunica com o aplicativo. Enquanto o Tendermint Core é responsável por manter e verificar a ordem canônica das transações nos blocos do blockchain, a ABCI valida assinaturas criptográficas, mantém o banco de dados de transações e permite que os clientes consultem o banco de dados de transações.

A ABCI usa 3 tipos de mensagens principais:

  • DeliverTX
  • CheckTX
  • Comprometer-se

O DeliverTX a mensagem acompanha todas as transações no blockchain e só pode atualizar o estado do aplicativo após a validação.

O CheckTX mensagem é para validar transações e é primeiro verificada pelo mempool do Tendermint Core. Apenas transações válidas são propagadas pela rede.

O Comprometer-se mensagem calcula um compromisso com o estado atual do aplicativo, permitindo que as provas Merkle sejam verificadas em um hash de bloco que é assinado por um quorum.

O ABCI é orientado a conexões e o Tendermint Core mantém três conexões ABCI com o aplicativo.

  • Conexão Mempool
  • Conexão de consenso
  • Conexão de consulta

O Conexão Mempool usa a mensagem CheckTX e serve para verificar se as transações devem ser retransmitidas antes de serem confirmadas.

O Conexão de consenso executa transações que foram confirmadas.

O Conexão de consulta permite que os clientes consultem o estado do aplicativo.

A ABCI é um componente dinâmico do software Tendermint e é parte integrante da capacidade da estrutura de múltiplas cadeias da Cosmos Network, que funciona como o motor blockchain subjacente da rede.

Crédito da imagem – Documentação do Tendermint

Tendermint & The Cosmos Network

The Cosmos Network é uma estrutura de blockchain de várias cadeias com foco em abordar os principais problemas de escalabilidade e interoperabilidade de sistemas de blockchain.

Interoperabilidade Blockchain

Leia: Interoperabilidade do Blockchain: Problemas & Soluções Futuras

Ele é alimentado pelo motor blockchain clássico Tendermint BFT e atua como uma estrutura mais ampla para blockchains independentes para se conectar e funcionar dentro de um ambiente padronizado de comunicação. A rede permite que blockchains públicos e privados se comuniquem e troquem valor entre si e aproveita a escalabilidade interoperável por meio do mecanismo de consenso de prova de interesse da Tendermint.

Além disso, a ABCI do Tendermint permite que os desenvolvedores criem facilmente diversos blocos de blocos como parte do ecossistema, usando qualquer linguagem de programação. O Cosmos SDK é uma estrutura da ABCI escrita na linguagem de programação Go e Loção JS é uma estrutura ABCI escrita em JavaScript.

Há uma empolgação substancial em torno de frameworks de múltiplas cadeias como Cosmos e Polkadot. Você pode encontrar mais informações e recursos sobre o Cosmos e sua integração com o Tendermint em seus documentação.

Conclusão

O Tendermint representa outro avanço na pesquisa e desenvolvimento da tolerância a falhas bizantinas em redes distribuídas, particularmente em sistemas de blockchain. Esses tipos de inovações são cruciais para o desenvolvimento de redes blockchain mais escalonáveis ​​e interoperáveis, como o Cosmos.

Tendermint e progressões semelhantes no consenso BFT são excelentes exemplos de quão longe a indústria de criptomoedas avançou em tecnologias de ponta. Muito mais inovação é necessária para que o conceito mais amplo por trás da tecnologia blockchain atinja seu verdadeiro potencial, mas os projetos estão no caminho certo e estão mudando dinamicamente o cenário da computação distribuída.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me