Pular para o conteúdo
0%

O que é abstração de conta modular?

Logan Ross headshot

Escrito por Logan Ross

Publicado em 19 de julho de 20234 min de leitura

Modular AA é um movimento voltado a evangelizar contas inteligentes modularizadas. O objetivo é tornar as contas customizáveis para os usuários e permitir que desenvolvedores construam funcionalidades de conta ricas em contexto e autocontidas.

Contas de contrato inteligente modulares (SCAs) permitem que builders criem novas extensões úteis para contas. Alguns exemplos incluem:

  1. Recuperação Social - Permite que um dispositivo confiável ou amigos ajudem você a recuperar sua conta caso perca o acesso
  2. Limites de Gastos - Permite que apps gastem tokens em seu nome até um limite especificado
  3. Suporte a Passkey - Login com sua biometria, como FaceID

Ao padronizar a modularidade, o risco de contraparte pode ser bastante reduzido, levando a experiências de usuário web3 simples e seguras.

O padrão ERC-4337 estabelece os componentes de infraestrutura e os padrões de código que, quando implementados, permitem que usuários tenham como tipo primário de conta um contrato inteligente em vez de uma chave privada. Historicamente, o tipo primário de conta era uma EOA (End User Account), que, ao contrário das SCAs, não possui lógica de validação e execução customizada.

Este artigo tem como objetivo fornecer uma visão geral da Account Abstraction Modular, o que ela viabiliza, e os padrões e implementações existentes.

Faça o onboarding de usuários sem seed phrases ou gas ao incorporar carteiras modulares de conta inteligente ao seu app web3 e escalando com nossa infraestrutura de AA verticalmente integrada.

Quais são os diferentes tipos de contas de contrato inteligente modulares?

Contas de contrato inteligente são fundamentalmente contratos inteligentes; são atualizáveis, extensíveis e também herdáveis. Dependendo da implementação da SCA, ela pode permitir ou não a adição de plugins/módulos. Existem dois conceitos diferentes de modular AA que este artigo vai explorar: ERC-6900 e SAFE Modules.

1. ERC-6900: contas de contrato inteligente modulares e plugins

O objetivo do ERC-6900 é definir um conjunto de interfaces entre uma implementação padrão de Account e Module. A proposta busca melhorar a experiência do desenvolvedor, a interoperabilidade de Modules e a portabilidade de dados ao alternar entre implementações de conta.

O padrão é inspirado no ERC-2535, porém não exige que os desenvolvedores sigam o padrão Diamond.

O que são plugins ERC-6900 para contas de contrato inteligente modulares?

Que tipos de plugins o ERC-6900 define?

De acordo com o padrão, os plugins podem ser de três tipos:

  1. Esquemas de Validação - Definem as circunstâncias sob as quais a conta de contrato inteligente modular (MSCA) aprovará as transações em seu nome
  2. Lógica de Execução - Qualquer lógica arbitrária a ser executada durante a execução
  3. Hooks - Hooks podem acionar qualquer lógica a ser executada, antes e depois da execução da user operation
Diagrama de Módulo ERC-6900
Diagrama de Módulo ERC-6900

O padrão também define:

  1. Como implementar plugins de Validation, Execution e Hook para uma MSCA.
  2. Como implementações de conta compatíveis devem adicionar, remover, atualizar e inspecionar plugins.
  3. Tipos auxiliares como FunctionReference.
Diagrama de como uma transação flui do entry point até uma SCA ERC-6900
Diagrama de como uma transação flui do entry point até uma SCA ERC-6900

Que tipos de interfaces o ERC-6900 define?

A especificação ERC-6900 define três interfaces principais: IPluginUpdate, IPluginLoupe e IStandardExecutor.

1. IPluginUpdate

A interface IPluginUpdate define:

  • Ações de plugin ADD,** REMOVE** e** REPLACE**
  • Tipos de Validator e tipos de Hook
  • Structs definidas pelo usuário para atualizar vários tipos de plugins
  • Uma função padronizada updatePlugins a ser chamada ao atualizar plugins e o evento ExecutionPluginUpdate a ser emitido após a atualização
2. IPluginLoupe

A IPluginLoupe é inspirada no ERC-2535, e o ERC-6900 define como uma dapp ou outros contratos podem ler os plugins suportados pela MSCA.

3. IStandardExecutor

A interface IStandardExecutor que contas de contrato inteligente modulares devem implementar para permitir uma execução aberta.

2. SAFE modules

Todas as contas baseadas em SAFE têm suporte a SAFE Modules. Para manter altos padrões de segurança, a equipe do SAFE seguiu o padrão de separação de responsabilidades e implementou diferentes tipos de módulo.

  • Modules - Endereços na whitelist que podem executar transações em nome da Safe Smart Account.
  • Guard - Um contrato que pode ser configurado para realizar verificações adicionais em transações a serem executadas.
  • Fallback Handler - Um contrato que pode ser configurado para lidar com chamadas de entrada (leitura) arbitrárias.

Mais informações podem ser encontradas no artigo sobre arquitetura de SCA modular da Safe.

O que são os módulos SAFE SCA?

Os Modules do SAFE são contratos inteligentes individuais que têm permissão para executar transações na conta de contrato inteligente SAFE do usuário. Modules podem executar transações arbitrárias na conta SAFE através da função execTransactionFromModule. Como a equipe do SAFE decide como as contas SAFE são implementadas, os desenvolvedores de plugins devem seguir as regras e diretrizes. Os módulos SAFE são compatíveis apenas com contas SAFE.

Há grandes pressupostos de confiança entre o desenvolvedor do módulo e o usuário e, por isso, módulos testados em produção têm mais chances de continuar sendo adotados.

Diagrama do Módulo de Conta SAFE
Diagrama do Módulo de Conta SAFE

O que são os guards SAFE SCA?

Guards são contratos inteligentes que podem ser configurados para uma conta SAFE realizar verificações de segurança adicionais em transações de entrada. Antes da execução de uma transação, um

Guard é chamado com todos os parâmetros da transação, e se o Guard não reverter, a transação segue para execução.

O Guard é chamado novamente após a execução para realizar verificações de mudança de estado ou executar lógica arbitrária.

Guards também podem ser pensados como hooks, pois são adequados para verificações de estado antes e depois da transação.

Diagrama de como os Guards de smart contract account Safe verificam transações antes e depois da execução
Como os Guards de SCA SAFE Podem Proteger Contas

O que é o fallback handler do SAFE SCA?

O Fallback Handler executa todas as chamadas feitas para a conta SAFE que podem ser tratadas por ele. Isso pode ser útil para atender a padrões da indústria, como assinaturas de contrato (EIP-1271). Segundo a SAFE, "plugins são completamente independentes dos contratos core do SAFE e mantêm seu próprio armazenamento".

Diagrama de como funciona o Fallback Handler de SCA SAFE
Diagrama de como funciona o Fallback Handler de SCA SAFE

Conclusão

A Account Abstraction Modular, conforme descrita pelo ERC-6900 e projetada pelos Safe Modules, tem como objetivo estender as capacidades das Contas de Contrato Inteligente por meio de plugins, que podem ser construídos por desenvolvedores e instalados com segurança por usuários de carteiras de contrato inteligente.

Para mais informações, explore nosso centro de educação sobre ERC-4337, ou confira nossas Embedded Accounts plug-and-play para começar a construir hoje mesmo.

Background gradient

Construa magia blockchain

A Alchemy combina os produtos e ferramentas de desenvolvimento Web3 mais poderosos com recursos, comunidade e suporte lendário.