Entenda o mecanismo de consenso e 11 algoritmos de consenso convencionais em um artigo

O melhor mecanismo de consenso é sempre aquele que atende às necessidades do usuário.

Palestrante: Uchiha Madara

EDIT: Puffs

Fonte:Deschool

Este artigo são as notas de estudo da terceira lição do curso universitário web3 da DeSchool, e o palestrante é Uchiha Madara. O conteúdo é muito seco e não se mistura com água, recomenda-se recolhê-lo e digeri-lo lentamente. Além disso, para facilitar o entendimento, este artigo possui algumas modificações e complementações com base no conteúdo do curso.

O conteúdo principal do artigo inclui:

  1. Introdução ao Algoritmo de Consenso

  2. Classificação dos algoritmos de consenso

  3. Explicação detalhada dos algoritmos de consenso (PoW, PoS, PoH, PoA, PBFT, etc.)

01 Introdução ao Mecanismo de Consenso

Na comunicação e aprendizagem da blockchain, o "algoritmo de consenso" é um vocabulário muito citado, e é justamente pela existência do algoritmo de consenso que a credibilidade da blockchain pode ser garantida.

**1. Por que precisamos de um mecanismo de consenso? **

O chamado consenso significa que várias pessoas chegam a um acordo. Nossas vidas são repletas de mecanismos de consenso, por exemplo, uma empresa precisa que os acionistas discutam coletivamente para tomar uma decisão, e a Parte A e a Parte B precisam sentar e negociar para assinar um contrato. Este processo é o processo de chegar a um consenso.

No sistema blockchain, o que cada nodo deve fazer é fazer com que seu ledger coincida com os ledgers dos outros nodos. Se estiver em um cenário centralizado tradicional, isso dificilmente é um problema, pois existe um servidor central, que é a chamada biblioteca mestre, e outras bibliotecas escravas podem ser alinhadas com a biblioteca mestre.

Mas na gestão descentralizada não existe patrão, então como devem ser tomadas as decisões? Neste momento, um conjunto de algoritmos é necessário para garantir o consenso. É sobre isso que este artigo vai falar - o mecanismo de consenso.

**2. Qual é o mecanismo de consenso? **

O mecanismo de consenso (Mecanismo de Consenso) completa a verificação e confirmação das transações em um período de tempo muito curto através da votação de nós especiais; para uma transação, se vários nós com interesses irrelevantes podem chegar a um consenso, podemos considerar que toda a rede Também há consenso sobre isso.

Embora o consenso (consenso) e a consistência (consistência) sejam considerados aproximadamente equivalentes em muitos cenários de aplicação, existem diferenças sutis em seus significados: a pesquisa de consenso se concentra no processo e no algoritmo de nós distribuídos que atingem o consenso, enquanto a pesquisa de consistência se concentra no final estado estável do processo de consenso do nó; além disso, a maioria das pesquisas tradicionais de consenso distribuído não considera o problema de tolerância a falhas bizantinas, ou seja, assume-se que não há nós bizantinos que adulteram ou falsificam dados maliciosamente. Afinal, em uma rede blockchain totalmente aberta e transparente, não há garantia de que todos os nós não farão mal.

**3. Que problemas o mecanismo de consenso pode resolver? **

O mecanismo de consenso pode resolver o problema de confiança no sistema distribuído e garantir a consistência e segurança dos dados entre os nós. Em um sistema distribuído tradicional, como não há mecanismo de confiança entre os nós, ele fica vulnerável a ataques e adulterações por nós maliciosos, resultando em travamentos do sistema ou adulteração de dados. Além disso, antes do surgimento da tecnologia de criptografia blockchain, a moeda digital criptografada, como outros ativos, era infinitamente replicável. Sem uma agência intermediária centralizada, as pessoas não tinham como confirmar se uma quantia em dinheiro digital havia sido gasta.

Simplificando, o mecanismo de consenso pode efetivamente resolver dois problemas: o problema do gasto duplo (uma quantia de dinheiro é gasta duas vezes) e o problema geral bizantino (nós maliciosos adulteram os dados).

4. Ataque de gasto duplo

** **

O mecanismo de consenso pode resolver o ataque de gasto duplo até certo ponto: ou seja, uma quantia de dinheiro é gasta duas ou mais vezes, também chamada de "gasto duplo". No jogo de gato e rato, Xiao Lizi cometeu um comportamento de gasto duplo ao fazer um cheque falso. Como a verificação do cheque leva tempo, ele usou as informações do mesmo cheque para comprar itens várias vezes dentro dessa diferença de horário.

Como todos sabemos, os nós da blockchain sempre consideram a cadeia mais longa como a correta e continuam trabalhando e estendendo-a. Se dois nós transmitirem versões diferentes de um novo bloco ao mesmo tempo, o trabalho será feito com base no bloco recebido primeiro, mas a outra cadeia também será mantida caso esta última se torne a cadeia mais longa. Espere até que a próxima prova de trabalho seja encontrada e uma das cadeias prove ser a mais longa, então os nós que trabalham na outra cadeia de ramificação mudarão de campo.

Como é alcançado o gasto duplo? Dividido em duas situações:

**(1) Gasto duplo antes da confirmação. **As transações com confirmação zero podem não ter sido gravadas no blockchain no final. A menos que o valor seja pequeno, é melhor evitar esse gasto duplo esperando pelo menos a confirmação.

**(2) Gasto em dobro após a confirmação. **Isso requer o controle de mais de 50% do poder de computação para implementar. Ou seja, semelhante a um pequeno fork, colocando as transações de uma loja em blocos órfãos. Esse tipo de gasto duplo após a confirmação é difícil de implementar, mas é viável apenas teoricamente.

