Ao aproveitar uma pilha modular de contas de contratos inteligentes, os provedores de carteiras e dApps podem escapar da complexidade da manutenção técnica.
Escrito por: Rui
Compilado por: Shenchao TechFlow
Relatório original em inglês publicado em setembro de 2023

A mudança de contas de propriedade externa (EOA) para contas de contrato inteligentes (SCAs) está crescendo e é apoiada por muitos entusiastas, incluindo o próprio Vitalik. Apesar do entusiasmo, a adopção da SCA não foi tão difundida como a EOA. As principais questões incluem desafios de mercado em baixa, preocupações com migração, problemas de assinatura, despesas gerais de gás e, mais importante, desafios de engenharia.
Uma das vantagens mais importantes da Abstração de Conta (AA) é a capacidade de personalizar a funcionalidade usando código. No entanto, um grande desafio de engenharia é a não interoperabilidade da funcionalidade AA, e esta fragmentação dificulta a integração e abre a porta ao aprisionamento do fornecedor. Além disso, garantir a segurança ao atualizar e combinar recursos simultaneamente pode ser complexo.
A abstração de contas modulares surgiu como um subconjunto do movimento mais amplo de AA, uma abordagem inovadora para dissociar contas inteligentes de sua funcionalidade personalizada. O objetivo é criar uma estrutura modular para desenvolver carteiras seguras e perfeitamente integradas com diversas funcionalidades. No futuro, ele pode implementar uma “loja de aplicativos” de conta de contrato inteligente gratuita para que carteiras e dApps não se concentrem mais na construção de funções, mas na experiência do usuário.

A EOA tradicional apresenta muitos desafios, como frases iniciais, gás, cadeia cruzada e transações múltiplas. Nunca pretendemos introduzir complexidade, mas a realidade é que o blockchain não é um jogo fácil para as massas.
A abstração de contas aproveita contas de contratos inteligentes, permitindo verificação e execução programáveis, permitindo que os usuários aprovem uma série de transações de uma só vez, em vez de ter que assinar e transmitir cada transação, e habilitar mais funcionalidades. Traz benefícios para a experiência do usuário (por exemplo, abstração de gás e chaves de sessão), custo (por exemplo, transações em lote) e segurança (por exemplo, recuperação social, assinatura múltipla). Atualmente, existem duas maneiras de implementar a abstração de contas:
O tema da Abstração de Contas (AA) é discutido desde 2015 e ganhou destaque este ano pelo ERC4337. No entanto, o número de contas de contratos inteligentes implementadas ainda é muito menor do que o da EOA.

Vamos nos aprofundar neste dilema:
Impacto do mercado baixista: Embora AA tenha introduzido benefícios como login contínuo e abstração de Gas, as pessoas que atualmente vivenciam o mercado baixista são compostas principalmente de usuários EOA instruídos, em vez de novos usuários, portanto, não é bom para dApps e carteiras … Sem incentivos. Mesmo assim, alguns aplicativos líderes ainda estão adotando gradualmente AA, como o Cyberconnect, que gerou cerca de 360.000 UserOps (transações AA) em apenas um mês ao apresentar seu sistema AA e solução Gas-free.
Barreiras à migração: Para carteiras e aplicativos que acumularam usuários e ativos, a migração segura e conveniente de ativos continua sendo um desafio. No entanto, iniciativas como a EIP-7377 permitem que as EOAs iniciem transações de migração únicas.
Problema de assinatura: O próprio contrato inteligente não pode assinar naturalmente a mensagem porque não possui uma chave privada como EOA. Esforços como o ERC1271 tornam essa assinatura possível, mas a assinatura de mensagens não funciona até a primeira transação, o que representa um desafio para carteiras que usam implantações contrafactuais. O ERC-6492 proposto pela Ambire é um sucessor compatível com versões anteriores do ERC-1271 e pode resolver os problemas anteriores.
Despesas gerais de gás: A implantação, simulação e execução do SCA incorrem em custos mais elevados do que o EOA padrão. Isso se torna uma barreira para a adoção. No entanto, foram realizados alguns testes, como dissociar a criação de contas das ações do usuário e considerar a eliminação de salts de contas e verificações de existência, para reduzir esses custos.
Dilema de Engenharia: A equipe do ERC-4337 estabeleceu um repositório de eth-infinitismo para fornecer aos desenvolvedores implementações básicas. No entanto, à medida que avançamos para funcionalidades mais granulares ou específicas em diferentes casos de uso, a integração e a decodificação tornam-se desafiadoras.
Neste artigo, nos aprofundaremos na quinta questão: desafios de engenharia.

