A abstração da conta é segura? Um Guia para Mitigação de Risco

Principiante12/12/2023, 4:51:36 PM
Este artigo analisa as características conceptuais e os casos de utilização de Account Abstraction (AA), utiliza o ERC-4337 como exemplo para ilustrar a sua prática e explica os riscos potenciais e contramedidas.

Antes da abstração da conta, havia dois tipos de contas no Ethereum: contas de propriedade externa (EOA) e contratos inteligentes. Um EOA é uma conta de utilizador típica que tem uma chave privada. Este é também o único tipo de conta que pode iniciar uma transação. Por exemplo, um utilizador tem de ter ETH para enviar uma transação. Criar transações em lote é difícil e não há opções de recuperação se um utilizador perder a sua chave privada. A abstração da conta (AA) foi criada para resolver estes problemas. Mas é uma solução sem riscos? Este guia cobre os fundamentos do AA antes de detalhar os seus riscos e como mitigá-los.

Neste Guia:

  • Quais são as principais características da abstração da conta?
  • Casos de uso de abstração de conta
  • Implementações de abstração de conta
  • Risco de abstração da conta vs. recompensa?
  • Perguntas frequentes

Quais são as principais características da abstração da conta?

A abstração de contas é uma tecnologia que permite que os contratos inteligentes inicializem as transações por si próprios. Permite aos utilizadores criar contas representadas por contratos inteligentes. Esta tecnologia permite também várias funcionalidades que melhoram a interação dos utilizadores com a cadeia.

  • Um utilizador pode pagar taxas de gás com fichas
  • As aplicações podem patrocinar gás para transações dos utilizadores
  • Existem mecanismos flexíveis para proteger a conta
  • Pontes e indexes de cadeia cruzada podem funcionar sem moeda nativa.

Casos de uso de abstração de conta

  • Transações gratuitas: Os projetos podem pagar taxas de transação dos utilizadores.
  • Transações entre cadeias não nativas: A possibilidade de ligar um token ERC20 a outra cadeia e pagar com ele pelas transações, o que significa que não haverá necessidade de financiar adicionalmente a conta com moeda nativa.
  • Recursos adicionais de segurança da carteira : Em caso de risco de segurança, todas as operações na conta podem ser pausadas e o acesso pode ser restaurado com as chaves de backup.
  • Recuperação de conta: Por exemplo, um conjunto de chaves pode ser usado para recuperar a chave.
  • Limites de transação: Uma conta que poderá gastar uma quantia específica de ETH por mês pode ser criada.
  • Assinaturas: Habilitar as subscrições da mesma forma que funcionam com os cartões de crédito tradicionais.

Implementações de abstração de conta

Houve diferentes propostas sobre como implementar AA na rede Ethereum. Alguns deles envolvem alterações significativas no protocolo do Ethereum o que complica a implementação. A implementação mais proeminente é o ERC-4337 que não envolve nenhuma alteração de camada de consenso. A norma replica o mempool de transações numa escala de nível superior. Os contratos inteligentes do ERC-4337 foram implantados na rede Ethereum em março de 2023.

O ERC-4337 utiliza contratos inteligentes chamados carteiras em vez de EOA. Esta carteira de contrato inteligente pode ser controlada não só por uma chave privada mas por um mecanismo complexo arbitrário que é codificado no contrato.

Em vez de transações, os utilizadores enviam UserOperations. Um UserOperation contém instruções para executar, verificação de assinaturas e outros dados. Tal como nas transações, um utilizador especifica um prémio para o Bundler priorizar a sua operação.

Mineradores ou empacotadores agrupam as operações em transações de pacote que são então incluídas na rede Ethereum.


Implementação AA: HasHex

Entre outros dados, o UsuárioOperation contém o código para criar uma carteira de contrato inteligente. Se um utilizador não tiver uma carteira, ela é criada para ele.

Se um utilizador quiser pagar a transação com um token ERC20 ou mesmo não quiser pagar por uma transação, especifica um endereço de contrato de pagador no UserOperation. Um pagador é um serviço de terceiros que pagará a transação em troca de tokens ERC20.

Quais são os riscos e como mitigá-los?

Embora a abstração da conta seja criada para melhorar a segurança do utilizador, existem alguns riscos, especialmente nas fases iniciais de adoção. O ecossistema Ethereum é famoso por bugs em contratos inteligentes que levaram a milhares de milhões de dólares roubados por utilizadores mal-intencionados. Aqui estão alguns riscos de AA e como eles podem ser evitados/mitigados.

Risco de bugs na implementação da norma

Como qualquer nova tecnologia, a abstração da conta corre o risco de a sua primeira implementação conter bugs. Os contratos inteligentes do ERC-4337 foram auditados por uma empresa líder em segurança blockchain OpenZeppelin.