** Existem três ataques de gasto duplo mais comuns: ataque de 51%, ataque de corrida e ataque de Finney. **

Ataque de 51%: Um ataque de 51% é quando uma pessoa ou grupo ganha o controle de 51% do poder de hash da blockchain, o que significa que eles têm a capacidade de controlar alguns aspectos do projeto. Em uma blockchain de prova de trabalho como o Bitcoin, isso seria alcançado ao obter o controle do poder de mineração da rede. Por outro lado, para um blockchain proof-of-stake como o Cardano, isso seria alcançado controlando 51% dos tokens apostados.

Race Attack: Um usuário envia duas transações para dois comerciantes (ou o comerciante e o usuário) ao mesmo tempo. Portanto, o invasor recebe dois conjuntos de mercadorias ou recebe as mercadorias e recupera o custo da transação original.

Ataque Finney: um minerador extrai um bloco ou uma série de blocos que contêm transações que transferem dinheiro para seu próprio endereço. Os blocos minerados não são publicados, mas são mantidos enquanto o minerador transfere dinheiro para o comerciante. O comerciante então libera as mercadorias que o mineiro pagou antes que o mineiro publique o bloco que cavou. Os mineradores então publicam os blocos que foram escavados, o que apagará a transferência para o comerciante e permitirá que o comerciante pague por isso do próprio bolso.

Caso clássico de ataque de flor dupla:

Em 2018, o invasor controlava mais de 51% do poder de computação na rede BTG. Durante o período de controle do poder de computação, ele enviou uma certa quantia de BTG para sua carteira na bolsa. Essa filial foi chamada de filial A. Ao mesmo tempo, envie esses BTG para outra carteira controlada por você, e esta filial é chamada de filial B. Depois que a transação na agência A é confirmada, o invasor imediatamente vende o BTG para obter dinheiro. Posteriormente, o invasor minera no ramo B. Como ele controla mais de 51% do poder de computação, o comprimento do ramo B logo excede o comprimento do ramo A, e o ramo B se tornará a cadeia principal. revertida para restaurar o estado anterior. O BTG que o atacante trocou por dinheiro antes voltou para as próprias mãos, e esses BTG são o prejuízo da troca. Dessa forma, o invasor, contando com mais de 50% do controle do poder computacional, percebeu o “gasto duplo” da mesma criptomoeda.

5. Falhas bizantinas

** **

O Problema dos Generais Bizantinos é um problema hipotético proposto por Leslie Lamport na década de 1980. Bizâncio era a capital do Império Romano do Oriente.Devido ao vasto território do Império Romano Bizantino naquela época, as guarnições de cada exército eram distantes e os generais só podiam entregar mensagens por mensageiros. Em caso de guerra, os generais devem desenvolver um plano de ação unificado.

No entanto, existem traidores entre esses generais, que esperam minar o plano de ação consistente dos generais leais, influenciando a formulação e disseminação do plano de ação unificado. Portanto, os generais devem ter um acordo de método predeterminado, para que todos os generais leais possam concordar. E um punhado de traidores não pode fazer generais leais fazerem planos errados. Em outras palavras, a essência do problema dos generais bizantinos é encontrar uma maneira de fazer com que os generais estabeleçam um consenso sobre o plano de batalha em um ambiente de não confiança com traidores.

Em sistemas distribuídos, especialmente no ambiente de rede blockchain, também é semelhante ao ambiente geral bizantino, existem servidores normais (semelhantes aos leais generais bizantinos), existem servidores defeituosos e servidores sabotadores (semelhantes ao traidor general bizantino). O núcleo do algoritmo de consenso é formar um consenso sobre o estado da rede entre nós normais. Se houver apenas 3 nós, o problema dos generais bizantinos é insolúvel.

O surgimento do Bitcoin resolve facilmente esse problema, acrescenta custo à transmissão de informações, reduz a taxa de transmissão de informações e adiciona um elemento aleatório para que apenas um general possa transmitir informações dentro de um determinado período de tempo. O primeiro general a transmitir uma mensagem é o primeiro computador a encontrar um hash válido e, desde que outros generais recebam e verifiquem esse hash válido e as informações anexadas a ele, eles só podem atualizá-los com a nova cópia de informações do livro-razão, e recalcule o valor do hash. O próximo general que calcular o valor de hash efetivo pode anexar suas informações atualizadas ao valor de hash efetivo e transmiti-lo a todos. A corrida de computação de hash é reiniciada a partir de um novo ponto de partida. Devido à sincronização contínua das informações da rede, todos os computadores da rede usam a mesma versão do ledger.

02 Classificação dos Algoritmos de Consenso

1. História do Mecanismo de Consenso

Quando computadores e redes se tornaram populares nas décadas de 1980 e 1990, surgiram bancos de dados compartilhados para que vários usuários pudessem acessar as informações armazenadas. A maioria tem um banco de dados central que os usuários podem acessar de diferentes sites. Essa configuração evolui para uma rede centralizada onde os administradores concedem permissões de usuário e mantêm a integridade dos dados.

Esses bancos de dados compartilhados são conhecidos como ledgers distribuídos porque registram informações e são conectados em rede para acesso de muitos usuários em locais diferentes. Uma das questões mais importantes a serem abordadas é a prevenção de adulteração de dados e acesso não autorizado, malicioso ou não. É necessária uma maneira de automatizar o gerenciamento de banco de dados distribuído para garantir que os dados não sejam alterados.

