Web3钱包2.0时代:MPC钱包vs智能合约钱包

Web3钱包2.0时代:MPC钱包vs智能合约钱包

在波哥大举办的 Devcon 6 大会中,Tomasz Tunguz 分享了一些关于 Web3.0 的统计数据:目前各主流公链的日活跃用户数(DAU)累计约为 250 万,而传统互联网的 DAU 为 50 亿,前者仅占后者的 0.05%。从供给侧来看,约有 1.6 万名开发者在 Web3.0 领域进行开发,而全球开发者总数为 2700 万,这意味着 Web3.0 领域的开发者仅占不到 0.06%。这些数据清楚地表明,Web3.0 距离大规模采用还有很长的路要走。

钱包作为 Web3.0 的入口,其用户体验对于加密行业的广泛接纳至关重要。尽管各大钱包不断努力改进用户体验,但在普通用户的眼中,钱包的使用体验仍然不尽如人意。托管钱包虽然易于使用,但安全性是一个重大隐患,钱包被盗事件屡见不鲜。自托管钱包相对安全,但保管长长的助记词和私钥的方式与传统互联网的用户名-密码体系相比要复杂得多。据 Chainalysis 的研究报告显示,截至 2021 年,约有 20% 的流通比特币因所有者不记得私钥而丢失。

为什么我们只能通过私钥进行验证呢?要回答这个问题,我们需要了解一些背景知识和概念。以太坊上有两种账户类型:外部账户和合约账户。外部账户是用于发起交易的钱包账户,它们被称为“外部”是因为这些账户本身没有代码,独立于以太坊虚拟机之外,由用户通过私钥进行控制。

合约账户具有自定义逻辑,但它们无法主动发起事务。因此,任何合约状态的改变都依赖于外部账户发起事务,并由外部账户支付 Ether。那么如何验证事务的合法性呢?以太坊使用默认的验证逻辑——中本聪设计的 secp256k1,该算法用于生成密钥对。签名的正确性可以通过验证该签名是否出自与某个公钥对应的私钥来检验。因此,用户必须掌握这个私钥。这就是为什么无论如何优化钱包的用户体验也无法绕开私钥的问题。

如果想要在外部账户上引入更复杂的逻辑来实现其他功能(例如多签),这是无法直接实现的。目前有几种解决方案可以解决这个问题,其中最可行的是 MPC 钱包和智能合约钱包。

MPC 钱包(多方计算钱包)是一种重要的加密安全措施。它通过将私钥拆分成多个片段并分发给去中心化的网络进行计算和加密,实现了“多签”和其他更复杂的验证方式。当需要私钥签名时,碎片被重新组合成一个完整的私钥。MPC 的核心思想是分散控制权以分散风险或提高备灾能力,从而有效避免单点故障等安全问题。

虽然 MPC 钱包和多签钱包都可以实现“多签”功能,但它们的实现方式不同。多签钱包(例如 Gnosis Safe)是建立在智能合约上的钱包,其中定义了验证逻辑。例如,如果需要验证一笔交易,需要一个以上的私钥或五个中至少三个私钥进行验证。这类钱包属于即将介绍的智能合约钱包的一种。而 MPC 钱包则是将一个私钥分解成多个片段,验证过程只涉及到一个私钥。并且计算网络是链下的,与智能合约无关。

智能合约钱包基于智能合约而不是外部账户。市场上已经存在不少智能合约钱包,但由于缺乏统一的行业标准、存在合约漏洞以及与其他合约的兼容性问题等,它们尚未得到广泛应用。最近,智能合约钱包因账户抽象提案 EIP-4337 的重大进展而再次成为热门话题。账户抽象到底是什么意思呢?它又能为用户带来怎样的全新体验?在了解以太坊上的账户抽象之前,我们需要先了解传统的以太坊账户。

为您推荐