ConsensusPedia: Uma Enciclopédia de 30 Algoritmos de Consenso

Uma lista completa de todos os algoritmos de consenso.

Foto por James LW em Unsplash

Algoritmos de consenso são a base de todos os blockchains / DAGs. Eles são a parte mais importante das plataformas blockchain / DAG.

Sem eles (algoritmos de consenso), ficaremos com apenas um banco de dados mudo e imutável.

Aqui listamos todos os principais algoritmos de consenso e avaliaremos seus prós e contras. Se você encontrar algo faltando ou errado aqui, atire nos comentários. Além disso, o artigo será atualizado regularmente enquanto estudo mais sobre esses algoritmos e seus impactos econômicos.

PS Este artigo pressupõe que você tenha um entendimento sobre o que é um algoritmo de consenso e seu significado em blockchains.

Aqui está uma lista de 30 algoritmos de consenso.

1. Prova de Trabalho

Prova de Trabalho

Prós:

  • Ele foi testado na natureza desde 2009 e permanece estável hoje também.

Contras:

  • É lento.
  • Usa muita energia, não é bom para o ambiente.
  • É suscetível a economias de escala .

Usado por: Bitcoin , Ethereum , Litecoin , Dogecoin etc.

Tipo: Consenso competitivo.

Explicação: É o primeiro algoritmo de consenso (proposto por Satoshi Nakamoto apresentado em seu artigo ) a criar consenso distribuído sem confiança e resolve o problema do gasto duplo. O POW não é uma idéia nova, mas a forma como Satoshi combinou este e outros conceitos existentes – assinaturas criptográficas, cadeias de merkle e redes P2P – em um sistema viável de consenso distribuído, do qual a criptomoeda é a primeira e básica aplicação, foi bastante inovadora.

A maneira como funciona é que os participantes do blockchain (chamados de mineiros ) têm que resolver um problema computacional complexo, mas inútil , para adicionar um bloco de transações no blockchain.

Basicamente, isso é feito para garantir que os mineiros estão colocando algum dinheiro / recursos (máquinas de mineração) para fazer o trabalho, o que mostra que eles não prejudicarão o sistema blockchain, pois prejudicar o sistema resultará na perda de seu investimento; assim prejudicando-se.

A dificuldade do problema pode ser alterada em tempo de execução, para garantir o tempo de bloqueio constante . Às vezes, há uma situação em que mais de um mineiro resolve o problema simultaneamente. Nesse caso, os mineiros escolhem uma das correntes e a corrente mais longa é considerada a vencedora. Portanto, supondo que a maioria dos mineiros esteja trabalhando na mesma cadeia, aquele que crescerá mais rápido será o mais longo e mais confiável. Portanto, o Bitcoin é seguro, desde que mais de 50% do trabalho que está sendo empregado pelos mineiros seja honesto.

Leitura adicional: prova de trabalho

2. Prova de Participação

Prós:

Contras:

  • problema nada em jogo

Usado por: Decred , Ethereum (em breve) , Peercoin , Nxt .

Tipo: Consenso competitivo.

Explicação: A prova de aposta foi criada como alternativa à prova de trabalho (PoW), para resolver problemas inerentes a esta última. Aqui, em vez de usar mineração, você precisa ter alguma participação (moedas) no sistema. Então, se você possui 10% da aposta (moedas), então sua probabilidade de minerar o próximo bloco será de 10%.

A mineração requer uma grande capacidade computacional para executar diferentes cálculos criptográficos para desbloquear os desafios computacionais. O poder de computação se traduz em uma alta quantidade de eletricidade e energia necessária para a prova de trabalho. Em 2015, estimou-se que uma transação com Bitcoin exigia a quantidade de eletricidade necessária para alimentar 1,57 residências americanas por dia. Então, para economizar o desperdício de energia, o PoS foi introduzido.

Em PoS, um dólar é um dólar . Por exemplo, considerar 10.000 mineiros, cada um gastando US $ 1 / min (US $ 87,6 milhões / ano) pode ter menos poder de hashing do que um pool de mineração que gasta US $ 10.000 / min (apesar de também gastar US $ 87,6 milhões / ano). Mas no caso do PoS, você não pode usá-lo de uma só vez. Aqui um dólar é um dólar. Assim, não é suscetível a economias de escala .

Além disso, atacar um sistema PoS é mais caro do que atacar um sistema PoW. Citando Vlad Zamfir

o perfil de custo de um ataque repetido de 51% no PoS é como se “seu farm ASIC estivesse em chamas” a cada rodada adicional.

seu farm ASIC queimou

Isso significa que você perde sua aposta toda vez que faz um ataque a um sistema PoS, enquanto no PoW você não perde seu equipamento de mineração ou suas moedas se você atacar o sistema; em vez disso, você apenas faz com que (atacando um sistema PoW) seja difícil de executar.

Mas uma questão que pode surgir é o problema do “nada em jogo” , em que os geradores de blocos não têm nada a perder ao votar em várias histórias de blockchain (garfos), evitando assim que o consenso seja alcançado.

Em PoS você pode apostar seus ativos em ambos os lados da cadeia (problema “nada em jogo” ) enquanto em PoW você não pode minerar em ambos os lados ( pois é muito difícil ).

Porque ao contrário dos sistemas de prova de trabalho (onde você precisa fazer muita computação para estender uma cadeia), há pouco custo para trabalhar em várias cadeias. Muitos projetos tentaram resolver esse problema de maneiras diferentes (mencionados em outras leituras). Por exemplo Como dito acima, uma das soluções é punir os bad validators.

Leitura adicional: prova de aposta

3. Prova de Trabalho Prolongada

Prós:

  • Energia eficiente
  • Maior segurança
  • pode agregar valor a outros blockchains indiretamente fornecendo segurança Bitcoin (ou qualquer cadeia segura) sem pagar o custo de transações Bitcoin (ou qualquer cadeia segura)

