< Voltar à Sala de Imprensa

Ethereum entra no SSP — multisig Schnorr no ERC-4337

·4 min de leitura·Por SSP Editorial Team
Selo RELEASE com ícones de chave, raio, escudo e CPU sobre a chamada Ethereum + Schnorr Multisig — Account Abstraction ERC-4337

Em 18 de julho de 2024, o SSP Wallet v1.6.0 adicionou Ethereum — e o SSP tornou-se a primeira carteira a lançar verdadeiras contas Schnorr-multisig em Ethereum usando Account Abstraction ERC-4337. Outras carteiras se autointitulam "Ethereum multisig" empilhando uma única conta de propriedade externa atrás de uma interface. O SSP escolheu o caminho mais difícil, para que o mesmo modelo 2-de-2 que protege o Bitcoin dentro do SSP agora proteja também o ETH.

TL;DR

  • Ethereum (ETH) entra no SSP como cadeia de primeira classe.
  • As contas são contratos inteligentes seguindo ERC-4337, não EOAs — então a aplicação 2-de-2 vive na cadeia.
  • Duas assinaturas Schnorr são agregadas em uma só antes de chegar ao Ethereum, mantendo o gas previsível.
  • A biblioteca de assinatura é de código aberto no npm: @runonflux/aa-schnorr-multisig-sdk.
  • O suporte a tokens ERC-20 é o próximo passo; esta versão é o ETH em si, mais os fundamentos de AA por baixo.

O que chegou: suporte a Ethereum, do jeito difícil

A maioria das carteiras "suporta Ethereum" gerando uma conta de propriedade externa (EOA) — uma única chave privada, uma única assinatura, um único ponto de falha. Adicionar multisig em cima costuma significar uma política de software do lado da carteira, não uma regra imposta na cadeia. A cadeia ainda vê uma chave, e quem a detém pode mover fundos sozinho.

O SSP recusou esse atalho. O sentido do modelo 2-de-2 do SSP é que nem o SSP Wallet no desktop nem o SSP Key no celular podem mover fundos sozinhos — a coassinatura é uma propriedade da conta, não uma convenção de interface. Para preservar isso no Ethereum, uma EOA nunca seria suficiente. A conta Ethereum precisava ser um contrato inteligente que exige duas assinaturas por construção. Foi exatamente isso que foi lançado no v1.6.0.

O que significa aqui Schnorr multisig

Os scripts UTXO do Bitcoin conseguem expressar 2-de-2 nativamente — é assim que as cadeias atuais do SSP impõem a coassinatura. O modelo de contas do Ethereum não consegue, não sem ajuda. O SSP fecha essa lacuna com assinaturas Schnorr.

Schnorr é um esquema de assinatura com uma propriedade que importa aqui: dois signatários podem cada um produzir uma assinatura parcial, e essas parciais podem ser combinadas em uma única assinatura válida que se verifica sob uma única chave pública agregada. Para quem observa a cadeia, parece que um único signatário assinou uma vez. Para o SSP, dois dispositivos precisaram concordar. A profundidade criptográfica — agregação de chaves, coordenação de nonces, rodadas estilo MuSig2 — está coberta em nosso artigo da academia sobre assinaturas Schnorr e agregação multisig, se você quiser. O resumo para o usuário é curto: o mesmo aperto de mãos SSP Wallet + SSP Key que você já usa, agora expresso como uma assinatura Schnorr agregada no Ethereum.

Account Abstraction ERC-4337

Account Abstraction (AA) é o termo guarda-chuva para permitir que contas Ethereum se comportem como carteiras programáveis em vez de meros pares de chaves. Sob o modelo padrão do Ethereum existem dois tipos de conta: EOAs, controladas por uma única chave privada, e contratos, que não conseguem iniciar transações sozinhos. AA dissolve essa distinção na camada de aplicação.

ERC-4337 é o padrão Ethereum que entrega AA sem mudar o próprio Ethereum. Em vez de um hard fork, define um objeto de transação de nível mais alto chamado UserOperation, um bundler que os transforma em transações Ethereum normais, e um contrato EntryPoint que os valida. Sua "conta" é um contrato inteligente que decide como quer autenticar gastos — para o SSP, essa regra de autenticação é: uma assinatura Schnorr agregada do SSP Wallet e do SSP Key, ou nada. Sem hard fork de L1, sem operadores de nó especiais, sem premissas de confiança fora do que já está implantado na mainnet.

A biblioteca de código aberto

A camada de assinatura Schnorr-multisig não está enterrada dentro do app SSP. Nós a extraímos como uma biblioteca reutilizável e a publicamos sob a mesma postura de código aberto que o resto do SSP. O SDK em TypeScript vive no npm como @runonflux/aa-schnorr-multisig-sdk; os contratos Solidity de Account Abstraction com os quais ele se acopla vivem no repositório @runonflux/account-abstraction no GitHub.

Se você é desenvolvedor de carteira, pesquisador de segurança ou apenas curioso sobre como AA Schnorr-multisig realmente se compõe no Ethereum, ambos os projetos estão lá para ler, fazer fork e contribuir de volta. Pull requests e issues são bem-vindos — preferimos endurecer uma biblioteca compartilhada com mais olhos do que deixar cada carteira que quer essa primitiva reinventá-la.

O que isto desbloqueia

Para o v1.6.0 especificamente, a cadeia em oferta é o Ethereum em si — saldos ETH, transferências ETH, o mesmo botão do painel Chains que você usa para qualquer outra moeda, agora com uma conta AA por trás. O encanamento que esta versão assenta é a parte mais difícil. Uma vez que as contas Schnorr AA 2-de-2 existem e funcionam, todo saldo com formato Ethereum se torna alcançável.

O suporte a tokens ERC-20 é o próximo passo natural, e já está no roadmap — vamos cobri-lo em seu próprio post de newsroom quando ele for lançado. Por hoje, a manchete é que o Ethereum está no SSP, está no SSP do jeito certo, e os fundamentos criptográficos e de contratos inteligentes por baixo dele são de código aberto no npm e no GitHub para qualquer um inspecionar.

Fonte: notas da versão SSP Wallet v1.6.0.

Compartilhar este artigo

Artigos relacionados