Essa necessidade levou à criação do consenso autônomo distribuído, em que os programas na rede usam criptografia para concordar com o estado do banco de dados. O protocolo é projetado para ser alcançado usando um algoritmo criptográfico para criar uma longa cadeia de números alfanuméricos (hash), que é então verificada por um programa em execução na rede. O hash só muda quando as informações alimentadas no algoritmo de hash mudam, então os programas são projetados para comparar os hashes para garantir que eles correspondam.

Quando cada programa em execução na rede criou uma sequência de hash correspondente, diz-se que os dados atingiram o consenso em toda a rede. Assim, um mecanismo de consenso foi estabelecido, geralmente creditando o criador anônimo do Bitcoin, Satoshi Nakamoto. No entanto, muitas pessoas trabalharam no mecanismo de consenso por anos antes de Satoshi lançar o white paper que tornou o Bitcoin famoso.

Cientistas de dados e da computação como Moni Naor, Cynthia Dwork, Adam Beck, Nick Szabo e muitos outros trabalharam e contribuíram para o desenvolvimento dos mecanismos de consenso da rede.

2 Classificação de Algoritmos de Consenso

De acordo com os diferentes tipos de tolerância a falhas, os algoritmos de consenso podem ser divididos em duas categorias: algoritmo de consenso CFT (tolerância a falhas não bizantinas, ou seja, nós maliciosos não são considerados) e algoritmo de consenso BFT (tolerância a falhas bizantinas, que ou seja, nós maliciosos são considerados).

Tolerar ou não o Byzantium marca se o algoritmo pode ser aplicado a redes de baixa confiança. De modo geral, o algoritmo tolerante a falhas bizantino deve ser utilizado no ambiente de cadeia pública, enquanto na cadeia de alianças pode ser selecionado de acordo com o grau de confiança entre os participantes da aliança. Se o grau de confiança for alto, todos é um nó de boa fé por padrão e pode usar o algoritmo CFT (non-Byzantine fail-tolerant ).

**Além disso, pode ser dividido em duas categorias de acordo com a consistência: **algoritmo de consenso de probabilidade e algoritmo de consistência absoluta. O algoritmo de consenso probabilístico significa que entre diferentes nós distribuídos, há uma alta probabilidade de garantir que os dados entre os nós sejam consistentes, mas ainda há uma certa probabilidade de que os dados entre alguns nós sejam inconsistentes. Por exemplo, Proof of Work (PoW), Proof of Stake (PoS) e Delegated Proof of Stake (DPoS) são todos algoritmos de consenso probabilístico.

O algoritmo de consistência absoluta significa que, a qualquer momento, os dados entre diferentes nós distribuídos permanecerão absolutamente consistentes e não haverá inconsistência de dados entre diferentes nós. Por exemplo, o algoritmo PAXOS e seu algoritmo RAFT derivado.

A seguir, uma divisão e introdução específica de acordo com o tipo de tolerância a falhas.

Algoritmo de Consenso 3CFT

Erro não bizantino de tolerância a falhas de falha: adequado para redes com alto grau de confiança no nó. Incluindo Paxos, Jangada.

Algoritmo de Consenso 4BFT

Verificar se o nó possui erros bizantinos maliciosos tende a uma estrutura descentralizada, incluindo prova de trabalho (PoW), prova de participação (PoS), prova de participação delegada (DPoS), prova de autoridade (PoA), etc.

03 Explicação Detalhada do Algoritmo de Consenso

Está um pouco cansado de ver isso, clique em um favorito, faça uma pausa e continue a roer a parte mais difícil deste artigo! Alunos com tempo limitado podem começar diretamente do terceiro algoritmo PoW.

Algoritmo 1Paxos

** **

  • **Introdução ao algoritmo: **Em 1990, o algoritmo Paxos é um algoritmo de consenso distribuído baseado na passagem de mensagens proposto por Lamport e ganhou o Prêmio Turing de 2013. Desde o advento do Paxos, ele continuou a monopolizar o algoritmo de consenso distribuído, principalmente resolvendo como chegar a um consenso sobre um valor específico em um sistema distribuído. O processo de consenso do algoritmo Paxos é que o Proponente apresenta uma proposta para ganhar o apoio da maioria dos Aceitadores. Quando uma proposta recebe mais da metade do apoio, o resultado final é enviado a todos os nós para confirmação. Durante esse processo, se o Proponente falhar, isso pode ser resolvido acionando o mecanismo de timeout.Se o Proponente de cada nova rodada de propostas falhar, o sistema nunca conseguirá chegar a um consenso. Mas a probabilidade disso é extremamente pequena.

O protocolo Basic Paxos inicial era complexo e relativamente ineficiente, então uma versão melhorada do Paxos foi proposta posteriormente. Por exemplo: Fast Paxos, Multi-Paxos e Byzanetine Paxos, etc.

  • **Caso de uso: **ZooKeeper
  • **Princípio do algoritmo: **O algoritmo Paxos é executado em um sistema assíncrono que permite tempo de inatividade e falhas, não requer entrega confiável de mensagens e pode tolerar perda, atraso, desordem e repetição de mensagens. Ele utiliza o mecanismo majoritário (Majority) para garantir a tolerância a falhas de 2f+1, ou seja, um sistema com 2f+1 nós permite que no máximo f nós falhem ao mesmo tempo. Contanto que haja menos de (n-1)/2 falhas, o Paxos chega a um consenso. Essas falhas não podem ser bizantinas, caso contrário a prova BFT seria violada. Portanto, a premissa desse algoritmo é assumir que as mensagens nunca podem ser corrompidas e que os nós não podem conspirar para corromper o sistema.