Contras:

  • Apenas blockchains usando PoW ou PoS podem fazer parte deste consenso.
  • No modo “Notários ativos”, o hashrate para diferentes nós (notários e nós normais) deve ser calibrado, caso contrário, a diferença entre os hashates pode explodir ( veja abaixo mais explicações )

Usado por: Komodo

Tipo: consenso colaborativo

Explicação: A Prova de Trabalho Adiada (dPoW) é um método de consenso híbrido que permite que um blockchain aproveite a segurança fornecida pelo poder de hashing de um blockchain secundário. Isso é obtido por meio de um grupo de nós notários que adicionam dados do primeiro blockchain ao segundo, o que exigiria que os blockchains fossem comprometidos para minar a segurança do primeiro. O primeiro a usar este método de consenso é o Komodo , que é anexado ao blockchain do Bitcoin.

dPoW

A blockchain que depende do dPoW pode usar os métodos de consenso Proof of Work (PoW) ou Prova de Estaca (PoS) para funcionar; e pode se ligar a qualquer blockchain PoW desejado. No entanto, a taxa de hash do Bitcoin atualmente oferece o maior nível de segurança para que os blockchains sejam protegidos pelo dPoW. A ilustração abaixo mostra a relação de registros individuais com o blockchain primário e sua blockchain PoW anexada:

fonte

Existem dois tipos de nós dentro de um sistema dPoW: nós notários e nós normais. Os 64 nós notários são eleitos pelas partes interessadas do blockchain do dPoW para adicionar (notarize) blocos confirmados do blockchain dPoW no blockchain do PoW anexado. Uma vez que um bloco tenha sido completado, seu hash é adicionado a uma transação Bitcoin assinada por 33 dos nós notários, criando um registro de hashes de bloqueio dPoW no blockchain Bitcoin que foram reconhecidos por notário pela maioria dos notários da rede.

Para evitar guerras de mineração entre nós notários, o que reduziria a eficiência da rede, a Komodo desenvolveu um método de mineração circular que opera em dois modos. O modo “Sem Notário” permite que todos os nós da rede bloqueiem minas, semelhante a um mecanismo tradicional de consenso PoW; no entanto, no modo "Notários ativos", os notários da rede farão minas com uma taxa de dificuldade de rede significativamente reduzida. Dentro deste esquema, cada notário tem permissão para minar um bloco em sua taxa de dificuldade atual, enquanto os outros nós notários devem minerar 10 vezes mais e todos os nós normais sempre serão meus a 100 vezes a taxa de dificuldade dos nós notários.

Mas isso causa alguns problemas. Como mencionado em uma das minhas conversas com o fundador do Komodo, isso pode levar a grandes diferenças entre o hashate dos notários e os mineiros normais:

captura de tela da nossa conversa sobre discórdia

O sistema dPoW é projetado para permitir que o blockchain continue funcionando sem os nós notários. Em tal situação, o blockchain dPoW pode continuar operando com base em seu método de consenso inicial; no entanto, ele não teria mais a segurança adicional do blockchain anexado.

fonte

A Prova de Trabalho Adiada, então, permite maior segurança e uso reduzido de energia para qualquer blockchain que use este método de consenso. Por exemplo, como o Komodo usa o algoritmo de hash Equihash para impedir a mineração com ASICs e se baseia em um método round-robin de mineração para nós notários, os incentivos são estruturados para reduzir a possibilidade de que a competição entre nós levará ao uso excessivo de energia ou computação poder.

Além disso, um blockchain dPoW como o Komodo pode agregar valor a outros blockchains indiretamente fornecendo segurança Bitcoin sem pagar o custo das transações Bitcoin: Um terceiro blockchain usando dPoW pode se conectar ao Komodo, que é posteriormente anexado ao Bitcoin. Dessa forma, os blockchains dPoW podem se beneficiar da alta taxa de hash do Bitcoin sem precisar estar diretamente conectados ao blockchain do Bitcoin.

Finalmente, as funções separadas de nós notários e nós normais dentro do sistema garantem que o mecanismo de consenso inicial continue a operar no caso de os nós notários falharem. Essa interdependência cria um incentivo para outras redes suportarem a manutenção contínua da rede Bitcoin sem depender inteiramente de sua funcionalidade direta.

Leitura adicional: Delegated-Proof of Work

4. Prova de Estaca Delegada

Apenas um meme sobre apostas.

Prós:

  • Energia eficiente.
  • Rápido. Steemit , um site de blogs de alto tráfego usa. EOS tem um tempo de bloqueio de 0,5 seg.

Contras:

  • Um pouco centralizado.
  • Participantes com apostas altas podem votar em si mesmos para se tornarem um validador. Algo que é visto recentemente na EOS.

Usado por: BitShares , Steemit , EOS , Lisk , Ark

Tipo: consenso colaborativo

Explicação: No DPoS, as partes interessadas no sistema podem eleger líderes (testemunhas) que votarão em seu nome. Isso faz com que seja mais rápido que o PoS normal.

Por exemplo no caso da EOS, 21 testemunhas são eleitas de cada vez e um conjunto de nós (testemunhas em potencial) é mantido em standby para que, se alguém dos nós testemunha morrer ou fizer alguma atividade maliciosa, possa ser substituído por um novo nó imediatamente . As testemunhas recebem uma taxa pela produção de blocos. A taxa é definida pelas partes interessadas.

Normalmente, todos os nós produzem blocos, um de cada vez, de maneira round-robin . Isso impede que um nó publique bloqueios consecutivos, impedindo que ele execute ataques de gasto duplo. Se uma testemunha não produzir um bloco no intervalo de tempo, esse intervalo de tempo será ignorado e a próxima testemunha produzirá o próximo bloco. Se uma testemunha errar continuamente seus bloqueios ou publicar transações inválidas, os stakers o votarão e o substituirão por uma testemunha melhor.

