decen{BR}

Entenda o básico do Protocolo Avalanche [AVAX]

Avalanche é um mecanismo de consenso que pretende unir as principais qualidades dos protocolos pre-existentes.

Se você já estudou os papers científicos do Rocket Team, onde o mecanismo Avalanche é descrito, então provavelmente se deparou com termos como meta-estabilidade, adversários bizantinos, tolerância bizantina à falhas sem líder, e assim por diante.

Esses termos podem confundir iniciantes que buscam saber mais sobre a tecnologia Avalanche AVAX.

Neste artigo vamos tentar resumir, em termos simples, o que é Avalanche e como essa tecnologia pode ajudar a expandir os horizontes do estado da arte das criptomoedas.

Primeiro, vamos dar uma olhada nos mecanismos de consenso existentes antes do Avalanche AVAX.

Mecanismos de Consenso

Chegar a um consenso é sempre uma tarefa complicada, seja qual for o contexto.

O que a família fará no domingo? Pescar ou assistir a um jogo no estádio? A maneira com que essas coisas normalmente são decididas é por meio do voto. Uma pessoa faz a proposta, e todos votam naquilo que desejam fazer. Esse é um procedimento simples para busca de consenso, usando um cenário bem trivial para ilustrar o problema. Só que, mesmo nesse exemplo simples, várias questões importantes estão implícitas. Por exemplo, o fato do consenso em família ser possível apenas porque todos os membros comunicam-se entre si em curta distância, enviando e recebendo mensagens em tempo real.

Outros problemas que envolvem consenso podem não ter condições tão favoráveis, como decisões médicas ou financeiras de alto valor, por exemplo.

E, se por acaso, você precisasse chegar a um consenso com pessoas que você nunca viu, em quem não confia, e que podem se encontrar a milhares de quilômetros de distância? Esse é um problema bem complicado de se solucionar, e poucas, se alguma, solução existe.

Consenso Clássico

Para os casos em que conhecemos todos os demais participantes, e confiamos neles, existe um sistema chamado Consenso Clássico.

Esse tipo de sistema funciona quando todas as partes encontram-se dentro de alguma organização maior em que todos confiam entre si.

No consenso clássico, todos os participantes falam com todos os demais, até que todos encontram-se no mesmo estado – ou seja, em consenso. Quando um determinado dado chega a todos os participantes, dizemos que atingiram o consenso para aquele dado específico. Esse ponto de controle pode ser um ID no banco de dados, algo como “até o ID 1000 estamos todos sincronizados”, por exemplo.

O consenso clássico é usado em sistemas be bancos de dados distribuídos, onde todos os participantes da rede confiam entre si. Como é possível constatar, o consenso clássico exige intensa comunicação entre os nós. Quando há N nós participando, há em média N ao quadrado mensagens trocadas, porque todos os nós conversam entre si. É fácil verificar que esse tipo de sistema não é escalável. Quando a infraestrutura cresce de 10 para 100 nós, o número de mensagens trocadas aumenta de 100 para 10 mil. Portanto, o consenso clássico não acomoda grande número e nós distribuídos e exige intensa comunicação entre nós. Por isso é mais utilizado em datacenters contidos em uma organização central.

Consenso de Nakamoto

O próximo mecanismo de consenso que vamos abordar é o nosso favorito. Aquele inventado pelo pai do Bitcoin – o Consenso de Nakamoto.

Nesse sistema, os participantes não precisam confiar uns nos outros. Sequer precisam se conhecer e tampouco há qualquer espécie de gerenciamento centralizado.

Qualquer um pode ingressar em uma rede que utiliza Consenso de Nakamoto sem precisar de nome de usuário ou senha! Sua localização tampouco é relevante – usuáriso de qualquer parte do mundo podem simplesmente passar a usar uma rede que usa esse tipo de consenso.

O único problema é que o Consenso de Nakamoto é um processo lento e de baixa vazão. Um ponto de controle sob Consenso de Nakamoto pode levar entre 10 a 30 minutos para chegar ao consenso, e o número máximo de transações por segundo em uma rede Bitcoin gira em torno de 7 TPS. Para comparar, o Twitter e as redes VISA/MasterCard processam algo como 10 a 50 mil transações por segundo, 24 horas por dia.

Não vamos ingressar nos detalhes do sistema de consenso de Nakamoto neste artigo – mineração, verificação de transações e assim por diante são asuntos para outro post específico.

