A Ethereum Improvement Proposal (EIP) 3074 constitui uma atualização de grande relevância para o protocolo Ethereum, concebida para reforçar as capacidades de abstração de contas e permitir que os utilizadores autorizem contratos externos a executar transações por sua conta. Esta proposta introduz dois novos opcodes: AUTH e AUTHCALL, que facultam aos smart contracts a possibilidade de operar em nome das Externally Owned Accounts (EOA) dos utilizadores após obterem uma autorização assinada. Deste modo, a experiência dos utilizadores na Ethereum torna-se significativamente mais eficiente, reduz-se a complexidade das transações e criam-se condições para funcionalidades avançadas, como transações sem custos de gás e agrupamento de operações.
Contexto: Origem da EIP 3074
A Ethereum Improvement Proposal 3074 foi apresentada no final de 2020 pelos desenvolvedores Sam Wilson, Ansgar Dietrichs e Matt Garnett. Esta iniciativa surgiu devido à crescente necessidade, no ecossistema Ethereum, de abstração de contas e modelos de transação mais flexíveis. Antes da EIP-3074, o modelo de transação da Ethereum era bastante rígido, obrigando os utilizadores a iniciarem transações diretamente a partir das suas externally owned accounts e a suportarem as taxas de gás, o que restringia múltiplos casos de uso e limitava melhorias à experiência do utilizador.
A Ethereum tem vindo a enfrentar desafios para melhorar a experiência dos utilizadores e tornar a entrada mais acessível. O modelo tradicional exige que os utilizadores compreendam as taxas de gás, gerem chaves privadas e interajam diretamente com a blockchain, dificultando o acesso a novos participantes. A EIP-3074 insere-se numa abordagem de longo prazo ao conceito de abstração de contas, discutido há vários anos na comunidade Ethereum, com o objetivo de tornar as interações com a blockchain mais intuitivas e acessíveis.
No percurso de desenvolvimento da Ethereum, a EIP-3074 representa uma evolução técnica relevante, ao propor uma melhoria progressiva mediante a extensão do modelo de contas existente, sem o reescrever totalmente. Esta opção garante compatibilidade com os atuais modelos de segurança e infraestrutura da Ethereum, ao mesmo tempo que introduz melhorias funcionais substanciais.
Mecanismo de Funcionamento: Operação da EIP 3074
A EIP-3074 introduz dois novos opcodes que, em conjunto, viabilizam a abstração de contas:
- AUTH: Valida a assinatura do utilizador e devolve o endereço do signatário. Quando um contrato recorre a este opcode, verifica se a assinatura apresentada é válida e confirma a identidade do signatário.
- AUTHCALL: Permite que um contrato autenticado pelo AUTH execute operações em nome da externally owned account do utilizador. Desta forma, o contrato pode utilizar as permissões do utilizador para efetuar transferências de fundos ou interagir com outros contratos.
O processo decorre segundo os seguintes passos:
- O utilizador gera uma assinatura com permissões e limitações específicas.
- O utilizador envia essa assinatura para um contrato invocador.
- O contrato invocador valida a assinatura e obtém o endereço do utilizador através do opcode AUTH.
- Após validação, o contrato invocador pode executar diversas operações em nome do utilizador, recorrendo ao opcode AUTHCALL.
- Estas operações ficam registadas na blockchain como executadas pela conta EOA do utilizador, embora sejam, na prática, realizadas pelo contrato.
Um dos aspetos centrais do design da EIP-3074 é o modelo de permissões. Os utilizadores podem definir com precisão o âmbito das permissões concedidas ao contrato invocador, especificando quais os contratos autorizados, os montantes que podem ser transferidos e o período de validade da autorização. Este controlo detalhado assegura que, mesmo ao delegar ações a contratos, os utilizadores mantêm elevados níveis de segurança e autonomia.
Adicionalmente, a EIP-3074 impede a reutilização de assinaturas entre contratos diferentes, ao incluir dados de recuperação do signatário e endereços dos contratos na assinatura, prevenindo riscos de segurança.
Riscos e Desafios da EIP 3074
Apesar dos avanços funcionais proporcionados pela EIP-3074, subsistem riscos e desafios:
- Riscos de Segurança
- Risco de reutilização de assinaturas: Assinaturas mal desenhadas podem ser reutilizadas por contratos maliciosos
- Permissões excessivas: Os utilizadores podem conceder inadvertidamente permissões demasiado amplas aos contratos invocadores
- Falsificação de interfaces: Aplicações maliciosas podem induzir os utilizadores a autorizar ações perigosas
- Desafios Técnicos de Implementação
- Problemas de compatibilidade com carteiras e aplicações existentes
- Definição e adoção de normas de assinatura
- Necessidade de alterações ao software de nodes e clientes
- Considerações de Experiência do Utilizador
- Modelos de permissões complexos podem ser difíceis de explicar ao utilizador médio
- Desafios no design da interface para pedidos de assinatura
- Garantir que os utilizadores compreendem realmente as permissões concedidas
- Impacto na Rede
- Potenciais efeitos no desempenho da rede e no tamanho dos blocos
- Concorrência e articulação com outras propostas de abstração de contas
A implementação da EIP-3074 exige consenso alargado da comunidade e auditorias de segurança rigorosas. Por introduzir funcionalidades que podem alterar o modelo fundamental de transações da Ethereum, o seu impacto a longo prazo deve ser cuidadosamente avaliado. Investigadores de segurança salientam que, sem salvaguardas adequadas, os opcodes AUTH e AUTHCALL podem ser alvo de exploração maliciosa, exigindo medidas de segurança robustas na versão final.
As equipas de desenvolvimento da Ethereum têm de equilibrar inovação e segurança, garantindo que a implementação da EIP-3074 oferece os benefícios previstos sem criar novas vulnerabilidades ou riscos.
A Ethereum Improvement Proposal 3074 representa um marco na evolução da Ethereum rumo a uma plataforma blockchain mais flexível e centrada no utilizador. Ao introduzir mecanismos de abstração de contas, pode resolver vários desafios da experiência do utilizador, como a complexidade das taxas de gás e a morosidade das transações. Para os desenvolvedores, a EIP-3074 abre novas oportunidades para criar aplicações descentralizadas mais sofisticadas e intuitivas. A longo prazo, estas melhorias são essenciais para a adoção massiva da Ethereum, ao facilitar o acesso de novos utilizadores e proporcionar uma base técnica para casos de uso inovadores. À medida que o ecossistema Ethereum evolui, propostas como a EIP-3074 serão determinantes para construir um futuro blockchain mais inclusivo e funcional.