No DPoS, os mineiros podem colaborar para criar blocos em vez de competir como no PoW e no PoS. Centralizando parcialmente a criação de blocos, o DPoS é capaz de executar ordens de magnitude mais rapidamente do que a maioria dos outros algoritmos de consenso. O EOS (que usa dPoS) é o primeiro blockchain a atingir um tempo de bloqueio de 0,5 segundo! .

É rápido.

EOS como Flash

Leitura adicional: Delegated-proof of Stake

5. Prova de Autoridade

Prova de autoridade

Prós:

  • Energia eficiente.
  • Rápido.

Contras:

  • Um pouco centralizado. Pode ser usado em blockhains públicos, mas geralmente usado em blockchains privados e autorizados.

Usado por: POA.Network , Ethereum Kovan testnet , VeChain

Tipo: consenso colaborativo

Explicação: Em redes baseadas em PoA, transações e blocos são validados por contas aprovadas, conhecidas como validadores. Os validadores executam software permitindo que eles coloquem transações em blocos. O processo é automatizado e não requer que os validadores monitorem constantemente seus computadores. No entanto, ele exige que a manutenção do computador (o nó de autoridade) não seja comprometida.

As três principais condições que devem ser preenchidas para um validador a ser estabelecido são:

  1. A identidade deve ser formalmente verificada na cadeia , com a possibilidade de cruzar as informações em um domínio disponível publicamente
  2. A elegibilidade deve ser difícil de obter, para fazer o direito de validar os blocos ganhos e valorizados. (Exemplo: validadores potenciais são necessários para obter licença de notário público)
  3. Deve haver uniformidade completa nas verificações e procedimentos para estabelecer uma autoridade

Com o PoA, os indivíduos ganham o direito de se tornarem validadores, portanto, há um incentivo para manter a posição que eles obtiveram. Ao atribuir uma reputação à identidade, os validadores são incentivados a manter o processo de transação, pois não desejam ter suas identidades associadas a uma reputação negativa, perdendo, assim, a função de validador que se acumula com muito esforço.

Leitura adicional: prova de autoridade

6. Comprovante de Peso

Prova de Peso

Prós:

  • Energia eficiente.
  • Altamente personalizável e escalável.

Contras:

  • Incentivação pode ser difícil.

Usado por: Algorand

Tipo: consenso competitivo

Explanation: Proof-of-Weight é uma classificação ampla de algoritmos de consenso baseados no modelo de consenso do Algorand . A idéia geral é que onde no PoS, sua porcentagem de tokens pertencentes à rede representa sua probabilidade de “descobrir” o próximo bloco, em um sistema PoWeight, algum outro valor relativamente ponderado é usado. Algumas de suas implementações são Prova de Reputação e Prova de Espaço .

Leitura adicional: prova de peso

7. Prova de Reputação

Prova de Reputação

Prós:

  • Bom para redes privadas e permissas.

Contras:

  • Usado somente em blockchains privados e autorizados.

Usado por: GoChain

Tipo: consenso colaborativo

Explicação: Semelhante à Prova de Autoridade. Como mencionado por GoChain :

O modelo de consenso de Prova de Reputação (PoR) depende da reputação dos participantes para manter a rede segura. Um participante (um signatário do bloqueio) deve ter uma reputação importante o suficiente para enfrentar consequências financeiras e de marca significativas se tentasse fraudar o sistema. Esse é um conceito relativo, já que quase todas as empresas sofreriam significativamente se fossem flagradas tentando ser enganosas, mas empresas maiores normalmente têm mais a perder e, portanto, são escolhidas em detrimento de empresas com menos para usar (empresas menores).

Uma vez que a empresa prove a reputação e passe na verificação, ela pode ser votada na rede como um nó autoritário e, nesse ponto, ela opera como uma rede de Provas de Autoridade (PoA), onde apenas nós autorizados podem assinar e validar blocos.

Você pode encontrar mais sobre Prova de Reputação em Leitura Adicional.

Leitura Adicional: Prova de Reputação

8. Prova do Tempo Decorrido

Prova do Tempo Decorrido

Prós:

  • Baixo custo de participação.Assim, mais pessoas podem participar facilmente, assim descentralizadas.
  • É simples para todos os participantes verificar se o líder foi legitimamente selecionado.
  • O custo de controlar o processo de eleição do líder é proporcional ao valor ganho com ele.

Contras:

  • Mesmo sendo barato, você precisa usar hardware especializado. Assim, não pode ser adotado em massa.
  • Não é adequado para blockchains públicos.

Usado por: HyperLedger Sawtooth

Tipo: consenso competitivo

Explicação: O PoET é um algoritmo de mecanismo de consenso que é frequentemente usado nas redes de blockchain com permissão para decidir os direitos de mineração ou os vencedores de bloco na rede. As redes blockchain com permissão são aquelas que exigem que qualquer participante potencial se identifique antes de poder participar. Baseado no princípio de um sistema de loteria justa, onde cada nó é igualmente provável que seja um vencedor, o mecanismo PoET é baseado em espalhar as chances de uma vitória justa através do maior número possível de participantes da rede.

O funcionamento do algoritmo PoET é o seguinte. Cada nó participante na rede é obrigado a esperar por um período de tempo escolhido aleatoriamente, e o primeiro a completar o tempo de espera designado ganha o novo bloco. Cada nó na rede blockchain gera um tempo de espera aleatório e entra em suspensão por esse período especificado. Aquele a acordar primeiro – isto é, aquele com o menor tempo de espera – acorda e comete um novo bloco para o blockchain, transmitindo as informações necessárias para a rede de mesmo nível. O mesmo processo então se repete para a descoberta do próximo bloco. .