O importante é que o leitor saiba que o Consenso de Nakamoto supre a deificiência do Consenso Clássico, permitindo que as partes operem em conjunto sem serem gerenciadas por uma entidade central. Ou seja, Nakamoto permite que partes cheguem a um consenso sem confiar entre si e sem uma estrutura central, que é parte do brilhantismo de sua invenção implementada no Bitcoin. Mas que, porém, possui baixa vazão e sofre com lentidão.

Eis que surge, então, uma terceira família de mecanismos de consenso que visa permitir comunicação sem gestão central, mas acomodando grande número de transações por segundo. No primeiro semestre de 2018, um grupo anônimo usando o nome de Team Rocket, publicou um paper onde descreviam um novo mecanismo de consenso que juntava o melhor do consenso clássico com o melhor do Consenso de Nakamoto.

Essa nova família de protocolos foi batizada de Snow (neve, em inglês).

Da Neve à Avalanche

Um grupo anônimo chamado Team Rocket publicou um paper no qual descrevem a família Snow de protocolos de consenso. Esse paper foi entitulado Snow to Avalanche (Da Neve à Avalanche) porque nele é demonstrado como o conjunto de protocolos Snow levam ao mecanismo de consenso Avalanche.

Nesse novo sistema, os participantes de uma rede não dependem de trocar mensagens entre todos os participantes (consenso clássico) e tampouco é necessário o dispendioso sistema de mineração usado no Consenso de Nakamoto.

Trata-se, portanto, de uma nova família de protocolos (e não uma modalidade de sistemas anteriores), que atinge alta vazão (1000’s de transações por segundo), alta escalabilidade e baixa demora para atingir consenso.

Simplicidade

O protocolo Avalanche, o qual chamaremos de AVAX daqui por diante, é bastante simples. Apesar de envolver termos bem sofisticados, conforme citados no início deste artigo, não são necessários conceitos complicados para compreender como funciona.

AVAX funciona com base em uma estratégia de fofoca. Você leu corretamente – fofoca. Além da fofoca, AVAX utiliza uma palavra que tornou-se bastante negativa em 2020 – epidemia. Avalanche é um protocolo epidêmico.

O motivo dessa classificação é o fato das informações fluírem pela rede de forma viral. Um nó pergunta a um certo número de nós ao seu redor se uma transação é válida. Os nós então respondem. Cada nó envia sua resposta. O nó que solicitou a informação então decide, sozinho, em quem acreditar. Instantes depois, outros nós ao seu redor lhe perguntam sobre aquela mesma transação e esse nó responde com essa “opinião” que acabou de formar. Trata-se, no sentido mais literal da coisa, de uma rede de fofocas onde os nós acham que tal transação é válida ou não.

Rede de Fofocas

Os nós que cada um escolhe para fazer suas fofocas são aleatórios. Então, não há como premeditar quem os participantes irão questionar.

Quando as respostas são recebidas, o recipiente adiciona um “peso” à opinião que vai formando. Quando ele responde a questionamentos de outros pares, ele propaga sua opinião e o peso que atribuiu. Outros nós vão formando suas próprias “opiniões” sobre tais transações e passam adiante.

O Ovo de Colombo desse protocolo é a descoberta de que é muito difícil propagar uma mentira por meio de fofocas quando os nós que são perguntados são escolhidos ao acaso.

Imagine uma fofoca no mundo real.

Se você não sabe quem vai lhe perguntar sobre a fofoca, é melhor evitar passar adiante uma informação falsa, pois você não sabe se o nó que fez a pergunta sabe a resposta correta ou não.

Digamos que você quer descobrir o que aconteceu na vizinhança em determinada ocasião. Se o vizinho fofoqueiro souber que você só vai lhe perguntar, e a mais ninguém, ele pode inventar uma história falsa. Porém, se ele não souber para quem mais você já perguntou, ele teme que você descubra que está mentindo, e assim te contará uma história razoavelmente verídica. Se você seguir perguntando a mais e mais gente sobre o que aconteceu, eventualmente chegará à verdade.

O sistema Avalanche é baseado nesse conceito! Quando um vértice (análogo a blocos) é recebido, o nó começa a perguntar aleatoriamente sobre esse vértice. “Ei fulano, vc está sabendo do vértice 3253? Não?” “Ei ciclano, você sabe do vértice 3253? Tampouco?” E assim por diante, se ninguém sabe desse vértice, forma-se a opinião de que é mentira. E o vértice é colocado na lista de transações suspeitas. Se, do contrário, muitos nós responderem algo como “á sim, esse vértice saiu daqui mesmo, é válido”, vai sendo formada uma opinião de que a transação é legítima.

Empates

