无种子自我托管:论多方计算钱包和智能合约钱包

  • nichanank
  • 发布于 2022-12-01 21:46
  • 阅读 59

本文探讨了加密资产自我托管的重要性,分析了传统钱包、多方计算(MPC)钱包和智能合约钱包的优缺点,并讨论了钱包开发生态面临的挑战。文章指出,MPC钱包和智能合约钱包各有优势,可以互补,共同推动去中心化经济的发展,使用户能够在无需将命运掌握在少数人手中的情况下参与其中。

自托管长期以来一直被誉为管理加密资产的最佳实践。FTXCelsius 的崩溃是众多事件中最新的例子,它提醒业界“不是你的密钥,就不是你的币”,从而引发了向非托管钱包的转移。在围绕 FTX 的信息披露之后,Safe 的净流入超过 8 亿美元,Ledger 在短时间内经历了多次历史最高销售额,Trezor 的销售额激增 300%,ZenGo 的隔夜增长达到三位数并在存款方面创下历史新高,所有这些都发生在同一周。

然而,大量用户仍然接受托管风险,以换取更低的成本和易用性。在使自托管成为默认设置方面,迷因和惨痛的教训只能让我们走到这里,在非托管钱包基础设施成为保护和管理资产的最轻松途径之前,我们还有很长的路要走。

幸运的是,一个蓬勃发展的钱包生态系统为个人、DAO 和机构提供了更多的选择性。加密货币不再仅仅是安全存储,而是将资产投入到新的经济中。更丰富的功能带来了越来越多的攻击面和漏洞利用,要求钱包既能承受攻击,又能支持日常业务和个人使用。

与所有设计决策一样,这是一个针对特定用例在多个考虑因素之间进行优化的问题,以及钱包解决方案和密钥管理实践能够务实地平衡其目标用户的集体需求:

  • 个人想要无缝的 UX、低成本和与 dapps 交互的灵活性。
  • DAO 想要透明的财务管理和生态系统治理参与。
  • 机构 想要通过链无关性、可审计性和机构级安全性来外包责任。

替代密钥管理解决方案的两个类别取得了重大进展:智能合约钱包(包括多签名钱包),以及 多方计算 (MPC) 协议

每个类别中的一些钱包示例。WalletConnect集成页面 更好地代表了全面的列表和生产中钱包的数量。

本文涵盖:

  • 在钱包中要考虑的属性
  • 传统、MPC 和智能合约钱包的概述
  • 钱包生态系统中持续存在的挑战
  • 钱包解决方案中当前权衡的总结,以及对钱包基础设施前景的展望

在钱包中要考虑的属性

  • 安全性。针对简单到复杂的攻击的保护程度。今天的“良好密钥管理”涉及选择解决方案的组合,这些解决方案的入门和运营成本与链上活动的性质和风险金额相匹配。
  • 成本。创建帐户、管理访问和执行事务的成本。
  • UX 和灵活性。访问控制管理、支出策略、限额和权限的粒度。
  • 可恢复性。在发生泄露或生命损失时恢复资产和访问权限的能力。
  • 可扩展性。可以为核心产品带来新功能和集成的产品和服务生态系统。
  • 隐私。地址可以轻松链接到个人的程度,以及钱包在多大程度上揭示了组织的运营程序。

传统 (HD) 钱包

传统钱包使用助记词和分层确定性 (HD) 结构来派生私钥、其对应的公钥和链上地址。这些钱包允许用户生成用于签署交易的私钥,并使用助记词恢复所有密钥。

到目前为止,传统钱包是选择自托管其资产并与区块链应用程序交互的用户的门户。像 MetaMask 这样的浏览器扩展程序和像 Rainbow 这样的移动应用程序已经引导了数百万用户进入生态系统。风险更高的用户可以选择像 Ledger 和 Trezor 这样的硬件钱包,它们可以离线保护私钥,从而提供更好的安全性。

虽然业界共同努力教育用户了解保护助记词和密钥安全的重要性,但这个单点故障仍然是更广泛采用的重大障碍。除了在私钥丢失时丢失所有资产外,用户还必须手动跟踪多个地址、token 授权,并且由于必须为新的 gas 地址提供资金而损害隐私。

应用层面的创新速度意味着,如今,不可撤销的字符串不仅可以完全访问某人的毕生积蓄,而且还越来越多地与构成其在线身份的链上历史记录相关联。获得私钥的动机是如此之大,以至于从业余爱好者到国家支持的黑客都在投入无限的资源来进行越来越有创意的攻击。今天,仅仅依靠用户操作安全已经不够了 — 我们需要完全消除这个单点故障。

