查看原文
其他

阈值 ECDSA:互联网计算机比特币和以太坊集成背后的关键因素

Dfifans DFINITY 2022-07-07


互联网计算机的直接集成方法允许去中心化区块链安全地验证身份并与其他区块链和系统交互,而无需涉及中介。


以前的跨链解决方案严重依赖桥接器、预言机和托管服务,涉及单点故障,而由于没有额外的受信任方,互联网计算机实现了具有最强信任属性的区块链集成。


例如,与比特币的直接集成使容器智能合约能够在没有中介或链桥的情况下直接进行比特币交易,为使用比特币的 DeFi 项目提供了无需信任的基础。


近日,DFINITY 研发团队通过设计新的阈值 ECDSA(椭圆曲线数字签名算法)协议,为互联网计算机与比特币、以太坊和其他区块链的集成奠定了基础。


该功能的创新设计实现了一种使用加密多方协议计算 ECDSA 签名的无需信任的方式,容器智能合约控制公共区块链上的 ECDSA 签名密钥。


本研究论文详细介绍了该协议,大部分安全分析最近都在 Eurocrypt 2022 上发表的相关研究论文中完成,该论文是由国际密码学研究协会组织的关于密码学各个方面的国际会议。



阈值 ECDSA 之前


在启动比特币集成之前,互联网计算机已经提供了一个基于称为 BLS 的特定签名方案的分布式签名协议,该协议以其发明者 Dan Boneh、Ben Lynn(现仍在 DFINITY)和 Hovav Shacham 的名字命名。


选择 BLS 签名作为分布式签名协议基础的主要原因是,与任何其他签名方案相比,基于 BLS 可以实现更简单、更高效的分布式签名协议。


不幸的是,比特币不使用 BLS 签名,相反,比特币和许多其他区块链使用 ECDSA 方案。


因此,为了支持比特币集成,以及与以太坊等其他区块链的集成,NNS 社区通过了一项提案在互联网计算机上实现分布式 ECDSA 签名协议。



为了与这些外部区块链完全集成,互联网计算机上的容器智能合约必须能够拥有诸如比特币或以太坊公钥,并创建 ECDSA 签名以授权交易。


解决方案是在大型子网的所有节点机器(副本)之间秘密共享私钥,并通过阈值加密创建签名。也就是说,如果某个阈值节点参与并正确完成了签名协议,那么该协议的输出就是一个有效的签名。


但是,一些不符合阈值的节点不能自己签署未经授权的消息。


虽然 BLS 作为阈值方案相对容易实施,但 ECDSA 更具挑战性,此功能的主要挑战涉及定义和实现安全的多方计算协议以实现阈值 ECDSA 签名方案并将其与互联网计算机协议栈集成,围绕核心协议的进一步挑战涉及安全分布式密钥生成协议以及私有签名密钥的安全密钥备份和恢复方案。


我们设计了在异步设置下工作的新协议,并保证在请求时生成签名,即使某些节点出现故障(但我们确实假设只有不到三分之一的节点出现故障,就像我们所有协议中的往常一样)。


这些新协议依赖于互联网计算机的共识协议,他们还执行预计算,以确保当一个签名请求进来时,它应该只需要一轮通信就可以满足(不需要共识)。



为什么要数字签名?


比特币交易的核心是一个称为数字签名的加密小工具,比特币使用它来安全地在比特币账本(即区块链)上实现交易。


非常简单地说,在数字签名方案中,给定用户生成公钥和相应的私钥,用户可以使用只有他们知道的密钥对任意消息进行数字签名,从而获得数字签名。


在将此消息添加到账本之前,不仅要验证公钥下的签名,还必须验证账本上之前的交易表明与公钥关联的用户有足够的 BTC 来完成交易。


给定消息、公钥和签名,任何其他用户都可以验证数字签名是否有效。这种方案的基本安全属性是,除了生成公钥的用户之外,没有其他人可以在任何消息上根据该公钥生成有效签名。


