Vitalik Buterin propôs recentemente o PEI-7702, que poderia ser uma das mudanças mais impactantes na história do Ethereum. Este artigo irá introduzir o funcionamento desta nova proposta e tudo o que é necessário para entender a sua implementação.
Primeiramente, a proposta EIP-7702 é surpreendentemente breve, o que deixou algumas pessoas perplexas sobre sua operação. Para entender o EIP-7702, precisamos olhar para outras três propostas mencionadas dentro dela:
PEI-4337
PEI-3074
PEI-5003
Vamos começar com o objetivo comum dessas propostas: “abstração de conta.” No Ethereum, EOAs (contas “ordinárias”) têm desvantagens significativas - são altamente arriscadas e têm funcionalidades muito limitadas. A abstração de conta permite que os usuários usem contratos inteligentes como contas, adicionando mais funcionalidades e segurança para resolver esses problemas.
PEI-4337 foi lançado na mainnet em março de 2023. Ele permite que contratos inteligentes sejam escritos como contas para que possam verificar e executar transações, melhorando muitas experiências do usuário (UX).
Desde o seu lançamento, o PEI-4337 tem visto uma adoção generalizada, liderada principalmente pela Polygon, com aumento da atividade da Base nos últimos meses.
As últimas inovações relacionadas ao PEI-4337 vêm do ecossistema da Coinbase e da Coinbase Smart Wallet. Esta carteira é baseada em tecnologia biométrica, proporcionando uma excelente experiência ao usuário. No último fim de semana, criei outro pequeno demo na ETH Global Sydney para mostrar isso.
Então, quais problemas o PEI-4337 tem? Por que há outra proposta de abstração de conta hoje? Porque as EOAs ainda são, de longe, o tipo de conta mais amplamente utilizado.
Além disso, a maioria das contas de contratos inteligentes EIP-4337 são controladas por um único signatário EOA. Aqui está um trecho de código de exemplo:
Como não é possível "converter" o EOA de um usuário em uma conta de contrato inteligente, essa estranha solução provisória existe. Isso se deve principalmente à falta de suporte nativo em aplicativos Web3 para conectar contas de contrato inteligente. Hoje em dia, a maioria das pessoas ainda usa EOAs através de carteiras de plugins como MetaMask.
Isso nos leva à nossa próxima proposta: PEI-3074.
Na verdade, esta proposta foi introduzida antes da PEI-4337, mas ainda não foi incorporada à rede principal. A PEI-3074 tenta capacitar as EOAs permitindo que elas deleguem o controle de suas EOAs a contratos inteligentes.
A proposta descreve a adição de dois novos códigos de operação:
Isso alcança muitos dos mesmos casos de uso que PEI-4337 sem exigir que cada usuário implante um novo contrato inteligente. Uma diferença chave é que as transações têm origem no EOA do usuário, em vez de um novo contrato que não tem o histórico da conta do usuário, ETH, NFTs, tokens, etc.
Uma reação comum ao PEI-3074 é: "E se alguém criar um contrato malicioso e o usuário delegar a ele?" Afinal, delegar a um contrato malicioso poderia resultar no esgotamento de todos os ativos de criptografia na carteira do usuário.
A solução para esse problema é que os provedores de serviços de carteira restrinjam os usuários de autorizar qualquer contrato indiscriminadamente. Eles podem manter uma lista branca de contratos inteligentes aos quais os usuários podem delegar autoridade, garantindo que quaisquer contratos fora dessa lista não sejam apresentados aos usuários para autorização.
Um ponto crucial sobre a delegação no PEI-3074 é que não é permanente. A “Delegação de um EOA é invalidada por uma única transação, que incrementa o nonce, tornando nulas quaisquer autorizações pendentes.
Em essência, após um usuário fazer uma nova transação, a delegação não será mais válida.
Na verdade, não queremos conceder mais poder aos EOAs. Afinal, o objetivo dessas propostas é fazer a transição dos usuários de EOAs para contas de contratos inteligentes. Então, por que adicionar funcionalidades aos EOAs?
Isso nos leva gentilmente à nossa próxima proposta: PEI-5003. PEI-5003 introduz outro opcode, "AUTHUSURP," que implementa código para o endereço de autorização PEI-3074.
A diferença entre PEI-3074 e PEI-5003 é que:
PEI-3074 é uma delegação temporária para contratos inteligentes, revogável.
PEI-5003 é uma migração permanente de EOAs e uma "conversão" de EOAs para contas de contratos inteligentes.
Um grande problema com PEI-3074 + PEI-5003 é a sua incompatibilidade com o esquema atual de abstração de contas através de PEI-4337. Alguns na comunidade Ethereum estão preocupados que possamos "criar dois ecossistemas de código separados" com esses dois tipos de abstração de contas.
Isso nos leva à proposta de Vitalik Buterin de hoje: EIP-7702. Ele propõe modificar o EIP-3074 para torná-lo mais conciso e compatível com o EIP-4337, para que não acabemos com dois ecossistemas de abstração de contas separados. O EIP-5003 é então visto como o próximo passo para migração permanente.
PEI-7702 introduz um novo tipo de transação que aceita tanto os campos contract_code quanto assinatura. Após a execução da transação, define o código do contrato da conta do signatário para contract_code. No final da transação, redefine o código para vazio.
Similar to PEI-3074, this achieves temporary delegation of EOAs to smart contracts. However, PEI-7702 does not introduce new opcodes (which would require a hard fork) but rather defines functions to be called:
AUTH -> chama "verificar"
AUTHCALL -> chama "executar"
Especificamente, ele:
Verifica se o código do contrato da sua conta está vazio.
Se estiver vazio, define-o para o código do contrato fornecido.
Executa a transação de acordo com a forma como o contrato inteligente fornecido manipula transações.
Restaura o código do contrato da conta para vazio.
"Código de contrato" é literal; é onde o código de um contrato inteligente é armazenado. Como um EOA em si não é um contrato, este campo geralmente está vazio. No entanto, o brilho do PEI-7702 é que temporariamente preenche este campo com algum código de contrato inteligente durante a execução da transação.
Esta é uma maneira de fornecer um novo comportamento (em forma de código) para o seu EOA executar esta transação específica. O próximo passo é torná-lo uma mudança comportamental permanente simplesmente escolhendo 'não definir o código como vazio após o término da transação'.
Um dos melhores aspectos desta proposta é sua alta compatibilidade com todo o trabalho de abstração de conta feito até agora para PEI-4337. “O código do contrato que os usuários precisam assinar pode ser realmente o código da carteira PEI-4337 existente.”
Uma vez que essa mudança entre em vigor, as EOAs existentes dos usuários podem executar qualquer código de contrato inteligente. Através de PEIs adicionais, as EOAs também podem ser permanentemente atualizadas para executar um código específico.
Com o tempo, isso poderia mudar fundamentalmente como todos nós interagimos com aplicativos Web3.
Este artigo é reproduzido de [panews], o título original "Explorando a proposta PEI-7702: A prescrição final de Vitalik para o problema de abstração de conta?", os direitos autorais pertencem ao autor original [Foresight News], se você tiver alguma objeção à reprodução, entre em contatoTime de Aprendizado da Gate, a equipe lidará com isso o mais breve possível de acordo com os procedimentos relevantes.
Aviso Legal: As opiniões expressas neste artigo representam apenas as opiniões pessoais do autor e não constituem conselhos de investimento.
Outras versões do artigo em outros idiomas são traduzidas pela equipe Gate Learn, não mencionadas emGate.io, o artigo traduzido não pode ser reproduzido, distribuído ou plagiado.
Vitalik Buterin propôs recentemente o PEI-7702, que poderia ser uma das mudanças mais impactantes na história do Ethereum. Este artigo irá introduzir o funcionamento desta nova proposta e tudo o que é necessário para entender a sua implementação.
Primeiramente, a proposta EIP-7702 é surpreendentemente breve, o que deixou algumas pessoas perplexas sobre sua operação. Para entender o EIP-7702, precisamos olhar para outras três propostas mencionadas dentro dela:
PEI-4337
PEI-3074
PEI-5003
Vamos começar com o objetivo comum dessas propostas: “abstração de conta.” No Ethereum, EOAs (contas “ordinárias”) têm desvantagens significativas - são altamente arriscadas e têm funcionalidades muito limitadas. A abstração de conta permite que os usuários usem contratos inteligentes como contas, adicionando mais funcionalidades e segurança para resolver esses problemas.
PEI-4337 foi lançado na mainnet em março de 2023. Ele permite que contratos inteligentes sejam escritos como contas para que possam verificar e executar transações, melhorando muitas experiências do usuário (UX).
Desde o seu lançamento, o PEI-4337 tem visto uma adoção generalizada, liderada principalmente pela Polygon, com aumento da atividade da Base nos últimos meses.
As últimas inovações relacionadas ao PEI-4337 vêm do ecossistema da Coinbase e da Coinbase Smart Wallet. Esta carteira é baseada em tecnologia biométrica, proporcionando uma excelente experiência ao usuário. No último fim de semana, criei outro pequeno demo na ETH Global Sydney para mostrar isso.
Então, quais problemas o PEI-4337 tem? Por que há outra proposta de abstração de conta hoje? Porque as EOAs ainda são, de longe, o tipo de conta mais amplamente utilizado.
Além disso, a maioria das contas de contratos inteligentes EIP-4337 são controladas por um único signatário EOA. Aqui está um trecho de código de exemplo:
Como não é possível "converter" o EOA de um usuário em uma conta de contrato inteligente, essa estranha solução provisória existe. Isso se deve principalmente à falta de suporte nativo em aplicativos Web3 para conectar contas de contrato inteligente. Hoje em dia, a maioria das pessoas ainda usa EOAs através de carteiras de plugins como MetaMask.
Isso nos leva à nossa próxima proposta: PEI-3074.
Na verdade, esta proposta foi introduzida antes da PEI-4337, mas ainda não foi incorporada à rede principal. A PEI-3074 tenta capacitar as EOAs permitindo que elas deleguem o controle de suas EOAs a contratos inteligentes.
A proposta descreve a adição de dois novos códigos de operação:
Isso alcança muitos dos mesmos casos de uso que PEI-4337 sem exigir que cada usuário implante um novo contrato inteligente. Uma diferença chave é que as transações têm origem no EOA do usuário, em vez de um novo contrato que não tem o histórico da conta do usuário, ETH, NFTs, tokens, etc.
Uma reação comum ao PEI-3074 é: "E se alguém criar um contrato malicioso e o usuário delegar a ele?" Afinal, delegar a um contrato malicioso poderia resultar no esgotamento de todos os ativos de criptografia na carteira do usuário.
A solução para esse problema é que os provedores de serviços de carteira restrinjam os usuários de autorizar qualquer contrato indiscriminadamente. Eles podem manter uma lista branca de contratos inteligentes aos quais os usuários podem delegar autoridade, garantindo que quaisquer contratos fora dessa lista não sejam apresentados aos usuários para autorização.
Um ponto crucial sobre a delegação no PEI-3074 é que não é permanente. A “Delegação de um EOA é invalidada por uma única transação, que incrementa o nonce, tornando nulas quaisquer autorizações pendentes.
Em essência, após um usuário fazer uma nova transação, a delegação não será mais válida.
Na verdade, não queremos conceder mais poder aos EOAs. Afinal, o objetivo dessas propostas é fazer a transição dos usuários de EOAs para contas de contratos inteligentes. Então, por que adicionar funcionalidades aos EOAs?
Isso nos leva gentilmente à nossa próxima proposta: PEI-5003. PEI-5003 introduz outro opcode, "AUTHUSURP," que implementa código para o endereço de autorização PEI-3074.
A diferença entre PEI-3074 e PEI-5003 é que:
PEI-3074 é uma delegação temporária para contratos inteligentes, revogável.
PEI-5003 é uma migração permanente de EOAs e uma "conversão" de EOAs para contas de contratos inteligentes.
Um grande problema com PEI-3074 + PEI-5003 é a sua incompatibilidade com o esquema atual de abstração de contas através de PEI-4337. Alguns na comunidade Ethereum estão preocupados que possamos "criar dois ecossistemas de código separados" com esses dois tipos de abstração de contas.
Isso nos leva à proposta de Vitalik Buterin de hoje: EIP-7702. Ele propõe modificar o EIP-3074 para torná-lo mais conciso e compatível com o EIP-4337, para que não acabemos com dois ecossistemas de abstração de contas separados. O EIP-5003 é então visto como o próximo passo para migração permanente.
PEI-7702 introduz um novo tipo de transação que aceita tanto os campos contract_code quanto assinatura. Após a execução da transação, define o código do contrato da conta do signatário para contract_code. No final da transação, redefine o código para vazio.
Similar to PEI-3074, this achieves temporary delegation of EOAs to smart contracts. However, PEI-7702 does not introduce new opcodes (which would require a hard fork) but rather defines functions to be called:
AUTH -> chama "verificar"
AUTHCALL -> chama "executar"
Especificamente, ele:
Verifica se o código do contrato da sua conta está vazio.
Se estiver vazio, define-o para o código do contrato fornecido.
Executa a transação de acordo com a forma como o contrato inteligente fornecido manipula transações.
Restaura o código do contrato da conta para vazio.
"Código de contrato" é literal; é onde o código de um contrato inteligente é armazenado. Como um EOA em si não é um contrato, este campo geralmente está vazio. No entanto, o brilho do PEI-7702 é que temporariamente preenche este campo com algum código de contrato inteligente durante a execução da transação.
Esta é uma maneira de fornecer um novo comportamento (em forma de código) para o seu EOA executar esta transação específica. O próximo passo é torná-lo uma mudança comportamental permanente simplesmente escolhendo 'não definir o código como vazio após o término da transação'.
Um dos melhores aspectos desta proposta é sua alta compatibilidade com todo o trabalho de abstração de conta feito até agora para PEI-4337. “O código do contrato que os usuários precisam assinar pode ser realmente o código da carteira PEI-4337 existente.”
Uma vez que essa mudança entre em vigor, as EOAs existentes dos usuários podem executar qualquer código de contrato inteligente. Através de PEIs adicionais, as EOAs também podem ser permanentemente atualizadas para executar um código específico.
Com o tempo, isso poderia mudar fundamentalmente como todos nós interagimos com aplicativos Web3.
Este artigo é reproduzido de [panews], o título original "Explorando a proposta PEI-7702: A prescrição final de Vitalik para o problema de abstração de conta?", os direitos autorais pertencem ao autor original [Foresight News], se você tiver alguma objeção à reprodução, entre em contatoTime de Aprendizado da Gate, a equipe lidará com isso o mais breve possível de acordo com os procedimentos relevantes.
Aviso Legal: As opiniões expressas neste artigo representam apenas as opiniões pessoais do autor e não constituem conselhos de investimento.
Outras versões do artigo em outros idiomas são traduzidas pela equipe Gate Learn, não mencionadas emGate.io, o artigo traduzido não pode ser reproduzido, distribuído ou plagiado.