Uma explicação adicional dos desafios de engenharia é a seguinte:
Para lidar com esses problemas, precisamos de contratos atualizáveis para garantir atualizações seguras e eficientes, núcleos reutilizáveis para melhorar a eficiência geral do desenvolvimento e interfaces padronizadas para garantir que as contas dos contratos possam fazer uma transição suave entre diferentes front-ends.
Esses termos convergem para um conceito comum: construir uma arquitetura modular de abstração de contas (Modular AA).
AA modular é um nicho dentro do movimento mais amplo de AA que prevê a modularização de contas inteligentes para adaptar serviços aos usuários e permitir que os desenvolvedores aprimorem a funcionalidade de maneira integrada com restrições mínimas.
No entanto, estabelecer e promover novos padrões é um enorme desafio em qualquer indústria. Muitas soluções diferentes podem surgir nos estágios iniciais, antes que todos aceitem a solução principal. No entanto, é encorajador que tanto o SDK 4337, os desenvolvedores de carteiras, as equipes de infraestrutura e os designers de protocolo estejam trabalhando juntos para acelerar esse processo.
Chamadas externas e chamadas de delegado:

Embora delegadocall seja semelhante a call, em vez de executar o contrato de destino em seu próprio contexto, ele executa o contrato de destino no estado atual do contrato de chamada. Isto significa que quaisquer alterações de estado feitas pelo contrato de destino serão aplicadas ao armazenamento do contrato de chamada.

Para implementar uma estrutura combinável e atualizável, é necessário um conhecimento básico denominado “contrato de agência”.

Safe é uma infraestrutura de conta inteligente modular líder, projetada para fornecer segurança e flexibilidade comprovadas em batalha, permitindo que os desenvolvedores criem diversos aplicativos e carteiras. É importante notar que muitas equipes estão construindo com base ou inspiradas no Safe. Biconomy lança sua conta estendendo 4337 nativo e assinatura múltipla 1/1 no Safe. Com mais de 164.000 contratos implantados e mais de US$ 30,7 bilhões em valor bloqueado, a Safe é sem dúvida a melhor escolha neste espaço.
Estrutura do Seguro
A conta segura é um contrato proxy porque delega chamadas de contrato singleton. A conta Safe contém o proprietário, o limite e o endereço de implementação, que são definidos como variáveis para o agente, definindo assim o seu estado.
O singleton atende a conta Safe e integra e define diferentes integrações, incluindo plug-ins, ganchos, manipuladores de funções e validadores de assinatura.
Os módulos são muito poderosos. Sendo um tipo modular, os plug-ins podem definir diferentes funções, como fluxos de pagamento, mecanismos de recuperação e chaves de sessão, e servir como uma ponte cruzada entre Web2 e Web3, obtendo dados fora da cadeia. Outros módulos, como Hooks, atuam como proteções de segurança e manipuladores de funções respondem a quaisquer instruções.
O que acontece quando adotamos o Safe
Sempre que um novo plugin é introduzido, um novo singleton precisa ser implantado. Os usuários mantêm a autonomia para atualizar o Safe para a versão singleton desejada para atender às suas preferências e requisitos.
A natureza modular dos plug-ins permite que os desenvolvedores criem funcionalidades de forma independente. Eles ficam então livres para selecionar e combinar esses plug-ins de acordo com seus próprios casos de uso, facilitando uma abordagem altamente personalizável.

Sobre ERC2535 e Agente Diamante
O ERC2535 padroniza o Diamond Agent, um sistema modular de contrato inteligente que pode ser atualizado/expandido após a implantação e quase não tem limite de tamanho. Até agora, muitas equipes foram inspiradas nele, como o Kernel da Zerodev e os experimentos da Soul Wallet.
**Qual é a estrutura Diamante? **
**O que acontece quando adotamos Diamond? **
Existem muitas semelhanças entre as arquiteturas Safe e Diamond, com ambas contando com contratos de proxy como núcleo e referenciando contratos lógicos para capacidade de atualização e modularidade.
Porém, a principal diferença está no tratamento dos contratos lógicos. Aqui estão instruções mais detalhadas:
O “Método Safe Smart Account” e o “Método Diamante” são exemplos de diferentes estruturas envolvendo agentes e módulos. É fundamental equilibrar flexibilidade e segurança, e é provável que as duas abordagens se complementem no futuro.
Vamos expandir nossa discussão apresentando o padrão proposto pela equipe da Alchemy, ERC6900, que foi inspirado no Diamond e adaptado especificamente para o ERC-4337. Ele resolve o desafio da modularidade em contas inteligentes, fornecendo uma interface comum e coordenando o trabalho entre desenvolvedores de plugins e carteiras.
Quando se trata do processo de transação de AA, existem três processos principais: Verificação, Execução e Gancho. Conforme discutimos anteriormente, essas etapas podem ser gerenciadas chamando o módulo usando uma conta proxy. Embora projetos diferentes possam usar nomes diferentes, é importante capturar uma lógica subjacente semelhante.