O Paxos passa por um conjunto de rodadas de negociação nas quais um nó tem o estado de "liderança". Se o líder não estiver online, o progresso será interrompido até que um novo líder seja eleito ou se o antigo líder voltar a ficar online de repente.

O Paxos divide as funções no sistema em Proponente, Aceitador e Aluno: Proponente: Proposta. As informações da proposta incluem o número da proposta (ID da proposta) e o valor proposto (Valor). Aceitante: Participar da tomada de decisões e responder às propostas dos Proponentes. Após o recebimento da Proposta, a Proposta pode ser aceita.Se a Proposta for aceita pela maioria dos Aceitantes, a Proposta é considerada aprovada. Aluno: Não participe da tomada de decisões, aprenda a última proposta acordada (Valor) dos Proponentes/Aceitadores.

2. Algoritmo de Jangada

**Introdução ao algoritmo:**O algoritmo Raft (replicação e tolerância a falhas) é uma implementação simplificada do par de algoritmos Paxos. O nome Raft vem do acrônimo "Reliable, Replicated, Redundant, And Fault-Tolerant" Redundant, Fault Tolerant"). raft faz muitas simplificações legais sobre Paxos com continuação de log. Garante a consistência do sistema quando mais da metade dos nós de um sistema composto por n nós estão funcionando normalmente. Ao contrário do algoritmo Paxos, que é derivado diretamente do problema de consistência distribuída, o algoritmo Raft é proposto a partir da perspectiva de uma máquina de estado multi-cópia e é usado para gerenciar a replicação de log da máquina de estado multi-cópia. Por exemplo, em um sistema de 5 nós, 2 nós podem ter erros não bizantinos, como tempo de inatividade do nó, partição de rede e atraso de mensagem.

**Caso de uso: **Replicação mestre-escravo de banco de dados, cadeia de alianças.

Princípio do algoritmo: há três papéis no sistema Raft: Líder, Seguidor e Candidato. Em circunstâncias normais, haverá apenas um líder e os outros são seguidores. E o líder ficará responsável por todas as requisições externas, caso não seja recebida pela máquina do líder, a requisição será direcionada ao líder. Normalmente o líder enviará uma mensagem em um horário fixo, ou seja, um heartbeat (heartbeat), para avisar aos seguidores que o líder do cluster ainda está operando. Cada seguidor irá projetar um mecanismo de timeout (timeout) Quando o heartbeat não for recebido por um determinado período de tempo (geralmente 150 ms ou 300 ms), o sistema entrará no estado de eleição.

Neste momento, o cluster entra em um novo turno eleitoral (período) e inicia uma eleição. Se a eleição for bem-sucedida, o novo líder começará a realizar o trabalho. Caso contrário, o mandato será considerado encerrado e um novo mandato será iniciado e a próxima eleição vai começar.

As eleições são dirigidas por candidatos. Isso exige que os candidatos se indiquem e solicitem votos de outros servidores por ordem de chegada, quando o líder parar de bater. Cada servidor lança apenas um voto por rodada eleitoral a favor ou contra o candidato atual. Se você não obtiver mais da metade dos votos, irá para o próximo turno das eleições. Os restantes candidatos continuam a nomear-se por ordem de chegada. até que um líder seja eleito.

**Vantagens do algoritmo Raft: **O primeiro ponto é a simplicidade. Se nos aprofundarmos onde Paxos é mais complexo que Raft, Heidi Howard e Richard Mortier descobriram que a complexidade de Paxos se reflete em dois aspectos. Primeiro, o Raft confirma os logs sequencialmente, enquanto o Paxos permite que os logs sejam confirmados fora de ordem, mas requer um protocolo adicional para preencher as lacunas de log que podem surgir como resultado. Em segundo lugar, todas as réplicas do log em Raft têm o mesmo índice, termo e ordem, enquanto em Paxos esses termos podem diferir.

O segundo ponto é que Raft possui um algoritmo de eleição de líder eficiente. O algoritmo de eleição fornecido no artigo da Paxos compara o tamanho do ID do servidor. O problema é que se o líder eleito dessa forma não tiver alguns logs, ele não poderá realizar imediatamente a operação de escrita, devendo primeiro copiar alguns logs de outros nós. O log do Raft sempre pode selecionar o nó com o log de maioria, portanto não há necessidade de acompanhar o log Embora às vezes a eleição seja repetida devido à divisão de votos, geralmente é um algoritmo de eleição mais eficiente.

Para o algoritmo Paxos, se um servidor estiver muito atrasado, até mesmo alguns dias atrás nos logs, mas for eleito líder em algum momento, isso fará com que um determinado período de tempo seja bloqueado. No algoritmo Raft, um nó cujo log está atrasado nunca será selecionado.

3 Prova de Trabalho (PoW)

Introdução ao algoritmo: uma tecnologia de computador que foi usada pela primeira vez para combater o spam. Em 2008, Satoshi Nakamoto propôs Bitcoin e blockchain no white paper Bitcoin "Bitcoin: A Peer-to-Peer Electronic Cash System", e projetou de forma inovadora o algoritmo PoW, que foi aplicado ao Bitcoin para resolver quebra-cabeças matemáticos para participar de um consenso. O conteúdo principal do algoritmo é usar o poder de computação para encontrar um valor nonce que satisfaça o hash do bloco. No entanto, as pessoas descobriram rapidamente os problemas desse mecanismo de consenso, ou seja, o grande consumo de energia e o controle do poder de computação por grandes pools de mineração ainda levarão a problemas de centralização.

**Casos de uso:**Bitcoin, ETH1.0, Litecoin, Conflux, Dogecoin.

