EIP-2537: A longa jornada do cálculo das curvas do Ethereum
O EIP-2537 é uma instrução pré-compilada EVM que foi determinada para ser adicionada na recente atualização de bifurcação do Pectra. Esta instrução adiciona várias funcionalidades de cálculo da curva BLS12-381 ao EVM, incluindo cálculos de emparelhamento no domínio da curva.
EIP-2573 foi inicialmente proposto em 2020, e só será confirmado para inclusão na atualização do Ethereum em 2025. Este artigo apresentará o processo de governança do EIP-2537, explorando por que levou 5 anos para que esta proposta fosse incluída na atualização.
Contexto da proposta
Em janeiro de 2017, Vitalik Buterin apresentou pela primeira vez o algoritmo de pares e a curva alt_bn128. Em seguida, Vitalik e Christian Reitwiessner propuseram o EIP-196 e o EIP-197, para adicionar suporte ao cálculo da curva alt_bn128 no EVM. A atualização de Byzantium em outubro de 2017 incorporou oficialmente a curva alt_bn128, permitindo o cálculo de pares no domínio da curva dentro do EVM, possibilitando que a verificação de provas ZK-Snarks fosse realizada dentro do EVM.
Em novembro de 2017, a equipe do zcash propôs a curva BLS12-381, que possui maior segurança e desempenho em comparação com a alt_bn128. Muitos protocolos de blockchain adotaram posteriormente a curva BLS12-381, abandonando a curva alt_bn128.
Em maio de 2018, Justin Drake apontou que as futuras atualizações PoS e de fragmentação do Ethereum poderiam utilizar o algoritmo de múltiplas assinaturas BLS baseado na curva BLS12-381. Isso fez com que o anterior esquema EIP-1011 saísse de cena, e a posterior atualização ETH2 também acabou adotando a curva BLS12-381.
Com o desenvolvimento do ETH2, a demanda por introduzir o BLS12-381 na camada de execução do ETH está crescendo. Em fevereiro de 2020, alguns pesquisadores propuseram o EIP-2537, com a esperança de testá-lo na rede de testes do ETH2. O autor do EIP-2537, Alex Stokes, apelou para que fosse incluído no hard fork Berlin.
Curiosamente, o autor do EIP-2537 é também um dos cofundadores da Matter Labs, cujo produto mais famoso é o ZKSync.
Berlin agitação
Antes de introduzir o conteúdo subsequente, é necessário mencionar o EIP-1962. Esta é a primeira proposta de pré-compilação de emparelhamento de domínio de curva elíptica proposta pela Matter Labs em abril de 2019, que suporta três curvas: BLS12, BN e MNT4/6. Este EIP planeja adicionar 10 instruções pré-compiladas de uma só vez para processar diferentes curvas. No entanto, muitos desenvolvedores questionam se a proposta é demasiado complexa para ser implementada, e se é inconveniente para os engenheiros de contratos inteligentes. Como proponente, a Matter Labs completou o desenvolvimento do algoritmo de curva elíptica e forneceu implementações de referência em várias linguagens.
Para resolver o problema EIP-1962, a Matter Labs propôs em fevereiro de 2020 a divisão de vários EIPs do EIP-1962, que herdam parcialmente sua interface:
EIP-2537 fornece suporte para BLS12-381
EIP-2539 fornece suporte para BLS12-377
PR#2541 fornece suporte para a curva BLS12-377(Zexe ), mas não recebeu um número EIP.
Dentre eles, o EIP-2537 é o mais importante, pois a camada de consenso também utiliza a curva BLS12-381. O objetivo central do EIP-1962 e do EIP-2537 é implementar a verificação de assinaturas BLS na camada de consenso da mainnet. Na época, o ETH2 estava desenvolvendo o contrato de depósito, e devido à falta de um algoritmo de verificação BLS na camada de execução, o contrato de depósito originalmente não verificava assinaturas, mas sim a camada de consenso, e se fosse encontrada uma assinatura incorreta, poderia resultar na perda de fundos do usuário.
Nesse contexto, os desenvolvedores principais desejam introduzir a pré-compilação BLS12-381 para validar assinaturas dentro do contrato de depósito, evitando possíveis perdas de fundos dos usuários. Essa foi a razão pela qual muitos desenvolvedores estavam atentos ao EIP-1962 e ao EIP-2537 na época.
Quando o EIP-2537 foi proposto, Vitalik apontou uma série de problemas, que se concentravam principalmente no conteúdo da documentação do EIP. Em seguida, o autor respondeu à discussão. Na reunião dos desenvolvedores principais de 6 de março de 2020, Vitalik acreditava que EIP-2537 e outros eram muito eficazes para provas SNARK recursivas e, a longo prazo, não prejudicariam o Ethereum. A reunião confirmou a prioridade do EIP-2537, e todos os clientes concordaram em implementá-lo o mais rápido possível, com planos de concluir o desenvolvimento antes da atualização de Berlin.
Em seguida, o EIP-2537 tornou-se uma tarefa de alta prioridade. A reunião de 20 de março confirmou que o EIP-2537 substituiria o EIP-1962 como proposta central de BLS e entraria na lista de pré-seleção para a atualização Berlin. A reunião de abril oficialmente incorporou o EIP-2537 na atualização do hard fork Berlin, determinando o cronograma para implementação em abril e testes em maio-junho, e o classificou como uma das questões de mais alta prioridade.
A seguir, o EIP-2537 entra numa fase intensiva de desenvolvimento e testes, com quase todas as próximas 20 reuniões de desenvolvedores principais a envolver discussões relacionadas. Os principais conteúdos incluem:
Discussão sobre problemas de codificação ABI
Sincronização de progresso em vários clientes
A implementação do PR no Geth possui 16000 linhas de código, tornando difícil determinar a segurança e a eficácia.
Os desenvolvedores afirmaram que é difícil concluir o desenvolvimento do EIP-2537 no Geth antes de julho.
Propor a busca de engenheiros de criptografia para auxiliar na revisão de PR, utilizando a testnet para testar a segurança da implementação.
Discutir se deve remover a otimização de montagem complexa para reduzir a dificuldade de revisão
Os desenvolvedores do contrato de depósito afirmaram que a versão que não utiliza o EIP-2537 já foi auditada e consideram não lançar mais a versão que utiliza o EIP-2537.
Decidir aumentar a rede de testes YOLO para testar especificamente o EIP-2537
Até aqui, pode-se ver que a importância do EIP-2537 diminuiu significativamente com a conclusão do contrato de depósito, e os desenvolvedores do Geth acreditam que será difícil implementá-lo antes de Berlin. A não aceitação do EIP-2537 em Berlin parece ser um desfecho certo.
Mais questões surgiram nas reuniões subsequentes:
O Geth encontrou problemas na implementação do PR do EIP-2537, necessitando de mais testes e correções.
O teste da rede YOLO apresentou problemas, suspeita-se que esteja relacionado com a assinatura BLS.
Discutir a diversidade dos clientes, considerando congelar a implementação atual do EIP para reduzir os custos de desenvolvimento de outros clientes.
A Matter Labs espera incluir o EIP-2539 nos testes, mas enfrenta oposição dos desenvolvedores do Geth.
Finalmente, na 99ª reunião dos desenvolvedores principais, foi decidido remover o EIP-2537 da rede de testes YOLO v3 e da atualização Berlin. A principal razão é que o EIP-2537 consumiu muito tempo dos desenvolvedores principais, impedindo o desenvolvimento de outros EIPs. Um fator secundário foi a proposta da Fundação Ethereum de usar o EVM384 como alternativa.
Em abril de 2021, o Ethereum concluiu a atualização Berlin, que contém implementações como o EIP-2565, que não são muito complexas; a atualização parece um pouco magra, pois o EIP-2537, o mais complexo, foi excluído.
Desenvolvimento futuro
Após a atualização de Londres, os desenvolvedores consideraram adicionar o EIP-2537, mas devido à mudança nas bibliotecas de dependência que poderia afetar o preço do gas, foi abandonado novamente devido à complexidade.
Em junho de 2021, foi proposta oficialmente a inclusão do EIP-2537 na atualização Shanghai. No entanto, a atualização Merge ocupou muito tempo dos desenvolvedores. Após a conclusão da Merge em setembro de 2022, os desenvolvedores tiveram a oportunidade de continuar a discutir os objetivos da Shanghai.
Em novembro de 2022, os desenvolvedores acharam que o EIP-2537 precisava ser adiado, a atualização de Shanghai tem como núcleo o suporte a retiradas de PoS. A atualização de Cancun, por se concentrar no EIP-4844, também não discutiu o EIP-2537.
Até fevereiro de 2024, os desenvolvedores discutiram a inclusão do EIP-2537 na atualização do Pectra, acreditando que a implementação já não era um problema, havendo apenas algumas questões de precificação do consumo de gas. De dezembro de 2024 a janeiro de 2025, os desenvolvedores discutiram um modelo de cálculo de custos específico, resolvendo finalmente o problema de custos do EIP-2537.
Resumo
O EIP-2537 foi proposto em fevereiro de 2020 e foi finalmente confirmado em janeiro de 2025, passando por quase 5 anos. Durante esse período, foi adiado várias vezes devido à complexidade da implementação ou à falta de conformidade com o tema da atualização. Isso mostra que a inclusão do EIP na atualização do Ethereum depende não apenas de seu próprio valor, mas também de fatores históricos. Cada atualização do Ethereum tem seu próprio tema; embora o EIP-2537 tenha sido o EIP mais importante da atualização Berlin, foi descartado devido à dificuldade. Em seguida, o Ethereum entrou no processo histórico de PoS, e os EIPs de camada de execução pura não receberam atenção, resultando na longa não aceitação do EIP-2537.
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
17 Curtidas
Recompensa
17
7
Repostar
Compartilhar
Comentário
0/400
BakedCatFanboy
· 08-09 07:22
Depois de oito anos, finalmente chegou!
Ver originalResponder0
rugpull_ptsd
· 08-06 22:13
Cinco anos para ser colocado na cadeia, realmente dá para esperar.
Ver originalResponder0
MetaverseHermit
· 08-06 08:26
Cinco anos para completar uma atualização, que enrolação!
Ver originalResponder0
CoconutWaterBoy
· 08-06 08:25
Cinco anos para atualizar, realmente é estável.
Ver originalResponder0
SignatureVerifier
· 08-06 08:24
tecnicamente esta implementação bls precisa de testes de penetração sérios, já vimos estes pré-compilados mal cozinhados antes...
Ver originalResponder0
MEVHunterX
· 08-06 08:14
Esta proposta está muito enrolada.
Ver originalResponder0
TrustMeBro
· 08-06 08:14
5 anos... Parece que realmente não é fácil fazer essa atualização.
EIP-2537 um longo caminho: da rejeição da atualização Berlin à adoção final do Pectra
EIP-2537: A longa jornada do cálculo das curvas do Ethereum
O EIP-2537 é uma instrução pré-compilada EVM que foi determinada para ser adicionada na recente atualização de bifurcação do Pectra. Esta instrução adiciona várias funcionalidades de cálculo da curva BLS12-381 ao EVM, incluindo cálculos de emparelhamento no domínio da curva.
EIP-2573 foi inicialmente proposto em 2020, e só será confirmado para inclusão na atualização do Ethereum em 2025. Este artigo apresentará o processo de governança do EIP-2537, explorando por que levou 5 anos para que esta proposta fosse incluída na atualização.
Contexto da proposta
Em janeiro de 2017, Vitalik Buterin apresentou pela primeira vez o algoritmo de pares e a curva alt_bn128. Em seguida, Vitalik e Christian Reitwiessner propuseram o EIP-196 e o EIP-197, para adicionar suporte ao cálculo da curva alt_bn128 no EVM. A atualização de Byzantium em outubro de 2017 incorporou oficialmente a curva alt_bn128, permitindo o cálculo de pares no domínio da curva dentro do EVM, possibilitando que a verificação de provas ZK-Snarks fosse realizada dentro do EVM.
Em novembro de 2017, a equipe do zcash propôs a curva BLS12-381, que possui maior segurança e desempenho em comparação com a alt_bn128. Muitos protocolos de blockchain adotaram posteriormente a curva BLS12-381, abandonando a curva alt_bn128.
Em maio de 2018, Justin Drake apontou que as futuras atualizações PoS e de fragmentação do Ethereum poderiam utilizar o algoritmo de múltiplas assinaturas BLS baseado na curva BLS12-381. Isso fez com que o anterior esquema EIP-1011 saísse de cena, e a posterior atualização ETH2 também acabou adotando a curva BLS12-381.
Com o desenvolvimento do ETH2, a demanda por introduzir o BLS12-381 na camada de execução do ETH está crescendo. Em fevereiro de 2020, alguns pesquisadores propuseram o EIP-2537, com a esperança de testá-lo na rede de testes do ETH2. O autor do EIP-2537, Alex Stokes, apelou para que fosse incluído no hard fork Berlin.
Curiosamente, o autor do EIP-2537 é também um dos cofundadores da Matter Labs, cujo produto mais famoso é o ZKSync.
Berlin agitação
Antes de introduzir o conteúdo subsequente, é necessário mencionar o EIP-1962. Esta é a primeira proposta de pré-compilação de emparelhamento de domínio de curva elíptica proposta pela Matter Labs em abril de 2019, que suporta três curvas: BLS12, BN e MNT4/6. Este EIP planeja adicionar 10 instruções pré-compiladas de uma só vez para processar diferentes curvas. No entanto, muitos desenvolvedores questionam se a proposta é demasiado complexa para ser implementada, e se é inconveniente para os engenheiros de contratos inteligentes. Como proponente, a Matter Labs completou o desenvolvimento do algoritmo de curva elíptica e forneceu implementações de referência em várias linguagens.
Para resolver o problema EIP-1962, a Matter Labs propôs em fevereiro de 2020 a divisão de vários EIPs do EIP-1962, que herdam parcialmente sua interface:
Dentre eles, o EIP-2537 é o mais importante, pois a camada de consenso também utiliza a curva BLS12-381. O objetivo central do EIP-1962 e do EIP-2537 é implementar a verificação de assinaturas BLS na camada de consenso da mainnet. Na época, o ETH2 estava desenvolvendo o contrato de depósito, e devido à falta de um algoritmo de verificação BLS na camada de execução, o contrato de depósito originalmente não verificava assinaturas, mas sim a camada de consenso, e se fosse encontrada uma assinatura incorreta, poderia resultar na perda de fundos do usuário.
Nesse contexto, os desenvolvedores principais desejam introduzir a pré-compilação BLS12-381 para validar assinaturas dentro do contrato de depósito, evitando possíveis perdas de fundos dos usuários. Essa foi a razão pela qual muitos desenvolvedores estavam atentos ao EIP-1962 e ao EIP-2537 na época.
Quando o EIP-2537 foi proposto, Vitalik apontou uma série de problemas, que se concentravam principalmente no conteúdo da documentação do EIP. Em seguida, o autor respondeu à discussão. Na reunião dos desenvolvedores principais de 6 de março de 2020, Vitalik acreditava que EIP-2537 e outros eram muito eficazes para provas SNARK recursivas e, a longo prazo, não prejudicariam o Ethereum. A reunião confirmou a prioridade do EIP-2537, e todos os clientes concordaram em implementá-lo o mais rápido possível, com planos de concluir o desenvolvimento antes da atualização de Berlin.
Em seguida, o EIP-2537 tornou-se uma tarefa de alta prioridade. A reunião de 20 de março confirmou que o EIP-2537 substituiria o EIP-1962 como proposta central de BLS e entraria na lista de pré-seleção para a atualização Berlin. A reunião de abril oficialmente incorporou o EIP-2537 na atualização do hard fork Berlin, determinando o cronograma para implementação em abril e testes em maio-junho, e o classificou como uma das questões de mais alta prioridade.
A seguir, o EIP-2537 entra numa fase intensiva de desenvolvimento e testes, com quase todas as próximas 20 reuniões de desenvolvedores principais a envolver discussões relacionadas. Os principais conteúdos incluem:
Até aqui, pode-se ver que a importância do EIP-2537 diminuiu significativamente com a conclusão do contrato de depósito, e os desenvolvedores do Geth acreditam que será difícil implementá-lo antes de Berlin. A não aceitação do EIP-2537 em Berlin parece ser um desfecho certo.
Mais questões surgiram nas reuniões subsequentes:
Finalmente, na 99ª reunião dos desenvolvedores principais, foi decidido remover o EIP-2537 da rede de testes YOLO v3 e da atualização Berlin. A principal razão é que o EIP-2537 consumiu muito tempo dos desenvolvedores principais, impedindo o desenvolvimento de outros EIPs. Um fator secundário foi a proposta da Fundação Ethereum de usar o EVM384 como alternativa.
Em abril de 2021, o Ethereum concluiu a atualização Berlin, que contém implementações como o EIP-2565, que não são muito complexas; a atualização parece um pouco magra, pois o EIP-2537, o mais complexo, foi excluído.
Desenvolvimento futuro
Após a atualização de Londres, os desenvolvedores consideraram adicionar o EIP-2537, mas devido à mudança nas bibliotecas de dependência que poderia afetar o preço do gas, foi abandonado novamente devido à complexidade.
Em junho de 2021, foi proposta oficialmente a inclusão do EIP-2537 na atualização Shanghai. No entanto, a atualização Merge ocupou muito tempo dos desenvolvedores. Após a conclusão da Merge em setembro de 2022, os desenvolvedores tiveram a oportunidade de continuar a discutir os objetivos da Shanghai.
Em novembro de 2022, os desenvolvedores acharam que o EIP-2537 precisava ser adiado, a atualização de Shanghai tem como núcleo o suporte a retiradas de PoS. A atualização de Cancun, por se concentrar no EIP-4844, também não discutiu o EIP-2537.
Até fevereiro de 2024, os desenvolvedores discutiram a inclusão do EIP-2537 na atualização do Pectra, acreditando que a implementação já não era um problema, havendo apenas algumas questões de precificação do consumo de gas. De dezembro de 2024 a janeiro de 2025, os desenvolvedores discutiram um modelo de cálculo de custos específico, resolvendo finalmente o problema de custos do EIP-2537.
Resumo
O EIP-2537 foi proposto em fevereiro de 2020 e foi finalmente confirmado em janeiro de 2025, passando por quase 5 anos. Durante esse período, foi adiado várias vezes devido à complexidade da implementação ou à falta de conformidade com o tema da atualização. Isso mostra que a inclusão do EIP na atualização do Ethereum depende não apenas de seu próprio valor, mas também de fatores históricos. Cada atualização do Ethereum tem seu próprio tema; embora o EIP-2537 tenha sido o EIP mais importante da atualização Berlin, foi descartado devido à dificuldade. Em seguida, o Ethereum entrou no processo histórico de PoS, e os EIPs de camada de execução pura não receberam atenção, resultando na longa não aceitação do EIP-2537.