一直以来自托管钱包维护自己的加密资产一直被誉为管理加密资产的最佳实践。从FTX暴雷事件开始,“not your keys, not your coin”(不是你的钥匙,不是你的代币), 引发了大量的交易所提币运动,俗称对交易所的压测。大众的视线也开始开始向非托管钱包(也称自托管钱包)的转移。钱包作为Web3.0的入口,其用户体验与安全性直接影响到加密行业何时能迎来大规模采用。尽管各大钱包在这方面卯足了劲,可在普通用户的眼里,钱包使用体验依然不尽人意。交易所钱包虽然易用,但是自有资产安全性是一个很大的隐患,因为一旦发生如同FTX的破产暴雷,对于在交易所的加密资产将是毁灭性的。当然自托管钱包被盗事件层出不穷。自托管钱包虽然保证自己资产的百分百控制,但助记词和私钥比传统互联网的用户名-密码复杂了很多。据Chainalysis 的研究报告显示,截止 2021 年约有 20% 流通中的比特币,因所有者不记得私钥而丢失。
目前钱包主要面临的两大问题
一、安全问题
助记词或私钥的被盗或丢失,导致资产丢失。
尽管业界做出了巨大的集体努力来教育用户了解保持助记词或者私钥安全的重要性,但这种单点故障仍然是更广泛采用的重大障碍。如果丢失了私钥,除了会丢失所有资产外,用户还必须手动跟踪多个地址、令牌批准,并因必须为新地址提供资金而损害隐私。
WEB3应用层的创新速度意味着今天,黑客通过构造攻击手段不仅可以完全访问某人的毕生积蓄,而且因为链上数据的不可篡改永久存储特性,也越来越多地与有助于他们在线身份的链上历史相关联。获取私钥的动机是如此之大,以至于从业余黑客到国家资助的黑客,每个人都投入了无限的资源来执行越来越有创意的攻击。如今,仅仅依靠用户 安全意识已经远远不够了
二、用户体验
大量用户仍然接受保管风险以换取较低的成本和易用性。模因和痛苦的教训只是让我们到目前为止让自我托管成为默认设置,在非托管钱包基础设施成为保护和管理资产的阻力最小的途径之前,我们还有一段路要走。
当然为了解决上述问题,市面上也出现了很多产品。并且与所有设计决策一样,针对给定用户群体的多个考虑因素的优化问题,以及钱包解决方案和密钥管理实践的能力,以平衡目标用户的集体需求:
- 个人
需要无缝的用户体验、低成本和与 dapp 交互的灵活性。
- DAO
需要透明的资金管理和生态系统治理参与。
- 机构
希望通过链不可知性、可审计性和机构级安全性来外包责任。
两类替代密钥管理解决方案有了重大发展:智能合约钱包(包括多重签名钱包)和MPC钱包。市面上主流产品如下所示:
目前已有的两大解决方案(智能合约钱包,MPC协议钱包)
一、智能合约钱包
以太坊目前有两种账户类型:
- 外部拥有账户(EOA)——由私钥控制
- 智能合约账户——由代码控制
智能合约钱包(“智能钱包”)只是行为类似于钱包的智能合约,即允许用户管理其资金、使用 web3 登录以及与 dapp 交互的界面。与私钥钱包不同,智能钱包需要初始成本来创建,因为智能合约需要部署在链上。
多重签名钱包是智能合约钱包,需要 M-of-N 密钥的签名才能执行交易。虽然 MPC 只创建一个签名,而不管参与的密钥共享数量如何,但多重签名使用由不同私钥生成的不同签名来签署交易。这使得它与现有的私钥钱包兼容,并且位于 HD 钱包地址(如 Ledger 或 Metamask)之上一层。
二、MPC钱包
MPC(多方运算协议),全称为Multi-Party Computation,是一种重要的加密安全措施。其包含了很多种技术方案,在本文的语境下主要指MPC-TSS。而MPC钱包,是通过对私钥进行多方计算在链下实现“多签“、”跨链“等等更复杂的验证方式。
简单来说,就是将一个私钥打碎成多片,将私钥碎片交与一个去中心化的网络(Multi-Party多方)进行计算和加密。当需要私钥签名时,则将多方碎片再拼接起来形成一个完整的私钥。MPC的核心思路为分散控制权以达到分散风险或提高备灾的目的,有效避免了单点失败等安全问题。在密码学中,这对于保存用于解密数据或生成数字签名的私钥特别有用。
MPC 钱包通过使用阈值签名方案 (TSS) 消除了单点故障。在这种范式下,我们创建和分发部分私钥,这样就没有人或机器可以完全控制私钥——这个过程称为分布式密钥生成 (DKG) 。然后,我们可以通过合并股份共同生成一个公钥,而不会暴露各方之间的加密因子。并且在用户自己加密因子泄露的情况下,可以通过Private Key Rotation(是另一种 MPC 协议),它将输入共享的秘密因子,并输出一组新的共享密钥。删除旧的加密因子,并使用新的加密因子替换,可以在不更改相应公钥和地址的情况下以相同的方式使用。
MPC钱包“多方参与”的概念与“多签钱包”有些类似,但实际上,虽然都可以实现“多签”的功能,二者的实现途径是不一样的。
之前我们所熟知的多签钱包,比如Gnosis Safe等等,是建立在智能合约上的钱包,合约中定义了验证逻辑,比如如果需要验证一笔交易,需要一个以上的私钥,或者五个中至少三个私钥进行验证。这类钱包属于后文即将提到的智能钱包的一种。而MPC钱包,则是将一个私钥分解成多个片段,验证过程只涉及到一个私钥。并且计算网络是链下的,与智能合约并无联系。
展望
从长远来看,MPC 和智能钱包并不是竞争关系,而是互补关系。MPC 在密钥生成和管理级别提供共享安全性,而智能合约为功能和应用程序开发带来可扩展性和生态系统方法。例如:
- MPC 可以通过将一个或多个私钥分成多个部分来增强现有的多重签名方案。如果三个人被用来保护 2-of-3 多重签名,这三个用户中的每个人都可以使用 MPC 细分他们的个人私钥,并将他们的 MPC 密钥部分存储在独立的机器上,即让一个 MPC 帐户成为一个保险箱的所有者。
- 社区或 DAO 可以是拥有 PKP NFT 的多重签名的签名者,该 NFT 管理去中心化的云钱包,可用于自动投资或者DEX交互。
由于中心化加密金融机构频频爆雷行为削弱了大家对行业的信任,招致监管审查,最重要的是很多用户在其中失去了的资金,甚至还损失了毕生积蓄。Web3大规模进入大众需要一个优质钱包产品,既能结合MPC钱包的共享安全性又能使用智能合约为应用开发带来可扩展性。让每个人都可以参与去中心化经济而不再将命运掌握在少数人手中。