O mecanismo de consenso da rede PoET precisa garantir dois fatores importantes. Primeiro, que os nós participantes realmente selecionam um tempo que é de fato aleatório e não uma duração menor escolhida propositadamente pelos participantes para ganhar, e dois, o vencedor realmente completou o tempo de espera.

O conceito PoET foi inventado no início de 2016 pela Intel, a famosa gigante da fabricação de chips. Ele oferece uma ferramenta de alta tecnologia pronta para resolver o problema de computação da "eleição aleatória de líderes".

O mecanismo arraigado permite que os aplicativos executem código confiável em um ambiente protegido, e isso garante que ambos os requisitos – para selecionar aleatoriamente o tempo de espera para todos os nós participantes e a conclusão genuína do tempo de espera pelo participante vencedor – sejam atendidos.

O mecanismo de execução de código confiável em um ambiente seguro também cuida de muitas outras necessidades da rede. Ele garante que o código confiável seja executado no ambiente seguro e não é alterável por nenhum participante externo. Também garante que os resultados sejam verificáveis ??por participantes e entidades externas, aumentando assim a transparência do consenso da rede.

O PoET controla o custo do processo de consenso e o mantém ágil para que o custo permaneça proporcional ao valor derivado do processo , um requisito fundamental para que a economia da criptomoeda continue florescendo.

Leitura Adicional: Prova do Tempo Decorrido

9. Prova de capacidade também conhecida como prova de espaço

Prova de Espaço

Prós:

  • Semelhante ao PoW, mas usa espaço em vez de computação. Assim, muito amiga do ambiente.
  • Pode ser usado para detecção de malware, determinando se o cache L1 de um processador está vazio (por exemplo, tem espaço suficiente para avaliar a rotina PoSpace sem erros de cache) ou contém uma rotina que resistiu a ser despejada.
  • Pode ser usado para medidas anti-spam e prevenção de ataques de negação de serviço.

Contras:

  • Incentivação pode ser um problema.

Usado por: Burstcoin , Chia , SpaceMint

Tipo: Consenso Colaborativo

Explicação: Prova de espaço ( PoSpace ), também chamada de prova de capacidade ( PoC ), é um meio de mostrar que alguém tem interesse legítimo em um serviço (como enviar um email) alocando um valor não trivial de memória ou espaço em disco para resolver um desafio apresentado pelo provedor de serviços. O conceito foi formulado por Dziembowski et al. em 2015. (O artigo de Ateniese et al ., embora também intitulado Proof-of-space, é, na verdade, um protocolo de prova de trabalho difícil de memorizar.)

As provas de espaço são muito semelhantes às provas de trabalho , exceto que, em vez de computação, o armazenamento é usado. A prova de espaço está relacionada, mas também consideravelmente diferente, de funções de memória difícil e provas de recuperabilidade.

Uma prova de espaço é um dado que um provador envia a um verificador para provar que o provador reservou uma certa quantidade de espaço. Por praticidade, o processo de verificação precisa ser eficiente, ou seja, consome uma pequena quantidade de espaço e tempo. Para a solidez, deve ser difícil para o avaliador passar a verificação se ela não reservar a quantidade de espaço reivindicada. Uma maneira de implementar o PoSpace é usando gráficos de difícil uso. O verificador pede ao provador para construir uma marcação de um gráfico difícil de seixo. O provador se compromete com a rotulagem. O verificador então pede ao provador para abrir vários locais aleatórios no compromisso.

As provas de espaço são vistas como uma alternativa mais justa e ecológica, devido à natureza geral do armazenamento e ao menor custo de energia exigido pelo armazenamento.

Leitura Adicional: Prova de Espaço

10. Prova de História

Prova de História

Usado por: Solana

Explicação: A ideia básica aqui é que, em vez de confiar no registro de data e hora da transação, você poderia provar que a transação ocorreu algum tempo antes e depois de um evento.

Quando você tira uma foto com a capa do New York Times, está criando uma prova de que sua fotografia foi tirada depois que o jornal foi publicado, ou se você tem alguma maneira de influenciar o que o New York Times publica. Com Prova de Histórico, você pode criar um registro histórico que comprove que um evento ocorreu em um momento específico no tempo.

Prova de carimbos de data e hora da história

A Prova de Histórico é uma função de atraso verificável de alta frequência. Uma Função de Atraso Verificável requer um número específico de etapas sequenciais para avaliar, mas produz uma saída única que pode ser verificada de forma eficiente e pública.

Essa implementação específica usa um hash sequencial resistente à pré-imagem que é executado continuamente sobre si mesmo com a saída anterior usada como a próxima entrada. Periodicamente, a contagem e a saída atual são registradas.

Para uma função hash SHA256, é impossível paralelizar este processo sem um ataque de força bruta usando 2¹²? núcleos.

Podemos então ter certeza de que o tempo real passou entre cada contador quando foi gerado, e que a ordem gravada de cada contador é a mesma que foi em tempo real.

Você pode encontrar todos os detalhes em Further Reading.

Leitura Adicional: Prova de História

11. Prova da Velocidade da Estaca

Usado por: Reddcoin

Explicação: A proposta de Velocidade de Estaca (PoSV) é proposta como alternativa à Prova de Trabalho (PoW) e Prova de Estaca (PoS) para proteger a rede peer-to-peer e confirmar transações da Reddcoin, uma criptografia criada especificamente para facilitar interações na era digital. O PoSV é projetado para estimular tanto a propriedade (Stake) quanto a atividade (Velocity), que correspondem diretamente às duas principais funções da Reddcoin como uma moeda real: armazenamento de valor e meio de troca. O Reddcoin também pode funcionar como unidade de conta num contexto social heterogêneo.

Descrição detalhada pode ser encontrada em Further Reading.

Leitura Adicional: Prova da Velocidade de Estaca

12. Prova de Importância

Prova de Importância

Prós:

  • Melhor que o PoS na avaliação da estaca.

Usado por: NEM