Princípio do algoritmo: a principal característica do sistema de prova de trabalho é que o cliente precisa fazer algum trabalho difícil para obter um resultado, mas o verificador pode verificar facilmente se o cliente fez o trabalho correspondente por meio do resultado . Uma característica central desse esquema é a assimetria: o trabalho é moderado para o solicitante e facilmente verificável para o verificador. Ele difere dos captchas, que são projetados para serem fáceis de resolver por humanos e não por computadores.

A prova de trabalho (PoW) encontra um Nonce numérico por meio de cálculo, de modo que o valor de hash do conteúdo após a reunião dos dados da transação atenda ao limite superior especificado. Depois que o nó encontrar com sucesso um valor de hash satisfatório, ele transmitirá o bloco empacotado para toda a rede imediatamente e os nós da rede o verificarão imediatamente após receber o bloco empacotado transmitido.

Desvantagens: Velocidade lenta; grande consumo de energia, prejudicial ao meio ambiente; vulnerável a "economias de escala".

Prós: Extensivamente testado desde 2009 e ainda amplamente utilizado hoje.

4 Prova de Participação (PoS)

Introdução ao algoritmo: Em 2011, o Quantum foi proposto no fórum Bitcointalk. Em agosto de 2012, nasceu Peercoin, o primeiro projeto blockchain baseado no consenso PoS. Peercoin é o primeiro aplicativo a implementar o algoritmo PoS. O interesse em Peercoin é a idade da moeda, que é o produto do número de moedas mantidas pelo nó e o tempo de retenção. Iniciar uma transação consumirá uma certa quantidade de idade da moeda, e toda vez que 365 moedas forem consumidas, um valor anual taxa de juros de 5% será obtida.

Usuários: Ethereum(2.0), Conflux, Peercoin.

Princípio do algoritmo: Por exemplo, se alguém tiver 100 Dotcoins em uma transação por um total de 30 dias, a idade da moeda é 3.000 e um bloco PoS é encontrado posteriormente, a idade da moeda é zerada e os juros é obtido É 0,05*3000/365=0,41 moedas. Durante o processo de consenso, os nós obtêm o direito de escrituração pela idade da moeda consumida, quanto mais idade de moeda o nó consumir, maior a chance de obter o direito de escrituração. O princípio da cadeia principal definido pelo algoritmo é: a cadeia que consome mais idade da moeda é a cadeia correta e eficaz no sistema.

Vantagens: Não há necessidade de equipamentos de mineração poderosos e caros. Reduza o consumo de recursos e reduza a possibilidade de ataques de 51%.

Desvantagens: Pode fazer com que os ricos acumulem criptomoedas, formando o efeito Mateus, que pode causar inflação das criptomoedas.

5 Provas de História (PoH)

**Introdução ao algoritmo: **A prova de histórico foi criada por Solana, uma blockchain de alto rendimento lançada em 2018. A prova de histórico permite que os participantes da rede cheguem a um consenso no tempo usando uma função de atraso verificável, evitando assim o "mais longo regra da cadeia".

PoH é o relógio da rede e TowerBFT é sua torre de vigia, encarregada de impedir que nós maliciosos falsifiquem os parâmetros de tempo. Qualquer validador que votou em um bloco deve esperar que o próximo bloco seja produzido e obter a confirmação da prova do histórico de que "o tempo passou" antes de votar novamente.

Solana habilmente separa a cadeia de tempo baseada em hash e o estado. Em vez de vincular os hashes de cada bloco, o verificador na rede faz o hash do próprio hash no bloco. Esse mecanismo é PoH . O PoH estabelece uma sequência criptograficamente verificável de eventos ao longo do tempo usando uma função de atraso verificável (VDF) de alta frequência. Essencialmente, isso significa que o PoH é como um relógio criptográfico que ajuda a rede a concordar com o tempo e a ordem dos eventos sem esperar por mensagens de outros nós. A saída sequencial de hashes de estado de blockchain historicamente comprovados fornece uma sequência verificável de eventos.

**Usuário:**Solana

Princípio do algoritmo: O Leader gera um carimbo de tempo para cada dado de assinatura (transação a ser comprovada), e classifica diretamente as transações, evitando assim o problema de classificação de tempo no PoS, e cada verificador de garantia pode verificar independentemente, o que reduz muito o problema de reordenamento de tempo durante a verificação, e só precisa verificar a prova da transação.

Vantagens: Taxas baixas, apenas uma fração de centavo por transação, velocidade de transação rápida, boa escalabilidade,

**Contras: **Preocupações de centralização, Solana atualmente tem menos de 1200 validadores validando transações em sua rede. Menos aplicativos descentralizados: Muitas vezes referido como o assassino Ethereum. De acordo com seu site, mais de 350 Dapps foram criados no Solana, em comparação com quase 3.000 no Ethereum, e é aqui que o Defi atualmente precisa de mais tempo de desenvolvimento e inovação.

6 Prova de Autoridade (PoA)

Introdução ao Algoritmo: Foi proposto em 2017 por Gavin Wood, cofundador da Ethereum (ETH) e da Parity Technologies. O mecanismo PoA não minera e não requer Token. Em uma rede blockchain baseada em PoA secundária, todas as transações e blocos são processados por validadores. O custo de manutenção da plataforma PoA é baixo, mas no PoA, o verificador da transação e blockchain de verificação deve ser uma pessoa que possa passar na revisão de confiabilidade. Portanto, os verificadores do PoA devem prestar muita atenção à sua própria reputação. A reputação é um ativo muito importante no PoA. Normalmente, os validadores divulgam suas identidades reais. Atualmente, a tecnologia blockchain formada por esse mecanismo de consenso é aplicada principalmente a cadeias de alianças e cadeias privadas com características óbvias da indústria.