多方计算 (MPC) 钱包和智能合约钱包可以帮助我们实现这一目标,并且在这两个类别中已经有一个生态系统产品和服务已被机构、加密原生个人和 DAO 采用。虽然这两种类型的钱包都消除了单点故障,但它们有一些基本的技术差异,从而产生不同的权衡。下一节将概述这两种类型。

MPC 钱包

广义而言,多方计算 (MPC) 使一组互不信任的各方能够在其输入的范围内联合计算一个函数,同时保持这些输入的私密性。在密码学中,这对于保护用于解密数据或生成数字签名的私钥特别有用

MPC 钱包通过使用阈值签名方案 (TSS) 来消除单点故障。在这种模式下,我们创建并分发私钥的 份额,以使没有一个单一的人或机器完全控制私钥 — 这个过程称为分布式密钥生成 (DKG)。然后,我们可以通过组合份额来共同生成公钥,而无需在各方之间暴露份额。

为了签署消息和交易,每一方都输入其秘密份额以及公共输入(要签署的消息),从而生成数字签名。从那里,任何知道公钥的人(即验证器节点)都应该能够验证签名。由于密钥份额被组合并且签名是在链下生成的,从 MPC 钱包生成的交易与传统私钥钱包生成的交易没有区别

这为 MPC 钱包用户提供了一定程度的隐私。对于想要将其签名方案和签名者活动保密的组织来说,此功能开箱即用,因为这些过程发生在链下。然后,组织可以保留谁参与签名的内部日志,而无需向外界公开。

私钥轮换是另一种 MPC 协议,它将秘密份额作为输入,并输出一组新的秘密份额。旧的秘密份额可以被删除,并替换为新的秘密份额,这些秘密份额可以以相同的方式使用,而无需更改相应的公钥和地址。

MPC 钱包:优势

  • 没有单点故障。整个私钥在任何时候都不会集中在一台设备上。也没有助记词。
  • 可调整的签名方案。 批准法定人数可以随着个人和组织需求的变化而修改,同时保持相同的地址。组织可以动态调整签名方案,而无需每次都通知交易对手新的地址。
  • 细粒度的访问控制。 机构用户可以将无限数量的交易批准者分配给策略,并委派能够准确反映组织角色和安全措施(时间锁、多重身份验证、欺诈监控)的权限。个人可以选择使用 MPC 钱包即服务 的半托管路线,其中第三方持有其中一个密钥份额。
  • 更低的交易和恢复成本。MPC 钱包在区块链上表示为单个地址,其 gas 成本与常规私钥地址相同。这对于每天进行数百次交易的用户来说非常重要,例如在 B2C 用例中。丢失的密钥份额的恢复也可以在链下进行。
  • 区块链无关性。密钥生成和签名依赖于链下的纯密码学。将兼容性扩展到新的区块链很简单,因为钱包只需要能够使用该链识别的算法生成签名。

MPC 钱包:缺点

  • 链下问责制。签名授权策略和批准法定人数在链下管理,因此这些自定义规则仍然容易受到中心化故障的影响。密钥份额仍然是密码学秘密,应该以与整个私钥相同的方式处理。链下规则和签名会阻碍透明度,并要求进行更严格的运营审计。
  • 与大多数传统钱包不兼容,例如 Ledger 和 Trezor,因为没有存储在单个设备上的助记词或整个私钥,但可以使用 MPC 硬件钱包选项,例如 Cypherock(也是 开源)。MPC 算法未标准化,因此机构级安全设备(如 iPhone SEP 和 HSM)本身不支持自定义实施。不过,值得一提的是,Qredo 实施了开源 Apache Milago MPC 库,用户可以使用 iPhone 进行签名。
  • 主要是孤立的、定制的产品。 许多 MPC 库和解决方案都不是开源的,因此生态系统无法轻松地独立审计和集成它们,并在出现问题时进行事后分析。这里一个值得注意的例外是 ZenGo 针对流行的签名算法(如 BLS 和 ECDSA)的 开源 MPC/TSS 库

如今,基于 MPC 的解决方案主要针对机构客户,例如基金、家族办公室、交易所和托管人。像 Qredo* 和 Fireblocks 这样的 MPC 技术提供商使客户能够定义自己的工作流程以处理不同类型的交易,从而使他们能够保持合规和安全。Qredo 通过 L2 区块链 对其 MPC 解决方案进行去中心化,其中每个节点都持有一个密钥份额,并在满足批准阈值后共同生成签名。Dfns 提供了一个 API,供机构推出由 MPC 网络保护的无助记词钱包。

然而,散户投资者仍然很大程度上依赖于独立研究和私钥钱包。但这种情况也在发生变化,ZenGo 目前是消费者 MPC 钱包类别的领导者。Web3Auth 最近发布了一个 MPC SDK,允许任何钱包或 dapp 将其用于他们的用户作为“web3-原生 MFA”,使用他们的 iCloud 或电子邮件作为备份。像 Entropy 这样的去中心化托管协议正在构建开源工具,供消费者和 DAO 在线存储资产,并通过 MPC 定义交易的安全预防措施。

MPC 中的值得注意的持续开发:可编程密钥对

Lit* 是一个去中心化协议,用于在 Lit 网络节点上存储密钥份额。在这里,公钥/私钥对由 PKP(可编程密钥对)NFT 表示,其所有者是密钥对的唯一控制器。然后,当满足任意定义的条件时,PKP 所有者可以触发网络聚合密钥份额以解密文件或代表他们签署消息。

这对去中心化访问控制、资产管理和自动链上交互具有强大的意义。通过向 Lit Action(部署到 IPFS 的不可变代码)授予签名权限,PKP 可以用作 MPC 或去中心化云钱包,该钱包使用 任何 可以用 javascript 表示的身份验证方法。

铸造 PKP NFT 是基于 MPC 的分布式密钥生成过程,该过程使 NFT 所有者成为 PKP 的根所有者。因此,转移此 NFT 等同于交易私钥,这实际上打破了“灵魂绑定”token (SBT) 的概念,因为 SBT 绑定到特定所有者,因为钱包本身现在可以安全地交易(因此,对于不可转让的 NFT 来说,“钱包绑定 token”可能更合适的名称)。

智能合约钱包

以太坊目前有 2 种帐户类型:

  • 外部拥有的帐户 (EOA) — 由私钥控制
  • 智能合约帐户 — 由代码控制

智能合约钱包(“智能钱包”)只是像钱包一样运行的智能合约,即允许用户管理资金、使用 web3 登录以及与 dapp 交互的界面。与私钥钱包不同,智能钱包带有创建的初始成本,因为需要在链上部署智能合约。

多签名钱包是智能合约钱包,需要来自 M-of-N 密钥的签名才能执行交易。虽然 MPC 仅创建一个签名,无论参与的密钥份额数量如何,但多重签名使用由不同私钥生成的不同签名来签署交易。这使其与现有的私钥钱包兼容,并且位于 Ledger 或 Metamask 等 HD 钱包地址之上。

Safe* 这样的智能合约帐户标准为构建在之上的资产管理产品和服务生态系统提供了一个基础层。通过模块添加功能,允许用户定义管理密钥逻辑、支出限额、定期交易、帐户自动化、分层访问等等。Safe 今天最受欢迎的模块集由 Zodiac 团队 构建。

智能合约钱包:优势

  • 没有单点故障。需要多个签名才能执行交易。
  • 可编程的访问控制。用户可以定义不同的策略、设置时间锁、支出限额、自动化(收获 farming 奖励、限价单)。
  • 可以实施 交易批量处理 以节省成本。例如,将 token 授权和交易等常见操作“批量处理”到一笔交易中。虽然来自多重签名的单个操作在 gas 方面的成本高于 MPC,但从长远来看,交易批量处理可以帮助节省成本。** 允许使用 iOS 生物识别和 WebAuthn。
  • 开源。智能钱包实施和功能扩展可以由任何人审核,从而实现一种生态系统方法来解决漏洞和添加新功能。

智能合约钱包:缺点

  • 更高的费用。智能钱包的费用高于常规的单地址交易,因为需要验证多个签名。添加/删除所有者和更改阈值等操作也需要链上交易。
  • 并非普遍支持。 虽然智能钱包可以在任何 EVM 链上以相同的地址部署,但它们需要在非 EVM 链上进行定制实施。
  • 恢复成本更高。虽然恢复逻辑是可编程的,但你需要支付链上费用才能执行它。
  • 与不可升级的合约不兼容。虽然 EIP-1271 允许应用程序代表合约钱包签名,但它仍然未得到普遍支持,并且无法添加到不可升级的合约中。

智能合约钱包中值得注意的持续开发:帐户抽象

智能钱包在全生态系统中发挥着关键作用,该生态系统致力于完全摆脱 EOA 和私钥,也称为 帐户抽象。在这种模式下,所有帐户都是智能合约,它们都有自己的逻辑来决定什么是有效的交易,从而允许用户根据自己的特定需求自定义帐户。

2016 年以来 一直在讨论帐户抽象,但生态系统在解决方案上进展缓慢。L2 极大地加速了人们对此的认识和采用,例如 Starkware 已经 将所有 Starknet 帐户原生设置为智能钱包,并且 zkSync 2.0 也将与 AA 一起启动

在以太坊上,存在多个 EIP 来完成实现帐户抽象的路线图上的里程碑。

  • ERC-4337 将签名验证、gas 付款和重放保护移出核心协议并移入 EVM,使有户能够使用包含任意验证逻辑的智能钱包而不是 EOA 作为他们的主要帐户,而无需任何共识层更改。此 EIP 引入了一个 UserOperations mempool,它与现有的 mempool 并行存在。Bundler(验证器、MEV 搜索器或应用程序本身)从 UserOperations 池中获取交易,将其传递到区块链并支付费用。Paymaster 是交易赞助的可选步骤。在这里,发起者钱包不自己支付 gas 费用,而是应用程序可以聚合 gas 费用并使用费用订阅模型为其用户赞助 gas 付款。
  • EIP-3074 允许 EOA 将控制权委托给合约,让现有的 EOA 发送由第三方支付的操作。
  • EIP-5003 将现有的 EOA 升级到合约,并允许从 ECDSA 迁移到更高效或抗量子的签名方案。

钱包开发生态系统的持续挑战

  • 技术漏洞

Parity Multisig hack 以及最近的 Rabby Swap 漏洞 证明,即使是存储资金的最佳概念方式,如果实施存在缺陷,也毫无意义。借助开源软件和用于添加功能的生态系统方法,与黑盒中的代码相比,漏洞更有可能被发现并更快地得到解决。我们可以预料到,智能合约帐户将有标准,比如 OpenZeppelin 对 ERC-20 和 ERC-721 的实施,随着生态系统的成熟,Lindy 将不断发展,开发人员可以更有信心地在其之上构建。

  • 社交攻击面

任何给定的技术解决方案的优点仍然不能消除社交层的风险。6 亿美元的 Ronin Bridge 漏洞 不是由于任何技术缺陷,而是由于对 Sky Mavis 的一名员工的 社交工程攻击,该攻击使攻击者能够访问验证器密钥。除了就使用哪些钱包来管理其资产做出负责任的决定外,组织仍然需要确保该关键系统的每个组件在社交 技术层面上都是真正独立的。

  • 安全和迁移成本

从一个帐户迁移到另一个帐户既不好玩也不便宜。尽管今天市场上存在强大的钱包替代品,但用户将其现有 EOA 迁移的成本是真实的:交易费用、关闭/开启 DeFi 头寸、税务影响、用户错误、时间和精力。

  • 运营安全

对于今天的大多数用户来说,自托管是一个可怕的前景,因为改善个人操作安全需要有意识的努力,这可能是一项艰巨的任务。大多数交易数据不是人类可读的(尽管 正在 改变),并且错误是不可逆转的。许多钱包网站提到类似于“你完全拥有你的加密货币,如果你丢失了助记词,我们无能为力”的内容,这对于很大一部分潜在用户来说是不可接受的。混合设置(例如,像 Casa 这样的服务提供商作为你多重签名中的签名者)可以帮助在这里提供追索和支持的途径,而无需错误管理用户资金的能力。像加密货币教育一样,这个问题不能由一个团队单独解决,需要生态系统开发与安全最佳实践相辅相成的工具和 UX 模式。

结论

尽管有常见的“这个与那个”的框架,但 MPC 和智能钱包不是竞争关系,而是在长期内是互补关系。MPC 在密钥生成和管理级别提供共享安全性,而智能合约为特性和应用程序开发带来了可扩展性和生态系统方法。例如:

  • MPC 可以通过将一个或多个私钥分成多个部分来增强现有的多重签名方案。如果利用三个人来保护 2-of-3 多重签名,这三个用户中的每个人都可以使用 MPC 细分他们的个人私钥,并将他们的 MPC 密钥部分存储在独立的机器上,即让 MPC 帐户成为 Safe 的所有者。
  • 社区或 DAO 可以是多重签名的签名者,该多重签名拥有管理去中心化云钱包的 PKP NFT,该钱包可用于 自动化投资DEX 交互

今年,加密货币在许多方面受到了中心化实体不计后果的行为的破坏,这些行为削弱了对行业的信任,引发了监管审查,最重要的是损失了用户的资金,在某些情况下甚至损失了他们的毕生积蓄。本文中重点介绍的技术和项目为每个人都可以在去中心化经济中参与,而无需将其命运掌握在少数人手中的未来铺平了道路。

如果你正在构建钱包解决方案或对该主题有其他想法,我们很乐意与你聊天!

非常感谢 Lukas Schor, Christoph Simmchen, Dmitriy Berenzon, 和 Accel XR 审阅草稿。

* 表示 1kx 投资组合公司

  • 原文链接: medium.com/1kxnetwork/wa...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
nichanank
nichanank
江湖只有他的大名,没有他的介绍。