O que é um Algoritmo de Consenso?
P√°gina Inicial
Artigos
O que é um Algoritmo de Consenso?

O que é um Algoritmo de Consenso?

Iniciante
Publicado em Dec 13, 2018Atualizado em Aug 17, 2023
7m


Conte√ļdo


Introdução

Um algoritmo de consenso √© um mecanismo que permite que usu√°rios ou m√°quinas se coordenem em uma configura√ß√£o distribu√≠da. Ele deve garantir que todos os membros de um sistema possam concordar com uma √ļnica fonte de verdade, mesmo que alguns dos membros falhem. Em outras palavras, o sistema deve ser tolerante a falhas (consulte tamb√©m: O que √© Byzantine Fault Tolerance?).

Em uma configura√ß√£o centralizada, uma √ļnica entidade tem poder sobre o sistema. Na maioria dos casos, ela pode fazer altera√ß√Ķes como quiser ‚Äď n√£o h√° um sistema de governan√ßa complexo para alcan√ßar consenso entre v√°rios administradores.¬†

Em uma configura√ß√£o descentralizada, √© bem diferente. Digamos que estamos trabalhando com um banco de dados distribu√≠do¬†‚Ästcomo chegar a um acordo sobre quais entradas ser√£o adicionadas?

Superar esse desafio em um ambiente em que desconhecidos não confiam um no outro, foi talvez o desenvolvimento mais importante que abriu caminho para as blockchains. Neste artigo, veremos como os algoritmos de consenso são vitais para o funcionamento das criptomoedas e de ledgers distribuídos.


Algoritmos de consenso e criptomoedas

Em¬†criptomoedas, os saldos dos usu√°rios s√£o registrados em um banco de dados ‚Äď a¬†blockchain. √Č essencial que todos os usu√°rios (ou mais precisamente, todos os¬†nodes/n√≥s) mantenham uma c√≥pia id√™ntica do banco de dados. Caso contr√°rio, haveriam informa√ß√Ķes conflitantes, prejudicando todo o prop√≥sito de uma rede de criptomoedas.
A criptografia de chave p√ļblica garante que usu√°rios n√£o possam gastar as¬†moedas de outros. Mas ainda assim, √© necess√°ria uma √ļnica fonte da verdade na qual os participantes da rede confiam, para que seja poss√≠vel determinar se os fundos j√° foram gastos ou n√£o.
Satoshi Nakamoto, o criador do¬†Bitcoin, prop√īs um sistema¬†Proof of Work para coordenar os participantes. Explicaremos em breve como funciona o PoW ‚Äď por enquanto, identificaremos algumas das caracter√≠sticas comuns dos diversos algoritmos de consenso existentes.
Primeiramente, exigimos que os usuários que desejam adicionar blocos (os chamaremos de validadores) forneçam um stake (participação). O stake é um tipo de valor que o validador deve apresentar, o que os desencoraja a agir de forma desonesta. Se trapacearem, perderão seu valor de stake. Exemplos de stake incluem poder computacional, criptomoedas ou, até mesmo, reputação. 
Por que eles arriscariam seus próprios recursos? Além disso, existe uma recompensa disponível. Geralmente, a recompensa é a criptomoeda nativa do protocolo e é composta pelas taxas pagas por outros usuários, novas unidades de criptomoeda geradas ou ambas.
O √ļltimo item necess√°rio √© a transpar√™ncia. Precisamos ser capazes de detectar quando algu√©m est√° trapaceando. O ideal √© que a produ√ß√£o de blocos seja cara, mas a valida√ß√£o por qualquer usu√°rio seja barata. Isso garante que os validadores sejam constantemente verificados pelos usu√°rios regulares.


Tipos de algoritmos de consenso

Proof of Work (PoW)

O Proof of Work (PoW) é o padrinho dos algoritmos de consenso da tecnologia blockchain. Foi implementado pela primeira vez no Bitcoin, mas o conceito já existe há algum tempo. No Proof of Work, os validadores (conhecidos como mineradores) fazem hash dos dados que eles desejam adicionar, até produzir uma solução específica válida.
Um¬†hash √© uma sequ√™ncia de letras e n√ļmeros aparentemente aleat√≥ria, criada quando voc√™ submete dados atrav√©s de uma¬†fun√ß√£o de hash. Entretanto, se voc√™ submeter os mesmos dados novamente, ter√° sempre o mesmo output (sa√≠da). Por√©m, caso voc√™ altere apenas um detalhe, seu hash resultante ser√° completamente diferente.

Observando o output, n√£o √© poss√≠vel dizer quais informa√ß√Ķes foram inseridas na fun√ß√£o. Portanto, √© poss√≠vel provar que voc√™ tinha conhecimento de um dado ou informa√ß√£o, antes de certo momento. Voc√™ pode fornecer um hash a algu√©m e, quando revelar os dados posteriormente, essa pessoa poder√° submet√™-los atrav√©s da fun√ß√£o para confirmar que o output ser√° o mesmo.

No Proof of Work, o protocolo estabelece condi√ß√Ķes em rela√ß√£o ao que torna um bloco v√°lido. Pode existir por exemplo uma condi√ß√£o que diz somente um bloco cujo hash come√ßa com 00 ser√° v√°lido. A √ļnica maneira de o minerador criar um bloco que corresponda a essa condi√ß√£o, √© tentando diversos inputs (entradas). Eles podem ajustar par√Ęmetros em seus dados para produzir um resultado diferente a cada tentativa, at√© obterem o hash correto.¬†
Nas principais blockchains, o nível de dificuldade é incrivelmente alto. Para competir com outros mineradores, você precisaria de um galpão cheio de hardware especializado para hashing (ASICs), para então ter a chance de produzir um bloco válido.
Quando est√° fazendo¬†minera√ß√£o, seu stake √© o custo das m√°quinas e da eletricidade necess√°ria para oper√°-las. Os ASICs (circuitos integrados de aplica√ß√£o especifica) s√£o constru√≠dos para uma finalidade, portanto, n√£o t√™m outra utilidade al√©m da minera√ß√£o de¬†criptomoedas. Sua √ļnica maneira de recuperar seu investimento inicial √© minerar, o que proporciona uma recompensa significativa caso voc√™ adicione com √™xito um novo bloco √† blockchain.

Verificar se voc√™ realmente criou um bloco v√°lido √© um processo muito simples para a rede. Mesmo que voc√™ tenha tentado trilh√Ķes de combina√ß√Ķes para obter o hash correto, eles s√≥ precisam submeter seus dados atrav√©s da fun√ß√£o uma vez. Se seus dados produzirem um hash v√°lido, eles ser√£o aceitos e voc√™ receber√° uma recompensa. Caso contr√°rio, a rede rejeitar√° o hash e voc√™ ter√° desperdi√ßado tempo e eletricidade.


Proof of Stake (PoS)

O Proof of Stake (PoS) foi proposto nos primeiros dias do Bitcoin como uma alternativa ao Proof of Work. Em um sistema PoS, não existem os conceitos de mineradores, hardware especializado e não há necessidade de grande consumo de energia. Tudo o que você precisa é de um computador comum.
Bem, na verdade n√£o √© s√≥ isso. Ainda √© necess√°rio um certo esfor√ßo. No PoS, voc√™ n√£o fornece um recurso externo (como eletricidade ou hardware), mas sim um interno ‚Äď criptomoeda. As regras variam de acordo com o protocolo, mas geralmente o usu√°rio precisa manter¬†uma quantidade m√≠nima de fundos para se qualificar para o¬†staking.
A partir da√≠, voc√™ bloqueia seus fundos em uma¬†carteira (eles n√£o podem ser movidos enquanto voc√™ est√° fazendo staking). Normalmente, existe um consenso entre os validadores sobre quais transa√ß√Ķes ser√£o inseridas no pr√≥ximo bloco. De certa forma, voc√™ faz uma aposta em qual bloco que ser√° selecionado. O protocolo escolher√° um dos blocos candidatos.
Caso seu bloco seja selecionado, voc√™ receber√° uma propor√ß√£o das taxas de transa√ß√£o, dependendo do seu valor de stake. Quanto mais fundos voc√™ tiver bloqueados, mais recompensas receber√°. Mas se voc√™ tentar trapacear propondo transa√ß√Ķes inv√°lidas, perder√° uma parte (ou tudo) do seu valor de stake. Portanto, temos um mecanismo semelhante ao PoW ‚Äď agir honestamente √© mais rent√°vel do que agir de forma desonesta.
Geralmente, não são criadas novas moedas como recompensa para validadores. A moeda nativa da blockchain deve, portanto, ser emitida de outra maneira. Isso pode ser feito através de uma distribuição inicial (ou seja, uma ICO ou IEO) ou fazendo o lançamento do protocolo como PoW, para depois efetuar uma transição para o sistema PoS.

Até o momento, o Proof of Stake puro só foi de fato implantado em criptomoedas menores. Portanto, ainda não está claro se ele pode servir como uma alternativa viável ao PoW. Embora pareça teoricamente correto, na prática é muito diferente. 

Depois que o PoS √© implementado em uma rede com grandes quantias em valor, o sistema se torna um campo de jogo de¬†teoria dos jogos e incentivos financeiros. Qualquer pessoa com o know-how para ‚Äúhackear‚ÄĚ um sistema PoS, provavelmente n√£o o faria se n√£o pudesse lucrar com isso ‚Äď portanto, a √ļnica maneira de descobrir se √© um sistema vi√°vel √© avaliando uma rede funcionando na pr√°tica.
Em breve, veremos o PoS sendo testado em larga escala ‚Ästo Casper ser√° implementado como parte de uma s√©rie de atualiza√ß√Ķes da rede Ethereum (coletivamente conhecidas como¬†Ethereum 2.0).


Outros algoritmos de consenso

O Proof of Work e o Proof of Stake são os algoritmos de consenso mais discutidos. Mas existe uma grande variedade de outros, todos com suas próprias vantagens e desvantagens. Confira os seguintes artigos:


Considera√ß√Ķes finais

Mecanismos para alcançar consenso são vitais para o funcionamento de sistemas distribuídos. Muitos acreditam que a maior inovação do Bitcoin foi o uso do Proof of Work para permitir que os usuários concordem com um conjunto de fatos compartilhados.

Atualmente, os algoritmos de consenso sustentam não apenas os sistemas de dinheiro digital, mas as blockchains, permitindo que os desenvolvedores executem códigos em uma rede distribuída. Eles representam agora, o pilar da tecnologia blockchain e são críticos para a viabilidade a longo prazo das várias redes já existentes.

De todos os algoritmos de consenso, o Proof of Work continua sendo dominante. Uma alternativa mais confiável e segura ainda precisa ser proposta. Existem muitas pesquisas relacionadas ao desenvolvimento de substitutos para o PoW e provavelmente teremos mais propostas surgindo nos próximos anos.

Compartilhar publica√ß√Ķes
Registre uma conta
Coloque seus conhecimentos em pr√°tica. Abra uma conta na Binance hoje mesmo.