Autor original: Vitalik Buterin

Compilação original: bayemon.eth, ChainCatcher

Agradecimentos especiais a Mike Neuder, Justin Drake e outros por seus comentários e análises. Veja também: postagens anteriores de Mike Neuder, Dankrad Feist e arixon.eth sobre tópicos semelhantes.

Pode-se dizer que o atual status de desenvolvimento do Ethereum inclui um grande número de apostas de duas camadas. A aposta de duas camadas mencionada aqui refere-se a um modelo de apostas com dois tipos de participantes.

  • Operador de Nó: Opera um nó e usa sua própria reputação ou uma certa quantia de seu próprio capital como garantia.

  • Agente Delegador: Os agentes prometem uma determinada quantia de Ethereum, sem valor mínimo e sem restrições adicionais sobre outros métodos de participação que não sejam garantias.

Esta aposta dupla emergente é gerada pela forte participação em pools de apostas que fornecem liquidez para tokens de apostas (LST). (Rocket Pool e Lido estão neste modo).

No entanto, o atual duplo compromisso tem duas falhas:

  • Risco de centralização dos operadores de nós: O atual mecanismo de seleção de operadores de nós em todos os pools de piquetagem ainda é excessivamente centralizado.

  • Carga de consenso desnecessária: Ethereum L1 precisa verificar aproximadamente 800.000 assinaturas por época, o que é uma carga enorme para um único slot. Além disso, como os pools de liquidez exigem mais fundos, a própria rede não se beneficia totalmente dessa carga. Portanto, se a rede Ethereum puder alcançar descentralização e segurança razoáveis ​​sem exigir que cada staker assine de acordo com o período, então a comunidade poderá adotar tal solução, reduzindo efetivamente o número de assinaturas por período.

Este artigo irá descrever uma solução para os dois problemas acima, primeiro assumindo que a maior parte do capital é detida por aqueles que não estão dispostos a gerir pessoalmente os nós de staking na sua forma atual, assinar as informações em cada slot, bloquear os depósitos e redistribuí-los. para aqueles cujos fundos foram reduzidos. Então, neste caso, que papel estas pessoas podem desempenhar para continuarem a dar um contributo significativo para a descentralização e segurança da rede?

Como funciona a garantia dupla atualmente?

Atualmente, os dois pools de apostas mais populares são Lido e RocketPool. No que diz respeito ao Lido, as duas partes participantes são:

  • Operador de nó: Votado pelo Lido DAO, o que significa que é realmente eleito pelos detentores de LDO. Quando alguém deposita ETH no sistema de contrato inteligente do Lido, o stETH é criado e o operador do nó pode ser colocado no pool de penhores (mas por causa da retirada). certificado está vinculado ao endereço do contrato inteligente, a operadora não pode sacar dinheiro à vontade)

  • Agente: Quando alguém deposita ETH no sistema de contrato inteligente Lido, stETH será gerado e o operador do nó poderá usá-lo como penhor (mas como o voucher de saque está vinculado ao endereço do contrato inteligente, o operador não pode sacar dinheiro à vontade)

Para Rocket Pool, eles são:

  • Operador de nó: Qualquer pessoa pode se tornar um operador de nó enviando 8 ETH e um certo número de tokens RPL.

  • Agente: Quando alguém deposita ETH no sistema de contrato inteligente Rocket Pool, o rETH será gerado e o operador do nó poderá usá-lo como penhor (também porque o voucher de retirada está vinculado ao endereço do contrato inteligente, o operador não pode sacar dinheiro à vontade ).

função de agência

Nestes sistemas (ou em novos sistemas habilitados por possíveis mudanças futuras de protocolo), uma questão fundamental a ser feita é: qual é o sentido de ter um agente do ponto de vista do protocolo?

Para entender o profundo significado desta questão, primeiro pensamos nas mudanças de protocolo mencionadas no post, que limitarão a penalidade a 2 ETH e também reduzirão o valor da aposta dos operadores de nós para 2 ETH, e do Rocket Pool. A participação de mercado aumentará para 100% / (para stakers e detentores de ETH, à medida que o rETH se tornar livre de risco, quase todos os detentores de ETH se tornarão detentores de rETH ou operadores de nós).