Mitigação: A solução é usar a verificação formal — um processo que envolve o uso de métodos matemáticos para provar a exatidão dos contratos inteligentes. O processo de verificação formal dos contratos ERC4337 está em curso mas ainda não está concluído.

Bugs devido a incompatibilidades com alguns contratos inteligentes

Nem todo contrato inteligente é compatível com carteiras de abstração de conta. Por exemplo, os contratos inteligentes que utilizam o campo tx.origin para verificar a carteira que enviou a transação terão um valor inesperado. Outra incompatibilidade ocorre com contratos inteligentes que utilizam assinaturas EOA: não são suportados por carteiras AA.

Nesses contratos, certas funcionalidades cruciais podem não funcionar corretamente. Na pior das hipóteses, os fundos dos utilizadores podem ser bloqueados.

Mitigação: Para diminuir os riscos, um utilizador que utilize uma carteira de abstração de conta deve verificar se o protocolo com o qual interage suporta a tecnologia.

Código de terceiros para carteiras

O padrão foi concebido para que uma carteira de contrato inteligente possa ser criada dentro do primeiro utilizadorOperação através de uma fábrica de contrato inteligente. No entanto, existe o risco de o contrato inteligente de implementação da carteira conter bugs. É extremamente importante usar apenas fábricas de carteiras que foram exaustivamente auditadas e testadas pelas principais empresas de segurança blockchain.

Mitigação: Use apenas serviços confiáveis para criar carteiras e garantir que o código da carteira seja auditado pelo menos por uma empresa de segurança blockchain confiável.

Código de terceiros para pagadores

Se um utilizador ou um projeto usa pagadores, depende de um terceiro para pagar as transações. Pode haver erros na implementação do paymaster, e um paymaster mal-intencionado pode roubar os fundos dos utilizadores.

Deve notar-se que o serviço de paymaster escolhido também pode sofrer de utilizadores mal-intencionados que podem encontrar formas de enganar o pagador para que pague pelas suas transações.

Mitigação: As carteiras só utilizam pagmasters de fornecedores fidedignos e asseguram que o código dos pagadores foi auditado antes de as utilizar.

Melhores práticas

A abstração da conta na cadeia de blocos Ethereum é um conceito relativamente novo. Como tal, as melhores práticas e as estruturas do desenvolvedor para a sua utilização ainda estão em processo de estabelecimento. Existem muito poucos exemplos de utilização de abstração de contas para os programadores aprenderem.

Mitigação: A melhor prática acabará por se desenvolver após a disseminação do padrão. Para os programadores, é crucial partilhar experiências usando a nova tecnologia, especialmente nas fases iniciais de adoção.

Modo de rascunho do padrão

O ERC-4337 ainda está em modo de rascunho, embora os contratos já tenham sido implementados na Mainnet. Existe a possibilidade de o padrão mudar. Note-se que as referidas alterações devem afetar detalhes mais pequenos e não afetar os contratos inteligentes já implantados.

Mitigação: Os programadores devem ficar de olho na forma como a norma se desenvolve e atualizar o código dos seus projetos de acordo com as alterações padrão, se ocorrerem.

Centralização

Embora o ERC-4337 tenha sido concebido para que todos possam iniciar um bundler, pelo menos na fase inicial, o ecossistema de abstração de contas é bastante centralizado, pois existem poucas implementações de Bundlers prontas para produção.

Mitigação: Para evitar riscos de um erro numa implementação do Bundler que afete a rede de abstração da conta, devem ser utilizadas pelo menos algumas implementações do Bundler. Muitas implementações do Bundler estão atualmente em desenvolvimento e em breve muitas delas estarão prontas para produção.

Risco de abstração da conta vs. recompensa?

A abstração de contas é uma tecnologia potencialmente excelente que pode trazer mais adoção ao Ethereum. Ao mesmo tempo, é um dos desenvolvimentos que pode tornar o blockchain mais seguro. Ainda assim, como com qualquer nova adição à tecnologia blockchain nos seus estágios iniciais, os utilizadores devem estar extremamente vigilantes. Rever e pesquisar AA é a melhor escolha para todos dispostos a adotar esta tecnologia.

Isenção de responsabilidade:

  1. Este artigo foi reimpresso de [Beincrypto]. Todos os direitos autorais pertencem ao autor original [Gleb Zykov]. Se houver objeções a esta reimpressão, contacte a equipa do Gate Learn, e eles tratarão disso imediatamente.
  2. Isenção de responsabilidade: As opiniões e opiniões expressas neste artigo são exclusivamente do autor e não constituem nenhum conselho de investimento.
  3. As traduções do artigo para outras línguas são feitas pela equipa do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.

A abstração da conta é segura? Um Guia para Mitigação de Risco

Principiante12/12/2023, 4:51:36 PM
Este artigo analisa as características conceptuais e os casos de utilização de Account Abstraction (AA), utiliza o ERC-4337 como exemplo para ilustrar a sua prática e explica os riscos potenciais e contramedidas.

Antes da abstração da conta, havia dois tipos de contas no Ethereum: contas de propriedade externa (EOA) e contratos inteligentes. Um EOA é uma conta de utilizador típica que tem uma chave privada. Este é também o único tipo de conta que pode iniciar uma transação. Por exemplo, um utilizador tem de ter ETH para enviar uma transação. Criar transações em lote é difícil e não há opções de recuperação se um utilizador perder a sua chave privada. A abstração da conta (AA) foi criada para resolver estes problemas. Mas é uma solução sem riscos? Este guia cobre os fundamentos do AA antes de detalhar os seus riscos e como mitigá-los.

Neste Guia:

  • Quais são as principais características da abstração da conta?
  • Casos de uso de abstração de conta
  • Implementações de abstração de conta
  • Risco de abstração da conta vs. recompensa?
  • Perguntas frequentes

Quais são as principais características da abstração da conta?

A abstração de contas é uma tecnologia que permite que os contratos inteligentes inicializem as transações por si próprios. Permite aos utilizadores criar contas representadas por contratos inteligentes. Esta tecnologia permite também várias funcionalidades que melhoram a interação dos utilizadores com a cadeia.

  • Um utilizador pode pagar taxas de gás com fichas
  • As aplicações podem patrocinar gás para transações dos utilizadores
  • Existem mecanismos flexíveis para proteger a conta
  • Pontes e indexes de cadeia cruzada podem funcionar sem moeda nativa.

Casos de uso de abstração de conta

  • Transações gratuitas: Os projetos podem pagar taxas de transação dos utilizadores.
  • Transações entre cadeias não nativas: A possibilidade de ligar um token ERC20 a outra cadeia e pagar com ele pelas transações, o que significa que não haverá necessidade de financiar adicionalmente a conta com moeda nativa.
  • Recursos adicionais de segurança da carteira : Em caso de risco de segurança, todas as operações na conta podem ser pausadas e o acesso pode ser restaurado com as chaves de backup.
  • Recuperação de conta: Por exemplo, um conjunto de chaves pode ser usado para recuperar a chave.
  • Limites de transação: Uma conta que poderá gastar uma quantia específica de ETH por mês pode ser criada.
  • Assinaturas: Habilitar as subscrições da mesma forma que funcionam com os cartões de crédito tradicionais.

Implementações de abstração de conta

Houve diferentes propostas sobre como implementar AA na rede Ethereum. Alguns deles envolvem alterações significativas no protocolo do Ethereum o que complica a implementação. A implementação mais proeminente é o ERC-4337 que não envolve nenhuma alteração de camada de consenso. A norma replica o mempool de transações numa escala de nível superior. Os contratos inteligentes do ERC-4337 foram implantados na rede Ethereum em março de 2023.

O ERC-4337 utiliza contratos inteligentes chamados carteiras em vez de EOA. Esta carteira de contrato inteligente pode ser controlada não só por uma chave privada mas por um mecanismo complexo arbitrário que é codificado no contrato.

Em vez de transações, os utilizadores enviam UserOperations. Um UserOperation contém instruções para executar, verificação de assinaturas e outros dados. Tal como nas transações, um utilizador especifica um prémio para o Bundler priorizar a sua operação.

Mineradores ou empacotadores agrupam as operações em transações de pacote que são então incluídas na rede Ethereum.


Implementação AA: HasHex

Entre outros dados, o UsuárioOperation contém o código para criar uma carteira de contrato inteligente. Se um utilizador não tiver uma carteira, ela é criada para ele.

Se um utilizador quiser pagar a transação com um token ERC20 ou mesmo não quiser pagar por uma transação, especifica um endereço de contrato de pagador no UserOperation. Um pagador é um serviço de terceiros que pagará a transação em troca de tokens ERC20.

Quais são os riscos e como mitigá-los?

Embora a abstração da conta seja criada para melhorar a segurança do utilizador, existem alguns riscos, especialmente nas fases iniciais de adoção. O ecossistema Ethereum é famoso por bugs em contratos inteligentes que levaram a milhares de milhões de dólares roubados por utilizadores mal-intencionados. Aqui estão alguns riscos de AA e como eles podem ser evitados/mitigados.

Risco de bugs na implementação da norma

Como qualquer nova tecnologia, a abstração da conta corre o risco de a sua primeira implementação conter bugs. Os contratos inteligentes do ERC-4337 foram auditados por uma empresa líder em segurança blockchain OpenZeppelin.

Mitigação: A solução é usar a verificação formal — um processo que envolve o uso de métodos matemáticos para provar a exatidão dos contratos inteligentes. O processo de verificação formal dos contratos ERC4337 está em curso mas ainda não está concluído.

Bugs devido a incompatibilidades com alguns contratos inteligentes

Nem todo contrato inteligente é compatível com carteiras de abstração de conta. Por exemplo, os contratos inteligentes que utilizam o campo tx.origin para verificar a carteira que enviou a transação terão um valor inesperado. Outra incompatibilidade ocorre com contratos inteligentes que utilizam assinaturas EOA: não são suportados por carteiras AA.

Nesses contratos, certas funcionalidades cruciais podem não funcionar corretamente. Na pior das hipóteses, os fundos dos utilizadores podem ser bloqueados.

Mitigação: Para diminuir os riscos, um utilizador que utilize uma carteira de abstração de conta deve verificar se o protocolo com o qual interage suporta a tecnologia.

Código de terceiros para carteiras

O padrão foi concebido para que uma carteira de contrato inteligente possa ser criada dentro do primeiro utilizadorOperação através de uma fábrica de contrato inteligente. No entanto, existe o risco de o contrato inteligente de implementação da carteira conter bugs. É extremamente importante usar apenas fábricas de carteiras que foram exaustivamente auditadas e testadas pelas principais empresas de segurança blockchain.

Mitigação: Use apenas serviços confiáveis para criar carteiras e garantir que o código da carteira seja auditado pelo menos por uma empresa de segurança blockchain confiável.

Código de terceiros para pagadores

Se um utilizador ou um projeto usa pagadores, depende de um terceiro para pagar as transações. Pode haver erros na implementação do paymaster, e um paymaster mal-intencionado pode roubar os fundos dos utilizadores.

Deve notar-se que o serviço de paymaster escolhido também pode sofrer de utilizadores mal-intencionados que podem encontrar formas de enganar o pagador para que pague pelas suas transações.

Mitigação: As carteiras só utilizam pagmasters de fornecedores fidedignos e asseguram que o código dos pagadores foi auditado antes de as utilizar.

Melhores práticas

A abstração da conta na cadeia de blocos Ethereum é um conceito relativamente novo. Como tal, as melhores práticas e as estruturas do desenvolvedor para a sua utilização ainda estão em processo de estabelecimento. Existem muito poucos exemplos de utilização de abstração de contas para os programadores aprenderem.

Mitigação: A melhor prática acabará por se desenvolver após a disseminação do padrão. Para os programadores, é crucial partilhar experiências usando a nova tecnologia, especialmente nas fases iniciais de adoção.

Modo de rascunho do padrão

O ERC-4337 ainda está em modo de rascunho, embora os contratos já tenham sido implementados na Mainnet. Existe a possibilidade de o padrão mudar. Note-se que as referidas alterações devem afetar detalhes mais pequenos e não afetar os contratos inteligentes já implantados.

Mitigação: Os programadores devem ficar de olho na forma como a norma se desenvolve e atualizar o código dos seus projetos de acordo com as alterações padrão, se ocorrerem.

Centralização

Embora o ERC-4337 tenha sido concebido para que todos possam iniciar um bundler, pelo menos na fase inicial, o ecossistema de abstração de contas é bastante centralizado, pois existem poucas implementações de Bundlers prontas para produção.

Mitigação: Para evitar riscos de um erro numa implementação do Bundler que afete a rede de abstração da conta, devem ser utilizadas pelo menos algumas implementações do Bundler. Muitas implementações do Bundler estão atualmente em desenvolvimento e em breve muitas delas estarão prontas para produção.

Risco de abstração da conta vs. recompensa?

A abstração de contas é uma tecnologia potencialmente excelente que pode trazer mais adoção ao Ethereum. Ao mesmo tempo, é um dos desenvolvimentos que pode tornar o blockchain mais seguro. Ainda assim, como com qualquer nova adição à tecnologia blockchain nos seus estágios iniciais, os utilizadores devem estar extremamente vigilantes. Rever e pesquisar AA é a melhor escolha para todos dispostos a adotar esta tecnologia.

Isenção de responsabilidade:

  1. Este artigo foi reimpresso de [Beincrypto]. Todos os direitos autorais pertencem ao autor original [Gleb Zykov]. Se houver objeções a esta reimpressão, contacte a equipa do Gate Learn, e eles tratarão disso imediatamente.
  2. Isenção de responsabilidade: As opiniões e opiniões expressas neste artigo são exclusivamente do autor e não constituem nenhum conselho de investimento.
  3. As traduções do artigo para outras línguas são feitas pela equipa do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.
Comece agora
Registe-se e ganhe um cupão de
100 USD
!