Explorando a Proposta EIP-7702: A Solução Definitiva de Vitalik para o Dilema da Abstração de Conta?

Principiante5/14/2024, 1:42:24 PM
Vitalik Buterin propôs o EIP-7702, que poderá ser uma das alterações mais significativas na história do Ethereum. O EIP-7702 tem como objetivo melhorar a abstração de contas, permitindo que os contratos inteligentes sejam utilizados como contas, melhorando assim a funcionalidade e segurança. É altamente compatível com o EIP-4337, que foi amplamente adotado em plataformas como a Polygon. O EIP-7702 alcança a delegação temporária de EOAs (Contas de Propriedade Externa) para contratos inteligentes ao popular temporariamente o campo de código do contrato de uma EOA com código de contrato inteligente, sem a necessidade de um hard fork. Isso poderá transformar a forma como os utilizadores interagem com as aplicações Web3.

Vitalik Buterin propôs recentemente o EIP-7702, que poderá ser uma das alterações mais impactantes na história do Ethereum. Este artigo irá introduzir o funcionamento desta nova proposta e tudo o que é necessário para compreender a sua implementação.

Em primeiro lugar, a proposta EIP-7702 é surpreendentemente breve, o que deixou algumas pessoas perplexas sobre a sua operação. Para entender o EIP-7702, precisamos analisar outras três propostas mencionadas dentro dela:

  1. EIP-4337

  2. EIP-3074

  3. EIP-5003

Comecemos pelo objetivo comum destas propostas: a "abstração contabilística". No Ethereum, as contas EOA ("comuns") têm desvantagens significativas — são altamente arriscadas e têm funcionalidade muito limitada. A abstração de contas permite que os usuários usem contratos inteligentes como contas, adicionando mais funcionalidade e segurança para resolver esses problemas.

EIP-4337

EIP-4337 entrou em funcionamento na mainnet em março de 2023. 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, EIP-4337 tem visto uma adoção generalizada, liderada principalmente pela Polygon, com uma atividade crescente da Base nos últimos meses.

As últimas inovações relacionadas com o EIP-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 utilizador. No fim de semana passado, criei outro pequeno demo na ETH Global Sydney para mostrar isto.

Então, quais são os problemas que o EIP-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 contrato inteligente EIP-4337 é controlada por um único signatário EOA. Aqui está um exemplo de trecho de código:

Porque não é possível “converter” a EOA de um utilizador numa conta de contrato inteligente, existe esta estranha solução provisória. Isto deve-se principalmente à falta de suporte nativo em aplicações Web3 para conectar contas de contrato inteligente. Hoje em dia, a maioria das pessoas ainda utiliza EOAs através de carteiras de plug-ins como o MetaMask.

EIP-3074

Isto traz-nos à nossa próxima proposta: EIP-3074.

Na verdade, esta proposta foi introduzida antes do EIP-4337, mas ainda não foi fundida na mainnet. EIP-3074 tenta capacitar as EOAs permitindo-lhes delegar o controlo das suas EOAs a contratos inteligentes.

A proposta delineia a adição de dois novos códigos de operação:

  1. AUTORIZAR: Um EOA pode chamar AUTORIZAR para autorizar um contrato inteligente dado a agir em seu nome.
  2. AUTHCALL: O contrato inteligente autorizado pode usar AUTHCALL para executar transações em nome do EOA.

Isso alcança muitos dos mesmos casos de uso que o EIP-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 possui o histórico da conta do usuário, ETH, NFTs, tokens, etc.

Uma reação comum ao EIP-3074 é: "E se alguém criar um contrato malicioso e o utilizador delegar nele?" Afinal, delegar a um contrato malicioso pode resultar na drenagem de todos os ativos criptográficos na carteira do utilizador.

A solução para este problema é que os fornecedores de serviços de carteira restrinjam os utilizadores de autorizar indiscriminadamente qualquer contrato. Eles podem manter uma lista branca de contratos inteligentes aos quais os utilizadores podem delegar autoridade, garantindo que quaisquer contratos fora desta lista não sejam apresentados aos utilizadores para autorização.

Um ponto crucial sobre a delegação no EIP-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, depois de um usuário fazer uma nova transação, a delegação deixará de ser válida.

EIP-5003

De facto, não queremos conceder mais poder aos EOAs. Afinal, o objetivo destas propostas é fazer a transição dos utilizadores de EOAs para contas de contratos inteligentes. Então, por que adicionar funcionalidades aos EOAs?

Isso nos leva gentilmente à nossa próxima proposta: EIP-5003. EIP-5003 introduz outro opcode, “AUTHUSURP,” que implanta código no endereço de autorização EIP-3074.

A diferença entre EIP-3074 e EIP-5003 é que:

EIP-3074 é uma delegação temporária a contratos inteligentes, revogável.

EIP-5003 é uma migração permanente de EOAs e uma “conversão” de EOAs para contas de contratos inteligentes.