在将比特币集成到互联网计算机中时,上述给定用户的角色将由容器智能合约扮演。那么问题就变成了:互联网计算机如何安全地存储与容器相关联的密钥?答案是使用分布式签名协议。


回想一下,容器托管在由许多副本组成的子网上,在分布式签名协议中,密钥不直接由任何一个副本存储。相反,此密钥在子网中的所有副本之间共享,因此如果子网中的一个或甚至多个副本被泄露,该密钥仍然是安全的。


但是,由于密钥不存储在任何一个副本上,因此必须使用分布式签名协议。


这样的协议由两个子协议组成


  • 第一个子协议(称为分布式密钥生成协议)运行一次以生成公钥,使得每个副本都获得其共享的密钥。


  • 每当容器请求给定消息的公钥下的签名时,都会调用第二个子协议 —— 因为没有一个副本持有密钥,它们必须以某种方式协同工作以生成签名。


分布式签名协议必须具有弹性,这意味着即使子网中的一个或多个副本崩溃或处于攻击者的控制之下,它也必须可靠且安全地运行,同时及时按需生成数字签名。


以下是我们新的分布式 ECDSA 签名协议的一些关键特性:


  • 它保证了安全性,这意味着对手可以获得的唯一签名是诚实副本请求的签名。


  • 除了依赖互联网计算机的底层共识协议之外,它在异步通信的非常弱的假设下工作,这意味着它不假设传递协议消息所需的时间有任何先验上限。


  • 它的工作原理是假设少于三分之一的副本是损坏的 —— 这意味着任意的拜占庭式损坏。


  • 它提供有保证的输出传递,这意味着所有签名请求都将得到满足,并且生成的签名将传递给诚实副本(在诚实副本之间的所有消息最终传递的范围内,并且共识子协议提供活性)。


  • 它提供了一个非常有效的、非交互式的在线签名阶段,这意味着假设一个适当的独立于消息的预计算,响应一个签名请求,每个副本简单地广播一个“签名共享”,并收集足够多的这样的“签名共享”来然后计算签名,特别是,在线签名阶段不需要(更昂贵的)共识子协议。


  • 它支持 BIP32 风格的附加密钥派生,这意味着许多签名密钥可以很容易地从单个签名密钥以分层方式派生。



安全、直接和无需信任


互联网计算机的比特币集成正在与不依赖中心化中介的比特币账本建立一个安全、直接且无需信任的接口,DFINITY 开发的阈值 ECDSA 使每个容器智能合约能够控制 ECDSA 签名密钥并将 BTC 直接保存在比特币区块链上。


总之,这些创新使开发人员能够构建使用世界上最大的加密货币的 dapps 和 DeFi 原生项目,利用巨大的价值并将先进的智能合约引入比特币。


Sonic、InfinitySwap 和 ICPSwap 等下一代 DeFi 项目已经在开发直接涉及 BTC 的借贷协议和交易所,阈值 ECDSA 还为未来进一步研究与以太坊的直接集成奠定了基础,并为互联网计算机解锁了一系列用例。



最后,DFINITY 聘请了世界级的网络安全咨询公司 NCC Group,对阈值 ECDSA 的实施进行安全和密码学审查,我们鼓励我们的社区阅读该报告并在 IC 论坛上发表评论:


  • research.nccgroup.com/2022/06/15/public-report-threshold-ecdsa-cryptography-review/


  • forum.dfinity.org/t/threshold-ecdsa-cryptography-review-by-ncc-group-third-party-security-audit-3/13853


在 internetcomputer.org 上开始构建,并在 forum.dfinity.org 加入开发者社区。



作者:Victor Shoup

(DFINITY 首席研究科学家)

翻译:Catherine



-              -


Web3 真正的样子是什么?

互联网计算机基础 — 第 2 部分:如何获得免费 Cycles 来部署您的第一个 Dapp

Coinbase|什么是互联网计算机(ICP)?





你关心的 DFINITY 内容
技术进展 | 项目信息 | 全球活动


长按关注 DFINITY 微信公众号

随时答疑解惑


*添加小助手微信 comiocn 进交流社群


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存