Usuários: PoA, Ethereum Kovantestnet, xDai, VeChain e cadeia logística do Walmart.

Princípio do algoritmo:

a. Escolha um certificador autorizado;

b. Vários verificadores gerarão blocos para registrar transações e receber recompensas por bloco e taxas de transação. No PoA, o verificador é a chave para todo o mecanismo de consenso, o verificador obtém o direito de garantir a rede ao colocar essa identidade em troca de recompensas em bloco. Se o verificador agir de forma maliciosa ou for conivente com outros verificadores ao longo do processo, os atores maliciosos podem ser removidos e substituídos por meio do gerenciamento on-chain. As proteções legais antifraude existentes são aplicadas em toda a rede para proteger os participantes de ações maliciosas dos validadores.

vantagem:

a. Requer menos poder de computação, sem mineração, economia de energia e proteção ambiental;

b A verificação é rápida e suporta transações mais rápidas;

c. Os verificadores de toda a rede supervisionam uns aos outros e podem votar para se juntar aos verificadores experientes ou eliminar verificadores não qualificados a qualquer momento

d. Hard forks são protegidos por lei e cada Validador assina um acordo legal.

deficiência:

a. Identidade pública, privacidade e anonimato serão reduzidos

b. Os validadores são designados como nós de autoridade centralizada legalmente apoiados

**7 Prova de trabalho atrasada (**Prova de trabalho atrasada, dPoW)

** **

**Introdução ao algoritmo:**Antes de explicar o DPoW, você precisa explicar o que é PoB. PoB (Proof of Burn) é chamado de mecanismo de prova de queima, que é um compromisso de votar em quem tem a liderança da rede queimando os tokens com as próprias mãos. Quanto maior o número de tokens queimados, maior a probabilidade de atingir a liderança da rede.

No blockchain baseado em dPoW, os mineradores não são mais tokens recompensados pela mineração, mas "madeira" que pode ser queimada - madeira queimada. Os mineradores usam seu próprio poder de computação para finalmente provar sua carga de trabalho por meio do algoritmo de hash e, em seguida, obter a madeira correspondente, que não pode ser negociada. Quando a madeira tiver acumulado uma certa quantidade, você pode ir ao local da queima para queimar a madeira.

Após o cálculo por um conjunto de algoritmos, a pessoa que queimar mais madeira ou BP ou um grupo de BP pode obter o direito de produzir um bloco no próximo segmento do evento e obter uma recompensa (Token) após produzir um bloco com sucesso. Como pode haver muitas pessoas queimando madeira em um período de tempo, a probabilidade de geração de blocos no próximo período de tempo é determinada pela quantidade de madeira queimada por si mesmo. Quanto mais queimados, maior a probabilidade de obter o direito de produzir blocos no próximo período de tempo.

Isso pode alcançar um equilíbrio entre o poder de computação e os direitos de mineração. Mineradores e pools de mineração com grande poder de computação não são necessariamente obrigados a se tornar produtores de blocos. Os pequenos mineiros também têm uma nascente, desde que trabalhem muito e acumulem uma certa quantidade de madeira, também podem produzir blocos. A eficiência é garantida, todos participam, e a forma mais popular de participação garante o conceito de descentralização, evitando que organizações com poder de computação ou grandes detentores de moeda dominem a rede.

**Usuário:**Komodo

Princípio do algoritmo: Existem dois tipos de nós no sistema dPoW: nós notários e nós normais. Os 64 nós notários são eleitos pelas partes interessadas do blockchain dPoW para adicionar blocos autenticados do blockchain dPoW ao blockchain PoW anexado. Depois que um bloco é adicionado, o hash do bloco é adicionado à transação Bitcoin assinada pelos 33 nodos notariais e cria um registro de bloco dPow com hash para o blockchain Bitcoin. O registro foi autenticado pela maioria dos nodos notariais da rede.

Para evitar guerras de mineração entre nodos notariais e reduzir a eficiência da rede, a Komodo desenvolveu um método de mineração usando um mecanismo de votação, que possui dois modos de operação.

No modo "No Notário", todos os nós da rede têm suporte para participar da mineração, que é semelhante ao mecanismo de consenso PoW tradicional. No modo "Notaries Active", os notários da rede mineram usando uma taxa de dificuldade de rede significativamente reduzida. No modo "ativação do notário", cada notário pode usar sua dificuldade atual para minerar um bloco, enquanto outros nodos notários devem usar 10 vezes a dificuldade da mineração e todos os nodos normais usam 100 vezes a dificuldade dos nodos notários para minerar.

**Vantagens: **Economia de energia; maior segurança; pode agregar valor a outros blockchains ao fornecer indiretamente Bitcoin (ou qualquer outra cadeia de segurança), sem pagar o preço das transações de Bitcoin (ou qualquer outra cadeia de segurança).

Desvantagens: Apenas blockchains usando PoW ou PoS podem adotar este algoritmo de consenso; no modo "Notaries Active", os hashes de diferentes nós (notários ou nós normais) devem ser taxa calibrada, caso contrário a diferença entre as taxas de hash explodiria .

8 PoS autorizado (DPoS, prova de participação delegada)