Nesse tipo de sistema é muito difícil chegar a empates. Imagine que 50% dos nós respondam que algo é válido e exatamente 50% que é inválido. Como pode perceber, é muito improvável que exatamente 50% da rede seja desonesta.

Mesmo que se chegue a um empate sobre a situação de uma transação, essa situação provavelmente não durará muito tempo. É provável que algum nó faça conexão e desempate a situação.

Trata-se de um sistema quiescente – não há mineração, não há um grupo especializado de verificadores checando o sistema. O sistema simplesmente fica lá, esperando as fofocas viralizarem, o que ocorre naturalmente quando cada nó ingressa na rede.

Tudo o que acabamos de descrever é possível graças a outra palavrinha complicada que já citamos: meta-estabilidade.

Meta-Estabilidade

Conforme abordamos há pouco, a instabilidade é a idéia central do protocolo Avalanche.

No contexto de criptomoedas essa não é uma palavra comúm, porém no Avalanche a meta-estabilidade encontra-se no coração do mecanismo de consenso.

Mas o que é meta-estabilidade?

Meta-estabilidade é uma situação onde o sistema não se encontra totalmente estável. A seguinte ilustração apresenta o conceito de meta-estabilidade física:

Esfera em equilíbrio instável. Autor: OrdinaryArtery Usado por licença CC BY-SA 4.0

Basta olhar para essa ilustração e sabemos que a situação dessa bolinha no topo dessa montanha é muito frágil. Qualquer coisa pode mudar a estabilidade desse sistema. Basta um minúsculo estímulo para essa esfera rolar para a direita ou para a esquerda. E isso pode acontecer a qualquer momento!

Equilíbrio Instável no Avalanche

Conforme já citamos, a meta-estabilidade no protocolo Avalanche funciona por meio de troca de informações entre nós. Conforme a informação vai chegando a esferinha pode rolar para um lado ou para outro. Vejamos um exemplo prático para entender melhor o conceito.

  • O nó A pergunta a B se a transação 47 é válida
  • O nó B responde que sim.
  • O nó A pergunta a C se a transação 47 é válida
  • O nó C responde que não

Temos um empate. A esfera encontra-se bem no meio do desenho. Nesse instante o nó D se conecta a A e fala assim:

  • Ei amigo, já chegou aí a transação 47? Ela é válida ok? Eu enviei há pouco.

E pronto! A esferinha rola para o lado da validade da transação 47. Nesse exato instante, se qualquer outro nó perguntar a A sobre a transação 47, ele responderá que ela é válida.

Só que aí ocorre algo inesperado, nós E e F passam a A a informação de que a transação 47 é uma fraude. Opa! A bolinha agora foi ao centro e virou para o outro lado. Se alguém perguntar novamente sobre essa mesma transação, A agora responderá que é inválida.

E assim o protocolo vai trocando informação. Ele nunca se encontra em estabilidade. O consenso está sempre meta-estável. E pode ser virado para o lado oposto muito facilmente. Basta que a fofoca chegue na hora certa.

A grande descoberta do protocolo Avalanche está naquilo que já citamos anteriormente : é muito difícil perpetuar uma fofoca falsa em um sistema onde não se sabe quem perguntará e quem responderá aos questionamentos. No sistema recém citado, eventualmente a validade ou invalidade da transação 47 receberá muito mais votos e ficará mais estável em um dos lados.

Esse sistema depende, obviamente, de uma maioria honesta. Essa não é um particularidade do Avalanche. Todos os sistemas de consenso exigem maioria honesta. O próprio Bitcoin exige que pelo menos 51% dos participantes sejam honestos.

Mas o que acontece, então, se alguém criar milhares de nós desonestos em uma rede Avalanche?

Ataques de Sybil

Nesse caso, temos o que chamamos de ataques de Sybil.

Em um ataque de Sybil, um usuário malicioso cria milhares de contas fake para manipular sistemas de votação. Como cada “fofoca” na rede Avalanche é análogo a um voto sobre a validade ou não de uma transação, então se você tiver um número grande o suficiente de usuários fake, conseguirá convencer a rede de que uma transação inválida é válida, e assim consuma uma fraude.

AVAX se protege desse tipo de ataque instituindo um custo mínimo para que um participante ingresse na “rede de fofocas”.

Cada nó que deseja trocar informações deve fazer um depósito caução na rede, mostrando que tem “cacife” para se tornar mais um nesse grupo.

Esse depósito é realizado em tokens AVAX.

