No começo do ano, comentei que uma das tendências da Web3 para ficar de olho em 2023 é o “Account Abstraction”, um método que busca melhorar a experiência do usuário e reduzir os riscos de usabilidade dos criptoativos. Com ela, os usuários poderão transacionar e custodiar suas criptos com maior facilidade e segurança.
Não à toa, tanto a rede de pagamentos VISA, quanto o blockchain Ethereum, estão apostando no Account Abstraction para tornar as transações cripto mais amigáveis ao usuário.
Pois bem, partindo da atual dificuldade de automatizar pagamentos em blockchains, neste artigo exploraremos a busca por formas de pagamento mais convenientes, a relação entre UX, transações cripto, autocustódia e o foco da inovação na Web3. Ao final, veremos como Account Abstraction pode viabilizar pagamentos automáticos na Web3.
A busca por formas de pagamento mais convenientes
Em uma pesquisa recente, cerca de 3 em cada 10 consumidores entrevistados mudaram a forma de pagamento de suas contas nos últimos dois anos, e encontrar uma forma de pagamento mais conveniente foi a razão mais citada.
O pagamento de contas on-line está crescendo rapidamente e os clientes — especialmente os mais jovens — passaram a esperar a capacidade de configurar pagamentos recorrentes de forma automática. Contudo, embora possamos agendar nossos pagamentos de forma automática em qualquer aplicativo de banco, essa não é uma tarefa tranquila em uma blockchain como Ethereum, a maior rede blockchain por volumes de pagamento.
Para quem usa carteira digital não custodiada no blockchain Ethereum (onde o usuário tem controle exclusivo sobre a carteira e chaves privadas), automatizar pagamentos é uma tarefa extremamente trabalhosa, que passa longe do conhecimento da maioria das pessoas.
Levando isto em conta, aqueles envolvidos em plataformas de smart contracts e blockchains, que reconhecidamente estão liderando a construção da Web 3, começaram a buscar soluções que facilitassem a experiência do usuário na Web3.
O que UX, transações cripto e autocustódia têm a ver com Web3?
É bom lembrar que o principal foco de inovação da Web3 é devolver a identidade e a propriedade dos dados e ativos às pessoas. Uma das formas de se fazer isso é, justamente, através de ferramentas para autocustódia que sejam de fácil utilização pelas pessoas.
Tanto produtos como serviços que envolvem criptos e Web3 ainda são um enigma para o grande público. É difícil para a maioria das pessoas entender todos os procedimentos necessários para fazer uma transação peer-to-peer, gerenciar sua chave privada, ter expertise suficiente para armazenar suas criptos, dentre outros.
Ora, se os desenvolvedores Web3 pretendem devolver a propriedade de ativos às pessoas, é bom que comecem a focar mais em projetos que levem em conta não só a maturidade das tecnologias envolvidas, mas principalmente a facilidade de acesso e os riscos da usabilidade.
Na Web3, os usuários precisam de métodos claros e seguros para custódia de seus ativos.
Aqui é que soluções com melhorias na segurança e simplificação da experiência do usuário em aplicativos Web3 são bem vindas.
Mas antes de abordarmos tais soluções, é preciso dar um passo atrás e compreender alguns conceitos.
Transações e pagamentos automáticos no blockchain Ethereum
1) Como funciona uma transação na Blockchain Ethereum hoje?
Atualmente, existem dois tipos de contas na rede Ethereum: Contas Externas (EOA), mais comumente chamadas de contas de usuário, e Contas de Contrato (CA), chamadas de contratos inteligentes.
Uma conta de usuário (EOA), controlada por uma chave privada, pode enviar transações. Um contrato inteligente tem um código associado que pode ser executado para realizar determinada transação. Contudo, um contrato inteligente não pode iniciar transações por conta própria.
As transações devem sempre originar-se de uma conta de usuário (EOA) e ser assinadas pelo usuário. As transações podem ser uma simples transferência de token entre contas de usuário na blockchain Ethereum; ou mais complicadas que acionam uma série de operações a serem executadas através de contratos inteligentes para executar muitas ações diferentes.
Hoje, se desejarmos pagar contas recorrentes como assinaturas de TV, contas de serviços públicos, taxas de condomínio, na blockchain ethereum, precisaremos iniciar uma transação que transferirá tokens de nossa conta de usuário (EOA) para uma conta de usuário pertencente ao destinatário.
Associada a esta conta EOA, existe uma chave secreta (chave privada), que é usada na geração de uma assinatura ECDSA – Elliptic Curve Digital Signature Algorithm –, crucial para a criação de uma transação válida na blockchain.
E isso nos leva a um problema…
2) A dificuldade de viabilizar pagamentos automáticos em blockchain.
Se estivermos viajando, sem acesso à internet, quem irá gerar a assinatura ECDSA para criar a transação que fará determinado pagamento?
Uma solução aqui seria utilizar uma carteira custodiada, onde um terceiro controla a chave privada da sua carteira. Isto é, confiamos a custódia e o gerenciamento de nossos ativos (fundos) a um terceiro sempre que quisermos negociá-los ou enviá-los para outro lugar.
A vantagem de uma carteira custodiada por terceiro é que podemos configurá-la para realizar um pagamento automático conectado à carteira de custódia. Como o custodiante (terceiro), que administra sua carteira, tem acesso à sua chave privada, ele poderá gerar a assinatura necessária para criar as transações para pagamentos automáticos programados. E isto pode acontecer quando estamos ausentes, viajando e sem acesso à internet. A desvantagem é que, enquanto uma carteira custodiada por terceiro diminui nossa responsabilidade pessoal, também exige que confiemos no custodiante – o terceiro que detém nossos ativos (fundos).
Note que usar uma carteira gerenciada por terceiros é o oposto do principal foco de inovação da Web3, que é devolver o controle e gerenciamento de ativos aos usuários.
Outro modo de enxergar a atual dificuldade de viabilizar pagamentos automatizados no blockchain Ethereum é através da terminologia de pagamentos “pull and push“.
3) Ethereum e pagamentos Pull & Push
Um pagamento Pull é uma transação de pagamento que é acionada pelo recebedor do pagamento, enquanto um pagamento Push, por outro lado, é uma transação de pagamento que é acionada pelo pagador.
O Ethereum suporta pagamentos Push, mas não suporta nativamente pagamentos Pull. E pagamentos automáticos são um exemplo de pagamentos Pull.
Neste cenário, diante da busca e necessidade crescente de automatização de pagamentos online, como tornar isto possível no blockchain de uma forma mais simplificada?
É aqui que reside a importância da implementação do Account Abstraction na blockchain Ethereum via EIP-4337, como veremos a seguir.
Account Abstraction e outras abordagens existentes para melhorar UX e segurança das transações na Web3
De forma bem simples, o Account Abstraction (AA) transforma uma conta de usuário em um contrato inteligente. Ele remove as complexidades da custódia, carteiras e blockchains e as substitui por uma experiência de usuário mais familiar.
Assim, ao invés dos usuários precisarem baixar carteiras e assinar transações toda vez que quiserem realizar um pagamento, as transações passam a ser agrupadas e aprovadas de uma só vez.
No blockchain Ethereum, por exemplo, a AA combina contas de usuário e contratos inteligentes em apenas um tipo de conta Ethereum, fazendo com que as contas de usuário (EOA) funcionem como contratos inteligentes.
E a lógica do AA é uma maior flexibilidade no processo de validação de uma transação blockchain, que é alcançada por possibilitar:
- contas com vários proprietários via verificação de assinatura multisig.
- o uso de assinaturas pós-quantum para a verificação das transações.
- uma conta pública em que qualquer pessoa poderia fazer uma transação, removendo completamente a necessidade de assinatura.
Com AA, um usuário implanta um contrato de conta com qualquer uma das características descritas acima, entre outras.
E, o mais importante, Account Abstraction possibilita pagamentos automáticos, pois é possível estabelecer regras de validade de uma transação que não incluem mais a verificação de assinatura.
Pensamentos finais
O conceito de AA não é novo. Em 2017, Vitalik – cofundador do Ethereum – escreveu uma EIP sobre o assunto.
Mas só agora que o The Merge ocorreu e as discussões se deslocaram – da mudança do mecanismo de consenso do Ethereum –, para a facilitação do embarque de novos usuários, o Account Abstraction voltou a ser a bola da vez.
Por fim, o AA não é a única solução para pagamentos automatizados em blockchain.
Outros projetos como o Web3Auth estão construindo kits de desenvolvimento de software (SDK) para que desenvolvedores possam aproveitar sua infraestrutura de computação multipartidária (MPC).
Mas apesar da tecnologia MPC eliminar a necessidade dos usuários de manterem todo o fardo da gestão de chaves privadas, sua lógica entra em choque com o espírito da Web3 – ao exigir a confiança do usuário em um parte confiável (como uma exchange, por exemplo).
Talvez por isso, em hackathons recentes, o Account Abstraction tenha sido priorizado entre construtores e desenvolvedores da Web3.
Este artigo foi produzido por Tatiana Revoredo, membro fundadora da Oxford Blockchain Foundation, representante no European Law Observatory on New Technologies e colunista da MIT Technology Review Brasil.