A má experiência do usuário é um dos principais obstáculos para a adoção generalizada de criptomoedas hoje. Os usuários convencionais em geral não pensam em descentralização ou no futuro potencialmente brilhante que
E é aí que o web3 moderno fica aquém. Para muitos, entrar no mundo dos contratos inteligentes, entender os conceitos de blockchain e até mesmo configurar uma carteira criptográfica parece muito complicado. Sem mencionar, por exemplo, que você pode perder facilmente sua frase inicial e seus fundos desaparecerão para sempre.
No entanto, a implementação mais recente do EIP-4337 da Ethereum, implantada em 1º de março de 2023, aborda o problema de UX com uma solução chamada Account Abstraction. Mas o que é isso? Isso realmente vai mudar o todo
Em primeiro lugar, vamos abordar alguns princípios básicos que nos ajudarão a entender melhor o conceito por trás da abstração de contas.
Existem dois tipos de contas no ecossistema Ethereum:
Essas contas são controladas por indivíduos e não possuem nenhum código complicado dentro delas. Essas contas possuem um par de chaves — privada e pública — que são necessárias para confirmar e executar transações.
Um exemplo óbvio de uma conta de propriedade externa é a MetaMask Wallet.
Contas de contrato
Essas contas são basicamente contratos inteligentes controlados pelo código. As contas de contrato não exigem que os usuários executem a transação manualmente e não possuem chaves privadas.
Portanto, a principal diferença entre contas de contrato e contas de propriedade externa é que a primeira é regida por código, enquanto a segunda é ditada pelos usuários. Isso é importante entender. As contas de contratos inteligentes podem executar qualquer lógica programada nelas (tudo e qualquer coisa que o programador desejar), enquanto os EOAs apenas assinam transações no blockchain.
Até recentemente, a única maneira de os usuários interagirem com a rede e realizarem operações específicas, como movimentar fundos entre carteiras ou comprar
Para desenvolvedores de blockchain ou aqueles que já estão no mercado há algum tempo, usar um EOA é um processo familiar.
No entanto, para novatos e gerações mais velhas, isso é ciência do foguete.
Desde configurar uma carteira, gerar e lembrar a chave privada, até comprar fundos, pagar taxas de gás toda vez que você deseja transferir as moedas e não mexer nos endereços - tudo é muito complicado para quem está acostumado com a conveniência do moderno serviços bancários, que permitem que você envie dinheiro apenas clicando em um botão.
E não termina aí.
Ao usar EOAs, você precisa ser extremamente cuidadoso com suas chaves privadas e frases iniciais. Perdê-los pode ser fatal, pois você não poderá mais acessar seus fundos. E se sua chave privada for roubada, os hackers terão acesso total a todo o seu dinheiro digital.
Num sistema bancário tradicional, mesmo que perca o seu cartão, o banco pode sempre bloqueá-lo e enviar-lhe um novo.
Não é de admirar que apenas uma pequena fração dos usuários esteja pronta para assumir o risco. E mesmo para usuários experientes, que conhecem todos os riscos possíveis e sabem como se proteger, trabalhar com EOAs ainda traz certa tensão psicológica.
Para tornar a tecnologia blockchain mais acessível e fácil de usar, os desenvolvedores da Ethereum criaram o conceito de Account Abstraction. É uma ideia permitir que os usuários interajam com a rede por meio de contratos inteligentes em vez de EOAs.
Mas por que, embora? Bem, uma carteira de contrato inteligente pode ser mais versátil do que a EOA, pois tem a capacidade de conter regras e configurações distintas. Isso dá às contas de contrato uma gama muito mais ampla de recursos.
Por exemplo, Abstração de conta e contas de contrato permitirão que um usuário tenha diferentes chaves privadas (para uma carteira), que serão distribuídas entre um grupo de indivíduos e dispositivos confiáveis. Se o usuário perder o acesso à sua chave primária, ele pode recorrer a esses indivíduos e recuperar o acesso aos seus fundos.
E esta é apenas uma maneira de a Abstração de conta tornar a experiência do usuário melhor.
De acordo com Yoav Weiss, co-autor do EIP-4337 ao lado de Vitalik Buterin:
"A abstração de contas é uma forma de atrair o próximo bilhão de usuários."
Abstração de conta é implementada por meio de
No entanto, na verdade, essas duas abreviações são diferentes - a Ethereum Improvement Proposal (EIP) deve primeiro ser aceita pelo sistema de governança on-chain antes de se tornar uma Ethereum Request for Comment (ERC).
Além disso, o ERC é apenas um componente do EIP e discute principalmente diretrizes de protocolo e desenvolvimento.
Antes do EIP-4337, proposto em setembro de 2021, havia uma série de outros EIPs relacionados a abstrações de contas no ETH:
EIP-86 em 2016 — A proposta foi centrada em dar aos contratos inteligentes a capacidade de iniciar e autorizar transações.
EIP-2938 em 2020 — A proposta visava criar um novo tipo de transação.
EIP-3074 em 2020 — A proposta se concentrou na entrega de contratos inteligentes autoexecutáveis de forma mais eficiente por meio do uso de um novo opcode (bloco de construção de contrato inteligente).
Nenhuma dessas propostas foi implementada por um simples motivo - todas elas exigiram mudanças na infraestrutura de rede Ethereum subjacente , e isso não pode acontecer sem um acordo consensual.
O EIP-4337 é diferente porque não requer nenhuma mudança de protocolo . Em vez disso, propõe construir uma infraestrutura de nível superior sobre a existente.
Na verdade, o ERC-4337 já foi implementado desde 1º de março de 2023 e os desenvolvedores já podem criar aplicativos usando a nova lógica.
Todo o processo se parece com isso:
Uma carteira inteligente aciona uma " UserOperation ", um objeto de pseudo-transação, que é então adicionado ao mempool especial. Este mempool é essencialmente uma fila de transações (embora seja diferente do mempool regular do Ethereum).
Então, bundlers , novos operadores descentralizados, agem como mineradores ou validadores. Eles recuperam UserOperations do mempool, empacotam várias operações de usuário em uma única transação conhecida como "transação de pacote" e, em seguida, os empacotadores enviam "o pacote" para um contrato inteligente global conhecido como " EntryPoint *.*"
Na próxima etapa, outra função chamada " handleOps " recebe o pacote e envia as informações para a validação através de " validadUserOp " e executa a operação.
Os empacotadores pagarão pela taxa de transação (gás) associada à operação ou serão recompensados pela conta do contrato do usuário ou por um terceiro conhecido como "paymaster", que pode ser um aplicativo descentralizado ou uma carteira.
Fato rápido:
A abstração de contas traz muitas vantagens para usuários de qualquer nível:
O Ethereum Account Abstraction oferecerá aos desenvolvedores de contratos inteligentes, carteiras e aplicativos mais liberdade quando se trata de inovar a experiência do usuário, pois eles terão a capacidade de configurar regras de conta por meio do código. Isso permitirá uma integração mais fácil e um nível geral de serviços e conveniência comparável ao dos bancos tradicionais.
Nova lógica de conta tornará os aplicativos que operam em ETH ainda mais
Autorização de assinatura múltipla — Você pode compartilhar credenciais de autorização com vários indivíduos ou dispositivos confiáveis. Os desenvolvedores também podem configurar contratos de forma que as transações de um determinado valor exijam autorização de uma determinada porcentagem (por exemplo, 3/5) das partes confiáveis antes de poderem ser executadas.
Congelamento de conta — No caso de um dispositivo perdido ou comprometido, sua conta pode ser protegida de qualquer outro dispositivo autorizado para manter seus fundos seguros.
Recuperação de conta — Com EOAs, perder um dispositivo ou esquecer uma frase inicial pode deixar você sem acesso aos seus ativos indefinidamente. Felizmente, com carteiras de contrato inteligentes, você pode estabelecer contas confiáveis que permitiriam novos dispositivos e redefiniriam o acesso.
Limites de transação — Estabelecer limitações diárias sobre a quantidade de valor que pode ser transferida de sua conta em um dia, semana ou mês garante que, se um hacker obtiver acesso a ela, não conseguirá limpar tudo rapidamente.
Listas brancas — Para garantir a máxima segurança de seus fundos, você só pode iniciar transações para endereços que você sabe que são seguros. Se um indivíduo mal-intencionado obtivesse acesso à sua chave privada, ele não conseguiria transferir fundos para um destino não autorizado. E mesmo assim, essas alterações só podem ocorrer quando várias assinaturas as validarem - ou seja, se um invasor deseja que seu endereço seja incluído nessa lista, ele também deve obter várias de suas chaves de backup.
A abstração de conta também melhora o gerenciamento de gás. Os aplicativos têm a capacidade de cobrir não apenas as taxas de gás dos usuários, mas também permitir o pagamento de tais custos por terceiros — com tokens diferentes do ETH. Dessa forma, os usuários não precisam manter um saldo de ETH para financiar suas transações - os contratos inteligentes trocarão tokens de usuário por ETH automaticamente.
Muitos aplicativos, principalmente jogos, podem se beneficiar da implementação de sessões confiáveis, pois há um grande número de pequenas transações que precisam ser validadas em um curto espaço de tempo. Aprovar manualmente cada transação interferiria na experiência do jogo; no entanto, dar aprovação permanente não é seguro. As carteiras de contratos inteligentes podem fornecer uma solução alternativa, permitindo que certas transações sejam aprovadas por um tempo predeterminado, até um determinado valor ou apenas para endereços específicos.
Hoje, cada transação requer prova de que o token certo está carregado em sua carteira. Mas com a tecnologia de abstração de contas, é como fazer compras on-line - você enche uma "cesta", clica em comprar e toda a lógica necessária é tratada pelo contrato em vez de inserida manualmente pelo consumidor.
Com contas de contrato, você pode fazer pagamentos "puxados" iniciados por um cobrador. Por exemplo, uma empresa de eletricidade pode estabelecer um contrato de pagamento programado e ditar suas regras, como o valor que cobrará a cada mês ou com que frequência em um dia iniciará os pagamentos. Depois que os usuários aprovam esses pagamentos pull predefinidos por meio de sua conta de contrato, os reembolsos automáticos de contas podem ser feitos logo após o dia do pagamento.
Blockchain agora se tornou extremamente útil em uma ampla variedade de aplicativos de pagamento.
Ao aproveitar as contas de contrato, os desenvolvedores são liberados das restrições dos EOAs existentes e podem trazer elementos vantajosos da web2 para a web3 sem perder a descentralização pela qual lutam. Aqui acabamos de abordar alguns exemplos de como as experiências do usuário podem ser otimizadas pela abstração de contas, mas ainda há um potencial ilimitado para novas ideias criativas que ainda não surgiram!