Introdução ao algoritmo: O mecanismo DPoS, também conhecido como "Mecanismo de prova de autorização de compartilhamento" e "Mecanismo de confiança", foi proposto em abril de 2014 por Dan Larimer (BM), o principal desenvolvedor do Bitshares. De um certo ponto de vista, o DPOS é um pouco como um sistema parlamentar ou um sistema de congresso popular. Se um delegado não cumprir suas funções (não produzir um bloco quando for sua vez), ele será excluído e a rede elegerá um novo supernó para substituí-lo.

Para facilitar o entendimento, outro exemplo pode ser dado. Imagine uma empresa com um total de 1.000 funcionários, cada um dos quais detém quantidades variáveis de ações da empresa. De vez em quando, os funcionários podem votar nas 10 pessoas que mais reconhecem para liderar a empresa, e o direito de voto de cada funcionário é proporcional ao número de ações que ele possui. Depois que todos votarem, as 10 pessoas com a maior taxa de votação se tornarão os líderes da empresa.

Se um líder for incompetente ou fizer algo prejudicial à empresa, o funcionário pode revogar o voto do líder, de forma que seu índice de votação não entre no top 10, demitindo-se assim da gestão.

Usuários: BitShares, Steemit, EOS, Lisk, Ark.

**Prós: **Economia de energia; rápido; site de blog de alto tráfego Steemit usa. O tempo de bloqueio do EOS é de 0,5 segundos.

**Contras: **Ligeiramente centralizado; participantes com apostas altas podem votar para se tornar um validador (este tem sido um problema no EOS recentemente).

9 Tolerância Prática a Falhas Bizantinas (PBFT)

** **

Introdução ao algoritmo: No algoritmo PBFT, um nó será considerado o nó mestre, enquanto os outros nós serão nós de backup. Todos os nós do sistema se comunicarão entre si, e o objetivo final é que todos possam chegar a um consenso sobre o princípio da minoria obedecendo à maioria.

Processo de Consenso:

a. O cliente envia uma solicitação ao nó mestre para executar uma operação

b. O nó mestre transmite esta solicitação para cada nó de backup

c. Todos os nós executam a operação e retornam o resultado ao cliente

d. Quando o cliente recebe f+1 resultados idênticos de nós diferentes, o processo termina. f representa o valor máximo de nós mentirosos possíveis.

Usado por: HyperLedgerFabric, Stellar, Ripple, Dispatch

**Vantagens: ** Alta velocidade, escalável.

Contras: Comumente usado em redes privadas e com permissão.

10 Tolerância de falha bizantina delegada (dBFTTolerância de falha bizantina delegada, dBFT)

Introdução ao algoritmo: a comunidade blockchain chinesa NEO (anteriormente conhecida como Xiaoyi) propôs um algoritmo aprimorado de tolerância a falhas bizantina dBFT. Esse algoritmo se baseia na ideia de design de PoS com base em PBFT. O contador e, em seguida, os contadores alcançam um consenso através do algoritmo tolerante a falhas bizantino. Esse algoritmo melhora a falta de consistência final de PoW e PoS, tornando o blockchain adequado para cenários financeiros.

Também para resolver o Problema dos Generais Bizantinos, o mecanismo "Authorized Byzantine Fault Tolerance" é um algoritmo de consenso que garante tolerância a falhas implementado dentro da blockchain NEO. Neste mecanismo, existem dois participantes, um é o "nó de escrituração" para escrituração profissional e o outro é um usuário comum no sistema.

Os usuários comuns votam para determinar os nós de contabilidade com base na proporção de suas participações. Quando um consenso precisa ser aprovado, um porta-voz é selecionado aleatoriamente desses nós de contabilidade para elaborar um plano e, em seguida, outros nós de contabilidade seguem o Bizantino tolerante a falhas algoritmo. Ou seja, o princípio da minoria obedecendo à maioria faz uma declaração. Se mais de 66% dos nós concordam com o plano de alto-falante, o consenso é alcançado, caso contrário, o alto-falante é reeleito e o processo de votação é repetido.

Como todos os delegados podem verificar as propostas de bloqueio, fica fácil entender se os dados enviados pelo palestrante são válidos ou inválidos. Portanto, se o palestrante for desonesto e enviar uma proposta inválida para dois terços dos delegados, os blocos não corresponderão e os donos dos nós não os validarão. Um consenso é alcançado com dois terços dos votos e um novo orador é eleito.

**Usuário:**Neo

Processo de Consenso:

a. Qualquer pessoa pode ser um representante, desde que atenda aos requisitos. Todos os detentores de token NEO podem votar, os delegados não são anônimos e 1.000 GAS são necessários para se tornar um proprietário de nó.

b. Um orador é escolhido aleatoriamente entre os delegados.

c. O locutor constrói um novo bloco a partir das transações que aguardam verificação. O Presidente então envia a proposta aos representantes eleitos. Eles devem rastrear todas as transações e registrá-las na rede.

d. Os delegados são livres para compartilhar e comparar as propostas que receberam para testar a precisão dos dados, bem como a honestidade dos palestrantes. Se mais de dois terços dos delegados chegarem a um consenso e o validarem, o bloco é adicionado à blockchain.

**Vantagens: **Rápido (leva de 15 a 20 segundos para gerar um bloco); grande taxa de transferência de transação, sem necessidade de consumir energia, escalável e sem bifurcações.

Desvantagens: Não há anonimato e é necessária uma identidade real para operar para ser eleito. Todo mundo está competindo para ser a cadeia raiz. Pode haver várias cadeias de raízes.

11. Tolerância Prática de Falhas Bizantinas de Rotação (RBPFT)

Introdução ao algoritmo: Os princípios de dBft e RPBFT são semelhantes ao PBFT, exceto que nem todos os nós participam do consenso, mas os nós são divididos em dois tipos:

