O que é esse tal de Proof of Stake (PoS)?
Vamos entender o que é modelo de consenso Proof of Stake.
Ao falarmos sobre o Merge comentamos que essa atualização da rede Ethereum representará a transição de um modelo consenso de Proof of Work para o Proof of Stake.
Naquela oportunidade dissemos que: “(…) em uma rede Proof-of-Stake a validação é feita por aqueles que contribuem (stake) com a rede, depositando seus tokens”.
Mas, afinal, o que é Proof of Stake?
Como uma blockchain funciona (versão ELI5)
Basicamente, uma blockchain é um livro de registros digital distribuído entre diversos computadores (nodes/nós). A grande importância das blockchains é a capacidade que elas têm de garantir a fidelidade e a segurança das informações que armazena, o que torna dispensável a existência de um controlador - as blockchains são (ou deveriam ser) descentralizadas, de forma que a informação esteja distribuída entre os nodes/nós, e não sob controle de um ente centralizado.
A principal distinção entre uma blockchain e outras ferramentas de armazenamento de informações é, justamente, a forma como ela armazena os dados: uma blockchain coleta e armazena as informações em blocos com certa capacidade; quando o limite do bloco é alcançado ele é fechado (torna-se imutável) e é vinculado ao bloco anterior, formando assim uma cadeia de blocos, a blockchain - em tradução livre, blockchain nada mais é do que cadeia de blocos.
Em uma blockchain, à exceção do primeiro bloco (bloco gênese), cada bloco é consequente do bloco anterior e antecedente do bloco seguinte. Dessa forma as informações ficam organizadas e cada bloco representa um elo nessa cadeia de dados que, se implantada de forma descentralizada, se torna imutável.
A principal finalidade de uma blockchain é registrar informações de forma confiável e distribuí-las, impedindo que elas sejam alteradas. É por isso que blockchains são a base para se obter registros imutáveis.
Caso você esteja se perguntando o que isso tem a ver com Proof of qualquer coisa, reflita: se uma blockchain é uma ferramenta de armazenamento para assegurar a fidelidade e a segurança de dados, quem define quais dados são armazenados na blockchain?
Resposta: os validadores da blockchain. Isso mesmo, aquelas pessoas que instalam a blockchain em seus computadores e executam os softwares necessários para participar ativamente da rede. Basicamente, a validação dos dados em um blockchain pode ocorrer de duas formas - que chamamos de formas de consenso - já que os computadores da rede (os nodes/nós) alcançam um consenso matemático sobre a veracidade das informações que serão registradas.
Em uma rede Proof-of-Work as transações da blockchain são validadas por mineradores que disputam com poder computacional a resolução de operações matemáticas complexas. Poder computacional nesse caso é sinônimo de hardware (placas de vídeo ou ASIC) e consumo energético.
Por outro lado, em uma rede Proof-of-Stake a validação é feita por aqueles que contribuem (stake) com a rede, depositando seus tokens.
(Leia o artigo completo: O Merge irá ao ar na Ropsten testnet!)
Finalmente, o Proof of Stake!
Proof-of-Stake (PoS) é uma forma de se alcançar consenso em uma blockchain por meio da qual validadores votam no próximo bloco e o peso do voto depende do tamanho da participação econômica de cada validador na rede. Esse modelo é considerado um avanço em relação ao Proof-of-Work (PoW) devido ao menor consumo de eletricidade, redução dos riscos de centralização, segurança contra diferentes tipos de ataques de 51%, além de outros motivos.
Esse modelo difere daqueles baseados em Proof-of-Work (PoW) (por exemplo, o Bitcoin e a versão atual da rede Ethereum), em que o algoritmo recompensa os participantes que resolvem equações criptográficas para validar transações e criar novos blocos (ou seja, mineração).
Em geral, um algoritmo PoS observa a seguinte dinâmica: qualquer pessoa que tenha a criptomoeda base da rede (no caso da Ethereum, ETH) pode se tornar um validador ao enviar um tipo especial de transação que bloqueia seu ETH em um contrato de depósito. O processo de criação e validação de novos blocos é então feito por meio de um algoritmo de consenso no qual todos os validadores da rede podem e devem participar.
Existem muitos tipos de algoritmos de consenso e muitas maneiras de atribuir recompensas aos validadores que participam do consenso, portanto, existem muitos “modelos” de PoS. Desse modo, de uma perspectiva algorítmica, existem dois tipos principais: PoS chain-based e BFT-style. (se você não se importar com a parte técnica pode pular esta parte)
PoS chain-based: o algoritmo seleciona aleatoriamente um validador durante cada intervalo de tempo e atribui a ele o direito de criar um único bloco, que deve apontar para algum bloco anterior , e assim, com o tempo, a maioria dos blocos converge em uma única chain em constante crescimento.
PoS BFT-style: os validadores recebem aleatoriamente o direito de propor blocos, mas o acordo sobre qual bloco será formado é feito por meio de um processo de várias rodadas, em que cada validador envia um “voto” para algum bloco específico durante cada rodada, e no final do processo todos os validadores (honestos e online) concordam permanentemente se um determinado bloco faz ou não parte da chain. Observe que os blocos ainda podem ser unificados; a principal diferença é que o consenso sobre um bloco pode ocorrer dentro de um bloco e não depende do comprimento ou tamanho da chain depois dele.
Em um artigo do The Defiant encontrei essa definição de staking que me pareceu bastante objetiva:
Comumente usado como uma forma de gerar renda passiva, staking em DeFi se refere ao depósito de tokens ou outros ativos digitais (como NFTs) por meio de um contrato inteligente por um determinado período de tempo. Ao fazer isso, o usuário final pode se tornar um validador (alguém que é responsável pela verificação das transações) em seu protocolo DeFi escolhido. Quanto mais validadores uma rede tiver, maior é a segurança e a funcionalidade dela. Como nos bancos tradicionais, cada plataforma e rede DeFi varia na quantidade de juros que ela pode fornecer em relação à duração e quantidade total de ativos depositados.
Quais são os benefícios do Proof-of-Stake sobre o Proof-of-Work?
Não há necessidade de consumir grandes quantidades de eletricidade para proteger uma blockchain. (Estima-se que tanto o Bitcoin quanto o Ethereum consumam mais de US$ 1 milhão em custos de eletricidade e hardware por dia como parte de seu mecanismo de consenso);
Devido à falta de requisitos de alto consumo de eletricidade, não há tanta necessidade de emitir a mesma quantidade de moedas para motivar os participantes a continuarem participando da rede. Teoricamente pode até ser possível ter emissão líquida negativa, quando uma parcela das taxas de transação é “queimada” diminuindo assim a oferta ao longo do tempo;
Proof-of-Stake abre a porta para uma gama mais ampla de técnicas que usam o design de mecanismos da teoria dos jogos para desencorajar mais efetivamente a formação de cartéis centralizados e, se eles se formarem, de agir de maneiras prejudiciais à rede (como um minerador pode agir em redes Proof-of-Work);
Riscos de centralização são reduzidos porque não há problemas econômicos para escalar. US$ 10 milhões em moedas lhe darão retornos exatamente 10 vezes maiores do que US$ 1 milhão em moedas, sem nenhum ganho desproporcional adicional, o que não ocorre com equipamentos em redes Proof-of-Work.
Capacidade de usar penalidades econômicas para tornar várias formas de ataques de 51% muito mais caras de realizar do que em redes Proof-of-Work. Parafraseando Vlad Zamfir, "it's as though your ASIC farm burned down if you participated in a 51% attack", ou, em tradução livre "é como se sua fazenda de ASIC queimasse se você participasse de um ataque de 51%".
Como seria o equivalente a um ataque de 51% contra uma rede Proof-of-Stake?
Existem quatro tipos básicos de ataque de 51%:
Reversão de finalização: validadores que já finalizaram o bloco A e então finalizam algum bloco concorrente de A, quebrando assim a garantia de finalização do blockchain;
Finalização da chain inválida: os validadores finalizam um bloco inválido (ou indisponível);
Negação de vivacidade: validadores param de finalizar os blocos;
Censura: os validadores bloqueiam algumas ou todas as transações ou bloqueios de entrar na chain.
No primeiro caso, os usuários podem coordenar socialmente por fora e concordar qual bloco finalizado veio primeiro e favorecer esse bloco. O segundo caso pode ser resolvido com provas de fraude e provas de disponibilidade de dados. O terceiro caso pode ser resolvido por uma modificação nos algoritmos de PoS que reduz gradualmente os pesos dos nós não participantes no conjunto validador se eles não participarem do consenso.
A quarta é a mais difícil. Nesse caso, a solução poderia ocorrer por meio de “soft fork minoritário”, em que uma minoria de validadores honestos concorda que a maioria os está censurando e para de construir sua chain. Em vez disso, eles continuam sua própria chain e, eventualmente, o mecanismo de "leaking" descrito acima garante que essa minoria honesta se torne uma super maioria de 2/3 na nova chain. Nesse ponto, espera-se que o mercado favoreça a chain controlada por nós(nodes) honestos sobre a chain controlada por nós(nodes) desonestos.
Staking na prática
Por que alguém faria staking de ETH?
Por apostar no staking de ETH e atestar os blocos corretos, você será recompensado com ETH adicional por meio de uma taxa de juros, além de receber uma parte das taxas de transação da rede.
Quais são os requisitos mínimos para Staking?
Um mínimo de 32 ETH por validador;
Computador com especificações de hardware suficientes;
Conexão com a Internet.
Caso você não tenha esses 32 ETH, há serviços diversos que ainda assim de permitem fazer staking. Falaremos mais sobre isso no futuro.
O que acontece se eu perder minha conexão com a internet enquanto faço staking?
A chave para ser um validador é garantir que você esteja consistentemente disponível para votar em blocos que, por sua vez, protegem a rede. Portanto, há uma pequena penalidade se o seu cliente validador ficar offline a qualquer momento, para incentivar a disponibilidade do validador. Existem dois cenários em que isso pode acontecer:
Se os blocos estiverem finalizando e você estiver offline, você pode perder x% do seu depósito ao longo de um ano onde x=current_interest (juros atual);
Por exemplo, se a taxa de juros atual for 5%, você perderá 0,0137 % do seu depósito todos os dias, mas ganhe isso para cada dia que você estiver online;
Se os blocos não estiverem finalizando (>33% dos validadores estão offline) e você estiver offline, você pode perder 60% em 18 dias.
Se, em algum momento, seu depósito cair abaixo de 16 ETH, você será totalmente removido do conjunto de validadores.
Por quanto tempo meu Ether fica bloqueado se eu fizer o staking?
Você não poderá retirar staking até que a rede principal do Ethereum tenha se encaixado na Ethereum Beacon Chain e no sistema de fragmentação(sharding). Isso é conhecido como "Fase 1.5" nos roteiros técnicos e será lançado em 2021/22. Quando isso acontecer, haverá uma fila de saques no qual você será colocado quando quiser sacar o ETH do seu validador. Se não houver fila, o tempo mínimo de retirada é de 18 horas e se ajusta dinamicamente dependendo de quantas pessoas estão retirando naquele momento.
Acompanhe a newsletter do Ethercast Brasil para continuar atualizado sobre o Merge.
Além das fontes diretamente indicadas nos links ao longo do texto, este artigo se baseou nas seguintes fontes, em inglês: