门限ECDSA:使ICP成为多链枢纽的关键杀手锏
文章来自于|D Plus
投稿、转载请联系|D Plus小助手
要说在区块链中什么最具加密朋克精神,那无疑是密码学技术。
密码学技术的历史可以分为两个时代:经典密码学和现代密码学,两个时代的转折点发生在1977年,当时RSA算法和DH算法(Diffie-Hellman秘钥交换协议/算法)被首次提出,在RSA和DH算法面世后,研究人员不断探寻其他基于数学的密码学解决方案,1985年,一种基于椭圆曲线(一个深奥的数学分支)的加密算法被提出来。
在1999年,一种使用椭圆曲线密码(ECC)对数字签名算法(DSA)的模拟,ECDSA签名算法成为ANSI标准,并于2000年成为IEEE和NIST标准。
基于ECDSA签名算法的不可伪造性,也成为了目前大部分主流L1区块链(BTC、ETH等)验证链上交易真实性的数字签名技术。
在区块链中进行交易的环节中,有一个很重要的消息,那就是需要进行签名。
也就是说一笔交易至少涉及到三项内容:付款人、收款人、付款金额。
例如,张三给李四付款的时候,张三付款人,李四是收款人,付款金额假设是5个 Token。
当张三准备好这笔交易之后,需要发给全网,当其他人看到这笔交易的时候,他们需要去认证这笔交易是否由张三发起的,这个环节中就使用到了数字签名技术。
你可以将它想象成一个实际的签名,它可以识别部分人的签名,但是你无法在别人不知道的情况下伪造它。而ECDSA签名和真实签名的区别在于,伪造ECDSA签名是根本不可能的。
在去年的7月,DFINITY基金会提出了一种的原生集成多链的架构,无需经过任何中介,就可以使IC的智能合约能够真实持有、接收和发送BTC,而实现该架构的一个关键杀手锏是实现了一套对ECDSA签名算法的扩展协议,该协议被称为门限ECDSA签名 (Threshold ECDSA),该签名算法的创新之处在于能够使用多方计算ECDSA签名/类似多签的方式来签署交易。
01
门限ECDSA签名的前世今生
在提出BTC原生集成之前,在IC的架构中就已经提供了一个基于分布式签名协议的BLS数字签名,该协议以其发明者Ban Boneh、Ben Lynn(现在DFINITY基金会)和Hovav Shacham的名字命名。
与其他数字签名相比,基于BLS可以实现更简单、更高效的分布式签名,但目前大部分的L1区块链都使用ECDSA签名方案,如果要实现与BTC和ETH的集成,就必须兼容ECDSA签名算法。
于去年的9月23日,DFINITY首次迈出了成为多链枢纽的第一步,门限ECDSA签名协议的设计提案在NNS治理系统中投票受理。
近期,DFINITY基金会还聘请了著名网络安全咨询公司NCC Group对门限ECDSA签名技术进行了安全和密码学审计,审计报告如下:
https://research.nccgroup.com/category/public-report/
02
为什么需要数字签名?
紧接上述区块链交易举例,在IC与BTC的集成中,张三变成了IC的智能合约,但面临的一个问题是,持有BTC和ETH资产智能合约相关联的ECDSA私钥应该如何托管?
门限ECDSA签名协议给出的答案是使用分布式签名协议,具体实现是将智能合约关联公钥的私钥碎片分发给一个专有子网中的所有节点秘密共享,并通过门限加密学创建多方计算签名,来签署由IC智能合约发起的BTC或ETH真实交易。
PS:子网的概念类似于ETH中的分片链
简单来说,能够管理BTC和ETH资产的权利其实是下放给了子网的所有节点,而不是单方面由单个节点来管理,也就意味着单个节点无法签名交易,而需要子网中的阈值数量(2/3)节点一起协作才能创建一个完整的ECDSA签名来输出BTC和ETH真实交易。
门限ECDSA协议中还包含两个子协议:
第一个子协议(被称为分布式密钥生成协议)用于生成BTC或ETH资产智能合约的公钥,并让子网节点获得与该公钥关联的共享密钥。
每当资产合约请求交易信息的签名时,都会调用第二个子协议(共识子协议)用于协同节点们创建一个完整的多方计算ECDSA签名。
03
实现门限ECDSA签名的挑战
实现该签名算法的主要挑战是定义、实现需要结合多方计算协议的阈值ECDSA签名方案,并与ICP协议栈(消息路由层、共识层)集成。进一步提挑战是安全分布式密钥生成协议以及私有签名密钥的安全密钥备份和恢复方案。
04
门限ECDSA签名的关键特性
1、它保障安全性,对手可以获得的唯一签名是由诚实节点签名;
2、除了依赖IC的底层共识协议之外,它在异步通信(节点所发出的消息,不能确定一定会到达目标节点)且满足“部分同步”(节点发出的消息,虽然会有延迟,但是最终会到达目标节点)假设前提下所运作,这意味着它不假设传递协议消息所需的时间有任何先验上限;
3、它的工作原理是不打破恶意节点超过1/3的假设-拜占庭容错能力;
4、它提供有保证的输出传递,这意味着所有签名请求都将得到满足,并且生成的签名将传递给诚实副本(在诚实副本之间的所有消息都在最终传递的范围内,并且共识子协议提供活性);
5、它提供了一个非常有效的、非交互式的在线签名阶段,这意味着假设一个适当的独立于消息的预计算,响应一个签名请求,每个节点广播一个“签名共享”,并收集足够多的这样的“签名共享”后,以计算完整的签名;
5、它支持BIP32的附加密钥派生,这意味着许多签名密钥可以很容易的以分层方式从单个签名密钥派生。
05
进展
在今年的5月份,在集成方面也取得了重大进展,IC的智能合约已经可以访问BTC测试网的余额和UTXO。
进一步,根据ICP与BTC的集成团队最新披露的信息,预计会在于7月初部署IC与BTC测试网集成的Beta版本,包括用于与BTC测试网集成的API;测试版本门限ECDSA签名功能和如何使用该功能的文档、Demo视频、示例项目等。
限于文章篇幅,本文仅对ICP原生集成多链的架构和门限ECDSA签名算法的部分内容进行了引用解读,想了解更加全面内容的小伙伴们可以点击下方链接阅读👇
IC与BTC原生集成的意义:
IC与BTC集成架构:
https://wiki.internetcomputer.org/wiki/Bitcoin_integration
门限ECDSA签名进展:
https://forum.dfinity.org/t/threshold-ecdsa-signatures/6152/167
每周必看
AMA预告
联系我们
t.me/DFINITY_ZH
twitter.com/D_PlusCommunity
twitter.com/D_PlusCN