a. Nó de consenso: um nó que executa o processo de consenso PBFT e tem autoridade para gerar blocos por sua vez

b. Nó de verificação: não execute o processo de consenso, verifique se o nó de consenso é legal, verifique o bloco, após várias rodadas de consenso, ele mudará para um nó de consenso

Na tolerância a falhas bizantinas round-robin, os nós de consenso são substituídos por nós de verificação por sua vez.

**Caso de Uso:**Fisco-BCOS

**Vantagens: **A velocidade de transmissão é mais rápida que a fofoca e não há pacote de mensagem redundante

Divida e conquiste, a largura de banda de saída de cada nó é O(1), forte escalabilidade

Desvantagens: o nó intermediário é um único ponto e requer estratégias adicionais de tolerância a falhas

12. AptosBFT

** **

Introdução ao algoritmo: Também é um algoritmo derivado do PBFT. O algoritmo de consenso nomeado após Aptos é baseado no HotStuff, que é baseado no PBFT. As vantagens desse modelo de algoritmo são como cebolas e bonecas russas, que precisam ser descascadas camada por camada. Cada nó se comunica apenas com o líder, em vez de enviar mensagens para o líder e todos os outros "generais". O líder transmite uma mensagem (bloco proposto) para votação; cada nó envia seu voto para o líder que coletou a mensagem.

Caso de uso: Aptos

Finalmente, um resumo desta parte é anexado:

**Além disso, existem alguns algoritmos de consenso incomuns. **

Em 2015, o professor David Mazieres, diretor científico da Stellar.org, propôs o protocolo de consenso Stellar (SCP). O SCP evoluiu com base no Acordo Federal Bizantino e no Acordo Ripple, e é o primeiro mecanismo de consenso comprovadamente seguro, com quatro propriedades-chave de controle descentralizado, baixa latência, confiança flexível e segurança assintótica.

No mesmo ano, o projeto Sawtooth Lake da Hyperledger combinou consenso de Ripple e SCP e propôs um algoritmo de consenso de votação de quorum para lidar com cenários de aplicativos que exigem finalização de transação instantânea.

Em 2016, o vencedor do Turing Award e professor do MIT, Sivio Micali, propôs um rápido algoritmo de consenso tolerante a falhas bizantino chamado AlgoRand. Esse algoritmo usa tecnologia criptográfica de loteria para selecionar o verificador e o líder do processo de consenso e, por meio de seu BA projetado Protocolo tolerante atinge um consenso em novos blocos. AlgoRand requer muito pouca computação e muito poucos forks, e é considerado uma tecnologia de consenso de livro distribuído verdadeiramente democrática e eficiente.

Em 2017, a Cornell University propôs um novo algoritmo chamado Sleepy Consensus (consenso adormecido) Esse consenso visa o fato de que a maioria dos nós de consenso de grande escala no ambiente da Internet pode estar offline e apenas alguns nós estão online A realidade de participar do processo de consenso. Este estudo prova que o algoritmo de consenso tradicional não pode garantir a segurança do consenso neste ambiente, mas usando o algoritmo de consenso dormente, desde que o número de nós honestos online exceda o número de nós defeituosos, a segurança e a robustez podem ser garantidas.

##04 Resumo

Se você pular fora da perspectiva do desenvolvedor e incluir mais formas de pensar que combinem política e economia, pode haver mais algoritmos de consenso, como combinar métodos de consenso semelhantes ao conceito de PPP, que podem não apenas atingir a natureza de punição por ataques maliciosos partes, mas também pode atingir o objetivo de economizar energia de computação com mais eficiência.

Em suma, o mecanismo de consenso é o núcleo da tecnologia blockchain. Ele pode resolver o problema de confiança no sistema distribuído, garantir a consistência e a segurança dos dados entre os nós e evitar o ataque e a adulteração de nós maliciosos, garantindo assim o bloqueio. confiabilidade do sistema de correntes. Ao mesmo tempo, o mecanismo de consenso também pode resolver o problema de "gastos duplos" e melhorar o rendimento e a velocidade de processamento do sistema blockchain. Mas vários algoritmos de consenso não são absolutamente seguros, eficientes e descentralizados.

Não existe o melhor algoritmo, apenas o algoritmo que melhor se adapta a você. A escolha do algoritmo de consenso está altamente relacionada ao cenário da aplicação. Ambientes confiáveis usam Paxos ou RAFT, alianças permitidas podem usar PBFT e cadeias não permitidas podem usar PoW, PoS, consenso Ripple, etc. **O melhor mecanismo de consenso é sempre aquele que atende às necessidades do usuário. **

Referência:

  1. Quais são os mecanismos de consenso em blockchain e criptomoeda?
  1. A ameaça de ataque de flor dupla ao blockchain
  1. Leia 11 algoritmos de consenso convencionais em um artigo e entenda completamente o que diabos são PoS, PoW, dPoW, PBFT e dBFT?

4Entendendo o gasto duplo e como prevenir ataques

5Introdução às Aplicações dos Mecanismos de Consenso Bizantino

6AptosBFT: tudo o que você precisa saber sobre o consenso BFT em Aptos

Ver original
O conteúdo é apenas para referência, não uma solicitação ou oferta. Nenhum aconselhamento fiscal, de investimento ou jurídico é fornecido. Consulte a isenção de responsabilidade para obter mais informações sobre riscos.
  • Recompensa
  • Comentário
  • Compartilhar
Comentário
0/400
Sem comentários
  • Marcar
Faça trade de criptomoedas em qualquer lugar e a qualquer hora
qrCode
Escaneie o código para baixar o app da Gate.io
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)