Uma das inovações mais recentes que começaram a ser integradas ao Ethereum é o Abstração de conta Ethereum (EAA), mais conhecido como Ethereum Improvement Proposal (Ethereum Improvement Proposal – EIP 4337), um novo paradigma que facilitará o uso de contas Ethereum e a interação com dApps implantados na rede.
Comece no Bit2Me e entre no mundo das criptomoedas com vantagem. Cadastre-se facilmente e ganhe 5€ GRÁTIS na sua primeira compra com este link. Não espere mais para se juntar à revolução criptográfica! Cadastre-se
Carteiras e seu problema de usabilidade em criptomoedas
Um dos principais problemas de usabilidade com criptomoedas está na forma como gerenciamos nossas contas. Desde o advento do Bitcoin, contamos com software projetado para atuar como "carteiras ou bolsas para nossas criptomoedas". Na verdade, o referido software ou hardware, conforme o caso, é responsável por gerenciar nossas chaves privadas e públicas, para acessar nossas criptomoedas contabilizadas no blockchain.
Este sistema também é usado no Ethereum hoje e por um motivo poderoso: é extremamente seguro. Se o software e o hardware forem bem construídos, é impossível obter essas chaves e, portanto, acessar os saldos que registramos.
Portanto, uma das principais premissas da criptografia é: mantenha suas chaves seguras e bem protegidas.
Não importa se essas chaves são um arquivo binário (como no Bitcoin Core, onde tudo está em um arquivo chamado wallet.dat) ou um conjunto de palavras como sementes (em geral, seguindo o padrão Bitcoin, BIP-39).
Manter essas chaves seguras é o maior desafio para algumas pessoas, um desafio em que muitos falham, perdendo centenas e até milhões de dólares em valor. tudo porque uma vez que você perde as chaves, é impossível recuperá-las novamente, um problema de usabilidade que afasta muita gente do setor e da tecnologia.
Enquanto Em cripto, a premissa de descentralizar o dinheiro é fundamental, corrigir esse problema de usabilidade é necessário para adoção em massa. Na verdade, consertá-lo significa que mais pessoas confiam na tecnologia e, assim, o dinheiro descentralizado chega a mais pessoas.
Uma das primeiras soluções são aquelas oferecidas por exchanges e carteiras centralizadas. Mas não é totalmente satisfatório para a comunidade, principalmente aquela voltada para a descentralização total do dinheiro.
No entanto, O que aconteceria se pudéssemos combinar as capacidades de centralização (ex: recuperação de contas) com as de descentralização das carteiras que estamos acostumados a ver (ex: autocustódia total)? Bem, é exatamente isso que o Ethereum Account Abstraction faz, e o faz inteiramente usando contratos inteligentes, para construir toda uma infraestrutura que permite configurar carteiras fáceis de criar, seguras e com opções tão interessantes quanto a capacidade de recuperar nossos saldos caso percamos o acesso às nossas chaves.
Conhecendo as contas e transações no Ethereum
Antes de ir mais longe em como o Abstração de conta Ethereum, devemos primeiro entender o que é uma conta no contexto do Ethereum e como elas são controladas. Antes de tudo, você deve saber que no Ethereum existem dois tipos de contas:
- Contas do contrato: Esses tipos de contas são simplesmente uma conta que vive na blockchain e cujo comportamento é definido por um contrato inteligente que a controla.
- Contas de propriedade externa (EOAs): neste caso, um EOA é uma conta controlada por um par de chaves pública/privada. Ou seja, nossas bolsas vitalícias.
Agora que entendemos de contas, vamos falar sobre transações. O que é uma transação? Uma transação é um registro de um evento que ocorre na blockchain Ethereum. As transações podem ser usadas para transferir tokens, criar NFTs ou interagir com contratos inteligentes.
As transações são iniciadas por contas de propriedade externa (EOAs). Os EOAs são como pessoas e possuem uma chave pública e uma chave privada.. A chave pública é utilizada para receber transações e a privada para assiná-las. Quando um EOA deseja realizar uma transação, ele a assina com sua chave privada. Essa assinatura é usada para verificar se a transação foi autorizada pelo proprietário do EOA.
As transações também devem pagar taxas ou comissões de gás. As taxas de gás são usadas para pagar os recursos computacionais usados para processar a transação. A quantidade de gás necessária para uma transação depende da complexidade da transação. Com esse conhecimento, temos o básico para entender como esses dois elementos funcionam e como o Ethereum Account Abstraction mudará a maneira como eles funcionam.
Ethereum Account Abstraction, mudando a forma como gerenciamos nossas contas Ethereum
Ethereum Account Abstraction é uma proposta para permitir que os usuários interajam com aplicativos descentralizados (dApps), usando carteiras de contratos inteligentes em vez de contas de propriedade externa (EOAs).
Isso eliminaria completamente a necessidade de os usuários gerenciarem suas próprias chaves privadas. As carteiras de contratos inteligentes podem assinar transações em nome dos usuários, mas seriam controladas pela lógica de contratos inteligentes. Isso permitiria uma série de benefícios, incluindo:
- Maior segurança: os usuários não precisariam mais gerenciar suas próprias chaves privadas, reduzindo o risco de perder seus fundos.
- Experiência de usuário perfeita: os usuários podem interagir com dApps sem ter que se preocupar em gerenciar suas próprias contas.
- Maior adoção: A abstração de conta facilitaria a adoção de dApps por usuários não técnicos.
- flexibilidade– As carteiras de contratos inteligentes podem ser programadas para ter diferentes regras e configurações. Isso permite que os usuários tenham maior controle sobre suas contas e seus fundos.
Abstração de contas é uma proposta que já começou a ser implementada no Ethereum. De fato, o principal contrato inteligente, conhecido como Contrato Inteligente do EntryPoint, que será usado para iniciar a implantação dessas funções, já foi ativado na cadeia Ethereum e foi usado para avançar no desenvolvimento dessa nova forma de contas no Ethereum.
História das propostas de abstração de contas Ethereum
O Ethereum Account Abstraction há muito tem uma série de propostas que datam de 2016. Entre essas propostas, temos:
- EIP-86 (2016): Esta proposta permitiria que os usuários criassem "contratos de conta" que realizassem qualquer verificação de assinatura/nonce desejada, em vez de usar o mecanismo atualmente codificado no processamento de transações.
- EIP-2938 (2020): Esta proposta criaria uma nova transação do tipo AA_TX_TYPE. Transações desse tipo são chamadas de “transações AA”.
- EIP-3074 (2020): Esta proposta permitiria aos usuários delegar o controle de seu EOA a um contrato inteligente. Isso permitiria que qualquer EOA atuasse como uma carteira de contrato inteligente sem implantar um contrato.
A razão pela qual essas propostas ainda não foram implementadas é que elas exigem mudanças no protocolo da camada de consenso da rede Ethereum. Essas mudanças são difíceis de implementar e exigem muita coordenação entre as diferentes partes interessadas. Porém, em 2021, foi feita uma nova proposta de captação de contas: EIP-4337. Esta proposta não requer mudanças no protocolo da camada de consenso e pode ser implementada sobre a rede Ethereum existente.
Como a Ethereum Account Abstraction funciona de acordo com o EIP-4337?
O EIP-4337 apresenta um novo conceito chamado "Operações do usuário". As operações do usuário são um tipo de transação que descreve uma operação a ser enviada em nome de um usuário. As operações do usuário são armazenadas em um "mempool alternativo" que é essencialmente uma sala de espera para armazenar informações sobre transações não confirmadas. Os nós na rede Ethereum podem optar por atuar como empacotadores.
Neste ponto, os poolers coletam as operações do usuário do alt mempool e agrupam várias operações do usuário em uma única transação chamada "transação agrupada«. Depois de criar uma transação agrupada, eles a enviam para um contrato inteligente “singleton” global conhecido como “EntryPoint”. Existe apenas um contrato inteligente EntryPoint em todo o blockchain.
O costureiro chama uma função do contrato inteligente do EntryPoint chamada handleOps. Esta função recebe a transação do pacote e chama uma função especial em cada conta: validUserOp. Toda carteira de contrato inteligente deve implementar esse recurso. A função validUserOp é utilizada para verificar a assinatura da operação, e pagar a taxa caso a conta considere a operação válida, antes de continuar a executar a operação. Cada carteira de contrato inteligente também deve implementar uma segunda função: espera-se que "execute" seja chamado para realmente executar a operação enviada pelo contrato EntryPoint.
Vantagens únicas do modelo
Graças ao modelo exclusivo de Ethereum Account Abstraction, vários novos recursos são introduzidos, incluindo:
recuperação social
A recuperação social é um novo recurso que permite aos usuários adicionar contatos confiáveis que podem ajudá-los a recuperar suas contas caso percam sua frase inicial. Para usar a recuperação social, os usuários criam uma lista de contatos confiáveis e atribuem pesos de recuperação a eles. Se um usuário perder sua frase inicial, seus contatos confiáveis podem usar seus pesos de recuperação para votar em quem deve ser o novo proprietário da conta.
contas de assinatura múltipla
Contas com várias assinaturas são um novo tipo de conta que exige várias assinaturas para determinadas transações. Isso pode ser usado para aumentar a segurança, exigindo que várias pessoas aprovem uma transação antes que ela possa ser executada. Por exemplo, uma empresa pode usar uma conta com várias assinaturas para exigir a aprovação de dois ou mais administradores antes de efetuar um pagamento.
transações em lote
As transações em lote permitem que os usuários agrupem várias transações e assinem-nas com uma única assinatura. Isso pode reduzir os custos de gás, eliminando a necessidade de pagar gás para cada transação individual. Por exemplo, um usuário pode agrupar vários pequenos pagamentos para reduzir o custo total do gás.
transações patrocinadas
As transações patrocinadas permitem que os usuários paguem por transações com tokens ETH ou ERC-20, em vez de Ether. Isso pode ser útil para usuários que não possuem Ether ou que desejam evitar o pagamento de altas taxas de gás. Por exemplo, um usuário pode patrocinar uma transação para enviar uma mensagem a um amigo que não possui Ether.
Assim, a Ethereum Account Abstraction se torna uma melhoria significativa em relação às contas Ethereum tradicionais. Isso torna as contas mais seguras, fáceis de usar e mais acessíveis.