DFINITY 整合技术解读——阈值ECDSA 实现 IC 与比特币、以太坊整合
原文作者:Victor Shoup,DFINITY 首席研究科学家
翻译校对:TinTin Land
原文链接:https://medium.com/dfinity/threshold-ecdsa-the-key-ingredient-behind-the-internet-computers-bitcoin-and-ethereum-cf22649b98a1
引语
IC 的直接整合方法允许去中心化的区块链在不涉及中介的情况下,安全地验证并与其他区块链和系统互动。以前的跨链解决方案严重依赖桥梁、预言机和托管服务,涉及单点故障,而 IC 由于没有额外的受信任方,使得区块链的整合具有最强的信任属性。
例如,与比特币网络的直接整合,使 Canister 智能合约能够直接进行比特币交易,而不需要中介或桥梁,为使用比特币网络的 DeFi 项目提供一个无需信任的基础。
DFINITY 还聘请了 NCC 集团,一家世界级的网络安全咨询公司,对 ECDSA 的阈值实施进行了安全和密码学审查。DFINITY 官方非常鼓励社区用户阅读该报告,并在开发者论坛上对其进行评论。
阈值 ECDSA 前身
在启动比特币网络整合之前, IC 网络已经提供了一个基于特定签名方案的分布式签名协议,该方案以其发明者 Dan Boneh 、 Ben Lynn (现在就职于 DFINITY)和 Hovav Shacham 命名。选择 BLS 签名作为分布式签名协议的基础的主要原因是,与其他任何签名方案相比,基于 BLS 的分布式签名协议有可能实现得更简单和更有效。不幸的是,比特币网络并没有使用 BLS 签名。相反,比特币和许多其他区块链使用 ECDSA 方案。因此,为了支持比特币网络的整合,以及与其他区块链如以太坊的整合, NNS 社区通过了一项提案,在 IC 网络上实施分布式 ECDSA 签名协议。
为了与这些外部区块链完全整合, IC 网络上的 Canister 智能合约必须能够拥有比特币网络或以太坊的公钥,例如,创建 ECDSA 签名来授权交易。解决方案是在大型子网的所有节点机器(副本)之间秘密共享私钥,并通过阈值密码术创建签名。也就是说,如果某个阈值节点参与并正确完成了签名协议,则该协议的输出就是一个有效的签名,但是一些不符合阈值的节点不能自己签署未经授权的消息。
虽然 BLS 作为阈值方案相对容易实施,但 ECDSA 更具挑战性。此功能的主要挑战包括定义和实现安全的多方计算协议以实现阈值 ECDSA 签名方案并将其与 IC 协议栈集成。围绕核心协议的进一步挑战涉及安全分布式密钥生成协议以及私有签名密钥的安全密钥备份和恢复方案。
我们已经设计了新的协议,在异步设置中工作,并保证在要求时产生签名,即使一些节点有问题(但我们确实假设少于三分之一有问题,正如我们所有协议中的惯例)。这些新协议依赖于 IC 网络的共识协议。新协议进行预计算的时候,确保当一个签名请求进来时,只需一轮通信就能满足它(不需要共识)。
比特币交易的核心是一个叫做 Digital Signature(数字签名,又称公钥数字签名)的加密工具,比特币用它来安全地实现比特币账本(即区块链)上的交易。很简单,在一个数字签名方案中,一个特定的用户生成了一个公钥和一个相应的私钥。用户可以使用只有他们知道的密钥对任意消息进行数字签名,从而获得数字签名。在将此消息添加到账本之前,不仅要验证公钥下的签名,还必须验证账本上之前的交易表明与公钥关联的用户有足够的 BTC 来完成交易。
给定消息、公钥和签名,任何其他用户都可以验证数字签名是否有效。这种方案的基本安全属性是,除了生成公钥的用户之外,没有人可以在任何消息上根据该公钥生成有效签名。
在比特币网络与 IC 网络的整合中,上文所述的特定用户的角色将由一个 Canister 智能合约来扮演。那么问题来了:IC 网络如何安全地存储与一个 Canister 相关的密钥?答案是使用一个分布式签名协议。回顾一下,一个 Canister 被托管在一个由许多副本组成的子网上。在分布式签署协议中,秘钥不直接由任何一个副本存储。相反,这个密钥在子网中的所有副本之间共享,因此,如果子网中的一个,甚至几个副本被破坏,密钥仍然是安全的。然而,由于秘钥不存储在任何一个副本上,必须使用分布式签名协议。这样一个协议由两个子协议组成。
第一个子协议(称为分布式密钥生成协议)运行一次,以生成公钥的方式,使每个副本获得其份额的密钥。
第二个子协议在 Canister 要求在给定消息的公钥下签名时被调用,因为没有一个副本持有秘钥,它们必须以某种方式合作来生成签名。
以下是我们新的分布式 ECDSA 签名协议的一些关键特性:
它保证了安全性,这意味着对手能够获得的唯一签名是那些由诚实的复制体要求的签名。
除了依赖 IC 网络的底层共识协议外,它在非常弱的异步通信假设下工作,这意味着它不假设任何关于传递协议信息所需时间的先验上限。
它的工作原理是假设少于三分之一的复制体是损坏的——这意味着任意的拜占庭式的损坏。
它提供了有保障的输出交付,这意味着所有的签名请求都将被满足,所产生的签名将被交付给诚实的副本(在诚实的副本之间的所有消息最终被交付的情况下,并且共识子协议提供了可靠性)。
它提供了一个非常有效的、非交互式的在线签名阶段,这意味着假设有一个适当的与消息无关的预计算,在响应一个签名请求时,每个副本只需广播一个 "签名份额",并收集足够多的此类 "签名份额 "来计算签名;特别是,在在线签名阶段不需要(更贵)的共识子协议。
它支持 BIP32 风格的加法密钥推导,这意味着许多签名密钥可以很容易地从一个单一的签名密钥中分层推导。
IC网络的比特币集成正在与比特币账本建立一个安全、直接、无需信任的接口,不依赖中心化的中介。DFINITY 对阈值 ECDSA 的开发使每个 Canister 智能合约都能控制 ECDSA 签名密钥,并直接在比特币链上持有 BTC。
IC 作为 DFINITY 基金会支持构建的一款互联网计算机,具有高性能、去中心化、无限拓展等特性,通过不断创新,使开发人员能够构建原生使用世界上最大的加密货币的 Dapps 和 DeFi 项目,利用巨大的价值并将先进的智能合约引入比特币网络。Sonic、InfinitySwap 和 ICPSwap 等下一代 DeFi 项目已经在开发直接涉及 BTC 的借贷协议和交易所。阈值 ECDSA 还为未来进一步研究与以太坊网络的直接集成奠定了基础,并为 IC 网络解锁了一系列实例。
往期精彩区块链存储技术:Internet Computer上的存储模型和管理第三代区块链DFINITY布局DeFi,开发者如何抓住机遇
Hacker 资讯 | 5 月上旬区块链黑客松活动汇总
Web3开发者社区 TinTinLand 招募中 | We're hiring!
Neo, 开发者友好型公链的最佳选择
最新区块链招聘:高薪招开发产品运营人才
新公链的故事讲完了吗?Web3.0,NFT,元宇宙,DAO
关于我们
ABOUT US
TinTinLand 是赋能下一代开发者的技术社区,通过聚集、培育、输送开发者到各开放网络,共同定义并构建未来。
Discord: https://discord.gg/kmPnTDSFu8
Twitter: https://twitter.com/Tintinland2021
Bilibili: https://space.bilibili.com/1152852334
Medium: https://medium.com/@tintin.land2021
YouTube:https://www.youtube.com/channel/UCfHiMcFt-4btbC75FsReQhQ