Separar módulos com base em lógicas diferentes é crucial. Uma abordagem padronizada deve especificar como a verificação, execução e funções de gancho de conta de contrato inteligente devem ser escritas. Seja Safe ou ERC6900, a padronização ajuda a reduzir a necessidade de esforços de desenvolvimento exclusivos para uma implementação ou ecossistema específico e evita a dependência de fornecedores.
Uma solução que está crescendo envolve a criação de um local que permita aos usuários descobrir módulos verificáveis, o que poderíamos chamar de “registro”. Este registro é semelhante a uma “loja de aplicativos” e foi projetado para promover um mercado modular simplificado, mas próspero.

O protocolo Safe{Core} é um protocolo de conta de contrato inteligente interoperável e de código aberto, projetado para aumentar a acessibilidade para uma variedade de fornecedores e desenvolvedores por meio de padrões e regras claramente definidos, ao mesmo tempo em que mantém uma segurança forte.

O processo se desenrola da seguinte forma:
Embora este modelo ainda esteja em seus estágios iniciais, ele tem potencial para estabelecer um padrão de forma descentralizada e colaborativa. Seu registro permite que os desenvolvedores registrem seus módulos, os auditores verifiquem sua segurança, as carteiras integrem e os usuários encontrem facilmente os módulos e verifiquem suas informações de atestado. Pode haver os seguintes usos no futuro:
O conceito de “registro de módulo” oferece oportunidades de lucro para desenvolvedores de plug-ins e módulos. Também poderia abrir caminho para um “mercado de módulos”. Alguns destes aspectos podem ser supervisionados pela equipa Safe, enquanto outros podem manifestar-se como mercados descentralizados que convidam todos a contribuir e fornecem uma pista de auditoria transparente. Ao adotar essa abordagem, podemos evitar a dependência de fornecedores e apoiar a expansão do EVM, proporcionando uma melhor experiência de usuário que atrai um público mais amplo.
Embora estes métodos garantam a segurança de módulos individuais, a segurança geral das contas de contratos inteligentes não é absolutamente confiável. Combinar módulos legítimos e provar que eles não apresentam conflitos de armazenamento pode ser um desafio, ressaltando a importância das carteiras ou da infraestrutura AA na resolução de tais problemas.
Ao aproveitar uma pilha modular de contas de contratos inteligentes, os provedores de carteiras e dApps podem escapar da complexidade da manutenção técnica. Ao mesmo tempo, os desenvolvedores de módulos externos têm a oportunidade de fornecer serviços profissionais adaptados às necessidades individuais. No entanto, os desafios que precisam de ser abordados incluem encontrar um equilíbrio entre flexibilidade e segurança, impulsionar o avanço de padrões modulares e implementar interfaces padronizadas que permitam aos utilizadores atualizar e modificar facilmente as suas Contas Inteligentes.
No entanto, as contas modulares de contratos inteligentes (SCA) são apenas uma peça do quebra-cabeça da adoção. Para concretizar plenamente o potencial do SCA, também é necessário suporte à camada de protocolo de soluções de segunda camada, bem como uma infra-estrutura de empacotamento poderosa e pools de memória ponto a ponto, mecanismos de assinatura SCA mais econômicos e viáveis, sincronização SCA entre cadeias e gerenciamento, além de desenvolver interfaces fáceis de usar.
Prevemos um futuro com ampla participação, o que levanta algumas questões interessantes: Uma vez que o processo de encomenda da SCA se torne suficientemente rentável, como é que os mecanismos tradicionais de valor extraível dos mineiros (MEV) entrarão no espaço, construirão empacotadores e capturarão valor? Quando a infraestrutura amadurecer, como a abstração de contas (AA) pode se tornar a camada básica para transações “baseadas em intenção”? Fique atento, pois esta área está em constante evolução.