
2024 年 7 月 18 日,SSP Wallet v1.6.0 加入了 Ethereum——SSP 也成为首个使用 ERC-4337 Account Abstraction 在 Ethereum 上交付真正 Schnorr-multisig 账户的钱包。其他钱包通过把一个外部拥有账户塞在界面背后,就自称"Ethereum multisig"。SSP 选择了更难的路,让 SSP 内保护 Bitcoin 的同一个 2-of-2 模型现在也保护 ETH。
TL;DR
- Ethereum (ETH) 作为一等公民链加入 SSP。
- 账户是遵循 ERC-4337 的智能合约,而不是 EOA——因此 2-of-2 强制约束生效在链上。
- 两个 Schnorr 签名在到达 Ethereum 之前聚合成一个,保持 gas 可预期。
- 签名库以开源形式发布到 npm:
@runonflux/aa-schnorr-multisig-sdk。 - ERC-20 代币支持是下一步;本次发布交付的是 ETH 本身,加上其下的 AA 基础设施。
落地了什么:走难路的 Ethereum 支持
大多数钱包"支持 Ethereum"的方式是生成一个外部拥有账户(EOA)——一把私钥、一份签名、一个故障点。在其上添加 multisig 通常意味着钱包侧的一条软件策略,而不是链上强制执行的规则。链仍然只看到一把钥匙,谁握有它,谁就能独自动用资金。
SSP 拒绝了这条捷径。SSP 2-of-2 模型的全部意义在于:无论是桌面端的 SSP Wallet,还是手机上的 SSP Key,都无法单独动用资金——联合签名是账户的属性,而不是界面的约定俗成。要在 Ethereum 上保留这一点,EOA 永远不够。Ethereum 账户必须是一个在构造上就要求两份签名的智能合约。v1.6.0 交付的正是这个。
Schnorr multisig 在这里意味着什么
Bitcoin 的 UTXO 脚本可以原生表达 2-of-2——SSP 既有链就是靠这一点强制联合签名。Ethereum 的账户模型做不到这一点——没有外力的话。SSP 用 Schnorr 签名来弥合这道缺口。
Schnorr 是一种签名方案,在这里要紧的就一个性质:两个签名者各自产生一份部分签名,这些部分签名可以合并成一份有效签名,在一个聚合后的公钥下完成验证。在任何读取链的人看来,看上去就像一个签名者签了一次。对 SSP 而言,是两台设备必须达成一致。密码学层面的深度——密钥聚合、随机数协调、MuSig2 风格的回合——若想了解,我们的学院文章Schnorr 签名与 multisig 聚合有完整阐述。面向用户的总结很短:你已经在用的同一套 SSP Wallet + SSP Key 握手流程,如今在 Ethereum 上表现为一份聚合后的 Schnorr 签名。
ERC-4337 Account Abstraction
Account Abstraction(AA)是个伞形术语,指的是让 Ethereum 账户像可编程钱包那样行事,而不是裸露的密钥对。在标准 Ethereum 模型下账户分两类:EOA,由一把私钥控制;合约,无法自行发起交易。AA 在应用层抹平了这种区分。
ERC-4337 是这样一个 Ethereum 标准:它在不改动 Ethereum 自身的前提下交付 AA。它不靠硬分叉,而是定义了一种更高层的交易对象 UserOperation、一个把它们打包成普通 Ethereum 交易的 bundler,以及一个负责验证它们的 EntryPoint 合约。你的"账户"是一份智能合约,它自行决定要如何对花费进行认证——对 SSP 而言,这条认证规则就是:必须有来自 SSP Wallet 和 SSP Key 的聚合 Schnorr 签名,否则不行。无须 L1 硬分叉,无须特殊节点运营方,无须主网上已部署的内容之外的任何信任假设。
开源库
Schnorr-multisig 签名层并未深埋在 SSP 应用里。我们把它抽取成一个可复用库,以与 SSP 其他部分相同的开源姿态发布出去。TypeScript SDK 在 npm 上的名字是 @runonflux/aa-schnorr-multisig-sdk;与之配套的 Solidity Account Abstraction 合约则在 GitHub 上的 @runonflux/account-abstraction 仓库里。
如果你是钱包开发者、安全研究者,或者只是好奇 Schnorr-multisig AA 在 Ethereum 上究竟是怎么拼装起来的,这两个项目都在那里,等着被阅读、fork 和回馈。我们欢迎 Pull Request 与 issue——与其让每个想要这个原语的钱包都自己重新发明一遍,我们更愿意用更多双眼睛打磨同一份共享库。
这能解锁什么
具体到 v1.6.0,这次推出的链就是 Ethereum 本身——ETH 余额、ETH 转账,跟你为其他每一种币使用的 Chains 面板开关一样,只是背后多了一个 AA 账户。这一版铺下的管线,才是更难的那一部分。一旦 2-of-2 Schnorr AA 账户存在并能跑通,任何"Ethereum 形状"的余额都变得触手可及。
ERC-20 代币支持是顺理成章的下一步,也已经在路线图上——等它上线时,我们会用一篇独立的 newsroom 文章详述。今天的标题是:Ethereum 已在 SSP 中,以正确的方式进了 SSP,而其下的密码学与智能合约基础是公开在 npm 和 GitHub 上的开源,任何人都可以审视。