Um grande problema com EIP-3074 + EIP-5003 é a sua incompatibilidade com o esquema atual de abstração de contas através do EIP-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.

EIP-7702

Isto traz-nos à proposta de Vitalik Buterin 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 separados de abstração de contas. O EIP-5003 é então visto como o próximo passo para a migração permanente.

EIP-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 como contract_code. No final da transação, redefine o código para vazio.

Similar ao EIP-3074, isso alcança a delegação temporária de EOAs para contratos inteligentes. No entanto, o EIP-7702 não introduz novos opcodes (o que exigiria uma hard fork), mas define funções a serem chamadas:

AUTH -> chama de "verificar"

AUTHCALL -> chama "executar"

Especificamente, é:

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 lida com transações.

Restaura o código do contrato da conta para vazio.

"Código do contrato" é literal; é onde o código de um contrato inteligente é armazenado. Como um EOA em si não é um contrato, este campo é tipicamente vazio. No entanto, a genialidade do EIP-7702 é temporariamente preencher 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 a sua EOA executar esta transação específica. O próximo passo é torná-lo uma alteração comportamental permanente, simplesmente escolhendo "não definir o código como vazio após o término da transação."

Um dos melhores aspetos desta proposta é a sua elevada compatibilidade com todo o trabalho de abstração de conta feito até agora para o EIP-4337. "O código do contrato que os utilizadores precisam de assinar pode realmente ser o código da carteira existente do EIP-4337."

Assim que esta alteração entrar em vigor, as EOAs existentes dos utilizadores podem executar qualquer código de contrato inteligente. Através de EIPs adicionais, as EOAs também podem ser permanentemente atualizadas para executar código específico.

Com o tempo, isso poderia mudar fundamentalmente a forma como todos nós interagimos com as aplicações Web3.

Declaração:

  1. Este artigo é reproduzido a partir de [panews], o título original "Explorando a proposta EIP-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 tiver alguma objeção à reprodução, entre em contato Gate Learn Team, a equipa tratará disso o mais rapidamente possível de acordo com os procedimentos relevantes.

  2. Aviso Legal: As opiniões expressas neste artigo representam apenas as opiniões pessoais do autor e não constituem qualquer conselho de investimento.

  3. Outras versões do artigo em outros idiomas são traduzidas pela equipe Gate Learn, não mencionadas emGate, o artigo traduzido não pode ser reproduzido, distribuído ou plagiado.

Explorando a Proposta EIP-7702: A Solução Definitiva de Vitalik para o Dilema da Abstração de Conta?

Principiante5/14/2024, 1:42:24 PM
Vitalik Buterin propôs o EIP-7702, que poderá ser uma das alterações mais significativas na história do Ethereum. O EIP-7702 tem como objetivo melhorar a abstração de contas, permitindo que os contratos inteligentes sejam utilizados como contas, melhorando assim a funcionalidade e segurança. É altamente compatível com o EIP-4337, que foi amplamente adotado em plataformas como a Polygon. O EIP-7702 alcança a delegação temporária de EOAs (Contas de Propriedade Externa) para contratos inteligentes ao popular temporariamente o campo de código do contrato de uma EOA com código de contrato inteligente, sem a necessidade de um hard fork. Isso poderá transformar a forma como os utilizadores interagem com as aplicações Web3.

Vitalik Buterin propôs recentemente o EIP-7702, que poderá ser uma das alterações mais impactantes na história do Ethereum. Este artigo irá introduzir o funcionamento desta nova proposta e tudo o que é necessário para compreender a sua implementação.

Em primeiro lugar, a proposta EIP-7702 é surpreendentemente breve, o que deixou algumas pessoas perplexas sobre a sua operação. Para entender o EIP-7702, precisamos analisar outras três propostas mencionadas dentro dela:

  1. EIP-4337

  2. EIP-3074

  3. EIP-5003

Comecemos pelo objetivo comum destas propostas: a "abstração contabilística". No Ethereum, as contas EOA ("comuns") têm desvantagens significativas — são altamente arriscadas e têm funcionalidade muito limitada. A abstração de contas permite que os usuários usem contratos inteligentes como contas, adicionando mais funcionalidade e segurança para resolver esses problemas.

EIP-4337

EIP-4337 entrou em funcionamento na mainnet em março de 2023. 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, EIP-4337 tem visto uma adoção generalizada, liderada principalmente pela Polygon, com uma atividade crescente da Base nos últimos meses.

As últimas inovações relacionadas com o EIP-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 utilizador. No fim de semana passado, criei outro pequeno demo na ETH Global Sydney para mostrar isto.

Então, quais são os problemas que o EIP-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 contrato inteligente EIP-4337 é controlada por um único signatário EOA. Aqui está um exemplo de trecho de código:

Porque não é possível “converter” a EOA de um utilizador numa conta de contrato inteligente, existe esta estranha solução provisória. Isto deve-se principalmente à falta de suporte nativo em aplicações Web3 para conectar contas de contrato inteligente. Hoje em dia, a maioria das pessoas ainda utiliza EOAs através de carteiras de plug-ins como o MetaMask.

EIP-3074

Isto traz-nos à nossa próxima proposta: EIP-3074.

Na verdade, esta proposta foi introduzida antes do EIP-4337, mas ainda não foi fundida na mainnet. EIP-3074 tenta capacitar as EOAs permitindo-lhes delegar o controlo das suas EOAs a contratos inteligentes.

A proposta delineia a adição de dois novos códigos de operação:

  1. AUTORIZAR: Um EOA pode chamar AUTORIZAR para autorizar um contrato inteligente dado a agir em seu nome.
  2. AUTHCALL: O contrato inteligente autorizado pode usar AUTHCALL para executar transações em nome do EOA.

Isso alcança muitos dos mesmos casos de uso que o EIP-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 possui o histórico da conta do usuário, ETH, NFTs, tokens, etc.

Uma reação comum ao EIP-3074 é: "E se alguém criar um contrato malicioso e o utilizador delegar nele?" Afinal, delegar a um contrato malicioso pode resultar na drenagem de todos os ativos criptográficos na carteira do utilizador.

A solução para este problema é que os fornecedores de serviços de carteira restrinjam os utilizadores de autorizar indiscriminadamente qualquer contrato. Eles podem manter uma lista branca de contratos inteligentes aos quais os utilizadores podem delegar autoridade, garantindo que quaisquer contratos fora desta lista não sejam apresentados aos utilizadores para autorização.

Um ponto crucial sobre a delegação no EIP-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, depois de um usuário fazer uma nova transação, a delegação deixará de ser válida.

EIP-5003

De facto, não queremos conceder mais poder aos EOAs. Afinal, o objetivo destas propostas é fazer a transição dos utilizadores de EOAs para contas de contratos inteligentes. Então, por que adicionar funcionalidades aos EOAs?

Isso nos leva gentilmente à nossa próxima proposta: EIP-5003. EIP-5003 introduz outro opcode, “AUTHUSURP,” que implanta código no endereço de autorização EIP-3074.

A diferença entre EIP-3074 e EIP-5003 é que:

EIP-3074 é uma delegação temporária a contratos inteligentes, revogável.

EIP-5003 é uma migração permanente de EOAs e uma “conversão” de EOAs para contas de contratos inteligentes.

Um grande problema com EIP-3074 + EIP-5003 é a sua incompatibilidade com o esquema atual de abstração de contas através do EIP-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.

EIP-7702

Isto traz-nos à proposta de Vitalik Buterin 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 separados de abstração de contas. O EIP-5003 é então visto como o próximo passo para a migração permanente.

EIP-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 como contract_code. No final da transação, redefine o código para vazio.

Similar ao EIP-3074, isso alcança a delegação temporária de EOAs para contratos inteligentes. No entanto, o EIP-7702 não introduz novos opcodes (o que exigiria uma hard fork), mas define funções a serem chamadas:

AUTH -> chama de "verificar"

AUTHCALL -> chama "executar"

Especificamente, é:

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 lida com transações.

Restaura o código do contrato da conta para vazio.

"Código do contrato" é literal; é onde o código de um contrato inteligente é armazenado. Como um EOA em si não é um contrato, este campo é tipicamente vazio. No entanto, a genialidade do EIP-7702 é temporariamente preencher 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 a sua EOA executar esta transação específica. O próximo passo é torná-lo uma alteração comportamental permanente, simplesmente escolhendo "não definir o código como vazio após o término da transação."

Um dos melhores aspetos desta proposta é a sua elevada compatibilidade com todo o trabalho de abstração de conta feito até agora para o EIP-4337. "O código do contrato que os utilizadores precisam de assinar pode realmente ser o código da carteira existente do EIP-4337."

Assim que esta alteração entrar em vigor, as EOAs existentes dos utilizadores podem executar qualquer código de contrato inteligente. Através de EIPs adicionais, as EOAs também podem ser permanentemente atualizadas para executar código específico.

Com o tempo, isso poderia mudar fundamentalmente a forma como todos nós interagimos com as aplicações Web3.

Declaração:

  1. Este artigo é reproduzido a partir de [panews], o título original "Explorando a proposta EIP-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 tiver alguma objeção à reprodução, entre em contato Gate Learn Team, a equipa tratará disso o mais rapidamente possível de acordo com os procedimentos relevantes.

  2. Aviso Legal: As opiniões expressas neste artigo representam apenas as opiniões pessoais do autor e não constituem qualquer conselho de investimento.

  3. Outras versões do artigo em outros idiomas são traduzidas pela equipe Gate Learn, não mencionadas emGate, o artigo traduzido não pode ser reproduzido, distribuído ou plagiado.

Comece agora
Registe-se e ganhe um cupão de
100 USD
!