Explicação: A rede de consenso do NEM depende não somente do número de moedas, mas da possibilidade de que a ação do sistema produtivo deva ser remunerada. As chances de apostar em um bloco são um componente de vários fatores, incluindo a notoriedade (controlada por uma estrutura projetada diferente), o saldo e o número de transações feitas para e a partir dessa posição. Isso é denominado como cálculo de importância. Isso dá uma imagem mais abrangente de um membro do sistema "útil".

Para ser elegível para o cálculo de importância , os usuários precisam ter pelo menos 10.000 XEM em seu saldo. Considerando-se que há pouco menos de 9 bilhões de XEM em circulação, atingir esse objetivo não é excessivamente caro por qualquer meio. É possível que esse limite de 10.000 XEM seja alterado no futuro, mas, por enquanto, ainda é o mesmo. Mas o cálculo da importância é feito utilizando um algoritmo específico, não apenas por probabilidade e tamanho de suas ações.

Também é importante notar que a prova de importância do NEM é resistente a manipulações arbitrárias. Ataques Sybil e ataques de loop são mitigados usando os mecanismos subjacentes do consenso. É igualmente importante lembrar que a prova de importância não é prova de aposta , embora seja fácil traçar paralelos entre os dois.

Leitura adicional: prova de importância

13. Prova de Queimadura

Prova de Queimadura

Usado por: Slimcoin , TGCoin (Third Generation Coin)

Explicação: Com a prova de queimadura, em vez de despejar dinheiro em equipamentos caros, você "queima" moedas enviando-as para um endereço onde elas são irrecuperáveis. Ao cometer suas moedas para nunca-nunca terra, você ganha um privilégio vitalício para minar no sistema com base em um processo de seleção aleatória.

Dependendo de como a prova de queima é implementada, os mineradores podem queimar a moeda nativa ou a moeda de uma cadeia alternativa, como bitcoin. Quanto mais moedas você queimar, maior a chance de ser selecionado para minerar o próximo bloco.

Com o tempo, sua participação no sistema decai, então, eventualmente, você vai querer queimar mais moedas para aumentar suas chances de ser selecionado na loteria. (Isso imita o processo de mineração do bitcoin, onde você tem que investir continuamente em equipamentos de computação mais modernos para manter o poder de hashing.)

Embora a prova de queimadura seja uma alternativa interessante à prova de trabalho, o protocolo ainda desperdiça recursos desnecessariamente. Outra crítica é que o poder de mineração simplesmente vai para aqueles que estão dispostos a queimar mais dinheiro.

14. Prova de identidade

Prova de identidade

Explicação: A Prova de identidade (PoI) é uma evidência criptográfica (fragmento de dados) que informa que qualquer usuário conhece uma chave privada que se compara a uma identidade autorizada e criptograficamente anexada a uma transação específica. Cada indivíduo de algum grupo pode criar um PoF (apenas um bloco de dados) e apresentá-lo a qualquer pessoa, por exemplo, ao nó de processamento.

Leitura adicional: prova de identidade

15. Prova de Atividade

Usado por: Decred

Explicação: Para evitar a hiperinflação (o que acontece quando muita moeda inunda o sistema), o Bitcoin só produzirá 21 milhões de bitcoins. Isso significa que, em algum momento, o subsídio de recompensa do bloco de bitcoin terminará e as mineradoras de bitcoin receberão apenas as taxas de transação.

Alguns especularam que isso pode causar problemas de segurança resultantes de uma " tragédia dos comuns ", em que as pessoas agem com interesse próprio e estragam o sistema. Então, a prova de atividade foi criada como uma estrutura alternativa de incentivo para o bitcoin. A prova de atividade é uma abordagem híbrida que combina prova de trabalho e prova de participação.

Em uma prova de atividade, a mineração começa em uma tradicional prova de moda, com mineiros correndo para resolver um quebra-cabeça criptográfico. Dependendo da implementação, os blocos extraídos não contêm nenhuma transação (são mais parecidos com modelos), portanto, o bloco vencedor conterá apenas um cabeçalho e o endereço de recompensa do mineiro.

Neste ponto, o sistema muda para prova de aposta. Com base nas informações do cabeçalho, um grupo aleatório de validadores é escolhido para assinar o novo bloco. Quanto mais moedas no sistema um validador possui, maior a probabilidade de ele ser escolhido. O modelo se torna um bloco completo assim que todos os validadores o assinarem.

Se alguns dos validadores selecionados não estiverem disponíveis para concluir o bloqueio, o próximo bloco vencedor será selecionado, um novo grupo de validadores será escolhido e assim por diante, até que um bloco receba a quantidade correta de assinaturas. As taxas são divididas entre o mineiro e os validadores que assinaram o bloqueio.

As críticas à prova de atividade são as mesmas que as provas de trabalho (é necessária muita energia para os blocos da mina) e prova de participação (não há nada que impeça um validador de assinar duas vezes).

16. Prova do Tempo

Usado por: Chronologic

Explicação: A prova de tempo é introduzida pela Chronologic. Eles estão planejando construir um blockchain separado. Conforme indicado pelo desenvolvedor líder:

O problema aqui é que o maior número que pode ser armazenado em uma variável em solidez é da ordem de magnitude 1076. Isso está dificultando o trabalho com o tempo e a geração de tokens.

Leitura adicional: prova de tempo

17. Prova de Existência

Prova de Existência

Usado por: Poex.io , HeroNode , DRAGONchain

Explicação: A Prova de Existência é um serviço online que verifica a existência de arquivos de computador a partir de uma hora específica por meio de transações com registro de data e hora no blockchain do bitcoin .

Foi lançado em 2013 como um projeto de código aberto . Foi desenvolvido por Manuel Araoz e Esteban Ordano.

Casos de Uso:

  • Contrato de assinatura digital sem revelar o conteúdo real.
  • Demonstrar a propriedade dos dados sem revelar dados reais.
  • Carimbo de tempo do documento.
  • Provando a propriedade
  • Verificando a integridade do documento