Suponha que o retorno dos detentores de rETH seja de 3% (incluindo recompensas no protocolo e taxas de prioridade + MEV), e o retorno dos operadores de nós seja de 4%. Também assumimos que a oferta total de ETH é de 100 milhões.

Os resultados do cálculo são os seguintes. Para evitar cálculos de juros compostos, calcularemos os retornos diariamente:

Agora, supondo que o Rocket Pool não exista, o valor mínimo do depósito por staker cai para 2 ETH, a liquidez total é limitada a 6,25 milhões de ETH e a taxa de retorno do operador do nó cai para 1%. Vamos calcular novamente:

Considere ambos os cenários do ponto de vista do custo do ataque. No primeiro caso, o atacante não se registará como agente porque o agente essencialmente não tem quaisquer direitos para levantar dinheiro, pelo que não tem sentido. Portanto, eles usarão todo o ETH para apostar e se tornarem operadores de nós. Para atingir 1/3 do valor total apostado, eles precisariam apostar 2,08 milhões de Ethereum (o que, para ser justo, ainda é um número considerável, no segundo caso, o invasor só teria que apostar fundos para atingir o staking). pool Para 1/3 do valor total, eles ainda precisam investir 2,08 milhões de Ethereum.

Do ponto de vista da economia de estaqueamento e do custo do ataque, o resultado final em ambos os casos é exatamente o mesmo. A participação do fornecimento total de ETH detido por operadores de nós aumenta 0,00256% todos os dias, e a participação do fornecimento total de ETH detido por operadores não-nós diminui 0,00017% todos os dias. O custo do ataque é de 2,08 milhões de ETH. Portanto, neste modelo, o agente parece ter se tornado uma máquina de Rube Goldberg sem sentido, e a comunidade racional está até inclinada a remover o intermediário, reduzir significativamente as recompensas de aposta e limitar o valor total de ETH apostado a 6,25 milhões.

É claro que este artigo não defende a redução da recompensa da aposta em 4 vezes e a limitação do valor total da aposta a 6,25 milhões. Em vez disso, o objetivo deste artigo é que um atributo chave de um sistema de piquetagem que funcione bem é que os agentes devem ter responsabilidades significativas em todo o sistema. Além disso, não importaria se os agentes fossem motivados em grande parte pela pressão e pelo altruísmo da comunidade para tomar as medidas corretas, afinal, é isso que incentiva hoje a força principal das soluções descentralizadas e de alta segurança;

Responsabilidades do agente

Se os agentes pudessem desempenhar um papel significativo no sistema de staking, qual seria esse papel?

Acho que existem duas categorias de respostas:

  • Seleção de Agente: Os agentes podem escolher a quais operadores de nó confiar suas apostas. O peso dos operadores de nós no mecanismo de consenso é proporcional à participação total que lhes é confiada. Atualmente, o mecanismo de seleção de proxy ainda é limitado, ou seja, os detentores de rETH ou stETH podem retirar seu ETH e mudar para um pool diferente, mas a disponibilidade real da seleção de proxy poderia ser bastante melhorada.

  • Participação no mecanismo de consenso: Os delegados podem optar por desempenhar um determinado papel no mecanismo de consenso. A responsabilidade é "mais leve" do que a assinatura completa, e não haverá um longo período de saída e redução de risco, mas ainda pode funcionar como um controle e equilíbrio. para efeito de operadores de nó.

Melhore as opções da agência

Existem três maneiras de aumentar o poder de escolha do seu representante:

  • Ferramentas de votação aprimoradas no pool

  • Aumentar a competição entre pools

  • Fixar o direito de representação

Atualmente, votar no pool não é prático: no Rocket Pool, qualquer pessoa pode se tornar um operador de nó, e no Lido, a votação é decidida pelos detentores de LDO, não pelos detentores de ETH. Lido apresentou uma proposta de governança dupla de LDO + stETH. Eles podem ativar um mecanismo de proteção para evitar novos votos e, assim, impedir que operadores de nós sejam adicionados ou removidos, até certo ponto. Ainda assim, este poder é limitado e pode ser mais poderoso.

