目前主流的两种解决方案取得了重大进展,即无助记词的加密钱包:智能合约钱包(包括多重签名钱包)和多方计算(MPC)钱包。
作者:Zoe Zhou
根据 statista.com 数据显示,截至 2022 年 11 月,数字钱包用户数已达 8500 万(YOY~6.3%)。数字钱包作为 Web3.0 的入口,已处于熊市建设期间的热点风口。它的用户体验和安全性直接影响加密货币及其应用在何时被大规模采用。
01 “没有私钥就等同于没有令牌”
“拥有数字资产的前提是完全真实地掌握自己的私钥。”
自托管数字钱包虽然安全,但助记词和私钥比传统的 Web2.0 入口——“用户名-密码” 要复杂得多。根据 Chainalysis 在 2021 年的一份报告,大约有 20% 的比特币丢失是因为其所有者不记得私钥。FTX 倒闭等无数次黑客攻击和安全事件不断引起业界的关注。
在以太坊上,有两种基本的账户类型:
EOA 账户(Externally Owned Account):一个 EOA 的每个唯一私钥应该通过 12 个唯一的助记词推导出来。目前主流的 dApp 钱包大多为 EOA 钱包,如 Metamask、Phantom(Solana)、BSC Wallet(BSC)、Keplr(Cosmos)等,这类钱包不可编程。
合约账户(Contract Account,通过 EOA 账户部署在链上的智能合约):是一段通过 EOA 账户部署在链上的可编程 EVM 代码,只能被 EOA 账户调用。
总之,每个账户都由唯一的私钥确定,但机制存在缺陷,即私钥的遗忘、丢失和泄露会造成不可逆的数字资产损失。
目前主流的两种解决方案取得了重大进展,即无助记词的加密钱包:智能合约钱包(包括多重签名钱包)和多方计算(MPC)钱包。
02智能合约钱包和抽象账户
智能合约钱包是使用特定的 EOA 账户管理链上资产的智能合约,可以支持进一步的编程。例如,多重签名钱包是一种智能合约钱包,需要 M-of-N 密钥的签名才能批准交易。这种方法可以增强钱包的安全性,因为它要求多个密钥控制资产,而不是只有一个私钥。
近期,由于 EIP-4337 提案取得重大进展,以太坊中不需要共识层协议更改的账户抽象、智能合约钱包再次成为热门话题。账户抽象所做的是解耦签名者和账户之间的关系,结合 CA 的可编程性和 EOA 主动发起交易的能力。因此,用户可以自定义内部逻辑,而无需从共识层或底层进行改进。
在过去,由于技术限制和共识协议层的复杂性,很多关于账户抽象的提案都被搁置了。然而,随着以太坊的发展和技术进步,账户抽象已经成为可能,这将为智能合约钱包等新型钱包带来更多的发展空间。
EIP-4337 的主要目标是将签名验证、gas 支付和重放保护等关键功能从以太坊的核心协议中分离出来,放到智能合约中执行。这样,具有任意验证逻辑的智能合约钱包可以作为主账户,而不需要进行任何共识层协议的修改。验证器、MEV 搜索器或应用程序本身可以从 UserOperations 池中获取交易,并将其转发到区块链以支付费用。这个提案的主要优势是减少了以太坊核心协议的复杂性,同时提高了灵活性和可扩展性。
EIP-4337 还存在一些兼容性和验证过程方面的问题,因此需要时间来完善。另外,引入新的合约机制和功能模块可能会带来新的合约风险和增加 gas 费用等问题。因此,对于账户抽象钱包的应用开发,观望阶段是必要的。不过,随着时间的推移和技术的不断进步,这种钱包形式有望在未来得到广泛应用和推广。
03MPC 钱包
论文《Two-Party ECDSA from Hash Proof Systems and Efficient Instantiations 》将 MPC(多方计算)技术的应用引入了公众关注。通俗地说,MPC 协议旨在确保的最基本属性是:
- 输入隐私:无法从发送的消息中推断出有关各方持有的私人数据的信息。
- 正确性:任何愿意分享信息或偏离指示的当事方的适当子集都不应该能够迫使诚实的当事方输出不正确的结果。
MPC 钱包使用阈值签名方案 (TSS) 来创建一个私钥的份额。它们旨在通过要求多方共同创建私钥片段然后验证交易来提高安全性。最重要的是,在账户创建、使用、保存、备份和恢复过程中,私钥不会出现在任何过程。
04MPC 钱包会是更好的解决方案吗?
在这里,我们将关注以下属性来评估 WEB3.0 钱包:
安全性:
智能钱包使用单个私钥来控制和访问资金。由于智能合约可以定制,因此存在合约漏洞和兼容性等风险。即使在多重签名钱包等多个设备上分散存储也不能保证完全安全。有经验的黑客可以追踪和重建密钥,从而在破坏一台服务器后在网络中横向移动并破坏其他服务器或设备。
MPC 钱包将私钥分成几部分,并分发给多个参与方,使攻击者更难窃取私钥。在某些特定的跨链场景中,如果不需要多链交易和与 dApp 的高频交互,MPC 钱包会更加安全。然而,他们无法避免链下治理,例如签署授权政策和批准法定人数等。不能说两者中哪一个具有绝对的安全性。我们更愿意专注于提高用户体验。
易用性:
是否像 Web2.0 支付产品一样流畅无缝体验。
两款钱包都没有助记词,比传统钱包解决方案更人性化,例如 MetaMask(基于浏览器)。
功能性:
是否满足 Web3 用户的实际需求,如 DeFi 或 NFT 日常交易、投资、数字身份、web3 社交等。
与功能有限的传统 EOA 钱包相比,智能钱包具有多重签名交易、每日转账限额、紧急账户冻结和更安全的账户恢复等高级功能。 某些组织,如交易所、托管人和其他大型数字资产企业可能更喜欢 MPC 钱包,因为这种技术可以防止对任何拥有单一资产密钥的员工产生信任。Lit Protocol 等一些方案可以通过 HTTP 请求与链下数据交互,这可能使 MPC 对 Web 资产有用。
可扩展性:
在生态系统中构建新功能和集成是否更容易。
智能钱包本质上是智能合约,它使开发人员的生态系统能够默认扩展钱包功能,任何人都可以审核实现和功能扩展。
MPC 协议没有标准化,现有生态系统主要由定制化的 MPC 钱包产品组成。
成本:
由于需要验证多个签名,来自多重签名智能钱包的单次操作通常比现在的 MPC 更昂贵,尽管从长远来看,交易批处理可以帮助节省成本。
MPC 钱包可能具有较低的交易和恢复成本。 MPC 钱包在区块链上表示为一个地址,不收取额外的汽油费,这对于每天进行数百笔交易的 B2C 用户来说可能很重要。
透明度:
智能钱包具有更透明和可审计的代码库。由于密钥生成和签名是在链下生成的,而且许多 MPC 协议不是开源的,因此生态系统没有简单的方法来独立审计和集成它们以在出现问题时进行分析。 MPC 钱包阻碍了透明度,需要更严格的操作审计。
MPC 钱包作为一种链下钱包解决方案,既可以控制基于外部账户的普通钱包,也可以控制智能钱包。不涉及以太坊共识层或合约层的变化。对用户来说成本更低,短期内更可行。但链下多方问责制无法回避,钱包产品无论是安全性还是用户体验方面的竞争力提升都不明显。
智能钱包是一个有很多创新机会的产品,可以带来更多新的应用和用例。但是,账户抽象是一个大工程,需要其他智能合约、开发者、以太坊架构师配合升级。值得注意的是, L2s 大大加快了采用速度,降低了成本,提高了可扩展性,例如 Starkware 已经将所有 Starknet 账户原生智能钱包, zkSync 2.0 也将与 AA 一起推出。
综上所述,我们认为两者并不矛盾,两者的取舍还要看具体的需求。 MPC 在密钥生成和管理层面提供安全性,而智能合约为生态系统发展带来可扩展性和更多应用。他们本质上不在同一个维度来解决私钥的管理问题。我们期待看到更多应用这两种技术的创新产品。例如,MPC 协议可能可以与多重签名钱包结合使用。
05两种钱包的比较小结
正是因为钱包开发者可以基于智能合约不断更新新功能的优势,以及对于程序化支付和游戏高频交易等应用场景的需求,使得越来越多的开发者和团队投身于智能钱包的开发和创新。我们对钱包抽象账户的新叙述持积极态度。如 Visa 发表的文章《 Auto Payments for Self-Custodial Wallets 》,探讨了使用账户抽象钱包 Argent 在 StarNet 网络上实现自动支付。程序化支付允许用户使用自托管钱包自动支付而无需签署每笔交易。此外,目前市场上已经涌现出多个智能钱包产品,如 Argent、MetaMask、Gnosis Safe、Rainbow 等,它们在用户体验、安全性、功能等方面都有不同程度的突破和创新。同时,也有一些钱包团队在开发针对特定场景的定制化钱包,如在 NFT 领域应用广泛的 MetaHero 钱包。
需要注意的是,智能钱包的开发不仅仅是技术上的挑战,还需要充分考虑用户需求和体验。在用户隐私保护和授权管理方面,智能钱包需要具备更高的安全性和便捷性。在此基础上,智能钱包的功能和设计也需要更贴近用户需求,提供更加个性化和细分化的服务。此外,智能钱包还需要与其他应用和生态系统进行深度集成,提供更加完整和一体化的服务。
总之,MPC 钱包和智能钱包各自有其优势和劣势,在不同场景和需求下选择合适的钱包方案是关键。对于个人用户而言,智能钱包可能更适合用于日常交易和管理数字资产,因为它们具有更广泛的应用和更好的用户体验。对于机构或企业用户,MPC 钱包可能更适合,因为它们更安全、更容易实现多方问责制,并且具有更低的成本和更好的可扩展性。此外,随着技术的发展,我们还可能看到更多融合智能合约和 MPC 技术的钱包产品,以提供更全面的解决方案。
总结
“技术只是功能实现的充分条件,而功能将导致市场格局的必然变化。”
谈 MPC 协议、账户抽象等技术并不难,但从技术机制到市场还有一系列的产品迭代。除了大家关心的安全问题,用户体验的提升也是我们评价钱包产品的一个非常重要的维度。毕竟,作为进入 Web3.0 的工具,钱包产品不应该只服务于现在的用户(已经习惯了私钥和助记词),主要目的应该是 “打破生态”,提供更流畅的体验用户体验,让更多的 Web2.0 人使用。
目前,EIP-4337 是最可行的账户抽象方案。已经有很多智能钱包项目在探索这条道路。我们建议可以多关注账户抽象和智能钱包项目的建设,尤其是 Layer 2 方向。
我们认为 MPC 协议是一种更加安全可靠的技术,但是如何在实际的 MPC 钱包场景中更好的实现是关键。我们可能需要更多耐心,才能看到针对个人和机构的更多样化、更有针对性的解决方案。