Leitura Adicional: Prova de Existência

18. Ouroboros

Usado por: Cardano

Explicação: Uma variação de prova de aposta (com garantias de segurança rigorosas) usada por Cardano.

Leitura adicional: Ouroboros

19. Prova de Recuperabilidade

Usado por: Microsoft

Explicação: Uma prova de Recuperabilidade (POR) é uma prova compacta de um sistema de arquivos (provador) para um cliente (verificador) de que um arquivo de destino F está intacto, no sentido de que o cliente pode recuperá-lo totalmente. Como os PORs têm menor complexidade de comunicação do que a transmissão do próprio F , eles são um alicerce atraente para sistemas de armazenamento remoto de alta segurança. Pode ser realmente útil como um algoritmo de consenso para sistemas de computação em nuvem.

Descrição detalhada pode ser encontrada em Further Reading.

Leitura Adicional: Prova de Recuperabilidade

20. Tolerância de Falta Bizantina

Problema bizantino

Prós:

  • Rápido. Escalável

Contras:

  • Geralmente usado para redes privadas e permitidas .

Usado por: Hyperledger Fabric , Stellar , Ripple , Dispatch

Explicação: Há esse problema clássico na computação distribuída, geralmente explicada pelos generais bizantinos . O problema é que vários generais bizantinos e suas respectivas porções do exército bizantino cercaram uma cidade. Eles devem decidir em uníssono se devem ou não atacar. Se alguns generais atacarem sem os outros, seu cerco terminará em tragédia. Os generais geralmente são separados por distância e precisam passar mensagens para se comunicar. Vários protocolos de criptomoeda usam alguma versão do BFT para chegar a um consenso, cada um com suas próprias vantagens e desvantagens:

Tolerância de Falha Bizantina Prática (PBFT) : Uma das primeiras soluções para este problema foi cunhada Tolerância de Falha Bizantina Prática . Atualmente em uso pelo Hyperledger Fabric, com poucos generais pré-selecionados (<20, depois que as coisas ficam um pouco) PBFT é executado de maneira incrivelmente eficiente. Prós: Alta taxa de transferência de transações Contras: centralizada / autorizada

Federated Byzantine Agreement (FBA): A FBA é outra classe de soluções para o problema dos generais bizantinos usado por moedas como Stellar e Ripple. A idéia geral é que todo general bizantino, responsável por sua própria corrente, classifica as mensagens conforme elas entram para estabelecer a verdade. Em Ripple, os generais (validadores) são pré-selecionados pela fundação Ripple. Em Stellar, qualquer um pode ser um validador, então você escolhe em quais validadores confiar.

Por sua taxa de transferência incrível, baixo custo de transação e escalabilidade de rede, acredito que a classe FBA de algoritmos de consenso é a melhor que descobrimos para o consenso distribuído.

21. Tolerância de Falta Bizantina Delegada (dBFT)

Prós:

  • Rápido. Escalável

Contras:

  • Todo mundo é adequado para ser cadeia de raiz. Lá pode ser várias cadeias.

Usado por: Neo

Explicação: O dBFT é chamado de Tolerante a Faltas Bizantino Delegado, um mecanismo de consenso tolerante a falhas Bizantino que permite a participação em grande escala em consenso através de voto por procuração. O portador do token NEO pode, por votação, escolher o contador que suporta. O grupo selecionado de contadores, através do algoritmo BFT, chega a um consenso e gera novos blocos. A votação na rede NEO continua em tempo real, e não de acordo com um prazo fixo.

O dBFT fornece tolerância a falhas de f = [(n-1) / 3] para um sistema de consenso que consiste em n nós de consenso. Essa tolerância a falhas também inclui segurança e disponibilidade, resistente a falhas gerais e bizantinas e é adequada para qualquer ambiente de rede. O dBFT tem boa finalidade, o que significa que, uma vez que as confirmações são finais, o bloco não pode ser bifurcado e a transação não será revogada ou revertida.

No mecanismo de consenso do NEO dBFT, levando cerca de 15 a 20 segundos para gerar um bloco, o throughput da transação é medido em cerca de 1.000 TPS, o que é um excelente desempenho entre as redes públicas. Por meio da otimização apropriada, há potencial para atingir 10.000 TPS, permitindo que ele ofereça suporte a aplicativos comerciais em grande escala.

O dBFT combina tecnologia de identidade digital, o que significa que os contadores podem ser um nome real do indivíduo ou instituição. Assim, é possível congelar, revogar, herdar, recuperar e transferir propriedade devido a decisões judiciais sobre eles. Isso facilita o registro de ativos financeiros compatíveis na rede NEO. A rede NEO planeja apoiar tais operações quando necessário.

Leitura adicional: dBFT

22. RAFT

Consenso RAFT

Prós:

  • Modelo mais simples que o Paxos , mas oferece a mesma segurança.
  • Implementação disponível em vários idiomas.

Contras:

  • Geralmente usado em redes privadas e permitidas.

Usado por: IPFS Private Cluster , Quorum

Explicação: A jangada é um algoritmo de consenso concebido como uma alternativa ao Paxos . Ele foi concebido para ser mais compreensível do que o Paxos por meio da separação da lógica, mas também é formalmente comprovado como seguro e oferece alguns recursos adicionais. A jangada oferece uma maneira genérica de distribuir uma máquina de estado em um cluster de sistemas de computação, garantindo que cada nó no cluster concorde com a mesma série de transições de estado. Ele possui várias implementações de referência de código aberto, com implementações de especificação completa em Go , C ++ , Java e Scala .

Jangada alcança consenso através de um líder eleito. Um servidor em um cluster de jangada é um líder ou um seguidor e pode ser um candidato no caso preciso de uma eleição (líder indisponível). O líder é responsável pela replicação de log para os seguidores. Ele regularmente informa os seguidores de sua existência, enviando uma mensagem de pulsação. Cada seguidor tem um tempo limite (tipicamente entre 150 e 300 ms) no qual ele espera o batimento cardíaco do líder. O tempo limite é redefinido ao receber a pulsação. Se nenhum batimento cardíaco for recebido, o seguidor muda seu status para candidato e inicia uma eleição de líder.

Este info-gráfico é altamente recomendado para entender o RAFT .

Leituras Adicionais: Jangada

23. Consenso Estelar

Consenso estelar

Prós:

  • Controle descentralizado
  • Baixa latência
  • Confiança flexível
  • Segurança assintótica

Contras:

Usado por: Stellar

Explicação: Baseia-se no acordo bizantino federado (mencionado acima) .

O Protocolo de Consenso Estelar (SCP) fornece uma maneira de chegar a um consenso sem depender de um sistema fechado para registrar com precisão as transações financeiras. O SCP tem um conjunto de propriedades de segurança prováveis ??que otimizam a segurança da superatividade – no caso de nós de partição ou mal-comportados, ele interrompe o progresso da rede até que o consenso possa ser alcançado. O SCP desfruta simultaneamente de quatro propriedades principais: controle descentralizado, baixa latência, confiança flexível e segurança assintótica.

Leitura adicional: Consenso Estelar

24. Prova de Credibilidade

Prova de credibilidade

Prós:

  • Mais descentralizado que o PoS tradicional usando o conceito de Servi (mencionado em Explicação).
  • Finalidade rápida em comparação com o PoS tradicional.

Usado por: IOST

Explicação: Um grande desafio enfrentado pelo mecanismo tradicional de consenso da Prova de Estaca é a tendência à centralização. Para mitigar esse risco, o IOST introduziu o Servi como medida de contribuição dos usuários para a comunidade e uma maneira de incentivar os membros a contribuir para o desenvolvimento contínuo do IOSChain. Tem os seguintes atributos:

  • Não comercializável: como o Servi não é projetado como um meio de troca, o Servi não pode ser negociado ou trocado de qualquer forma.
  • Auto-destrutivo: Depois de validar um bloco, o sistema irá limpar automaticamente o balanço de Servi de propriedade do validador. Dessa forma, os nós com alta pontuação de credibilidade podem se revezar na validação de blocos, para garantir um processo justo de geração de blocos.
  • Auto-emissão: O Servi será gerado e depositado em contas de usuário automaticamente após determinadas contribuições, como prestação de serviços comunitários, avaliação de serviços prestados por outras entidades e / ou outras contribuições especiais.

Os sistemas tradicionais de blockchain têm um trade-off inerente entre segurança e throughput, dependendo do tamanho do fragmento. Um sistema com um grande número de pequenos fragmentos oferece melhor desempenho, mas fornece menos resiliência contra os maus atores e vice-versa ( um dos problemas também enfrentados por Casper ). Para romper o trade-off de uma forma que mantenha a segurança e aumente o rendimento, a IOST propôs um protocolo de consenso inovador de Proof-of-Believability (PoB) para a IOSChain. O PoB garante que os nós estejam com uma probabilidade insignificante de se comportar mal, ao mesmo tempo em que aumentam significativamente o rendimento da transação por tamanho de um fragmento.

O protocolo de consenso de prova de credibilidade usa uma abordagem Believable-First intra-shard. O protocolo divide todos os validadores em dois grupos, uma liga acreditável e uma liga normal. Os validadores acreditáveis ??processam as transações rapidamente na primeira fase. Em seguida, os validadores normais fazem uma amostragem e verificam as transações na segunda fase para fornecer a finalidade e garantir a verificabilidade. A chance de um nó ser eleito para a liga acreditável é determinada pela pontuação de credibilidade, que é calculada por múltiplos fatores (por exemplo, saldo de tokens, contribuições para a comunidade, revisões, etc.). Um com maior pontuação de credibilidade é mais provável de ser eleito para o campeonato acreditável. Os validadores acreditáveis ??seguem os procedimentos para decidir o conjunto de transações confirmadas e seu pedido, bem como processá-los em ordem. Validadores acreditáveis ??também formam grupos menores – um validador por grupo. As transações serão distribuídas aleatoriamente entre esses validadores críveis. Consequentemente, eles produzem blocos menores com latência extremamente baixa.

No entanto, ele pode apresentar um problema de segurança, pois apenas um nó está executando a verificação. Como resultado, algumas transações corrompidas podem ser confirmadas por validadores mal comportados. Para resolver esse problema de segurança, eles especificam uma probabilidade de amostragem de que os validadores normais irão amostrar transações e detectar inconsistências. Se um validador for detectado como mau comportamento, perderá todos os tokens e a reputação no sistema, enquanto os usuários fraudados serão compensados ??por qualquer perda. A abordagem credível torna as transações de processamento extremamente rápidas, pois apenas um único validador (acreditável) está fazendo a verificação e é improvável que se comporte mal.

Para saber mais sobre sua política de sharding, consulte Leitura adicional.

Leitura adicional: prova de credibilidade

25. Gráficos Acíclicos Direcionados

Consenso do DAG

Prós:

  • Altamente escalável devido à sua estrutura não linear.
  • Rápido.
  • Energia eficiente.
  • Finalidade é alcançada instantaneamente.

Contras:

  • A implementação de contratos inteligentes só pode ser feita por meio de oráculos.

Usado por: Iota , HashGraph , Byteball , RaiBlocks / Nano

Explanation: Os DAGs ou Directed Acyclic Graphs são formas mais gerais de blockchain. Eles são populares por inerentemente alta escalabilidade devido à sua estrutura única.