A concorrência entre grupos já existe hoje, mas é relativamente fraca. O principal desafio é que os tokens de piquetagem de pools de piquetagem menores são menos líquidos, mais difíceis de ganhar confiança e menos suportados por aplicativos.

Podemos melhorar os dois primeiros problemas limitando o valor da penalidade a um valor menor, como 2 ou 4 ETH. O ETH restante pode então ser depositado com segurança e retirado instantaneamente, permitindo que as conversões bidirecionais ainda sejam válidas para grupos de apostas menores. Podemos melhorar o terceiro problema criando um contrato de emissão total para gerenciamento de LST (semelhante aos contratos ERC-4337 e ERC-6900 usados ​​para carteiras) para que possamos garantir que todos os tokens apostados emitidos através deste contrato estão seguros.

Atualmente, não existem poderes representativos sólidos no acordo, mas parece provável que tal situação exista no futuro. Envolverá uma lógica semelhante à ideia acima, mas implementada no nível do protocolo. Veja este artigo sobre os prós e os contras de solidificar as coisas.

Estas ideias são melhorias em relação ao status quo, mas oferecem vantagens limitadas. Existem problemas com a governança da votação simbólica e, em última análise, qualquer forma de seleção de procuração não incentivada é apenas uma forma de votação simbólica. Esta sempre foi minha principal reclamação com a Prova de Participação Delegada; Portanto, também é valioso considerar formas de alcançar uma participação consensual mais forte.

participação de consenso

Mesmo deixando de lado os problemas atuais com a aposta de liquidez, existem limitações aos atuais métodos de aposta independente. Assumindo a finalidade de um único slot, cada slot pode idealmente lidar com aproximadamente 100.000 a 1.000.000 de assinaturas BLS. Mesmo se usarmos SNARKs recursivos para agregar assinaturas, para rastreabilidade de assinatura, cada assinatura precisa receber um campo de bit de participante. Se o Ethereum se tornar uma rede em escala global, os campos de bits de armazenamento totalmente descentralizados não serão suficientes: 16 MB em cada slot podem suportar apenas aproximadamente 64 milhões de stakers.

Desta perspectiva, há valor em dividir o staking em níveis redutíveis de maior complexidade e níveis de complexidade mais baixa, onde cada slot entrará em vigor, mas poderá ter apenas 10.000 participantes ou, camadas de menor complexidade são apenas ocasionalmente chamadas para participar. As camadas de menor complexidade poderiam ser completamente isentas de reduções, ou os participantes poderiam receber aleatoriamente a oportunidade de depositar em alguns slots e ficar sujeitos a reduções.

Na prática, isto pode ser conseguido aumentando o limite de saldo do validador e subsequentemente aumentando o limite de saldo (por exemplo, 2048 ETH) para determinar quais validadores existentes passam para níveis de complexidade mais altos ou mais baixos.

Aqui estão algumas sugestões sobre como essas pequenas funções de piquetagem podem funcionar:

  • Para cada slot, 10.000 pequenos apostadores serão selecionados aleatoriamente e poderão assinar o que acharem representativo do slot. Executa a regra de escolha do fork LMD GHOST usando pequenos stakers como entrada. Se houver alguma discordância entre a seleção de fork conduzida por pequenos stakers e a seleção de fork conduzida por operadores de nós, o cliente do usuário não aceitará nenhum bloco como confirmação final e exibirá um erro. Isso força a comunidade a intervir para resolver a situação.

  • Os agentes podem enviar transações anunciando à rede que estão online e dispostos a servir como pequenos apostadores durante a próxima hora. O cálculo da mensagem (bloqueio ou prova) enviada pelo nó requer que tanto o nó quanto um agente selecionado aleatoriamente assinem as informações de confirmação do nó.

  • Os agentes podem enviar transações anunciando à rede que estão online e dispostos a servir como pequenos apostadores durante a próxima hora. A cada época, 10 agentes aleatórios são selecionados como provedores de listas de inclusão e mais 10.000 agentes são selecionados como eleitores. Eles são selecionados antes do slot k e recebem uma janela do slot k para publicar uma mensagem na cadeia confirmando sua presença online. Cada fornecedor de lista de inclusão selecionado confirmado pode publicar uma lista de inclusão, a menos que, para cada lista de inclusão, as transações incluídas nessa lista de inclusão sejam incluídas ou uma votação de geralmente 1 eleitorado selecionado indique que a lista de inclusão não está disponível, caso contrário o bloqueio será considerado inválido.