Como os tokens AVAX possuem um preço no mercado, e a participação na rede exige um depósito caucionário denominado nesses tokens, então para fraudar a rede injetando mentiras o usuário teria que investir uma certa soma de dinheiro. O valor do depósito é cuidadosamente calculado para que uma eventual formação de rede de mentiras se torne mais dispendiosa que o potencial lucro que pode ser obtido.

Assim como no consenso de Nakamoto, o que protege o sistema nesse caso é o fato de que fraudar o sistema é mais caro que o lucro que pode ser obtido participando honestamente.

Transações Conflitantes.

O que acontece se um mesmo usuário transmitir à rede duas transações conflitantes?

O protocolo Avalanche não oferece qualquer mecanismo para garantir que esse cenário não acontecerá. Então um usuário malicioso poderia, em tese, enviar várias mensagens conflitantes à rede e esperar que alguma delas consiga ser confirmada, assim fraudando o sistema.

Só que, ironicamente, essa tentativa irá voltar-se contra o usuário malicioso.

Vejamos: o usuário desonesto envia duas transações conflitantes e a rede começa o processo de troca de opiniões sobre essas transações. Como ambas as transações são, em tese, válidas, inicialmente é permitido que ambas procedam. Só que, eventualmente, chegará a um dos nós a informação de que duas transações gastaram a mesma origem, o que é um erro.

Esse nó então invalida as duas transações e avisa a rede.

O processo inverso agora começa a circular na rede, de que duas transações estão circulando com a mesma origem, portanto gastando o mesmo valor 2 vezes.

Os outros nós verificam que realmente esse é o caso e passam adiante a nova fofoca, de que há 2 transações inválidas.

Resultado: o dinheiro foi “sacado” do fraudador, e as duas transações foram invalidadas. O que parecia uma ótima idéia acabou de bloquear o valor das duas transações, mesmo que uma delas fosse inicialmente válida.

Pode ser que, lá no futuro, uma dessas transações seja validada, porém o fraudador não conseguiu o que desejava, que era gastar 2 vezes o mesmo valor.

Governança On-Chain

Por fim, chegamos ao tópico de governança via blockchain. Essa funcionalidade encontra-se implementada no protocolo Avalanche desde o início!

O sistema AVAX inclui um mecanismo para que os detentores de moedas enviem seus votos via blockchain para as decisões importantes do protocolo.

Por exemplo: o valor dos juros pagos aos stakers AVAX será decidido por meio de votação on-chain.

Esse sistema é chamado de modelo crowdoracle – onde o voto popular decide. Diferente de outros sistemas, como Bitcoin por exemplo, onde há confiança em um grupo que toma as decisões por meio do github. No Bitcoin, aqueles que detêm controle do repositório Git decidem as regras do codigo fonte. No Avalanche os detentores de moedas AVAX é que decidem, na blockchain, como as coisas devem ser.

Todo esse processo é decentralizado e não depende de confiança. Quem detem moedas AVAX detem também votos. É simples assim.

Conclusão

Esperamos que essa introdução ao protocolo Avalanche tenha oferecido uma idéia melhor de como esse inovador mecanismo funciona.

É um protocolo que usa idéias muito simples, de intercambiar informações com participantes aleatórios, como forma de se buscar a verdade.

No coração desse protocolo encontra-se a idéia de meta-estabilidade, onde a rede pode mudar de acordo com as “fofocas” trocadas. Essa instabilidade nas opiniões torna muito difícil termos “empates técnicos” sobre a validade ou não de transações.

O professor Emin Gun Sirer, da Cornell University, lidera o grupo que está desenvolvendo o protocolo Avalanche na Ava Labs de Nova York, com base nas idéias publicadas pelo Team Rocket em 2018.

Referências

How do I begin staking AVAX?

Summary of cryptocurrency consensus mechanisms

Snowflake to Avalanche: A Novel Metastable Consensus Protocol Family for Cryptocurrencies

Avalanche Consensus Protocol Summary

English version: ELI5 What is the Avalanche Protocol? [AVAX]

Team Rocket: 0x8a5d2d32e68bc50036e4d086044617fe4a0a0296b274999ba568ea92da46d533

Sobre @ Autor(@)
Publicado por decen{BR} - decen{BR} é nosso avatar coletivo, @ qual usamos na editoria do site. Normalmente, os conteúdos publicados pel@ decen{BR} são traduções de nosso site parceiro crypto.bi - (ou contribuições indiretas de um de seus autores). Confira nossa página Sobre (menu lateral) para conhecer a nossa equipe! Saiba Mais o Decen{BR}
Autor(a)
Publicado
10 de abril de 2020
Atualizado
30 de novembro de 2020
Não rastreamos nossos usuários. Este site não emprega Javascript ou anúncios.