Basicamente, em qualquer sistema blockchain temos uma estrutura linear, blocos um-por-um são adicionados à cadeia. Isso torna o blockchain inerentemente lento, pois os blocos não podem ser adicionados paralelamente à cadeia. Mas no caso de DAGs, blocos / transações são adicionados paralelamente, cada bloco / transação confirmando um número de blocos anteriores. Isso torna os DAGs inerentemente escalonáveis.

Existem várias variações dependendo de:

  • algoritmo para escolher quais blocos anteriores para verificar o algoritmo de seleção de ponta .
  • Como a ordenação das transações é feita?
  • Como a finalidade é alcançada?

Aqui estão alguns projetos populares que usam DAGs.

25 a) Emaranhado (IOTA)

Protocolo Emaranhado

Explanation: Tangle é o algoritmo de consenso do DAG usado pelo Iota. Para enviar uma transação Iota, você precisa validar duas transações anteriores recebidas. O consenso de dois por um fortalece a validade das transações, quanto mais transações forem adicionadas ao Emaranhado. Como o consenso é estabelecido pelas transações, teoricamente, se alguém puder gerar 1/3 das transações, ele poderá convencer o restante da rede de que suas transações inválidas são válidas. Até que haja volume de transações suficiente para que a criação de 1/3 do volume se torne inviável, o Iota classifica "verificar duas vezes" todas as transações da rede em um nó centralizado chamado " O Coordenador ". Iota diz que o coordenador funciona como rodinhas de treinamento para o sistema e será removido assim que o emaranhado for grande o suficiente.

Leitura adicional: Emaranhado

25 b) Hashgraph

Protocolo de fofocas do HashGraph

Explicação: Hashgraph é um consenso de protocolo de fofocas desenvolvido por Leemon Baird. Os nós compartilham suas transações conhecidas com outros nós aleatoriamente, de modo que todas as transações sejam fofocadas para todos os nós. O Hashgraph é uma ótima opção para redes privadas, mas você não o verá implementado em uma rede pública como a Ethereum ou o envio em breve.

Leitura adicional: HashGraph

25 c) Holochain

Explicação: Bastante semelhante ao HashGraph, mas não ao Hashgraph. Ele fornece uma estrutura de dados que pode ser usada para criar aplicativos descentralizados. Você tem sua própria cadeia, à qual você pode adicionar dados, incluindo transações financeiras. As cadeias podem se fundir, dividir e interagir de maneiras complexas. Os dados são armazenados de forma descentralizada (como Bittorrent). Os dados têm um hash, que é uma impressão digital matemática que corresponde aos dados. Se alguém interferir nos dados, a incompatibilidade entre os dados e o hash será percebida e os dados rejeitados como inválidos. Assinaturas digitais garantem a autoria dos dados. É Bittorrent mais git mais assinaturas digitais.

Outras leituras : HoloChain

25 d) Malha em Bloco (Nano)

Explicação: Nano (anteriormente Raiblocks) é executado com uma torção no blockchain chamado de Block-lattice. O Block-lattice é uma estrutura onde cada usuário (endereço) obtém sua própria cadeia que somente eles podem escrever, e todos possuem uma cópia de todas as cadeias.

Bloco de Malha

Cada transação é dividida em um bloco de envio na cadeia do remetente e um bloco de recebimento na cadeia da parte receptora. A treliça de blocos parece quase simples demais para funcionar, mas já está sendo executada na natureza. A estrutura única deixa a treliça de blocos aberta para alguns vetores de ataque únicos, como o ataque Penny-spend , onde os invasores aumentam o número de cadeias que o nó deve rastrear enviando quantias insignificantes para uma grande variedade de carteiras vazias.

Leituras Adicionais: Nano

25 e) SPECTRE

Explanation: Serialização de Eventos de Prova de Trabalho: Confirmando Transações via Eleições Recursivas, mais conhecido como SPECTER, é uma solução proposta de dimensionamento de Bitcoin que utiliza uma combinação de PoW e DAGs para alcançar um consenso escalável. No SPECTRE, os blocos são minados apontando para vários pais, não apenas um, portanto, a rede poderia manipular vários blocos por segundo. Minerar um bloco apontando para alguns blocos pai suporta a validade desses blocos. Comparado com as “mais longas vitórias em cadeia” do PoW, o SPECTRE usa algo como “blocos com a maior vitória infantil”. O SPECTRE ainda não foi testado em campo, e novos vetores de ataque provavelmente surgirão, mas parece muito maneira potencial inteligente de corrigir Bitcoin.

Leitura adicional: SPECTER

25 f) ByteBall

Explanation: O Byteball usa o DAG, que estabelece uma ordem parcial entre as transações, além de adicionar a cadeia principal no DAG.

Consenso de Byteball com o mainchain

A cadeia principal (MC) permite definir a ordem total entre as transações: a transação que é incluída (direta ou indiretamente) mais cedo no MC, é considerada mais cedo na ordem total. Quando há um gasto duplo, a versão da transação que vem antes na ordem total é considerada válida, todos os outros são considerados nulos.

A cadeia principal é definida deterministicamente com base nas posições das transações no gráfico. Consulte o white paper para detalhes, mas como regra geral, o MC gravita em direção a transações criadas por usuários conhecidos, que chamamos de testemunhas. A lista de testemunhas é definida pelos próprios usuários, pois incluem a lista em todas as transações que publicam. O MC segue então o caminho dentro do DAG de tal forma que:
1. as listas de testemunhas das transacções vizinhas na cadeia são idênticas ou diferem por apenas uma mutação,
2. a cadeia passa pelo maior número de transações autorizadas por testemunhas, em comparação com cadeias alternativas.

É também a primeira plataforma a incluir oráculos no sistema, que são necessários para adicionar funcionalidade de contrato inteligente em DAGs .

A descrição acima é muito breve e incompleta, com muitos detalhes importantes omitidos, consulte o white paper para obter uma história técnica completa.

Leitura adicional: ByteBall

Texto original em inglês.