O que esses pequenos nós de staking têm em comum é que eles não precisam participar ativamente de cada slot, ou mesmo precisam apenas de nós leves para concluir todo o trabalho. Portanto, a implantação do nó requer apenas a verificação da camada de consenso, que os operadores do nó podem obter por meio de aplicativos ou plug-ins de navegador, que são em sua maioria passivos e não impõem nenhuma sobrecarga computacional, requisitos de hardware ou conhecimento técnico. requerem tecnologia avançada como ZK-EVM.

Esses “pequenos atores” também têm um objetivo comum: impedir que a maioria de 51% dos operadores de nós realizem censura nas transações. O primeiro e o segundo também impedem que a maioria participe da redução da finalidade. O terceiro está mais diretamente relacionado com a censura, mas é mais suscetível às escolhas dos operadores dos nós majoritários.

Essas ideias são escritas da perspectiva de uma solução de piquetagem dupla implementada no protocolo, mas também podem ser implementadas como um recurso de pools de piquetagem. Aqui estão algumas ideias de implementação específicas:

  • Do ponto de vista do protocolo, cada verificador pode definir duas chaves de penhor: uma chave de penhor contínua P e um endereço Ethereum vinculado que pode ser chamado e gerar uma chave de penhor rápida Q. O rastreamento de informações de assinatura do nó para seleção de fork é representado por P, e as informações assinadas são representadas por Q. Se os resultados de armazenamento de PQ forem inconsistentes, a finalização de qualquer bloco não será aceita, e o pool de liquidez será responsável por selecionar aleatoriamente representantes.

  • O protocolo pode permanecer praticamente inalterado, mas a chave pública do validador para esse período será definida como P+Q. Observe que para reduções, duas mensagens redutíveis podem ter chaves Q diferentes, mas terão a mesma chave P que o projeto de redução precisa para lidar com este caso;

  • As chaves Q só podem ser utilizadas no protocolo para assinar e verificar listas de inclusão em blocos. Nesse caso, Q pode ser um contrato inteligente em vez de uma chave única, de modo que o pool de staking pode usá-lo para implementar uma lógica de votação mais complexa, aceitando uma lista inclusiva de um provedor selecionado aleatoriamente ou o suficiente Indica que a lista que o contém não está disponível para votos .

para concluir

Se implementado corretamente, o ajuste fino do design da prova de participação pode resolver dois problemas de uma só vez:

  • Fornece àqueles que não têm recursos ou capacidade para fazer uma Prova de Participação independente hoje uma oportunidade de participar da Prova de Participação, mantendo assim mais poder em suas mãos: incluindo (i) o poder de escolher quais nós apoiar e (ii) Participe ativamente do consenso de uma forma que seja mais leve, mas ainda significativa, do que operar um nó de prova de aposta completo. Nem todos os participantes escolherão uma ou ambas as opções, mas qualquer participante que escolha uma ou ambas as opções experimentará uma melhoria significativa em relação ao status quo.

  • Reduza o número de assinaturas que a camada de consenso Ethereum precisa processar em cada slot, mesmo sob um regime de finalidade de slot único, para um número menor, como cerca de 10.000. Isso também ajudará na descentralização, facilitando a execução de nós de validação por todos.

Para estas soluções, soluções para o problema podem ser encontradas em diferentes níveis de abstração: permissões concedidas aos usuários dentro de protocolos de prova de aposta, seleção de usuários entre protocolos de prova de aposta e estabelecimento dentro dos protocolos. Esta escolha deve ser cuidadosamente considerada, e muitas vezes é melhor escolher uma configuração mínima viável para minimizar a complexidade do protocolo e a extensão das alterações na economia do protocolo, ao mesmo tempo que atinge os objetivos desejados.