通过防篡改数据提高验证速度的网络

文档序号:1472492 发布日期:2020-02-21 浏览:7次 >En<

阅读说明:本技术 通过防篡改数据提高验证速度的网络 (Network for increasing verification speed by preventing data from being tampered ) 是由 M·扎马尼 M·莫瓦赫迪 M·赖科瓦 于 2018-05-22 设计创作,主要内容包括:公开了一种方法。所述方法包括:a)从计算机网络中多个节点中的节点接收节点标识符;b)在包括多个节点的采样器图表中确定多个节点委员会,其中节点存在于所述多个节点委员会中的一个节点委员会中;c)和i)生成随机字符串;ii)使用所述随机字符串和哈希函数执行工作证明过程;iii)如果所述工作证明过程产生可接受的解决方案,则将所述解决方案广播到所述多个节点中的所有其它节点,其中所述其它节点验证所述解决方案;以及iv)如果所述其它节点验证所述解决方案,则将所述节点选择给所述节点委员会的小组委员会,其中所述小组委员会更新所述采样器图表;以及d)重复步骤b)和c)直到确定领导委员会。(A method is disclosed. The method comprises the following steps: a) receiving a node identifier from a node of a plurality of nodes in a computer network; b) determining a plurality of node committees in a sampler graph comprising a plurality of nodes, wherein a node exists in one of the plurality of node committees; c) and i) generating a random string; ii) performing a proof of work process using the random string and a hash function; iii) if the proof of work process produces an acceptable solution, broadcasting the solution to all other nodes in the plurality of nodes, wherein the other nodes verify the solution; and iv) if the other nodes verify the solution, selecting the node to a committee on teams of the committee on nodes, wherein the committee on teams updates the sampler graph; and d) repeating steps b) and c) until a committee of leadership is determined.)

通过防篡改数据提高验证速度的网络

相关申请的交叉引用

本申请要求2017年5月22日申请的第62/509,655号美国临时申请和2018年5月7日申请的第62/668,122号美国临时申请的权益,所述美国临时申请出于所有目的以全文引用的方式并入本文中。

背景技术

全球金融系统具有高度集中性,使其能够抵御变化、容易遭遇故障和攻击,且需要基本的金融工具的数十亿人无法访问。加密货币,比如比特币[Satoshi Nakamoto,比特币:对等电子现金系统,2008年,网址为https://bitcoin.org/bitcoin.pdf]旨在通过使用允许参与者的“开放式成员数”的大型分散网络来避免这些限制。在此模型中,参与者不需要既定身份来加入系统,并可以随时加入或离开协议。

分散化带来了确保一组互相不信任(即Byzantine)的参与者的一致观点的新挑战。允许开放式成员数并且需要参与者的持续的变动(即加入和离开)的无权限操作模式将使这项任务进一步复杂化。此外,任何敏捷的金融系统(包括分布式)都应能够充分提供实际市场负荷。这意味着所述系统应该能够轻松扩展到大量参与者,而且应在相对较低延迟下处理高交易吞吐量,从而可提供输出。这些属性的实现也不应使用来自每个参与者的大量资源,因为这会与构建任何人都可轻松访问的工具的想法相反地进行。

现有解决方案目前未能解决上述挑战或做出安全和/或性能权衡,但不幸地使他们不再是真正分散的解决方案。具体地说,传统的Byzantine共识机制[Leslie Lamport,兼职议会,ACM通信计算系统,16(2):133到169,1998年5月;和Miguel Castro和BarbaraLiskov,实际Byzantine容错性。在第三届关于操作系统设计和实施的研讨会的论文集中,OSDI'99,第173到186页,1999年;和Christian Cachin、Klaus Kursawe和Victor Shoup,君士坦丁堡的随机预言:使用密码术的实际异步Byzantine协议。在第19关于分布式计算原理(PODC)的ACM研讨会的论文集中,第123到132页,2000年]只能在闭合式成员数的设置下工作,其中一组参与者是固定的,且他们的身份通过受信任的第三方对所有人已知。如果在开放式设置下使用,这些协议可能易于使用Sybil攻击进行折衷[John Douceur,Sybil攻击。在第二届国际对等研讨会(IPTPS)的论文集中,2002年],其中对手重复以新鲜身份重新加入恶意方以对协议结果造成重大影响。此外,大多数传统方案都假设仅在协议开始时可以选择一组损坏方的静态对手。抵御适应性对手的现有协议[Gabriel Bracha,异步[(n–1)/3]-弹性共识协议。在第三届关于分布式计算原理的年度ACM研讨会的论文集中,PODC'84,第154到162页,美国纽约州纽约市,1984年,ACM;和Run Canetti和Tal Rabin,最佳弹性下的快速异步Byzantine协议。在第25届年度ACM计算理论研讨会的论文集中,STOC'93,第42到51页,美国纽约州纽约市,1993年,ACM;和Valerie King和Jared Saia,断开o(n^2)位屏障:与适应性对手的可扩展Byzantine协议。在第29届关于分布式计算原理的ACMSIGACT-SIGOPS研讨会的论文集中,PODC'10,第420到429页,美国纽约州纽约市,2010年,ACM]随着参与者数量扩展的效果较差或效率低下。

大多数加密货币,比如比特币和Ethereum[Vitalik Buterin,Ethereum的***。https://github.com/ethereum/wiki/wiki/white-paper,2014]在大型对等(P2P)网络内维护被称为区块链的分布式交易分类账,其中每个节点都通过Byzantine共识协议(被称为Nakamoto共识)维护整个分类账的更新完整副本。与传统共识机制不同,Nakamoto共识允许新参与者使用工作证明(PoW)过程加入协议[Cynthia Dwork和Moni Naor,通过处理或打击垃圾邮件定价。在《密码学进展》-CRYPTO'92中:第12届国际密码讨论年会,美国加州圣巴巴拉,1992年8月16日到20日,论文集,第139到147页,柏林海德堡,1993年,施普林格出版社],其中节点表示它已经通过对计算难题提供解决方案进行了一定量的工作。PoW的使用不仅允许共识协议通过限制恶意参与者加入系统的速率阻碍Sybil攻击,而且还提供了彩票机制,通过所述机制在每一回合中选择随机领导者来发起共识过程。

不幸的是,目前众所周知的是,比特币的基于PoW的共识现在已经存在严重缺陷,例如交易吞吐量非常低、高延迟、能源效率差[Eric Limer,世界上最强大的计算机网络被浪费在比特币上,2013年5月,网址为http://gizmodo.com/the-worlds-most-powerful-computer-network-is-being-was-504503726],和采矿池集中化[egor homakov,停止调用分散化比特币,https://medium.com/@homakov/stop-calling-bitcoin-decentralized-cb703d69dc27,2017年,以及区块链图:哈希率分布,2017年3月,网址为https://blockchain.info/pools]。此外,协议不能在大量参与者加入协议的情况下扩展其交易处理能力[Loi Luu、Viswesh Narayanan、Chaodong Zheng、Kuna Baweja、Seth Gilbert和Prateek Saxena,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACMSIGSAC会议的论文集中,CCS'16,第17到30页,美国纽约州纽约市,2016年,ACM;和Eleftherios Kokoris-Kogias、Philipp Jovanovic、Linus Gasser、Nicolas Gailly、EwaSyta和Bryan Ford,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017年。https://eprint.iacr.org/2017/406]。比特币的另一个主要可扩展性问题是,每方最初都需要从网络上下载整个区块链,以独立验证所有交易。区块链的大小目前约为165GB,且过去一年中几乎翻倍[区块链图表:区块链大小,2017年3月,网址为https://blockchain.info/charts/block-size]。可以预期区块链大小的较大增长,相较于比特币,所述区块链通过较高吞吐量共识协议进行更新。

最近,已经提出了一些协议,以缓解比特币的区块链的性能和可扩展性问题[Christian Decker、Jochen Seidel和Roger Wattenhofer,比特币符合强一致性。在第17届关于分布式计算和网络的国际会议的论文集中,ICDCN'16,第13:1到13:10页,美国纽约州纽约市,2016年,ACM;和Ittay Eyal、Adem Efe Gencer、Emin Gun Sirer和Robbert VanRenesse,比特币-NG:可扩展区块链协议。在第13届关于联网系统设计与实施的计算机系统协会(Usenix)会议的论文集中,NSDI'16,第45到59页,美国加州伯克利,2016年,USENIX协会;和Eleftherios Kokoris-Kogias、Philipp Jovanovic、Nicolas Gailly、IsmailKhoffi、Linus Gasser和Bryan Ford,通过集体签名在强一致性下提高比特币安全性与性能。在第25届USENIX安全性研讨会中,USENIX Security'16,第279到296页,2016年;和Andrew Miller、Yu Xia、Kyle Croman、Elaine Shi和Dawn Song,bft协议的Honey Badger。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第31到42页,美国纽约州纽约市,2016年,ACM;和Rafael Pass和Elaine Shi,混合共识:无权限模型中的高效共识,密码电子打印归档,报告2016/917,2016年。http://eprint.iacr.org/2016/917;和Loi Luu、Viswesh Narayanan、Chaodong Zheng、Kunal Baweja、Seth Gilbert和PrateekSaxena,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第17到30页,美国纽约州纽约市,2016年,ACM;和Yossi Gilad、Rotem Hemo、Silvio Micali、Georgios Vlachos和Nickolai Zeldovich,Algorand:对加密货币的Byzantine协议进行扩展。在第26届关于操作系统原理的研讨会的论文集中,SOSP'17,第51到68页,美国纽约州纽约市,2017年,ACM;和Ittai Abraham、Dahlia Malkhi、Kartik Nayak、Ling Ren和Alexander Spiegelman,Solida:基于可重新配置的Byzantine共识的区块链协议。在第21届关于分布式系统原则的国际会议的论文集中,OPODIS'17,葡萄牙里斯本,2017年;和Eleftherios Kokoris-Kogias、Philipp Jovanovic、LinusGasser、Nicolas Gailly、Ewa Syta和Bryan Ford,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017年。https://eprint.iacr.org/2017/406],使用的是将比特币的开放式成员数性质与传统Byzantine容错性相结合的混合架构[M.Pease、R.Shostak和L.Lamport,在存在故障时达成协议,《美国计算机学会期刊》,27(2):228到234,1980年4月;和M.Castro和B.Liskov,实际Byzantine容错性和主动恢复,计算机系统上的ACM交易(TOCS),20(4):398到461,2002年]。虽然大多数这些协议据说可以改善比特币的吞吐量和延迟,但所有这些协议仍然需要对受信任设置的经常被忽略的假设:生成呈共同起源块形式的不可预知的初始共同随机性以引导区块链。与比特币类似,这些协议基本上描述了如何可以在对某一起源块达成初始一致的情况下确保对新快达成一致。这种假设对在这些协议中的节点当中达成一致性上起着至关重要的作用,且如果受损,则可以轻松影响整个共识协议的安全性,从而对加密货币的分散性质造成重大影响。

除了部分分散化之外,大多数这些解决方案都具有较大的每节点存储要求[Christian Decker、Jochen Seidel和Roger Wattenhofer,比特币符合强一致性。在第17届关于分布式计算和网络的国际会议的论文集中,ICDCN'16,第13:1到13:10页,美国纽约州纽约市,2016年,ACM;和Ittay Eyal、Adem Efe Gencer、Emin Gun Sirer和Robbert VanRenesse,比特币-NG:可扩展区块链协议。在第13届关于联网系统设计与实施的Usenix会议的论文集中,NSDI'16,第45到59页,美国加州伯克利,2016年,USENIX协会;和EleftheriosKokoris-Kogias、Philipp Jovanovic、Nicolas Gailly、Ismail Khoffi、Linus Gasser和Bryan Ford,通过集体签名在强一致性下提高比特币安全性与性能。在第25届USENIX安全性研讨会中,USENIX Security'16,第279到296页,2016年;和Andrew Miller、Yu Xia、KyleCroman、Elaine Shi和Dawn Song,bft协议的Honey Badger。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第31到42页,美国纽约州纽约市,2016年,ACM;和Rafael Pass和Elaine Shi,混合共识:无权限模型中的高效共识,密码电子打印归档,报告2016/917,2016年。http://eprint.iacr.org/2016/917;和Loi Luu、Viswesh Narayanan、Chaodong Zheng、Kunal Baweja、Seth Gilbert和Prateek Saxena,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第17到30页,美国纽约州纽约市,2016年,ACM;和Ittai Abraham、Dahlia Malkhi、Kartik Nayak、Ling Ren和Alexander Spiegelman,Solida:基于可重新配置的Byzantine共识的区块链协议。在第21届关于分布式系统原理的国际会议的论文集中,OPODIS'17,葡萄牙里斯本,2017]、不完整规范[Christian Decker、Jochen Seidel和Roger Wattenhofer,比特币符合强一致性。在第17届关于分布式计算和网络的国际会议的论文集中,ICDCN'16,第13:1到13:10页,美国纽约州纽约市,2016年,ACM;和Eleftherios Kokoris-Kogias、PhilippJovanovic、Nicolas Gailly、Ismail Khoffi、Linus Gasser和Bryan Ford,通过集体签名在强一致性下提高比特币安全性与性能。在第25届USENIX安全性研讨会中,USENIXSecurity'16,第279到296页,2016年],或安全问题[Eleftherios Kokoris-Kogias、Philipp Jovanovic、Nicolas Gailly、Ismail Khoffi、Linus Gasser和Bryan Ford,通过集体签名在强一致性下提高比特币安全性与性能。在第25届USENIX安全性研讨会中,USENIX Security'16,第279到296页,2016年;和Loi Luu、Viswesh Narayanan、ChaodongZheng、Kunal Baweja、Seth Gilbert和Prateek Saxena,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第17到30页,美国纽约州纽约市,2016年,ACM;和Eleftherios Kokoris-Kogias、Philipp Jovanovic、LinusGasser、Nicolas Gailly、Ewa Syta和Bryan Ford,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017年。https://eprint.iacr.org/2017/406]。此外,所有之前的协议都要求共识协议中的每个参与者向整个网络广播消息,以提交他们的共识投票[Ittay Eyal、Adem Efe Gencer、Emin Gun Sirer和Robbert vanRenesse,比特币-NG:可扩展区块链协议。在第13届关于联网系统设计与实施的Usenix会议的论文集中,NSDI'16,第45到59页,美国加州伯克利,2016年,USENIX协会;和AndrewMiller、Yu Xia、Kyle Croman、Elaine Shi和Dawn Song,bft协议的Honey Badger。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第31到42页,美国纽约州纽约市,2016年,ACM]、验证交易[Ittay Eyal、Adem Efe Gencer、Emin Gun Sirer和Robbert van Renesse,比特币-NG:可扩展区块链协议。在第13届关于联网系统设计与实施的Usenix会议的论文集中,NSDI'16,第45到59页,美国加州伯克利,2016年,USENIX协会;和Andrew Miller、Yu Xia、Kyle Croman、Elaine Shi和Dawn Song,bft协议的Honey Badger。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第31到42页,美国纽约州纽约市,2016年,ACM],和/或更新每个节点的本地区块链复制[Loi Luu、VisweshNarayanan、Chaodong Zheng、Kunal Baweja、Seth Gilbert和Prateek Saxena,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第17到30页,美国纽约州纽约市,2016年,ACM;和Rafael Pass和Elaine Shi,混合共识:无权限模型中的高效共识,密码电子打印归档,报告2016/917,2016年。http://eprint.iacr.org/2016/917;和Yossi Gilad、Rotem Hemo、Silvio Micali、GeorgiosVlachos和Nickolai Zeldovich,Algorand:对加密货币的Byzantine协议进行扩展。在第26届关于操作系统原理的研讨会的论文集中,SOSP'17,第51到68页,美国纽约州纽约市,2017年,ACM;和Ittai Abraham、Dahlia Malkhi、Kartik Nayak、Ling Ren和AlexanderSpiegelman,Solida:基于可重新配置的Byzantine共识的区块链协议。在第21届关于分布式系统的原理的国际会议的论文集中,OPODIS'17,葡萄牙里斯本,2017]。虽然每个参与者的此种广播的较大开销通常使用对等谣传协议从线性消息数(相对于参与者数量)减少到几乎恒定[R.Karp、C.Schindelhauer、S.Shenker和B.Vocking,随机性的谣言传播。在第41届关于计算机科学基础的年度研讨会的论文集中,FOCS'00,第565页-,美国华盛顿特区,2000年,IEEE计算机协会],但此种“向所有对象传播”的调用的相对较高的延迟(例如,平均每块12.6秒[C.Decker和R.Wattenhofer,比特币网络中的信息传播,在P2P中,第1到10页,IEEE,2013年])显著增加了共识协议的总体延迟(向所有对象传播的延迟差不多使共识时间变为四倍[Eleftherios Kokoris-Kogias、Philipp Jovanovic、Linus Gasser、NicolasGailly、Ewa Syta和Bryan Ford,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017年。https://eprint.iacr.org/2017/406])。此外,由于大多数可扩展区块链协议的交易吞吐量非常高(例如,大约4,000TPS[EleftheriosKokoris-Kogias、Philipp Jovanovic、Linus Gasser、Nicolas Gailly、Ewa Syta和BryanFord,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017年。https://eprint.iacr.org/2017/406]),因此如果交易被传播到整个网络,则每个节点的带宽使用率相对较大(例如高于6MB/s)。

本发明的实施例单独地和共同地解决了这些问题和其它问题。

发明内容

实施例可以实现在计算机网络中选择领导委员会。领导委员会可能能够将计算机网络中的多个节点分区成分片委员会。实施例可以允许新节点加入计算机网络。分片委员会可以接收可被验证和存储在区块链的分片中的交互数据。

本发明的一个实施例涉及一种由包括多个节点的计算机网络中的节点执行的方法,每个节点均具有节点标识符,所述方法包括:a)由所述节点从计算机网络中多个节点中的其它节点接收节点标识符;b)由所述节点在包括多个节点的采样器图表中确定多个节点委员会,其中所述节点存在于所述多个节点委员会中的一个节点委员会中;c)所述节点进一步i)生成随机字符串;ii)使用所述随机字符串和哈希函数执行工作证明过程;iii)如果所述工作证明过程产生可接受的解决方案,则将所述解决方案广播到所述多个节点中的所有其它节点,其中所述其它节点验证所述解决方案;以及iv)如果所述其它节点验证所述解决方案,则将所述节点选择给所述节点委员会的小组委员会,其中所述小组委员会更新所述采样器图表;以及d)重复步骤b)和c)直到确定领导委员会。

本发明的另一个实施例涉及一种节点,其包括:处理器;存储器装置;和耦合到所述处理器的计算机可读介质,所述计算机可读介质包括可由所述处理器执行的代码以用于实施由包括多个节点的计算机网络中的节点执行的方法,每个节点均具有节点标识符,所述方法包括:a)从所述计算机网络中所述多个节点中的其它节点接收节点标识符;b)在包括多个节点的采样器图表中确定多个节点委员会,其中所述节点存在于所述多个节点委员会中的一个节点委员会中;c)所述节点进一步i)生成随机字符串;ii)使用所述随机字符串和哈希函数执行工作证明过程;iii)如果所述工作证明过程产生可接受的解决方案,则将所述解决方案广播到所述多个节点中的所有其它节点,其中所述其它节点验证所述解决方案;以及iv)如果所述其它节点验证所述解决方案,则将所述节点选择给所述节点委员会的小组委员会,其中所述小组委员会更新所述采样器图表;以及d)重复步骤b)和c)直到确定领导委员会。

本发明的另一个实施例涉及一种方法,其包括:由计算机网络中第一委员会中的第一节点接收包括节点标识符的请求,以使第二节点加入委员会;由所述第一委员会中的所述第一节点向所述第二节点提供工作证明过程;由所述第一委员会中的第一节点从所述第二节点接收对所述工作证明过程的解决方案,其中所述第一委员会中的多个节点验证所述解决方案;由所述第一委员会中的所述第一节点生成随机字符串,所述随机字符串由所述第一节点用于确定所述第二节点的第二委员会;由所述第一节点向第二委员会引入所述第二节点,其中所述第二委员会移位节点以允许所述第二节点加入所述第二委员会;以及由所述第一节点将关于所述第二节点处于所述第二委员会中的信息传达到所述计算机网络中的其它节点。

本发明的另一个实施例涉及一种节点,其包括:处理器;存储器装置;和耦合到所述处理器的计算机可读介质,所述计算机可读介质包括可由所述处理器执行的代码以用于实施包括以下操作的方法:由计算机网络中第一委员会中的第一节点接收包括节点标识符的请求,以使第二节点加入委员会;由所述第一委员会中的所述第一节点向所述第二节点提供工作证明过程;由所述第一委员会中的第一节点从所述第二节点接收对所述工作证明过程的解决方案,其中所述第一委员会中的多个节点验证所述解决方案;由所述第一委员会中的所述第一节点生成随机字符串,所述随机字符串由所述第一节点用于确定所述第二节点的第二委员会;由所述第一节点向第二委员会引入所述第二节点,其中所述第二委员会移位节点以允许所述第二节点加入所述第二委员会;以及由所述第一节点将关于所述第二节点处于所述第二委员会中的信息传达到所述计算机网络中的其它节点。

本发明的另一个实施例涉及一种方法,其包括:由委员会中的第一节点接收交互请求,所述交互请求包括来自客户端计算机的交互数据;由所述第一节点将所述交互数据以及与其它客户端计算机相关联的其它交互数据并入包括交互数据的块中,其中所述块包括块部分;由所述第一节点将所述块广播到所述委员会中的其它节点,其中所述委员会中的所述其它节点验证所述块;以及将所述块并入由所述委员会管理的区块链中。

本发明的另一个实施例涉及一种节点,其包括:处理器;存储器装置;和耦合到所述处理器的计算机可读介质,所述计算机可读介质包括可由所述处理器执行的代码以用于实施包括以下操作的方法:由委员会中的第一节点接收交互请求,所述交互请求包括来自客户端计算机的交互数据;由所述第一节点将所述交互数据以及与其它客户端计算机相关联的其它交互数据并入包括交互数据的块中,其中所述块包括块部分;由所述第一节点将所述块广播到所述委员会中的其它节点,其中所述委员会中的所述其它节点验证所述块;以及将所述块并入由所述委员会管理的区块链中。

下文进一步详细描述本发明的这些和其它实施例。

附图说明

图1示出了根据本发明的实施例的示出计算机网络中的多个节点的系统的框图。

图2示出根据本发明的实施例的示出节点的框图。

图3示出根据本发明的实施例的示出方法中的各阶段的流程图。

图4示出根据本发明的实施例的示出选择图表的框图。

图5示出根据本发明的实施例的示出设置阶段的流程图。

图6示出根据本发明的实施例的示出包括分片委员会的系统的框图。

图7示出根据本发明的实施例的示出重新配置阶段的流程图。

图8示出根据本发明的实施例的示出交易部分的框图;

图9示出根据本发明的实施例的示出共识阶段的流程图。

图10示出根据本发明的实施例的示出验证过程的流程图。

图11示出根据本发明的实施例的示出通信路由的流程图。

图12示出根据本发明的实施例的示出通信响应路由的流程图。

图13示出根据本发明的实施例的示出设置阶段的通信的图。

图14示出根据本发明的实施例的示出设置阶段延迟的图。

图15示出根据本发明的实施例的示出交易成本的图。

图16示出根据本发明的实施例的示出交易延迟的图。

图17示出根据本发明的实施例的示出委员会大小可变情况下的交易延迟的图。

图18示出根据本发明的实施例的示出委员会大小可变情况下的交易成本的图。

图19示出根据本发明的实施例的示出每一节点数量的消息数的图。

图20示出根据本发明的实施例的示出带宽与节点数的图。

图21示出根据本发明的实施例的示出延迟与节点数的图。

图22示出根据本发明的实施例的示出处理变动的成本的图。

图23示出根据本发明的实施例的示出变动延迟的图。

图24示出根据本发明的实施例的示出故障概率的图。

图25示出根据本发明的实施例的示出延迟与委员会大小的图。

图26示出根据本发明的实施例的示出用户感知的延迟与节点数的图。

图27示出根据本发明的实施例的示出每秒的交易与委员会大小的图。

图28示出根据本发明的实施例的示出每秒的交易与块大小的图。

具体实施方式

在论述本发明的实施例之前,可以进一步详细地描述一些术语。

“数字资产”可以指与价值相关联的数字内容。在一些情况下,数字资产还可指示价值的转移。例如,数字资产可包括指示货币值(例如法定货币或密码货币)的转移的数据。在其它实施例中,数字资产可对应于其它非货币值,例如访问权限数据(例如用于访问信息的授权使用次数或时间分配)和所有权数据(例如数字权限数据)。数字资产还可以包括关于一个或多个数字资产属性的信息。例如,数字资产可以包括将价值从一个实体或账户转移到另一实体或账户的有用信息。数字资产还可以包括汇款信息(例如标识发送实体的信息)。在一些实施例中,数字资产可以包括以下中的一个或多个:数字资产标识符,值(例如,金额、原始货币类型,目的地货币类型等),转账费用信息,货币兑换率,***号,购买订单号,时间戳,发送实体标识符(例如,发送方企业ID),发送实体账号,发送实体名称,发送实体联系信息(例如,地址、电话号码、电子邮件地址等),发送机构信息(例如,金融机构名称、企业ID和BIN),接收方实体标识符(例如,接收方企业ID),接收方实体账号,接收方实体名称,接收方实体联系信息(例如,地址、电话号码、电子邮件地址等)和/或接收机构信息(例如,金融机构名称、企业ID和BIN)。当接收到数字资产时,接收方可具有足够的信息以继续针对所指示价值的结算交易。

“资产转移网络”可以是用于提供和/或接收数字资产的网络。资产转移网络可以包括多个节点。在一些实施例中,在资产转移网络中传输的数字资产可以记录在交易的分类账中。资产转移网络的实例可以是区块链网络,其中交易的分类账可采用区块链的形式。在一些实施例中,资产转移网络可以是计算机网络。

术语“节点”可以指连接点。在一些实施例中,节点可以是物理电子装置,其能够创建、接收或传输数据。在其它实施例中,节点可以是计算装置上的软件模块,所述软件模块是通信网络中的连接点。在一些实施例中,节点可以是资产转移网络内的计算装置。节点能够铸造资产、转移资产、接收资产、验证资产、维护交易的分类账,和/或执行任何其它适合的功能。在一些实施例中,节点可与金融机构计算机(例如银行)、支付处理器计算机、第三方计算机或任何其它合适的实体相关联和/或由它们操作。

术语“交易分类账”可以指来自先前交易的数据汇编。交易分类账可以是数据库或其它相当的文件结构,其可以被配置成存储来自所有先前数字资产转移的数据,包括转账的日期和时间、转账金额及转账参与者的身份信息(例如,转账金额的发送方和接收方)。在一些实施例中,交易分类账可以呈电子分类账(例如,区块链)的形式,其中已经存储在电子分类账中的数据可以是不可更改的。交易分类账的部分(即分片)可以存储在节点处。

交易分类账可以包括被数字签名(例如用私钥)的交易记录,以便保护分类账中的交易条目不被虚假的交易数据篡改。这可防止重复花费,并使所有交易不可改变且不可逆,因此使分类账值得信赖。

如本文中使用的“区块链”可包括一系列块。区块链中的每个块可包括一个或多个历史交易的电子记录以及元数据。在一些实施例中,区块链中的块可通过包括对先前块的引用(例如,先前块的哈希输出)而相联系。区块链中的每个新块可基于新交易和区块链中的先前块通过算法确定。结果,可以检测到这些先前块中存储的数据的任何篡改。在一些实施例中,区块链可以分片成存储在委员会处的区块链分片。例如,委员会可以存储区块链的分片,而不同委员会可以存储区块链的不同分片。

“委员会”可以是一组节点。在一些实施例中,委员会中的节点可以彼此通信。委员会可能能够与其它委员会通信。在一些实施例中,委员会可以包括可以是委员会领导者的节点。

“密钥对”可以包括一对相联系的加密密钥。例如,密钥对可以包括公钥和对应的私钥。在密钥对中,第一密钥(例如,公钥)可以用于加密消息,而第二密钥(例如,私钥)可用于解密所加密的消息。另外,公钥能够验证用对应的私钥创建的数字签名。公钥可分布在整个网络中,以便能够认证使用对应的私钥签名的消息。公钥和私钥可以呈任何合适的格式,包括基于RSA或椭圆曲线密码学(ECC)的格式。在一些实施例中,可以使用非对称密钥对算法来生成密钥对。然而,如本领域的普通技术人员所理解,也可以使用其它手段来生成密钥对。

术语“数字签名”可以指消息的电子签名。数字签名可以是数字值、字母数字值或包括图形表示的任何其它类型的数据。数字签名可以是使用加密算法从消息和私钥生成的唯一值。在一些实施例中,可使用采用公钥的验证算法来验证签名。

“客户端计算机”通常可以指可以将交互数据提交给委员会的计算机。客户端计算机可包括计算机(例如台式计算机)、移动装置(例如智能电话、膝上型计算机或平板计算机)或可穿戴装置(例如智能手表或活动***)。客户端计算机可包括无线通信能力(例如Wi-Fi、蓝牙或近场通信)。在一些实施例中,客户端计算机可以与委员会中的节点通信。

“交互”可包括各方、各装置和/或各实体之间的通信、联系或交换。实例交互包括两方之间的交易和两个装置之间的数据交换。交互可以包括数字资产的转移。

“交互数据”可以是与交互相关联的数据。例如,交互可能是将数字资产从一方转移到另一方。例如,交互数据可以包括交易金额和未花费的交易输出(UTXO)。在一些实施例中,交互数据可指示为交互一方的不同实体以及被交换的价值或信息。交互数据可包括价值、与发送方相关联的信息(例如令牌或账户信息、别名、装置标识符、联系地址等)、与接收方相关联的信息(例如令牌或账户信息、别名、装置标识符、联系地址等)、一次性值(例如随机值、随机数(nonce)、时间戳、计数等)和/或任何其它合适的信息。交互数据的实例可以是交易数据。

“块部分”可以是区块链的块的各部分。块部分可以包括未花费的交易输出(UTXO)。其它块部分可以包括标头、交互数据、块标识符和Merkle树。块标头可以包括前一块的哈希、时间戳、难度目标、随机数和/或Merkle根。

“采样器图表”可以是带有节点和边缘的数据的图表,例如随机二分图。二分图可以包括两个集合L和R。集合L可以包括可表示节点的顶点。集合R可以包括表示委员会的顶点。链接在一起的多个采样器图表可以被视为选择图表。在一些实施例中,采样器图表可以包括通过边缘连接到选择图表的下一级委员会的选择图表的一个层级中的节点。

“处理器”可指代任何合适的数据计算装置。处理器可包括一起工作以实现所要功能的一个或多个微处理器。处理器可以包括CPU,所述CPU包括至少一个高速数据处理器,所述高速数据处理器足以执行用于执行用户和/或系统生成的请求的程序组件。所述CPU可以是微处理器,例如AMD的速龙(Athlon)、钻龙(Duron)和/或皓龙(Opteron);IBM和/或摩托罗拉(Motorola)的PowerPC;IBM和索尼(Sony)的Cell处理器;英特尔(Intel)的赛扬(Celeron)、安腾(Itanium)、奔腾(Pentium)、至强(Xeon)和/或XScale;以及/或类似处理器。

“存储器”可以是可存储电子数据的任何合适的装置。合适的存储器可包括非瞬态计算机可读介质,其存储可由处理器执行以实施所要方法的指令。存储器的实例可包括一个或多个存储器芯片、磁盘驱动器等。此类存储器可使用任何合适的电、光和/或磁操作模式来操作。

引言

图1示出了根据本发明的一些实施例的包括多个组件的系统100的框图。系统100包括多个节点,其包括节点A 101、节点B102、节点C103、节点D104、节点E105、节点F106、节点G107以及节点H108。在图1中,节点A 101可以与节点B102、节点C103和节点D104进行操作性通信。应当理解,可以使用任何合适的节点布置。例如,节点A 101可以与节点H108操作性通信。在一些实施例中,多个节点中可能存在任何数量的节点。在其它实施例中,新节点可以加入计算机网络,且节点可以离开计算机网络。系统100中的节点可以在创建节点委员会之前表示计算机网络,如下所述。

图1中所示的节点之间的消息可使用安全通信协议来传输,所述安全通信协议例如但不限于:文件传输协议(FTP)、超文本传输协议(HTTP)、安全超文本传输协议(HTTPS)、安全套接层(SSL)、ISO(例如,ISO 8583)等等。消息可以通过通信网络传输和接收。通信网络可以包括任何合适的通信介质。通信网络可以是下列各项中的一个和/或其组合:直接互连;因特网;局域网(LAN);城域网(MAN);作为因特网节点的运行任务(OMNI);安全定制连接;广域网(WAN);无线网络(例如,采用例如但不限于无线应用协议(WAP)、I-模式等协议)等等。

图2示出根据本发明的一些实施例的节点的框图。示例性节点200可以包括处理器204。处理器204可以耦合到存储器202,网络接口206以及包括选择模块208A、重新配置模块208B和共识模块208C的计算机可读介质208。

存储器202可以存储区块链的分片、交互数据、路由表格、节点标识符和任何其它相关数据。存储器202可以是安全元件、硬件安全模块的形式或任何其它合适的数据存储形式。节点标识符可以是与节点相关联的公钥。例如,第一节点可以与第一公钥相关联。

交互数据可能是与交互相关联的数据。例如,交互可能是将数字资产从一方转移到另一方。例如,交互数据可以包括交易金额和未花费的交易输出(UTXO)。在一些实施例中,交互数据可指示为交互一方的不同实体以及被交换的价值或信息。交互数据可包括价值、与发送方相关联的信息(例如令牌或账户信息、别名、装置标识符、联系地址等)、与接收方相关联的信息(例如令牌或账户信息、别名、装置标识符、联系地址等)、一次性值(例如随机值、随机数、时间戳、计数等)和/或任何其它合适的信息。交互数据的实例可以是交易数据。

网络接口206可以包括可以允许节点200与例如客户端计算机的外部计算机通信的接口。网络接口206可以使节点200能够将数据传达到另一个装置(例如,其它节点)并从另一个装置传达数据。网络接口206的一些实例可包括调制解调器、物理网络接口(例如以太网卡或其它网络接口卡(NIC))、虚拟网络接口、通信端口、个人计算机存储卡国际协会(PCMCIA)插槽和卡等。由网络接口206启用的无线协议可包括Wi-FiTM

计算机可读介质208可以包括多个软件模块,包括选择模块208A、重新配置模块208B和共识模块208C。选择模块208A可以包括可使得处理器204在设置阶段执行选择过程的代码,如下所述。重新配置模块208B可以包括可使得处理器204在调整阶段执行重新配置过程的代码,如下所述。共识模块208C可以包括可使得处理器204在共识阶段执行共识过程的代码,如下所述。

计算机可读介质208可以包括可由处理器204执行的代码,以实施由包括多个节点的计算机网络中的节点执行的方法,每个节点均具有节点标识符,所述方法包括:a)由所述节点从计算机网络中多个节点中的其它节点接收节点标识符;b)由所述节点在包括多个节点的采样器图表中确定多个节点委员会,其中所述节点存在于所述多个节点委员会中的一个节点委员会中;c)所述节点进一步i)生成随机字符串;ii)使用所述随机字符串和哈希函数执行工作证明过程;iii)如果所述工作证明过程产生可接受的解决方案,则将所述解决方案广播到所述多个节点中的所有其它节点,其中所述其它节点验证所述解决方案;以及iv)如果所述其它节点验证所述解决方案,则将所述节点选择给所述节点委员会的小组委员会,其中所述小组委员会更新所述采样器图表;以及d)重复步骤b)和c)直到确定领导委员会。

计算机可读介质208还可以包括可由处理器204执行的代码,以实施包括以下操作的方法:由计算机网络中第一委员会中的第一节点接收包括节点标识符的请求,以使第二节点加入委员会;由所述第一委员会中的所述第一节点向所述第二节点提供工作证明过程;由所述第一委员会中的第一节点从所述第二节点接收对所述工作证明过程的解决方案,其中所述第一委员会中的多个节点验证所述解决方案;由所述第一委员会中的所述第一节点生成随机字符串,所述随机字符串由所述第一节点用于确定所述第二节点的第二委员会;由所述第一节点向第二委员会引入所述第二节点,其中所述第二委员会移位节点以允许所述第二节点加入所述第二委员会;以及由所述第一节点将关于所述第二节点处于所述第二委员会中的信息传达到所述计算机网络中的其它节点。

计算机可读介质208还可以包括可由处理器204执行的代码,以实施包括以下操作的方法:由委员会中的第一节点接收交互请求,所述交互请求包括来自客户端计算机的交互数据;由所述第一节点将所述交互数据以及与其它客户端计算机相关联的其它交互数据并入包括交互数据的块中,其中所述块包括块部分;由所述第一节点将所述块广播到所述委员会中的其它节点,其中所述委员会中的所述其它节点验证所述块;以及将所述块并入由所述委员会管理的区块链的分片中。

概述

大多数分散化的密码货币(例如比特币)依赖于共识协议:允许一组相互不受信任的参与者同意被称为区块链的交易的公共分类账。与传统共识机制不同,区块链共识常常发生在具有开放式成员数的对等网络中,其中尚未确立身份的新参与者可以在协议执行期间加入系统。所述设置引入了新的基本挑战,例如在提供可扩展性的同时处理Sybil攻击和节点变动,这些情况最近仅在Byzantine共识协议领域进行了研究。遗憾的是,已知技术仍然无法解决这些挑战,因为主要受信任假设、可扩展性和负载平衡较差,以及高延迟,因此使它们无法实现和/或对于大规模交易处理来说不安全。

本发明的实施例包括用于公共区块链的Byzantine共识协议,其可以相较于先前工作通过若干方式改善可扩展性和安全性限制。在高层级上,根据本发明的实施例的方法可以将一组节点(例如,计算机网络中的所有节点)分区成多个较小的节点组,这些节点组被称为委员会,其可以在交易的不相连块上并行操作并维护不相连区块链。区块链可以包括有关支付交易的数据。多个节点组当中的操作和/或数据的此分区可以被称为分片[James C.Corbett、Jeffrey Dean、Michael Epstein、Andrew Fikes、Christopher Frost、J.J.Furman、Sanjay Ghemawat、Andrey Gubarev、Christopher Heiser、PeterHochschild、Wilson Hsieh、Sebastian Kanthak、Eugene Kogan、Hongyi Li、AlexanderLloyd、Sergey Melnik、David Mwaura、David Nagle、Sean Quinlan、Rajesh Rao、LindsayRolig、Yasushi Saito、Michal Szymaniak、Christopher Taylor、Ruth Wang和DaleWoodford,Spanner:谷歌的全球分布式数据库,第251到264页,2012],且最近在区块链协议的上下文中进行了研究[Loi Luu、Viswesh Narayanan、Chaodong Zheng、Kunal Baweja、Seth Gilbert和Prateek Saxena,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第17到30页,美国纽约州纽约市,2016年,ACM;和Eleftherios Kokoris-Kogias、Philipp Jovanovic、Linus Gasser、NicolasGailly、Ewa Syta和Bryan Ford,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017年。https://eprint.iacr.org/2017/406]。通过实现共识工作和存储的并行化,基于分片的共识可以相对于委员会的数量按比例扩展系统的吞吐量,不同于基本的Nakamoto共识。

根据本发明的实施例的方法可以为公共区块链提供可扩展的共识协议,其可以从接近节点的1/3分数开始适应于Byzantine故障,并且可以允许每个节点交换次线性量的信息(按参与者的数量计)。与之前的工作不同,根据本发明的实施例的方法可能不依赖于公钥基础设施、可信设置或初始公共随机性。此外,这些方法允许新参与者加入或离开协议,而不会延迟协议的执行。根据本发明的实施例的方法可以实现区块链协议,其可以在无任何可信设置的情况下在较小的节点委员会当中对区块链的通信和存储开销进行分片,使得每个节点都可以交换次线性量的信息。根据本发明的实施例的方法可以是实用的,且与大多数密码货币不同,可以通过将更多资源(即节点)添加到系统来扩展吞吐量。

根据本发明的实施例的方法可以提供以下优势:次线性共识、分散式引导、安全的重新配置、高效的跨分片交易、存储可扩展性,以及高效的原子广播。

根据本发明的实施例的方法可以提供基于分片的区块链协议,其中每个节点可以在共识回合(即,次线性通信)期间将消息传播到次线性数量的其它节点。相比之下,所有之前的工作都要求网络的至少一恒定的分数(例如,90%[Kyle Croman、Christian Decker、Ittay Eyal、Adem Efe Gencer、Ari Juels、Ahmed Kosba、Andrew Miller、PrateekSaxena、Elaine Shi、Emin Gun Sirer、Dawn Song和Roger Wattenhofer,On ScalingDecentralized Blockchains,第106到125页,施普林格出版社,柏林海德堡,2016])接收每个传播的消息。这最终导致在参加者数量上的超线性数量的消息,其在网络中由那些协议交换(参见下表1)。

本发明的实施例可以提供基于分片的区块链协议,其具有比先前系统和方法更高的弹性,可以容忍高达其节点的1/3分数(而不是1/4)的损坏,同时超出前一工作的吞吐量和延迟[Loi Luu、Viswesh Narayanan、Chaodong Zheng、Kunal Baweja、Seth Gilbert和Prateek Saxena,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACMSIGSAC会议的论文集中,CCS'16,第17到30页,美国纽约州纽约市,2016年,ACM;和Eleftherios Kokoris-Kogias、Philipp Jovanovic、Linus Gasser、Nicolas Gailly、EwaSyta和Bryan Ford,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017年。https://eprint.iacr.org/2017/406]。

接下来,将讨论分散化引导。根据本发明的实施例的方法可以在允许开放式成员数的无权限设置下操作,但与最先前的工作不同[Ittay Eyal、Adem Efe Gencer、Emin GunSirer和Robbert van Renesse,比特币-NG:可扩展区块链协议。在第13届关于联网系统设计与实施的Usenix会议的论文集中,NSDI'16,第45到59页,美国加州伯克利,2016年,USENIX协会;和Eleftherios Kokoris-Kogias、Philipp Jovanovic、Nicolas Gailly、Ismail Khoffi、Linus Gasser和Bryan Ford,通过集体签名在强一致性下提高比特币安全性与性能。在第25届USENIX安全性研讨会中,USENIX Security'16,第279到296页,2016年;和Rafael Pass和Elaine Shi,混合共识:无权限模型中的高效共识,密码电子打印归档,报告2016/917,2016年。http://eprint.iacr.org/2016/917;Loi Luu、Viswesh Narayanan、Chaodong Zheng、Kunal Baweja、Seth Gilbert和Prateek Saxena,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第17到30页,美国纽约州纽约市,2016年,ACM;和Eleftherios Kokoris-Kogias、PhilippJovanovic、Linus Gasser、Nicolas Gailly、Ewa Syta和Bryan Ford,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017年。https://eprint.iacr.org/2017/406;和Ittai Abraham、Dahlia Malkhi、Kartik Nayak、Ling Ren和Alexander Spiegelman,Solida:基于可重新配置的Byzantine共识的区块链协议。在第21届关于分布式系统原理的国际会议的论文集中,OPODIS'17,葡萄牙里斯本,2017],实施例可能不会假设存在初始共同的随机性,通常呈共同起源块的形式。创建此类块通常被忽略或仅假设使用分布式随机生成协议进行,例如[Christian Cachin、Klaus Kursawe、Frank Petzold和victor Shoup,安全高效的异步广播协议。在编辑为Joe Kilian的《密码学进展》中-CRYPTO 2001,第524到541页,柏林海德堡,2001年,施普林格出版社;以及E.Syta、P.Jovanovic、E.K.Kogias、N.Gailly、L.Gasser、I.Khoffi、M.J.Fischer和B.Ford,可扩展的抗偏差分布式随机性。在2017年IEEE安全与隐私研讨会(SP)中,第444到460页,2017年5月]。不幸的是,所有这些协议都需要交换Ω(n2)消息。相比之下,根据本发明的实施例的方法可以采用设置协议,其可以允许在仅交换O(m·n)消息而不假设任何初始随机性的情况下就一组多数诚实的委员会达成一致(参见下表1)。O可能是基于算法生长的严格上限。Ω可能是基于算法生长的严格下限。

接下来,将讨论快速委员会共识。与以前的解决方案相比,本发明的实施例可以将对在每个委员会的成员当中传播的较大块的P2P共识的通信开销和延迟减少3到10倍[Ittai Abraham、Dahlia Malkhi、Kartik Nayak、Ling Ren和Alexander Spiegelman,2017年,Solida:基于可重新配置的Byzantine共识的区块链协议。在第21届关于分布式系统原理的国际会议的论文集(OPODIS'17)中,葡萄牙里斯本;和Yossi Gilad、Rotem Hemo、Silvio Micali、Georgios Vlachos和Nickolai Zeldovich,2017年,Algorand:对加密货币的Byzantine协议进行扩展。在第26届关于操作系统原则的研讨会的论文集中(SOSP'17),ACM,美国纽约州纽约市,51到68。https://doi.org/10.1145/3132747.3132757;Eleftherios Kokoris-Kogias、Philipp Jovanovic、Linus Gasser、Nicolas Gailly、EwaSyta和Bryan Ford,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406(2017)。https://eprint.iacr.org/2017/406;和Loi Luu、ViswesNarayanan、Chaodong Zheng、Kunal Baweja、Seth Gilbert和Prateek Saxena,2016年,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中(CCS'16),ACM,美国纽约州纽约市,17到30。https://doi.org/10.1145/2976749.2978389;和Noga Alon、Haim Kaplan、Michael Krivelevich、Dahlia Malkhi和JPStern,2004年,系统一半故障时可扩展安全存储的附录,《信息与计算》(2004);和LingRen、Kartik Nayak、Ittai Abraham和Srinivas Devadas,2017年,实际同步Byzantine共识,CoRR abs/1704.02397(2017)。http://arxiv.org/abs/1704.02397]。

接下来,可以讨论安全的重新配置。根据本发明的实施例的方法可以基于CuCkoo规则扩展[Baruch Awerbuch和Christian Scheideler,向可扩展且稳健的DHT发展。在第18届关于算法和体系结构的并行度的年度ACM研讨会的论文集中,SPAA'06,第318到327页,美国纽约州纽约市,2006年,ACM;和S.Sen和M.J.Freedman,Commensal Cuckoo:大型服务的安全组分区,ACM SIGOPS操作系统综述,46(1):33到39,2012年],以防止在节点变动期间加入/离开攻击;先前基于分片的协议中缺少的属性[Loi Luu、Viswesh Narayanan、ChaodongZheng、Kunal Baweja、Seth Gilbert和Prateek Saxena,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第17到30页,美国纽约州纽约市,2016年,ACM;和Eleftherios Kokoris-Kogias、Philipp Jovanovic、LinusGasser、Nicolas Gailly、Ewa Syta和Bryan Ford,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017年。https://eprint.iacr.org/2017/406]。根据本发明的实施例的方法还可以允许新节点以无缝方式加入计算机网络,而不会在执行协议时出现任何中断或延迟。

接下来,可以讨论跨分片验证。为了验证跨委员会交易,根据本发明的实施例的方法可以允许委员会通过高效的路由机制来发现彼此,所述机制灵感源自Kademlia[PetarMaymounkov和David Mazieres,Kademlia:基于xor度量的对等信息系统。在对对等系统的第一届国际研讨会的修订论文中,IPTPS'01,第53到65页,英国伦敦,2002年,德国施普林格出版社],所述机制可能会产生对数型(在委员会数量上)延迟和存储。不幸的是,现有解决方案中的委员会发现[Loi Luu、Viswesh Narayanan、Chaodong Zheng、Kunal Baweja、SethGilbert和Prateek Saxena,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第17到30页,美国纽约州纽约市,2016年,ACM;和Eleftherios Kokoris-Kogias、Philipp Jovanovic、Linus Gasser、Nicolas Gailly、EwaSyta和Bryan Ford,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017。https://eprint.iacr.org/2017/406]需要若干“向所有对象传播”的调用。

本发明的实施例提供了区块链分区的技术,使得每个节点都可以存储整个区块链的1/k分数。与Kokoris-Kogias最近提议的相关方法相比[Eleftherios Kokoris-Kogias、Philipp Jovanovic、Linus Gasser、Nicolas Gailly、Ewa Syta和Bryan Ford,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017。https://eprint.iacr.org/2017/406],根据本发明的实施例的方法允许一个交易(而不是两个),从而以原子方式投入跨分片交易。

根据本发明的实施例的方法基于Cachin和Tessaro的原子广播协议扩展[Christian Cachin和Stefano Tessaro,异步可验证信息分散。在第19届关于分布式计算的国际会议的论文集中,DISC'05,第503到504页,柏林海德堡,2005年,德国施普林格出版社]以减少在每个委员会内广播交易的较大块的通信开销。这可以实现每个委员会的较高吞吐量以及更大的委员会大小,导致比先前解决方案更低的故障概率[Loi Luu、VisweshNarayanan、Chaodong Zheng、Kunal Baweja、Seth Gilbert和Prateek Saxena,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第17到30页,美国纽约州纽约市,2016年,ACM;和Yossi Gilad、Rotem Hemo、SilvioMicali、Georgios Vlachos和Nickolai Zeldovich,Algorand:对加密货币的Byzantine协议进行扩展。在第26届关于操作系统原则的研讨会的论文集中,SOSP'17,第51到68页,美国纽约州纽约市,2017年,ACM;和Eleftherios Kokoris-Kogias、Philipp Jovanovic、LinusGasser、Nicolas Gailly、Ewa Syta和Bryan Ford,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017年。https://eprint.iacr.org/2017/406]。

可以经验评估本发明的实施例,从而示出这些方法很好地适应大约比特币的网络大小。根据本发明的实施例的方法也可以无缝地处理变动而不会延迟共识协议,并且节点可以花费大约185秒(或更少)加入计算机网络。

表1

上表1示出已知基于分片的区块链协议的复杂性。这些列指示总消息复杂性,除了最后一列示出关于数据块的恒定数量的共识,其中共识复杂性是按照交易的数据块。n可以是参与者的数量,m<<n可以是每个委员会的大小,且|B|可以是区块链的大小。对于本文所述的协议,可以假设数量恒定的分片和尺寸恒定的消息。“引导”是指系统的初始引导以创建初始的共同随机性。

考虑具有n个节点的对等网络,所述节点已经通过抗Sybil的身份生成机制确立身份(即公钥/私钥),例如[Marcin AndRychowicz和Stefan Dziembowski,无可信设置的基于PoW的分布式密码术,第379到399页,德国施普林格出版社,柏林海德堡,2015],其中每个节点都可以解决关于节点的本地生成的身份(即公钥)的计算难题,所述身份可由所有其它(诚实)节点验证,而不假设可信任的随机化信标。在包括n个节点的计算机网络中,根据本发明的实施例的方法可以创建k=n/m个委员会,各自大小为m=clogn个节点,其中c可以是取决于安全参数的常数。

Figure BDA0002328251970000221

表2

上表2示出根据本发明的实施例的方法结果之间的高水平比较和基于分片的协议。

在表2中,可以有500B/tx(每个交易的字节数)、一天长的时期、所有链路的100ms网络延迟,以及三个协议中所有节点的20Mbps带宽。[Elastico]和[OmniLedger]的1600和1800个节点的选择分别基于这些工作中报告的最大网络大小。Elastico协议的失效时间对于较大的网络大小迅速降低。对于OmniLedger,可以预期更大的网络大小最多仅会轻微增加由于需要较大委员会大小而产生的吞吐量。表2中报告的延迟数指代数据块(或交易)确认时间,这是从数据块创建者向网络提议数据块的时间直到网络确认为有效交易的延迟。

根据本发明的实施例的方法可以在被称为时期的固定时间段内进行。图3示出根据本发明的实施例的示出各阶段的流程图。图3包括设置阶段302、调整阶段304和共识阶段306。时期308可以包括调整阶段304和共识阶段306。每个时期308可以包括至少一个回合310。

设置阶段302可以是设置系统的阶段。节点可以使用选择模块208A执行设置阶段302。调整阶段304可以是允许新节点加入系统的阶段。节点可使用重新配置模块208B执行调整阶段304。共识阶段306可以是允许计算机网络的委员会验证交互和将交互存储到区块链中的块中的阶段。节点可使用共识模块208C执行共识阶段。

时期308可以重复任意数量的合适的次数。在一些实施例中,时期308的长度可以是调整阶段304和共识阶段306的长度。回合310可以是一段时间内的一系列活动或功能。例如,回合310可以是计算机网络的节点可以通信的通信回合。回合310可与任何合适的活动或功能序列相关。给定时期308中可以有任何合适数量的回合310。在一些实施例中,可以由计算机网络中的节点顺序执行设置阶段302、调整阶段304和共识阶段306。

第一时期可以由运行概率性委员会选择协议的节点开始,如下所述,所述协议可以允许多个节点在恒定数量的回合中并且通过总共交换最多O(n√n)个位而同意具有m=O(log n)个节点的委员会。假设t<n/3个节点由缓慢适应性Byzantine对手控制,委员会选择协议可以从所有节点的集合中采样委员会,以此方式使得采样集合中的恶意节点的一部分高概率下可能会以1/2为界。被称为领导委员会的所述委员会可在每个时期开始生成新的随机值(被称作时期随机性),其可以贯穿协议使用以:(1)在第一时期内选择一组委员会,(2)允许新节点加入系统,(3)在一个或多个参与者(例如,节点)加入/离开之后重新组织现有委员会,以避免对抗性接收。

一旦领导委员会形成(即,在设置阶段302之后),领导委员会中的每个节点都可以与领导委员会中的其它节点建立P2P网络,并且可以参与下述分布式随机生成协议,以便同意第一时期的随机性r0,其可以由领导委员会中的节点分配到计算机网络中的所有节点。接下来,参与者可以使用r0在本地获得一组新委员会的视图,每个新委员会都有m个节点,其中每个委员会中节点的最多1/2分数高概率下是恶意的。分配给同一委员会的节点可以通过对等发现算法发现彼此,然后可以与同一委员会中的其它节点益气参与Byzantine共识协议的多次运行,以构建和生成由与所述委员会相关联的多个节点存储的区块链。基于Ren等人最近提议的同步共识算法建立[Ling Ren、Kartik Nayak、Ittai Abraham和Srinivas Devadas,实际同步Byzantine共识,CoRR,abs/1704.02397,2017],由使用时期随机性随机选择的领导者列表所驱动,本发明的实施例可以允许高效的委员会内共识,最佳弹性为t<n/2。

在根据本发明的实施例的方法中,可以对由外部用户(即,客户端计算机)提交给委员会的交易块或调整阶段304中委员会的周期性重新配置进行共识决策。这些事件可以由名为时期的固定时间间隔进行确定标记,并响应于缓慢适应性的对手允许计算机网络重新组织委员会[Rafael Pass和Elaine Shi,混合共识:无权限模型中的高效共识,密码电子打印归档,报告2016/917,2016年。http://eprint.iacr.org/2016/917]。这种对手可能会在时期结束时损坏新节点(即接管委员会)(即所述一组委员会在每个时期期间可固定)。不幸的是,重复整个委员会选择协议以响应于节点不太频繁地加入和离开计算机网络而重新配置委员会可能给计算机网络带来巨大的开销。因此,在每个时期结束时,本发明的实施例可以基于Cuckoo规则实现价格最低的重新配置协议[Baruch Awerbuch和ChristianScheideler,向可扩展且稳健的DHT发展。在第18届关于算法和体系结构的并行度的年度ACM研讨会的论文集中,SPAA'06,第318到327页,美国纽约州纽约市,2006年,ACM;和S.Sen和M.J.Freedman,Commensal Cuckoo:大型服务的安全组分区,ACM SIGOPS操作系统综述,46(1):33到39,2012],其可以在委员会之间移动恒定数量的节点,同时可证明地保证防止加入/离开攻击的安全性。

在重新配置协议期间,发生在第i时期结束时,每个委员会都可以针对下一时期生成新的随机性ri+1。新的随机性不仅可以允许协议以不可预测的方式在委员会之间移动某一数量的节点,因此阻碍恶意接收,但也可以允许针对新节点创建新的计算谜题(即工作证明),这些新节点请求在下一时期(即,时期i+1)结束时加入。如果在下一次重新配置事件之前可以解决新的谜题,这种新节点可以被许可进入系统。否则,它必须解决另一个新的谜题,可以在下一时期结束时揭露这些谜题中最迅速的谜题。

在委员会可以向区块链添加交易数据块之前,委员会可以验证块中每次交易的有效性。这可能发生在共识阶段306中。在比特币的模型中,此类验证通常取决于记录新交易所花费的某些先前未花费资产的其它交易。由于本发明的实施例可以将主区块链分片成多个不相连的区块链,各自由不同委员会存储,因此“验证委员会”可以与“源委员会”通信,以确保在源委员会的区块链中存在相关交易。基于来自Kademlia的想法建立[PetarMaymounkov和David Mazieres,Kademlia:基于xor度量的对等信息系统。在对对等系统的第一届国际研讨会的修订论文中,IPTPS'01,第53到65页,英国伦敦,2002年,德国施普林格出版社],验证委员会可以与对数数量的其它委员会进行通信以发现存储相关交易的委员会。

本发明的实施例可以通过采用更高效的共识协议克服来自实际Byzantine容错率(PBFT)协议的效率的委员会大小的限制,所述共识协议开发于[Andrew Miller、Yu Xia、Kyle Croman、Elaine Shi和Dawn Song,bft协议的Honey Badger。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第31到42页,美国纽约州纽约市,2016年,ACM]。本协议可以使用原子广播协议[Gabriel Bracha和Sam Toueg,异步共识和广播协议,《美国计算机学会期刊》(JACM),32(4):824到840,1985],改进本发明的实施例以降低在同步通信模型中发送较大消息的通信成本。因此,本发明的实施例可处理数百个节点(例如,400个节点)的委员会大小。由于委员会可以具有动态成员数,因此基于Kademlia算法的高效路由协议[Petar Maymounkov和David Mazieres,Kademlia:基于xor度量的对等信息系统。在对对等系统的第一届国际研讨会的修订论文中,IPTPS'01,第53到65页,英国伦敦,2002年,德国施普林格出版社],其实现快速委员会发现和通信,可以在本发明的实施例中使用。本发明的实施例可以避免每个节点必须通过引入新的分片协议来存储整个区块链的要求,所述协议可以允许委员会在分类账中对交易进行分区,并将其进行分配以存储在不同委员会中。

本发明的实施例可以使用Ren等人的共识协议[Ling Ren、Kartik Nayak、IttaiAbraham和Srinivas Devadas,实际同步Byzantine共识,CoRR,abs/1704.02397,2017]以实现委员会中1/2的最佳弹性,且因此允许具有更高总弹性1/3的较小委员会大小(相较于先前工作[Loi Luu、Viswesh Narayanan、Chaodong Zheng、Kunal Baweja、Seth Gilbert和Prateek Saxena,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACMSIGSAC会议的论文集中,CCS'16,第17到30页,美国纽约州纽约市,2016年,ACM;和Eleftherios Kokoris-Kogias、Philipp Jovanovic、Linus Gasser、Nicolas Gailly、EwaSyta和Bryan Ford,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017年。https://eprint.iacr.org/2017/406.])。不同于异步协议,例如PBFT[Miguel Castro和Barbara Liskov,实际Byzantine容错性。在关于操作系统设计和实施的第三次研讨会的论文集中,OSDI'99,第173到186页,1999年],Ren等人的协议,以及其它大多数同步协议,例如[Jonathan Katz和Chiu-Yuen Koo,对Byzantine协议的预期恒定回合协议。在《密码学进展》-CRYPTO 2006中,计算机科学讲义第4117卷,第445到462页,德国施普林格出版社,2006年]未响应予[Rafael Pass和Elaine Shi,混合共识:无权限模型中的高效共识,密码电子打印归档,报告2016/917,2016。http://eprint.iacr.org/2016/917],这意味着它以固定速率传播给消息,通常由Δ表示,且因此其速度可以独立于网络的实际延迟。

虽然大多数基于委员会的协议(例如,[ITTAI Abraham、Dahlia Malkhi、KartikNayak、Ling Ren和Alexander Spiegelman,Solida:基于可重新配置的Byzantine共识的区块链协议。在第21届关于分布式系统原理的国际会议的论文集中,OPODIS'17,葡萄牙里斯本,2017.],经由同步协议选择PBFT以实现响应性,这通常导致较大成本,从而通常导致明显较差吞吐量和延迟,因此妨碍响应性。由于异步共识要求t<n/3,因此需要假设大约1/5或更小的总弹性以实现类似的委员会大小和故障概率,当在1/3弹性情况下进行委员会采样时。遗憾的是,增大总弹性(例如,增大到1/4)可显著增加委员会的大小(例如,变大3到4倍),从而使委员会内部共识非常低效。

本发明的实施例可以每周或任何其它合适的时间长度在委员会成员当中运行预先调度的共识回合,以对新的Δ达成一致,以使得计算机网络可以在计算机网络的最新平均延迟下调整共识速度。虽然这并不完全解决响应问题,但它可以随着技术进步使协议响应于长期、更稳固的网络变化。

使用同步共识协议的另一个挑战可发生在跨分片交易情境下,其中恶意领导者可以用已被验证委员会中的一些但不是所有诚实成员接受的交易欺骗源委员会。这种情况可能会发生,因为不同于异步共识协议,例如PBFT[Miguel Castro和Barbara Liskov,实际Byzantine容错性。在关于操作系统设计和实施的第三次研讨会的论文集中,OSDI'99,第173到186页,1999年],其以事件驱动的方式继续进行,同步共识协议以在固定回合的形式继续进行,且因此,一些诚实节点可以在交易可以被视为“提交”到区块链之前终止于仍需要在未来的迭代中被所有诚实节点接受的具有“安全值”的其它节点之前。

共识技术

由于对Byzantine共识的大量研究,在本节中审查了此类协议的两种类别:基于委员会和基于分片的共识协议。另请参见[Shehar Bano、Alberto Sonnino、Mustafa Al-Bassam、Sarah Azouvi、Patrick McCorry、Sarah Meiklejohn和George Danezis,区块链年龄的共识,CoRR,abs/1711.03936,2017年]以对先前的区块链共识协议进行完整调查。

基于承诺的共识

Bracha[G Bracha,o(log n)预期回合随机性的Byzantine通用协议。在第17届年度计算理论ACM研讨会的论文集中,STOC'85,第316到326页,美国纽约州纽约市,1985,ACM.]描述了降低Byzantine协议回合复杂度的共识协议,其后来改进于[RafailOstrovsky、Sridhar Rajagopalan和Umesh Vazirani,完整信息模型中简单且高效的领导者选择,1994年;和Alexander Russell和David Zuckerman,在log*N+o(1)个回合中选择完美的信息领导者。在第39届计算机科学基础年度研讨会的论文集中,FOCS'98,第576页-,美国华盛顿特区,1998年,IEEE计算机协会]。使用委员会来按比例缩放Byzantine协议的通信和计算开销的想法追溯到King等人的工作[Valerie King、Jared Saia、Vishal Sanwalani和Erik Vee,可扩展领导者选择。在第17届关于离散算法的年度ACM-SIAM研讨会的论文集中,SODA'06,第990到999页,美国宾夕法尼亚州费城,2006]以及他们的后续工作[ValerieKing和Jared Saia,断开o(n^2)位屏障:与适应性对手的可扩展Byzantine协议。在第29届关于分布式计算原理的ACM SIGACT-SIGOPS研讨会的论文集中,PODC'10,第420到429页,美国纽约州纽约市,2010年,ACM],这相对于参与者数量在仅次线性各方开销下在全连接网络中允许Byzantine协议。不幸的是,两种协议仅提供理论结果,且不能直接用于公共区块链设置(即开放式成员数对等网络)。

Decker等人在公共区块链模型(即,开放式成员数对等网络)中提出基于委员会的共识协议,称为PeerCensus。他们提出在委员会内使用PBFT[Miguel Castro和BarbaraLiskov,实际Byzantine容错性。在关于操作系统设计和实施的第三次研讨会的论文集中,OSDI'99,第173到186页,1999年]以批准交易。但是,PeerCensus并未明确提及如何形成和维护委员会,以确保在整个协议中实现委员会中大多数的诚实性。混合共识[Rafael Pass和Elaine Shi,混合共识:无权限模型中的高效共识,密码电子打印归档,报告2016/917,2016年。http://eprint.iacr.org/2016/917]提出定期选择运行Byzantine共识协议的委员会,所述协议假设在某些时间段内可能仅损坏诚实节点的轻度适应性对手。ByzCoin[Eleftherios Kokoris-Kogias、Philipp Jovanovic、Nicolas Gailly、Ismail Khoffi、Linus Gasser和Bryan Ford,通过集体签名在强一致性下提高比特币安全性与性能。在第25届USENIX安全性研讨会中,USENIX Security'16,第279到296页,2016年]提出在委员会内使用多签名协议,以改善交易吞吐量。但是,ByzCoin的规格不完整,且已知协议对Byzantine故障具有严重漏洞[Rafael Pass和Elaine Shi,混合共识:无权限模型中的高效共识,密码电子打印归档,报告2016/917,2016年。http://eprint.iacr.org/2016/917;和Ittai Abraham、Dahlia Malkhi、Kartik Nayak、Ling Ren和Alexander Spiegelman,Solida:基于可重新配置的Byzantine共识的区块链协议。在第21届关于分布式系统原则的国际会议的论文集中,OPODIS'17,葡萄牙里斯本,2017年;和Shehar Bano、AlbertoSonnino、Mustafa Al-Bassam、Sarah Azouvi、Patrick McCorry、Sarah Meiklejohn和George Danezis,区块链年龄的共识,CoRR、abs/1711.03936,2017]。

Algorand[Yossi Gilad、Rotem Hemo、Silvio Micali、Georgios Vlachos和Nickolai Zeldovich,Algorand:对加密货币的Byzantine协议进行扩展。在第26届关于操作系统原理的研讨会的论文集中,SOSP'17,第51到68页,美国纽约州纽约市,2017年,ACM.]提出了基于委员会的共识协议,被称为BA*,其使用可验证随机功能(VRF)[Silvio Micali、Salil Vadhan和Michael Rabin,可验证随机功能。在第40届计算机科学基础年度研讨会的论文集中,FOCS'99,第120页-,美国华盛顿特区,1999年,IEEE计算机协会]以私人和非交互方式随机选择由账户余额加权的委员会成员。因此,对手不知道哪个节点为目标,直到其与其它委员会成员参与BA*协议。Algorand在BA*的每个步骤中将委员会成员替换为新成员,以避免完全适应性对手对委员会成员进行针对性攻击。然而,每个VRF调用(即VRF种子)中使用的随机性都可以被对手偏置;协议提出了一种回溯机制,以确保强同步和因此无偏置的种子,这导致了被称为“不是利害攸关”问题的问题情况。

假设值得信赖的起源块Solida[Ittai Abraham、Dahlia Malkhi、Kartik Nayak、Ling Ren和Alexander Spiegelman,Solida:基于可重新配置的Byzantine共识的区块链协议。在第21届关于分布式系统原则的国际会议的论文集中,OPODIS'17,葡萄牙里斯本,2017]使用其对工作证明过程的解决方案将节点选择到委员会上,所述过程在每个回合中通过2t+1委员会成员签名揭露以避免预计算和预扣攻击。为了填补分类账中的每个时隙,使用可重新配置的Byzantine共识协议,其中对一批交易或重新配置事件做出共识决策。后者记录委员会中的成员数变动,并允许通过由其PoW解决方案对候选人进行排名来在每个事件中最多更换一个成员。协议允许获胜的候选人领导重新配置共识,避免内部恶意领导者故意延迟重新配置事件,以便在工作证明过程中为其它恶意节点争取时间。

基于分片的共识

与比特币不同,基于分片的区块链共识协议可以通过允许多个节点委员会并行处理进入交易而增大其交易处理功率以及加入网络的参与者的数量。因此,将整个协议的每个共识回合中所处理的交易总数乘以委员会的数量。虽然基于分片的区块链协议上存在多个工作,例如[Timo Hanke,Dfinity***:我们的共识算法。https://medium.com/dfinity/dfinity-white-paper-our-consensus-algorithm-a11adc0a054c,2018年;和Zilliqa团队,Zilliqa技术***。https://docs.zilliqa.com/whitepaper.pdf,2017年8月;和Hsiao-Wei Wang,Ethereum分片:概述和定论。https://medium.com/@icebearhww/ethereum-sharding-and-finality-65248951F649,2017],检视关注在被称为UTXO模型的比特币交易模型中处理分片的结果。

Elastico

Luu等人[Loi Luu、Viswesh Narayanan、Chaodong Zheng、Kunal Baweja、SethGilbert和Prateek Saxena,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第17到30页,美国纽约州纽约市,2016年,ACM.]提出Elastico,用于公共区块链的基于分片的共识协议。在每个共识时期中,每个参与者都会基于从区块链最后一个状态获得的时期随机性来解决工作证明。PoW的最低有效位用于确定相互协调以处理交易的委员会。

虽然Elastico可以将比特币的吞吐量和延迟提高若干数量级,但它仍有几个缺点:(1)Elastico要求所有各方重新确立其身份(即,解决PoW),并在“每个”时期重新建立所有委员会。除了相对较大的通信开销外,这还引起随着网络大小线性缩放的显著延迟,因为协议需要更多时间来解决足够的工作证明过程,从而满足所有委员会的需求。(2)在实践中,Elastico需要委员会大小较小,大约100方,以限制每个委员会中运行PBFT的开销。遗憾的是,这会大大增加协议的故障概率,并且使用简单的分析方法(参见[EleftheriosKokoris-Kogias、Philipp Jovanovic、Linus Gasser、Nicolas Gailly、Ewa Syta和BryanFord,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017年。https://eprint.iacr.org/2017/406.]),此概率在仅六个时期之后可高达0.97,从而使得协议实际上完全不安全。

Elastico的每个时期中使用的随机性可以被对手偏置,且因此会损害委员会选择过程,甚至允许恶意节点预计算工作证明过程;Elastico需要可信的设置来生成同时显露给所有各方的初始共同随机性。(5)虽然Elastico允许每一方仅验证交易子集,但仍必须将所有数据块广播到各方,并要求每方存储整个分类账。(6)最后,在故障概率很高情况下,Elastico只能容忍最多1/4分数的故障方。Elastico需要结合这种低弹性,以便实现实际委员会大小。

OmniLedger

在最近的工作中,Kokoris-Kogias等人[Eleftherios Kokoris-Kogias、PhilippJovanovic、Linus Gasser、Nicolas Gailly、Ewa Syta和Bryan Ford,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017年。https://eprint.iacr.org/2017/406]提出OmniLedger,试图解决Elastico的一些问题的基于分片的分布式分类账协议。假设缓慢适应性对手可以在每个时期开始时损坏多达1/4分数的节点,OmniLedger协议在每个时期运行全局重新配置协议,每天约一次,以允许新参与者加入协议。协议使用假设同步信道的缓慢身份区块链协议来生成身份并将参与者分配给委员会。在每个时期,对于不可预测的领导者选择,使用依赖于可验证随机功能(VRF)的抗偏差随机生成协议生成随机性[Silvio Micali、Salil Vadhan和Michael Rabin,可验证随机功能。在第40届计算机科学基础年度研讨会的论文集中,FOCS'99,第120页-,美国华盛顿特区,1999年,IEEE计算机协会],以与Algorand的彩票算法类似的方式[Silvio Micali,ALGORAND:高效和民主的分类账,CoRR、abs/1607.01341,2016]。共识协议假设部分同步的信道使用ByzCoin的变体达成共识[Eleftherios Kokoris-Kogias、Philipp Jovanovic、Nicolas Gailly、Ismail Khoffi、Linus Gasser和Bryan Ford,通过集体签名在强一致性下提高比特币安全性与性能。在第25届USENIX安全性研讨会中,USENIX Security'16,第279到296页,2016年],其中随机性进一步用于将委员会分成较小组。ByzCoin的设计已知有几个安全/性能问题[Rafael Pass和Elaine Shi,混合共识:无权限模型中的高效共识,密码电子打印归档,报告2016/917,2016年。http://eprint.iacr.org/2016/917;IttaiAbraham、Dahlia Malkhi、Kartik Nayak、Ling Ren和Alexander Spiegelman,Solida:基于可重新配置的Byzantine共识的区块链协议。在第21届关于分布式系统原则的国际会议的论文集中,OPODIS'17,葡萄牙里斯本,2017],尤其是它在Byzantine设置下回到全互换通信(all-to-all communication)。不幸的是,由于新方案的不完整且不断更改的规范,尚不清楚OmniLedger中所使用的新方案如何应对这些问题。

此外,OmniLedger尚未解决的若干挑战如下:(1)与Elastico类似,OmniLedger只能容忍t<n/4的损坏。实际上,当t<n/8时,协议只能实现低延迟(例如,少于10秒);(2)因为每个委员会都需要针对每个交易数据块将几个消息传播到所有n个节点,因此OmniLedger的共识协议需要每节点O(n)次通信;(3)OmniLedger需要可信设置生成初始不可预测配置,以在第一时期确定VRF为种子。用于生成这种常见种子的平凡算法需要Ω(n2)个位的通信。

(4)OmniLedger网络功能对于应从输入分片收集输入UTXO的证明并且将其提供给输出分片的客户端来说显而易见;(5)由于客户端的积极作用,OmniLedger不是要扩展以在所述链上执行一般计算的好候选人。但是,它们提供了一些将客户端角色委派给分片的初步方法,这个版本尚未得到充分描述,并且未在结果中进行测试;且(6)OmniLedger易受可以锁定利用原子跨分片协议的任意交易的恶意块产生器作出的拒绝服务(DoS)攻击。

当t<n/4时,只有当将最优的可信但要验证的方法用于在吞吐量与交易确认延迟之间进行取舍时,OmniLedger才能实现高吞吐量(例如,超过500tx/秒)。在这种方法中,一组最优的验证者处理交易快速提供临时承诺,这些承诺后来由一组核心验证者进行验证。虽然这种方法对特殊情境似乎有用,例如快速处理低风险小额交易的小额支付,但它可以被视为定期支付的高风险方法,尤其是由于现今的分散化系统中缺乏金融负债机制。但是,任何区块链协议(包括比特币的区块链协议)都有必须在实践中要考虑的交易确认延迟,以限制交易风险。

同步共识

Castro和Liskov的Byzantine共识协议[Miguel Castro和Barbara Liskov,实际Byzantine容错性。在关于操作系统设计和实施的第三次研讨会的论文集中,OSDI'99,第173到186页,1999年],被称为PBFT,可以在经过认证的设置(即,使用数字签名)下通过异步通信信道容忍最多t<n/3个损坏节点。虽然异步的Byzantine共识要求t<n/3,甚至具有数字签名[Gabriel Bracha和Sam Toueg,弹性共识协议。在第二届关于分布式计算原理的年度ACM研讨会的论文集中,PODC'83,第12到26页,美国纽约州纽约市,1983年,ACM],但可使用数字签名在t<n/2下解决同步共识。最近,Ren等人[Ling Ren、Kartik Nayak、IttaiAbraham和Srinivas Devadas,实际同步Byzantine共识,CoRR,abs/1704.02397,2017年]提出在同步、经认证通信网络中对Byzantine共识的预期恒定回合算法,其中最多t<n/2个节点可能损坏。虽然已知的最好前一结果,由于Katz和Koo[Jonathan Katz和Chiu-Yuen Koo,对Byzantine协议的预期恒定回合协议。在《密码学进展》-CRYPTO 2006中,计算机科学讲义第4117卷,第445到462页,施普林格出版社,2006年],预期需要24个回合的通信,但Ren等人的协议预期仅需要8个回合。

Ren等人假设存在随机领导者选择协议,然后在每次迭代中用新的唯一领导者迭代运行。如果领导者诚实,则所述迭代中的共识就会得到保证。否则,Byzantine领导者可以防止进展,但不能违反安全性,这意味着一些诚实的节点在迭代结束时可能不会终止,但在所述迭代中终止的所有诚实节点都可以输出相同的值,称为安全值。如果至少一个节点可以示出为决定安全值的新领导者,则新领导者在下次迭代中提出相同的值。否则,新领导者会提出新的值。

信息分散

Rabin[Valerie King、Jared Saia、Vishal Sanwalani和Erik Vee,2006年,可扩展领导者选择。在第17届关于离散算法的年度ACM-SIAM研讨会的论文集中(SODA'06),美国宾夕法尼亚州费城,990到999]介绍了信息分散算法(IDA)的概念,这些信息分散算法可以将消息(或文件)分割成多个信息块,以此方式使得信息块的子集将足以重构消息。这是使用擦除代码实现的[Richard E Blahut,1983年,错误控制代码的理论和实践,第126卷,Addison-Wesley Reading(Ma)等],由于错误校正代码(ECC)允许某些信息块丢失但未经修改的特定情况。Krawczyk[Hugo Krawczyk,1993年,分布式指纹和安全信息分散。在第12届关于分布式计算原理的年度ACM研讨会的论文集中(PODC'93),ACM,美国纽约州纽约市,207到218。https://doi.org/10.1145/164051.164075]通过计算每个信息块的指纹以及使用错误校正代码存储指纹的向量而将此扩展为容忍损坏(即已更改)信息块。Alon等人[NogaAlon、Haim Kaplan、Michael Krivelevich、Dahlia Malkhi和Julien Stern,2000年,系统一半故障时可扩展的安全存储。在第27届关于自动机、语言和编程的国际学术研讨会的论文集中;和Noga Alon、Haim Kaplan、Michael Krivelevich、Dahlia Malkhi和JP Stern,2004年,系统一半故障时可扩展安全存储的附录,《信息与计算》(2004年)]通过经由编码信息块计算Merkle哈希树来描述更高效的IDA机制[Ralph C.Merkle,1988年,基于传统加密功能的数字签名。在关于密码学进展的加密技术的理论和应用的会议中(CRYPTO'87),施普林格出版社,英国伦敦,369到378。http://dl.acm.org/citation.cfm?id=646752.704751],以便验证每个接收信息块是否损坏。

本发明的实施例构建并改善Alon等人的IDA[Noga Alon、Haim Kaplan、MichaelKrivelevich、Dahlia Malkhi和JP Stern,2004年,系统一半故障时可扩展安全存储的附录,《信息与计算》(2004年)]和Ren等人的共识协议[Ling Ren、Kartik Nayak、IttaiAbraham和Srinivas Devadas,2017年,实际同步Byzantine共识,CoRR abs/1704.02397(2017)。http://arxiv.org/abs/1704.02397]以执行关于各委员会内的较大数据块的高效共识。一旦ECC编码的消息通过IDA分散在网络中,那么诚实节点就可以使用Ren等人的协议来对Merkle树的根达成一致,以确保一致性。Merkle树可以是数据结构。在一些实施例中,Merkle树可以包括叶节点和非叶节点,其中每个叶节点都可以用数据块的哈希标记,并且每个非叶节点都可以用其子节点的标签的加密哈希标记。使用发送方发送的Merkle树中的对应身份认证路径,接收者可以验证信息块的完整性并使用解码机制来恢复消息,如下文第IV.B节中进一步详细描述。

模型和问题定义

在本节中,可以讨论本发明实施例中使用的网络模型和威胁模型。

网络模型

考虑对等网络中的n个节点,其中对于每个消息的传送时间可能存在已知的固定上限Δ。在一回合中发送的所有消息都可以在所述回合结束时被传送,并且这些消息的顺序不一定会被保留。在一些实施例中,消息可通过谣传在网络中传播[C.Decker和R.Wattenhofer,比特币网络中的信息传播。在P2P中,第1到10页,IEEE,2013年;和R.Karp、C.Schindelhauer、S.Shenker和B.Vocking,随机性的谣言传播。在第41届关于计算机科学基础的年度研讨会的论文集中,FOCS'00,第565页-,美国华盛顿特区,2000年,IEEE计算机协会]。这可以是分布式计算中的标准同步网络模型,且可以由区块链共识协议采用[LoiLuu、Viswesh Narayanan、Chaodong Zheng、Kunal Baweja、Seth Gilbert和PrateekSaxena,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第17到30页,美国纽约州纽约市,2016年,ACM;和Yossi Gilad、Rotem Hemo、Silvio Micali、Georgios Vlachos和Nickolai Zeldovich,Algorand:对加密货币的Byzantine协议进行扩展。在第26届关于操作系统原理的研讨会的论文集中,SOSP'17,第51到68页,美国纽约州纽约市,2017年,ACM;和Eleftherios Kokoris-Kogias、Philipp Jovanovic、Linus Gasser、Nicolas Gailly、Ewa Syta和Bryan Ford,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017年。https://eprint.iacr.org/2017/406;和Ittai Abraham、Dahlia Malkhi、Kartik Nayak、Ling Ren和Alexander Spiegelman,Solida:基于可重新配置的Byzantine共识的区块链协议。在第21届关于分布式系统原则的国际会议的论文集中,OPODIS'17,葡萄牙里斯本,2017年],以作为互联网的实际假设。这种模型有时被称为区块链文献中的异步网络模型[Rafael Pass、Lior Seeman和Abhi Shelat,分析异步网络中的区块链协议。在编辑为Jean-Sebastien Coron和Jesper Buus Nielsen的《密码学进展》中-EUROCRYPT2017,第643到673页,Cham,2017年,施普林格国际出版社],这可能会令人困惑,因为在传统的异步网络中,对手可以任意地延迟网络中的消息。同步网络(包括比特币)中不会发生这种情况。也如Abraham等人所指出[Ittai Abraham、Dahlia Malkhi、Kartik Nayak、LingRen和Alexander Spiegelman,Solida:基于可重新配置的Byzantine共识的区块链协议。在第21届关于分布式系统原理的国际会议的论文集中,OPODIS'17,葡萄牙里斯本,2017],这种术语的差异很可能是因为比特币既不是同步的,也不是以传统方式异步的。

对于每个委员会内部运行的Byzantine共识协议,本发明的实施例可以在委员会的多个节点当中创建本地对等网络。在实践中,Δ可以在具有多于200多个节点的对等网络中以秒为单位保守地设置。因此,类似于[Eleftherios Kokoris-Kogias、PhilippJovanovic、Linus Gasser、Nicolas Gailly、Ewa Syta和Bryan Ford,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017。https://ePrint.iacr.org/2017/406],本发明的实施例可以在超时呈指数增长的情况下在每个委员会的成员之间使用部分同步信道[Miguel Castro和Barbara Liskov,实际Byzantine容错性。在关于操作系统设计和实施的第三次研讨会的论文集中,OSDI'99,第173到186页,1999年],以使延迟最小化。在不损失普遍性情况下且类似于大多数混合区块链协议[Christian Decker、Jochen Seidel和Roger Wattenhofer,比特币符合强一致性。在第17届关于分布式计算和网络的国际会议的论文集中,ICDCN'16,第13:1到13:10页,美国纽约州纽约市,2016年,ACM;和Rafael Pass和Elaine Shi,混合共识:无权限模型中的高效共识,密码电子打印归档,报告2016/917,2016年。http://eprint.iacr.org/2016/917;LoiLuu、Viswesh Narayanan、Chaodong Zheng、Kunal Baweja、Seth Gilbert和PrateekSaxena,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第17到30页,美国纽约州纽约市,2016年,ACM;和EleftheriosKokoris-Kogias、Philipp Jovanovic、Linus Gasser、Nicolas Gailly、Ewa Syta和BryanFord,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码印刷归档,报告2017/406,2017。https://eprint.iacr.org/2017/406],在一些实施例中,计算机网络中的所有参与者都可以具有等效的计算资源。在一些实施例中,一组初始节点可同时启动协议。

威胁模型

本发明的实施例考虑了可以在任何时候损坏t<n/3个节点的概率多项式时间Byzantine对手。损坏的节点相互串联,且也可以以任何任意方式偏离协议(例如,通过发送无效或不一致的消息、保持沉默等)。类似于大多数基于委员会的协议[Christian Decker、Jochen Seidel和Roger Wattenhofer,比特币符合强一致性。在第17届关于分布式计算和网络的国际会议的论文集中,ICDCN'16,第13:1到13:10页,美国纽约州纽约市,2016年,ACM;和Eleftherios Kokoris-Kogias、Philipp Jovanovic、Nicolas Gailly、IsmailKhoffi、Linus Gasser和Bryan Ford,通过集体签名在强一致性下提高比特币安全性与性能。在第25届USENIX安全性研讨会中,USENIX Security'16,第279到296页,2016年;和Rafael Pass和Elaine Shi,混合共识:无权限模型中的高效共识,密码电子打印归档,报告2016/917,2016年。http://eprint.iacr.org/2016/917;和Eleftherios Kokoris-Kogias、Philipp Jovanovic、Linus Gasser、Nicolas Gailly、Ewa Syta和Bryan Ford,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017年。https://eprint.iacr.org/2017/406;和Ittai Abraham、Dahlia Malkhi、Kartik Nayak、Ling Ren和Alexander Spiegelman,Solida:基于可重新配置的Byzantine共识的区块链协议。在第21届关于分布式系统原理的国际会议的论文集中,OPODIS'17,葡萄牙里斯本,2017],假设对手可以缓慢适应,这意味着可以允许对手在协议开始时和/或在每个时期之间选择一组损坏的节点,但不能在一时期内更改这组损坏的节点。在一些实施例中,节点可以由于任何原因,例如内部故障或网络抖动在一时期期间或在两个时期之间与计算机网络断开连接。但是,在任何时候,计算资源的至少2/3分数可以属于在线的未损坏的参与者(即,在网络时间界限内响应)。本发明的一些实施例并不依赖于任何公钥基础设施或任何安全广播信道,但可以使用随机Oracle进行冲突困难的哈希函数。随机Oracle可以响应随机对独特查询作出响应。如果恶意方难以确定哈希到同一输出的两个输入,则哈希函数可能是冲突困难的。

问题定义

在一些实施例中,协议可以包括基于安全分片协议的定义的修改版本的安全链式分片协议,来自[Loi Luu、Viswesh Narayanan、Chaodong Zheng、Kunal Baweja、SethGilbert和Prateek Saxena,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第17到30页,美国纽约州纽约市,2016年,ACM]。在一些实施例中,可以通过位于计算机网络外部的客户端计算机将一组交易发送到计算机网络。这一组交易可被分成k个不相连块。xi,j表示第i个块中的第j个交易。在一些实施例中,所有节点都可以访问外部函数f,其在给定交易的情况下输出0或1,分别指示交易是无效还是有效。协议П输出包含k个不相连子集或分片的集合X,对于每个j∈{1..|Xi|},Xi={xi,j},使得保持以下情况:

协议:对于每个i∈{1..k},至少Ω(logn)个节点可以在至少1-2的高概率下同意Xi,其中λ可以是安全性参数。

有效性:对于每个i∈{1..k}和j∈{1..|Xi|},f(xi,j)=1。

可扩展性:k可以随着n近似线性增长。

效率:每一方的通信和计算复杂性都可以是O(n)且每一方的存储复杂性都可以是O(s)。

标记和术语

如果事件发生概率高,事件可能发生的概率为1-O(1/2λ),其中λ可以是安全性参数。

Figure BDA0002328251970000361

个节点的集合可能是委员会。委员会的子集可以是小组委员会。节点(一方)P可以成为委员会C的成员。C的其它节点可能是C中的节点P的邻居。在一些实施例中,当委员会运行协议时,委员会的所有成员都可以参与协议的执行。如果委员会中少于1/3分数的节点是恶意的,则委员会可能会被视为较佳的。让委员会1C1和委员会2C2成为两个良好委员会。在一些实施例中,当委员会1C1将消息m发送到委员会2C2时,委员会1C1的每个诚实的成员可以将m发送到委员会2C2的每个成员。由于委员会2C2的每个成员可能会因恶意行为而接收不同的消息,因此委员会2C2可以至少1/3+1的频率选择消息。在其它实施例中,当委员会1C1向委员会2C2发送消息时,委员会1C1的领导节点可以接收包括委员会1C1中多个节点中的每个节点的数字签名的消息并且可以聚合消息,然后可以将聚合消息传输给委员会2C2的领导者。委员会2C2的领导者可以将聚合消息传输到委员会2C2中的每个节点,其中委员会2C2中的每个节点可验证委员会1C1中多个节点创建的数字签名。

根据本发明实施例的协议

在本节中,描述了可扩展的Byzantine共识协议。根据本发明的实施例的方法可以以三种不同的阶段运行:设置、共识和调整(参见图3)。协议的主要技术组成部分可以启用功能创建和维护多个委员会,这些委员会可在高概率下具有最多1/3的恶意节点,同时允许节点变动。每个委员会都可以存储和添加交易到区块链的一个分区(即区块链的分片)。

在详细描述根据本发明实施例的不同阶段之前,可以呈现被称为安全随机生成(GenRand)的委员会内的随机数量生成的构造。计算机网络可以包括N个节点,其中T个节点可能是恶意的。节点可以使用以下GenRand协议生成l个随机性位。协议可以有两个步骤:i)承诺和ii)揭露。在承诺阶段期间,每个节点pi可以在本地生成

Figure BDA0002328251970000371

位随机值ri和对ri的承诺ci。每个节点都可以可靠地广播ci到每个其它节点。在揭露阶段期间,节点可以可靠地广播随机值ri到每个其它节点。在一些实施例中,所生成的随机值ri可以从其它节点隐藏。承诺ci可以证明所生成的节点ri,但不能对其它节点公开ri的值。

在从所有其它节点接收到(ci,ri)之后,每个节点都可以检查承诺的有效性,并以其它方式将ri设为默认值(例如,b位的0)。然后,节点可以将其输出设置为H(r1||r2||…||rN),其中H:{0,1}*→{0,1}l可以是哈希函数。H可以建模为随机Oracle,这可能导致可为无偏差的l位随机值的输出。在实践中,所有诚实节点都可以发送较佳随机值,因此随机选择对哈希函数的输入的2/3。例如,恶意节点可能不会生成随机值,然后可以将任何所选数字输入哈希函数。

设置阶段

设置阶段可以通过运行设置协议开始,其中每个节点都可以通过解决工作证明过程来确立身份,以加入系统。然后,节点可以运行委员会选择协议,其中节点可以确定可以被称为领导委员会的良好委员会。领导委员会然后可以生成和分配一系列随机位,其可用于确立k个良好委员会{C1,...,Ck}。在一些实施例中,设置阶段可以确立重新配置阶段和共识阶段的计算机网络。

设置阶段可以包括由包括多个节点的计算机网络中的节点执行的方法,每个节点均具有节点标识符。方法包括:a)由所述节点从计算机网络中多个节点中的其它节点接收节点标识符;b)由所述节点在包括多个节点的采样器图表中确定多个节点委员会,其中所述节点存在于所述多个节点委员会中的一个节点委员会中;c)所述节点进一步i)生成随机字符串;ii)使用所述随机字符串和哈希函数执行工作证明过程;iii)如果所述工作证明过程产生可接受的解决方案,则将所述解决方案广播到所述多个节点中的所有其它节点,其中所述其它节点验证所述解决方案;以及iv)如果所述其它节点验证所述解决方案,则将所述节点选择给所述节点委员会的小组委员会,其中所述小组委员会更新所述采样器图表;以及d)重复步骤b)和c)直到确定领导委员会。可以参考下面的协议1描述设置阶段。

在一些实施例中,在运行设置阶段之前,计算机网络可以在节点当中运行身份生成协议,由Andrychowicz和Dziembowski引入于[Marcin AndRychowicz和StefanDziembowski,无可信设置的基于PoW的分布式密码术,第379到399页,施普林格出版社,柏林海德堡,2015]。此协议可以允许每个节点通过解决PoW计算挑战来确立公钥/私钥对,然后将节点的公钥作为其ID发送到计算机网络中的其它节点。包括多个节点的计算机网络中的节点可以从计算机网络中多个节点中的其它节点接收节点标识符。在一些实施例中,节点标识符可以是公钥。

在每个节点接收来自其它节点的节点标识符之后,节点可以生成被称为采样器图表的确定性随机图表。采样器图表可以基于预定义的种子以及计算机网络中所有节点已知的节点标识符由每个节点在本地创建。预定义的种子可以是计算机网络中所有节点已知的数字或向量。在一些实施例中,预定义的种子可以用来初始化伪随机数生成器。

采样器图表可以允许节点对多个委员会进行采样,使得大多数委员会内的恶意节点的分布可以在包括所有节点的初始集合中恶意节点数量的δ分数内。例如,如果包括一千个节点的计算机网络中有三百个恶意节点,则恶意节点的分数为3/10。因此,基于采样器图表确定的委员会可能具有除3/10外的某一分数的恶意节点δ(即δ小于3/10或δ大于3/10)。

因此,如果多个采样器图表关联在一起,则计算机网络可以以1/3恶意分数的节点集合开始,且最终会收集到1/2恶意分数的委员会。本发明的实施例可以将选择网络确定为彼此层叠的一系列采样器图表。通过运行选择网络,计算机网络中的多个节点可以选择领导委员会,其中领导委员会中最多1/3分数的节点是恶意的。在一些实施例中,包括多个节点的计算机网络中的节点可以在包括多个节点的采样器图表中确定多个节点委员会,其中所述节点可以存在于多个节点委员会的节点委员会中。

图4示出根据本发明的实施例的示出选择图表(或网络)的框图。图4包括选择图表401。选择图表401可以包括层级零400、层级一410、层级二420和层级三430的多个层级。在一些实施例中,选择图表401可以包括任何合适数量的层级。选择图表401还可以以任何合适的方式包括各方402、委员会403、小组委员会404和领导委员会405。

各方402可以是计算机网络中的节点。在层级零400处,各方402可能尚未进入委员会403。在选择回合之后,委员会403可以包括多个节点(即,各方402)。小组委员会404可以包括在先前层级从委员会403选择的各方402。例如,层级二420中的委员会403中的各方402可以选择多方402来形成小组委员会404。然后,小组委员会404可以在层级三430形成领导委员会405。领导委员会405可以是领导委员会。下文进一步详细地描述选择过程。

采样器图表可以表示为G(L,R)并且可以是随机二分图,其中R中每个节点的度(例如dR)可以是其中n可以是节点数量且c可以是缩放因子。二分图G可以包括两个集合L和R。集合L可以包括可表示节点的顶点。集合R可以包括表示委员会的顶点。采样器图表G(L,R)可以由图4中的两个层级表示。例如,采样器图表G(L,R)可以包括层级零400中的各方420和层级一410中的委员会430。对于R中的每个节点,L中节点的邻居无需更换即可随机地独立且一致地选择。L中的节点都不具有到R中的任何节点的多个边缘。层级零400中的各方420都可以具有连接到层级一410中的委员会403的边缘。在一些实施例中,可以使用存储在计算机网络的每个节点处的预定义种子随机构建采样器图表。以此方式,层级零400中的各方402可以随机连接到层级410中的委员会403。

在一些实施例中,采样器图表可以包括通过边缘与下一级委员会连接的一级中的节点。以这种方式关联在一起的多个采样器图表可以被视为选择图表401。

如果G中委员会的顶点成员已连接,则节点可以是委员会成员。恶意节点T的最大联盟可以是L的子集(即

Figure BDA0002328251970000401

)。委员会S的子集可以是委员会的任何子集(即

Figure BDA0002328251970000402

)。ε(T,S)表示S中的每个节点具有关联到T中的节点的超过

Figure BDA0002328251970000403

分数的边缘的事件。直观地,ε可以捕捉以下事件:S中的所有委员会都是恶意的,即委员会中超过

Figure BDA0002328251970000404

分数的节点都是恶意的。S中的固定节点也可以在T中的概率可以等于

Figure BDA0002328251970000405

选择网络可以通过将l个采样器图表{G(L1,R1),...,G(Ll,Rl)}关联在一起而构建。每个采样器图表都可以对应于选择图表401中的不同层级。例如,层级一410可对应于第一采样器图表G(L1,R1),层级二420可对应于第二采样器图表G(L2,R2),层级三430可以对应于第三采样器图表G(L3,R3)。在一些实施例中,可以存在任何合适数量的层级。最后一级(即,可以形成领导委员会405的层级)可以是层级l并且可对应于最终采样器图表G(Ll,Rl)。

最初,可以将n个节点分配到L1中的顶点。基于采样器图表中的边缘,每个节点都可以分配给一组委员会,其各自由R1中的顶点表示。然后,每个委员会都可以运行下述小组委员会选择协议,以选择委员会节点的随机子集。然后,选择的节点可以用作G(L2,R2)的L2中的顶点。此过程可以继续直到最后一个采样器图表G(Ll,Rl),此时可以形成单个委员会(即领导委员会)。

为了构建选择网络,可以设置以下内容:

Figure BDA0002328251970000406

其中|L1|=n

Figure BDA0002328251970000407

0<αi,βi,γi<1且i={2,...,l}。可以示出,对于一些常数l,|Rl|=1。

从等式3,可以针对由pi表示的选择网络的每个层级i限制错误概率,其中

下面的第七节描述如何设置参数α,β和γ以实例化此图表,并呈现可以实现对其大小的较佳限制的分析。

在包括多个节点的采样器图表中确定多个节点委员会之后,每个委员会的节点可以运行GenRand协议或有可能运行任何其它合适的随机值生成算法。每个节点都可以生成随机字符串s。委员会内的节点可以生成相同的随机字符串s。例如,第一委员会中的第一多个节点可以生成第一随机字符串,而第二委员会中的第二多个节点可以生成第二随机字符串。在一些实施例中,随机字符串s可以是任何合适的长度。

委员会中的多个节点可以使用随机字符串s选择可与下一级委员会相关联的节点。具有节点标识符ID的每个节点都可以基于随机字符串s和节点的节点标识符h=H(s||ID)计算哈希函数。在确定哈希函数的解决方案后,如果h<=2256-d,则节点可以宣布自身成为下一级委员会的一部分,其中H可能是建模为随机Oracle的哈希函数。h<=2256-d可以是预定的安全值。d可能是计算哈希函数的难度等级,并且可以是任何合适的预定值。难度等级d可以确定解决哈希函数的计算难度。256可以表示256位的数字,但是可以使用任何合适数字,例如γ。

在其它实施例中,预定的安全值可以是2γ-d。例如,如果第一节点确定哈希值h可以小于或等于2γ-d,则第一节点可以将哈希值h广播到其它节点。在一些实施例中,第一节点可以将哈希值h以及与第一节点相关联的节点标识符广播到其它节点。预定安全值2γ-d可以更改以更改选择多少个节点。在一些实施例中,预定的安全值可由领导委员会预定。

每个节点都可以使用随机字符串s和哈希函数执行工作证明过程。如果工作证明过程产生可接受的解决方案,则节点可以将解决方案广播到多个节点中的所有其它节点(即在同一委员会中),其中其它节点可以验证解决方案。在一些实施例中,每个委员会中的每个节点都可以执行工作证明过程。如果工作证明过程的结果小于预定的安全值(例如,2γ-d),则工作证明过程的解决方案可被视为可接受的。

委员会的其它节点可以验证节点广播的解决方案。委员会的其它节点可以通过确定解决方案是否解决哈希函数且是否小于预定数量来验证解决方案。如果其它节点验证解决方案,则节点可以选择给节点委员会的小组委员会。

在一些实施例中,所有节点都可以签署具有最小h的e个选择节点的数据(ID,s),然后将呈一组形式的签名作为选择节点的选择证明传播。已签名的数据(ID,s)可以证明e个选择的节点实际上是选定节点。任何给定节点都可以验证已签名的数据(ID,s)以确定节点是否为选定节点。

在每次小组委员会选择之后(即,在每个委员会将节点选择到小组委员会之后),选择的节点可以了解属于同一小组委员会的其它选择节点的身份。在一些实施例中,可以通过在G覆盖网络内扩散以向所有节点宣布选择获胜者而进行此操作。

在一些实施例中,在每次小组委员会选择之后,节点可以执行小组委员会对等发现。每个节点都可以了解从每个委员会选择的节点的身份。e个选择的节点可以将身份和证明(已签名的f+1(ID,s)),其中f可以是为恶意节点的节点的分数。如果委员会的超过e个节点正确地宣布他们被选中,则所述委员会就是不诚实的,且所有其它节点都可以决定不接受来自所述委员会任何选择节点的任何消息。

在加入小组委员会后,每个小组委员会中的每个节点都可以更新采样器图表以表示选择的节点和下一级委员会。节点可以重复上述步骤,以从新委员会选择节点形成新的小组委员会。在确定领导委员会之前,节点可重复此过程。在一些实施例中,节点可以基于采样器图表确定领导委员会,其中采样器图表指示采样器图表中节点的数量,并且其中采样器图表中的节点数小于或等于预定义阈值。例如,预定义阈值可等于值100。在这种情况下,可以加入领导委员会的最大节点数为100。因此,如果小组委员会中的节点小于或等于100个节点,则小组委员会的节点可以确定形成领导委员会。在其它实施例中,预定义阈值可等于值300或任何其它合适的值。在一些实施例中,预定义阈值可以由与计算机网络相关联的实体预定。在其它实施例中,预定义的种子可以包括有关预定义阈值的信息。

从上述协议选择的领导委员会可以随机将计算机网络中的所有节点分区到分片委员会中,每个分片委员会都可以有至少2/3的非恶意节点,并且可以存储分布式分类账的分区,如下所述。在一些实施例中,分片委员会的尺寸可比领导委员会小得多,这可以改善交易延迟。

图5示出根据本发明的实施例的示出设置阶段的流程图。将在计算机网络中选择领导委员会的背景下描述图5中所示的方法。然而,应当理解,本发明的实施例可应用于其它情况(例如,确定通信网络或资产转移网络中的领导者)。尽管以特定顺序示出上述步骤,但应理解,本发明的实施例可以包括具有呈不同顺序的步骤的方法。另外,可以省略或添加步骤,且它们仍可以在本发明的实施例中。

在步骤S510之前,多个节点可以加入计算机网络或以其它方式连接到计算机网络。多个节点可以包括任何合适数量的节点。多个节点中的每个节点都可以确定节点标识符。在一些实施例中,节点标识符可以是公钥。节点可以通过解决工作证明过程来确立节点标识符。多个节点中的每个节点都可以将节点自身的公钥广播到网络中的每个其它节点。计算机网络可以包括多个节点,每个节点都具有节点标识符。计算机网络中的多个节点可以初始化节点之间的通信。例如,在一些实施例中,每个节点都可以与每个其它节点进行操作性通信。在其它实施例中,计算机网络中的多个节点可以基于周围节点创建路由表。

在步骤S510处,每个节点都可以从其它节点接收节点标识符。例如,如果计算机网络中有200个节点,则每个节点都可以接收199个节点标识符。在一些实施例中,每个节点都可以与唯一节点标识符相关联。节点可以将与所述节点相关联的节点标识符传输到计算机网络中的每个其它节点。

在步骤S520处,在从其它节点接收节点标识符之后,每个节点都可以在采样器图表中确定多个节点委员会。在一些实施例中,每个节点都可以在本地确定采样器图表。在一些实施例中,可以基于计算机网络中所有节点已知的节点标识符和预定义的种子来确定采样器图表。

例如,节点可以基于预定义的种子随机确定采样器图表。预定义的种子可以是以前由计算机网络中的节点存储的任何合适的值。预定义的种子可以用于在连接L中的节点和R中的委员会的采样器图表中随机生成边缘。L中的节点可从每个节点接收的节点标识符生成。R中的委员会可基于teh种子和节点标识符随机生成。例如,每个节点都可以在R中基于预定义的种子生成7个委员会或任何其它合适数量的委员会。

由于每个节点都可以存储相同的预定义种子和所有节点的所有节点标识符,所以每个节点都可以生成相同的采样器图表。然而,在一些实施例中,一些诚实节点的采样器图表中可能包括恶意节点,而其它诚实节点的采样器图表中没有。这可能会发生,因为恶意节点可以将其节点标识符广播到某些诚实节点,而不是其它节点。

多个节点委员会可以包括任何合适数量的委员会。在一些实施例中,节点委员会的数量可以小于多个节点中的节点数。

在步骤S530处,在确定多个节点委员会之后,节点委员会中的节点各自可以执行步骤S531到S537。每个节点委员会都可独立执行步骤S531到S537。

在步骤S531处,在确定采样器图表之后,委员会的每个节点都可以生成随机字符串。例如,每个节点都可以使用本文所述的GenRand协议生成随机字符串。委员会中的每个节点都可以生成相同的随机字符串。随机字符串可在步骤S532处用于工作证明过程中,使得哈希函数是新的。这可以防止恶意节点事先预计算许多哈希函数,然后要求预计算哈希函数的解决方案为可接受的。随机字符串可以允许在每个选择阶段期间动态生成哈希函数。

在步骤S532处,在每个节点处生成随机字符串之后,节点可以执行工作证明过程。例如,节点可以确定哈希函数的解决方案。具有节点标识符ID1的节点可计算h=H(s||ID1)。哈希函数的解决方案可以是可接受的解决方案。如果h≤2256-d,则可接受的解决方案可被视为可接受的。难度值d可以是预定值,其可用于确定选择多少个节点。例如,如果只有几个节点可解决工作证明过程且因此被选择,则难度值可被视为困难的。如果很多节点能够解决工作证明过程且因此被选择,则难度值可被视为简单的。在其它实施例中,难度值可以在几个时期内发生变化。在一些实施例中,委员会中的每个节点都可以执行工作证明过程。

在步骤S533处,节点可以确定是否可以接受工作证明过程的其自身的解决方案。如果节点确定解决方案不可接受,则节点可以确定其不是选择节点。如果委员会的其它节点被选择为小组委员会,则节点可以终止所述过程,且在一些实施例中,可以等到领导委员会确定。在其它实施例中,节点可以确定如本文所述可接受的工作证明过程的解决方案。如果节点确定解决方案可接受,则节点可以继续进行到步骤S534。

在步骤S534处,在确定可接受的工作证明过程的解决方案之后,所述节点可以将解决方案广播到委员会中的所有其它节点。在一些实施例中,节点可以从节点委员会中的第二节点接收第二解决方案。节点可以从那些节点确定的其它节点接收任何合适数量的解决方案。

在步骤S535处,其它节点可以从节点接收工作证明过程的解决方案。其它节点接着可以确定解决方案是否可接受。例如,其它节点可以确定解决方案是否解决了工作证明过程。在一些实施例中,节点可以验证来自第二节点的第二解决方案是否可接受。

在步骤S536处,如果其它节点确定来自节点的工作证明过程的解决方案无效,则其它节点可以广播无效消息。在一些实施例中,无效消息可以包括节点的ID以及其它节点确定为不可接受的工作证明过程的解决方案。节点可以从其它节点接收无效消息。节点可以确定无效消息是否包括节点的自身ID,即无效消息是否与节点相关联。节点可以确定其不是选择的节点,并等到领导委员会由选择的节点确定。

在步骤S537处,如果其它节点确定解决方案是可接受的,则其它节点可以将节点选择给委员会的小组委员会。在一些实施例中,如果第二解决方案可接受,则节点可以将第二节点选择给小组委员会。

在步骤S540处,每个小组委员会的节点可以确定是否已确定领导委员会。如果未确定领导委员会,则节点可以执行步骤S550。在步骤S550处,如果未确定领导委员会,则每个小组委员会的节点可以更新采样器图表并执行步骤S520到S540。更新采样器图表后,小组委员会可以基于采样器图表确定新委员会,从而移到选择图表中的下一级。如本文所述,多个采样器图表可以关联在一起以形成选择图表,其中每个采样器图表可以包括通过边缘连接到下一级委员会的选择图表层级的节点。例如,选择图表的第一级中选择的节点可加入更新采样器图表的小组委员会,然后形成选择图表的第二级的委员会。

在步骤S560处,小组委员会的节点可以确定领导委员会。在一些实施例中,节点可以基于采样器图表确定领导委员会,其中采样器图表指示采样器图表中节点的数量,并且其中采样器图表中的节点数小于或等于预定义阈值。预定义阈值可以是加入领导委员会的最大节点数。

在确定领导委员会之后,领导委员会C0的节点可以运行本文所述的GenRand以生成随机字符串r0。领导委员会C0的节点可以使用G的覆盖网络将随机字符串r0发送到所有节点(即计算机网络的多个节点)。随机字符串r0可用于将所有节点分区为非恶意的分片委员会。在一些实施例中,领导委员会可以创建k=n/m个分片委员会,其中每个分片委员会包括m=c*log(n)个节点,其中n是计算机网络中的节点数且c是可取决于系统安全性的常数。领导委员会中的节点可以对计算机网络中的多个节点进行分区。

在步骤S560之后,计算机网络中的节点可以执行邻居发现协议(如下方的协议2所示)。邻居发现协议可以允许委员会中的节点确定哪些节点位于邻近委员会中。在一些实施例中,委员会中的节点可以确定邻近委员会中节点的IP地址,所述地址随后可在路由消息和/或数据时使用。计算机网络中的每个节点都可以基于随机字符串r0和节点的公钥确定要加入哪个委员会。在一些实施例中,每个节点都可以执行工作证明过程以确定要加入哪个委员会。例如,每个节点都可以确定哈希函数H(r0||PK)产生的哈希值,其中随机字符串r0和节点的公钥可以是哈希函数的输入。在确定工作证明过程的解决方案后,节点可以确定解决方案的最后m位。节点可以加入委员会Ck,其中k可以是解决方案的最后m位。

在每个节点确定要加入哪个委员会之后,委员会Ck/2的节点可以将委员会Ck/2的节点的地址广播到委员会Ck的节点。Ck中的每个节点可以接收委员会Ck/2的节点的地址。地址可以包括互联网协议地址(IP)和委员会标识符(例如Ck、Ck/2等)。在接收到委员会Ck/2的节点地址后,委员会Ck的节点可以将委员会Ck的节点的地址(例如IP和Ck)广播到委员会Ck/2的节点。如果委员会Ck=C6,则Ck/2=C3

委员会Ck的节点与委员会Ck/2的节点通信之后,委员会Ck的节点可以接收委员会C2k的节点的地址且可以接收委员会C2k+1的节点的地址。委员会Ck的节点然后可以将委员会C2k的节点的地址和委员会C2k+1的节点的地址广播到计算机网络的所有节点。

如本文所述,下文的协议1和协议2分别示出委员会选择和邻居发现协议的实例。协议1可以允许多个节点形成领导委员会,并以高效且安全的方式将多个节点分区成分片委员会。协议2可以允许多个节点确定将所述节点以及委员会中的其它节点分配到哪个委员会。

协议1:委员会选择

{G(L1,R1),...,G(Ll,Rl)}是选择网络图表。

1.对于G(Ll,Rl)中每个委员会C的每个1≤i≤l:

(a)C的节点运行GenRand以选择随机字符串s。

(b)C的所有节点签署s并在C中传播其签名。

(c)对于具有公钥PK的C的每个节点,如果H(s||PK)≤2κ-e,则所述节点将消息广播到C的所有成员,宣布自身为选择成员,其中e确定要选择的各方的数量。领导者也可以传播证明(可由C的成员的f+1签署的s)。

(d)C的所有成员都验证所述宣告。C中的领导者可以了解其它委员会的所有其它领导者。如果委员会宣布超过e个领导者,则忽略所述宣告并将所述委员会标记为不诚实的,并将其领导者设定为空。

2.C0为G的领导委员会。C0运行GenRand以生成随机字符串r0并使用G的覆盖网络将其发送到所有各方。此值可用于将所有节点分区为分片委员会。

协议2:邻居发现

1.各方考虑Ck作为其委员会,其中k可以是H(r0||PK)的最后m位。

2.其接收委员会Ck/2的成员的地址并将其(IP,Ck)发送到Ck/2中的各方。

3.其接收委员会C2k和C2k+1中的各方的信息(IP,C)并把它发给每个人。

委员会内部共识

图6示出了根据本发明的实施例的示出分片委员会的框图。图6包括包括多个节点的领导委员会600,所述节点包括选择的节点A 601、选择的节点B 602、选择节点C 603以及选择节点D 604。图6还包括包括第一分片委员会610、第二分片委员会620和第三分片委员会630的多个分片委员会。每个分片委员会可以包括多个节点。例如,第一分片委员会610可以包括三个节点611到613。第二分片委员会可以包括三个节点614到616。第三分片委员会630可以包括三个节点617到619。每个委员会都可以包括任何合适数量的节点。委员会可以包括超过5个节点。在其它实施例中,委员会可以包括250个节点。

领导委员会600可以与第一分片委员会610、第二分片委员会620和第三分片委员会630进行操作性通信。在一些实施例中,分片委员会可以彼此进行操作性通信。

领导委员会600可以确定如本文所述的分片委员会。例如,如协议2中所示,领导委员会600可以生成随机字符串r0并传输随机字符串r0到计算机网络中的每个节点。每个节点接着都可以使用节点自己的节点标识符和随机字符串r0执行工作证明过程。工作证明的解决方案的最后m位可以是节点分配给的分片委员会。例如,节点可以基于随机字符串r0和节点标识符确定要加入哪个分片委员会。如果解决方案的最后m位等于001,则节点可以决定加入委员会001。最后m位可以是任何合适的位数。

第一分片委员会610可以存储区块链的分片。例如,第一分片委员会610中的节点611到613可以各自将区块链的分片存储于与每个节点611到613相关联的存储器或数据库中。第一节点611、第二节点612和第三节点613可以存储区块链的相同分片,且在一些实施例中,可以在新块上达成共识,然后再向区块链的分片添加新块。第一分片委员会610、第二分片委员会620和第三分片委员会630可以存储区块链的不同分片。在一些实施例中,存储在每个分片委员会的区块链的分片可以构成总区块链。

计算机网络外部的客户端计算机可以将交互提交到计算机网络。客户端计算机可以将交互传输给验证者委员会。例如,客户端计算机可以将交互传输到第一分片委员会610,其中第一分片委员会610可以是可验证交互的验证者委员会。

本发明的实施例的一个优点可在于,客户端计算机提交给系统的交互可以由单个委员会进行处理,所述委员会运行委员会内部共识,以批准和添加交互到区块链。当客户端计算机请求使用下述路由协议来将交互添加到分类账时,客户端计算机可联系指定给交互的验证者委员会。验证者委员会中的每个节点都可以检查建议的交互是否有效,然后可以生成委员会在所述时期内接收到的所有有效交互的数据块,以添加到区块链。在一些实施例中,每个节点都可以维护指定给其委员会的区块链分片的副本,并且可以独立决定是否将某些交互添加到区块链分片中。委员会中的诚实节点可以与区块链分片具有相同的本地视图,这可以表示委员会的区块链分片的当前状态。

在一些实施例中,当客户端计算机希望将交互提交到计算机网络时,客户端计算机可以首先获得多个节点的列表(参见下面的第七节),并且可以将交互数据发送到多个(例如8个或更多个)节点,通过委员会中的节点获得交互数据并将交互数据提交到那些节点。如果联系的节点是恶意的,则不能处理交互。然后,客户端计算机可以将交互数据提交给另一方,并且可以重复直到客户端计算机联系诚实节点。在每个委员会内,从客户端计算机接收到交互数据的节点可以建议将交互添加到下一数据块。为此,节点可以可靠地将建议的交互广播到委员会中的所有其它节点。

委员会内部共识协议可以有两个构建块:(1)可用于传播消息(例如,交互和数据块)到委员会的所有节点的谣传协议;(2)可用于对块标头达成一致并最终确定其中的交互的协商协议。

在一些实施例中,上述共识协议可以是原子广播协议,本发明的实施例可以用来向所有委员会成员(即,分片委员会中的节点)发送新交互。本发明的实施例可以是Cachin和Tessaro提出的可靠广播协议的修改[Christian Cachin和Stefano Tessaro,异步可验证信息分散。在第19届关于分布式计算的国际会议的论文集中,DISC'05,第503到504页,柏林海德堡,2005年,施普林格出版社],其采用擦除代码扩展Bracha和Toueg的广播协议[Gabriel Bracha和Sam Toueg,异步共识和广播协议,《美国计算机学会期刊》(JACM),32(4):824到840,1985]以改善针对更大消息的性能。[Gabriel Bracha和Sam Toueg,异步共识和广播协议,《美国计算机学会期刊》(JACM),32(4):824到840,1985]的原始协议需要O(n2)消息和O(mn2)总通信成本以将大小为m的消息广播到n方。[Christian Cachin和Stefano Tessaro,异步可验证信息分散。在第19届关于分布式计算的国际会议的论文集中,DISC'05,第503到504页,柏林海德堡,2005年,施普林格出版社]中的构造将通信改善为O(mn+hn2log(n)),其中h是与安全参数成比例的哈希大小。根据本发明的实施例的方法在节点数量也较大时可实现更好的实际通信性能。

M可以是从节点(例如,发送方)传播到d个相邻节点的消息,节点中的f分数可能损坏。此外,κ可以是发送方可以将较大消息分解成的信息块的数量。首先,发送方可以将M分成(1-f)κ个相等大小的块M1,M2,...,M(1-f)κ并且可以执行擦除代码方案(例如,里德—索罗门擦除代码),以创建另外fк个奇偶校验块,其可添加到原始数据块以获得M1,M2,...,Mk。如果发送方诚实,则原始消息可以由那些块当中的任何(1-f)к个数据块的集合重构。

接下来,发送方可以计算出具有叶子M1,...,Mk的Merkle树。T(Mi)可以是叶块Mi的哈希,且T(Mi,Mj)是存储于Mi和Mj的第一共同双亲中的哈希。Sib(Mi)可以是从Merkle树根到与Mi相关联的叶子的路径上的节点的所有兄弟节点。因此,T(Mi),T(Mi,Mk)和Sib(Mi)是用于验证Mi的有效性的Merkle树的部分。发送方可以通过向每个相邻节点发送一组唯一的κ/d个信息块而传播所有1≤i≤k的Mi,Ti(Mi)和Sib(Mi),接着那些相邻节点也可以将信息块发送到其邻居。每个节点都可以使用Merkle树信息和树根验证其接收的消息。一旦节点接收到(1-f)k个有效信息块,就能够重构消息M。

还可以通过略微进行如下修改来优化上述谣传协议。上述协议的修改基于发送方是否针对每个i将Sib(Mi)发送到节点Pi的观察结果,树根附近的Merkle哈希几乎被发送到所有各方。例如,一半的节点接收T(Mi,Mκ/2)。相反,对于任何中间哈希节点T(Mi,Mj),足以将其发送到节点的较小子集。发送方选择相邻节点的大小为d/(1-f)的随机子集并将哈希发送到所述子集中的节点。所述过程可被称为稀疏化。因此,节点可以从发送方接收不包含验证已发送数据块的有效性所需的所有哈希的消息,因此所述方可能无法立即验证所述数据块。但是,由于至少一个诚实方接收到每个中间节点,因此它可以保证所有节点都可以具有正确的中间节点。

在每一回合r,每个委员会都可以具有随机一致选择的领导节点Lr,其可以负责领导共识协议。首先,领导节点Lr可以收集领导节点Lr已接收到数据块Br中的所有交互。领导节点Lr可以使用本文所述的较大消息协议的谣传,以及来自所述块的谣传的Merkel树的根来传播所述块的主体。接下来,领导节点Lr可以基于所有待处理块(包括领导节点Lr在此回合中创建的块)的标头运行共识协议。

在一些实施例中,块可以是待处理块。如果领导节点Lr在先前某一回合中提出了数据块,则数据块可以是待处理块,但仍有尚未终止其共识协议的诚实节点。对于所有待处理块标头H,领导节点Lr可以提出安全的值。安全值可以是大多数节点达成一致的值。当大多数节点对安全值达成一致时,所述值可以被视为安全值。相比之下,不安全值可以是并非所有节点都达成一致的值。在一些实施例中,块标头可以包括前一块的哈希、时间戳、难度目标、随机数和/或Merkle根。对于新块,任何值都可以被视为安全的,但是诚实的领导节点Lr可以提出正确的数据块标头,因此计算机网络中的所有其它诚实节点都可接受所述数据块。如果数据块标头与数据块不匹配,则所有诚实节点都可以将所述数据块视为空数据块,并且只能在标头上达成一致而忽略数据块主体内的交互。如果诚实节点没有从领导节点Lr接收到待处理数据块标头的安全值,则他们可以将领导节点Lr视为不诚实节点,并将标头的值设置为空。

针对所有待处理的数据块标头从领导节点Lr接收提出的消息、提出<H,r>的其它节点可以验证标头H是否有效。例如,节点可以验证标头H是否匹配提出的数据块。接收提议消息、提出<H,r>的节点可以回波(即广播而不更改)标头回波<提议<H,r>>。回波提议消息可以包含与提议消息相同的信息。节点可以接收提议消息,然后广播回波提议消息。在此回合结束时,如果诚实的节点接收到来自领导者的一个有效的提议标头和f+1个回波,则节点可以通过传播节点的接受消息来接受所有其它节点的数据块标头。

在一些实施例中,节点可以针对不同值的H但在相同的回合数r的情况下从领导节点Lr接收超过一个有效的“提议<H,r>”或“回波<提议<H,r>>”。节点可以将领导节点Lr视为不诚实的,然后传播“待处理<H,r>”,这可以表明标头H仍然待处理。在其它实施例中,节点可以针对<H,r>接收f+1个有效消息(即投票),从而表明标头H有效。f可以是恶意节点的分数。在一些实施例中,f可以是1/3或更小。

当前回合中来自单个节点的相同提议值的每个回波“回波<提议<H,r>>”消息可以被视为对标头H有效性的一个投票。然后,节点可以接受值H并传播“接受<提议<H,r>>,证明”,并将其从节点待处理数据块列表中删除。证明可以是指示标头H证明为有效的数据条目。在一些实施例中,证明可以是节点签名的聚合。例如,节点可以签署提议的消息,如果它是有效的,然后将已签名的提议消息发送到领导节点Lr

如果节点从另一节点接收到有效的“接受<提议<H,r>>,证明”消息,节点可以将其它节点投票更改为<H,r>。例如,在一些实施例中,节点可以存储来自委员会中的节点的投票的列表。如果节点从第二节点接收到有效的“接受<提议<H,r>>,证明”消息,节点可编辑投票列表以指示第二节点为标头H投票。节点可以决定接受提议<H,r>消息,如果投票列表表明f+1个其它节点已为标头H投票。

下面的协议3示出如本文所述的实例委员会内部共识协议。以下委员会内部共识协议可以允许节点创建交互块,并且使委员会就交互数据块达成共识。

协议3:委员会内部共识

1.创建交互块并将其传播到委员会。

2.对于回合r,针对每个待处理数据块标头H就待处理块标头达成共识。

(a)领导者可以针对回合r的安全值H传播“提议<H,r>”以及示出所述值是安全的“证明”消息,即证明包含对<H,r>的f+1个投票。

(b)接收有效的“提议<H,r>”的节点可以传播“回波<提议<H,r>>”消息。

(c)如果节点针对不同的值H但相同的回合数r从领导者接收到超过一个有效的“提议<H,r>”或“回波<提议<H,r>>”,则节点可以将领导者视为不诚实的并传播“待处理<H,r>”。

(d)否则,如果节点接收到对<H,r>的f+1个有效投票(除了所述方之前从接受消息接收的投票外,当前回合中对于同一提议值的每个“回波<提议<H,r>>”消息也被视为一个投票),节点接受值H并传播“接受<提议<H,r>>,证明”并将其从节点待处理数据块列表中删除。

(e)如果节点从另一方接收到有效的“接受<提议<H,r>>,证明”消息,节点会更改其它节点对<H,r>的投票。

因此,节点可以从广播者接收可能不包含验证已发送数据块的有效性所需的所有哈希的消息,因此节点可能无法立即验证所述块。但是,如果至少一个诚实节点接收每个中间节点,则其可以转发其消息,并且这可以允许所有节点都有正确的中间节点。在第VII.B节中,可以示出,可足以将每个中间节点发送到在树深度为次线性的多个节点,以保证以下情况:节点无法验证发生概率微乎其微的节点为重构需要的数据块。可以在每个节点处所使用的树和存储器中接收中间节点的节点数之间进行权衡。

重新配置阶段

在开放访问网络中,节点可以自由加入和离开网络。本发明的实施例可提供一种机制以在计算机网络中高效处理变动。新节点加入计算机网络时存在两大挑战。首先,对手可以使用变动作为向网络引入新的不诚实的ID的潜在方法(例如,Sybil攻击)。为了防止Sybil攻击,加入计算机网络的新节点可解决工作证明过程。其次,加入和离开计算机网络的节点可能会影响委员会分布,并且可能使委员会不可靠。根据本发明的实施例的方法可以在调整阶段处理变动。

调整阶段(也被称为重新配置阶段)可以包括一种方法,包括:由计算机网络中第一委员会中的第一节点接收包括节点标识符的请求,以使第二节点加入委员会;由所述第一委员会中的所述第一节点向所述第二节点提供工作证明过程;由所述第一委员会中的第一节点从所述第二节点接收对所述工作证明过程的解决方案,其中所述第一委员会中的节点验证所述解决方案;由所述第一委员会中的所述第一节点生成随机字符串,所述随机字符串由所述第一节点用于确定所述第二节点的第二委员会;由所述第一节点向第二委员会引入所述第二节点,其中所述第二委员会移位节点以允许所述第二节点加入所述第二委员会;由所述第一节点将关于所述第二节点处于所述第二委员会中的信息传达到所述计算机网络中的其它节点。

图7示出根据本发明的实施例的示出重新配置阶段的流程图。在将新节点(称为第二节点)添加到计算机网络的上下文中描述图7中所示的方法。然而,应理解,本发明的实施例可以应用于其它情况。尽管以特定顺序示出上述步骤,但应理解,本发明的实施例可以包括具有呈不同顺序的步骤的方法。另外,可以省略或添加步骤,且它们仍可以在本发明的实施例中。

本发明的实施例可以使用工作方法证明以防止对计算机网络的Sybil攻击。希望加入包括领导委员会和多个委员会的计算机网络的新节点(即第二节点)可解决工作证明过程,其可以在每个时期基于新随机性而生成。这可能是有益的,因为它防止恶意方提前解决许多工作证明过程,从而损害委员会。

在步骤S710处,任何第二节点(即新节点)可以联系委员会中的一个的节点,并且可以随时请求新的工作证明过程。第二节点可以向其中一个委员会的节点传输请求。在一些实施例中,第二节点可以将请求传输到单个节点,称为第一节点。计算机网络中第一委员会中的第一节点可以接收包括节点标识符的请求,以使第二节点加入委员会。

在步骤S720处,在接收到加入请求之后,第一委员会的节点可以生成随机值。在一些实施例中,第一委员会的节点可以使用本文所述的GenRand生成随机值。GenRand算法可以由两个阶段组成:承诺和揭露。承诺阶段可能是两个阶段中实践起来较昂贵的阶段。在一些实施例中,可以在第一委员会中的节点接收请求之前事先执行承诺阶段。因此,第一委员会的每个节点都可以提前运行许多值的随机生成的承诺阶段,且在请求后,第一委员会的节点可以完成揭露阶段,以获得已经提交的随机值中的一个。

然后,第一委员会的节点可以将随机值和时间戳传输到第二节点。在一些实施例中,第一委员会的第一节点可以向第二节点提供工作证明过程。第二节点可以使用时间戳和随机值解决工作证明过程。如果第二节点确定可接受的解决方案,则第二节点可以将解决方案传输到第一委员会的节点。例如,第二节点可以确定解决方案x,使得哈希函数H(timestamp||PK||x)小于安全值2γ-d并将x发送到第一委员会。哈希函数H的输入可以包括时间戳、第二节点的公钥(即节点标识符)和随机数x。

在步骤S730处,第一委员会的第一节点可以从第二节点接收到工作证明过程的解决方案,其中第一委员会中的节点验证解决方案。委员会的节点可以验证第二节点在预定义的时间段内解决了工作证明过程,并且解决方案是可接受的。如果委员会的节点确定第二节点在预定义的时间段内确定了可接受的解决方案,则委员会的节点可以继续向计算机网络中的委员会分配第二节点。在一些实施例中,如果解决方案解决了工作证明过程、小于预定的安全值(例如,2γ-d),并在预定的时间段内接收到,则第一委员会中的多个节点可以验证解决方案。

本发明的实施例允许新节点解决工作证明过程,而不会使协议终止并等待工作证明过程的解决方案。以此方式,可以顺便执行昂贵的工作证明子算法,而不会影响共识协议的延迟,从而增加协议的总体吞吐量。这改善了在Elastico中使用的方法[Loi Luu、Viswesh Narayanan、Chaodong Zheng、Kunal Baweja、Seth Gilbert和Prateek Saxena,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第17到30页,美国纽约州纽约市,2016年,ACM],这要求协议在变动后等待每个时期的PoW随机性,并再次运行整个委员会选择。Elastico协议降低吞吐量,并增加额外Ω(n)通信成本。

在委员会的节点确定新节点解决了工作证明过程后,计算机网络可以执行委员会重新配置。但是,可以解决一些挑战。将节点分区为可扩展性委员会在处理变动时引入了新的挑战。恶意节点可以战略性地离开并重新加入计算机网络,使得最终他们可以接管其中一个委员会并破坏协议的安全保障。

预防这种攻击的一种方法可以是定期重新创建所有委员会,比对手生成变动的能力更快。然而,这个解决方案有两个缺点。首先,重新生成所有委员会可能非常昂贵。其次,当所有委员会成员在每个时期之后可能会发生更改时,维护区块链分区(每个委员会为一个分区)会非常具有挑战性。

为了处理变动问题,本发明的实施例可以在节点加入和离开后使委员会成员重新随机化。在一些实施例中,少数节点可以改变委员会,这可以比重新生成所有委员会更高效。根据本发明的实施例的方法可以使用CuCkoo规则的修改版本[Baruch Awerbuch和Christian Scheideler,向可扩展且稳健的DHT发展。在第18届关于算法和体系结构的并行度的年度ACM研讨会的论文集中,SPAA'06,第318到327页,美国纽约州纽约市,2006年,ACM;和S.Sen和M.J.Freedman,Commensal Cuckoo:大型服务的安全组分区,ACM SIGOPS操作系统综述,46(1):33到39,2012],被称为有界cuckoo规则,从而实现委员会节点的重新分布。

在步骤S740处,在第一委员会的节点验证第二节点的解决方案之后,第一节点可以生成随机字符串,所述字符串可以由第一节点用以确定第二节点的第二委员会。在一些实施例中,第一节点可以使用本文所述的GenRand协议生成随机字符串。在一些实施例中,第一委员会的每个节点都可以生成随机字符串。第一节点可以通过使用随机字符串在采样器图表中确定随机委员会来确定第二委员会。

在任何合适的时间点,计算机网络的委员会可以确定最大m/2个委员会的集合为活跃委员会集合A,其中m可以是委员会的数量。剩余m/2个大小较小的委员会可以是非活跃委员会I的集合的一部分。以此方式,可以将一半最大委员会包括于活跃委员会集合A中且可以将一半最小的委员会包括在非活跃委员会集合I中。

在一些实施例中,当第二节点请求加入计算机网络时,第二节点可以发现其中一个委员会(例如,第一委员会)中的节点的身份。在一些实施例中,第一委员会可以是由Ca表示的接入点委员会。当第二节点请求加入网络时,第二节点可以联系接入点委员会Ca的所有节点。

在步骤S750处,在第一节点生成随机字符串之后,第一节点可以向第二委员会引入第二节点,其中第二委员会可以移位第二委员会中的节点,以允许第二节点加入第二委员会。接入点委员会Ca可以从活跃委员会集合A确定随机委员会Cb,称为第二节点的主要分配委员会。接入点委员会Ca可以通知第二节点和主要分配委员会Cb的节点关于新的分配。主要分配委员会Cb可以接受加入,且同时可以将主要分配委员会中恒定数量的节点收回到在非活跃委员会I的集合中的非活跃委员会当中随机选择的其它委员会,可称为次要分配委员会。

在一些实施例中,第二委员会(即,分配委员会)可以基于由领导委员会生成的随机值来移位第二委员会中随机数量的节点。移位的节点可以是移位节点。移位节点可以基于随机值确定加入哪个委员会。可以将移位节点分配到非活跃委员会I的集合中的随机非活跃委员会。

在步骤S760处,在向第二委员会引入第二节点之后,第一节点可以将关于第二节点处于第二委员会中的信息传达到计算机网络中的其它节点。

计算机网络中的委员会在变动期间可以具有许多属性。可以存在在变动协议期间维持的两个系统委员会的不变属性。在任何时间点,都可以使系统委员会平衡且其为诚实的。第一属性意味着在系统中委员会的大小上可能并没有太大偏差,所述大小对于某一常数c可集中在1/2clogn左右。第二属性可以是每个委员会至少有2/3的节点是非恶意节点。因此,委员会可以在处理区块链交互时成功运行共识协议。

下面的协议4描述如本文所述的调整阶段的实例。调整协议可以允许计算机网络处理新加入的节点,同时防止Sybil攻击。

协议4:调整

1.谜题生成

(a)每个委员会都运行GenRand以生成随机字符串ri

2.加入

(a)新的一方P在本地选择公钥PK并联系随机委员会Ca以请求工作证明过程。

(b)C发送ri以及时间戳到P。

(c)P发现随机数x,使得时间戳、公钥和随机数的哈希的解决方案小于安全值(即,O=H(timestamp||PK||x)≤2γ-d)并发送x到C。

(d)C如果在有效时隙内接收到解决方案,则请确认解决方案。C的成员运行GenRand以生成新的随机字符串s,其确定在A中的活跃委员会当中P将会加入的委员会Cb

3.Cuckoo交易

(a)Ca联系Cb以引入P。

(b)Ck选择将恒定数量k的各方收回到在非活跃委员会I的集合当中一致随机选择的k个委员会。

(c)将新状态的委员会传播到系统中的邻居委员会。

在一些实施例中,可以存在参考委员会CR,其可以检查计算机网络中所有节点的工作解决方案证明。在这个实施例中,参考委员会CR可以是在步骤S720处生成随机字符串的唯一委员会。在每个时期开始时,参考委员会CR可以创建用于数据块和分配委员会的所有当前活跃节点的列表,并将列表添加到每个时期的第一块。参考委员会CR也可以通过将此块发送到所有其它委员会来通知其它委员会,以便他们也可以在其第一块中添加数据。

在每个时期,参考委员会CR的节点可以确定随机数(例如,通过GenRand)。参考委员会CR的节点在第二节点请求加入计算机网络时可以将随机数和时间戳传输到第二节点。在这种情况下,参考委员会CR可以执行本文所述的重新配置方法。

如果有参考委员会CR,则重新配置阶段可以如下执行。参考委员会CR可以在时期i-1期间通过首先针对下一时期生成随机字符串ri而执行随机生成。参考委员会CR的节点可以在时期i-1结束时向计算机网络的其它节点揭露ri。在时期i期间,所有委员会在回合i开始时可以从参考委员会CR接收随机字符串ri。第二节点可以在本地生成公钥PK。第二节点可以联系随机委员会C以请求工作证明。委员会C可以将当前时期的随机字符串ri、时间戳以及参考委员会CR中多个随机节点的地址(例如16个IP地址)传输到第二节点。计算机网络的所有节点都可以确定x,使得O=H(timestamp||PK||ri||x)≤2γ-d,如本文所述。节点可以传输x到参考委员会CR。参考委员会CR可以在时期i结束之前确认从每个节点接收到的解决方案。

在确认解决方案后,在回合i+1期间,当前处于参考委员会CR中的节点(在时期i期间也在参考委员会CR中)可以确定值ri+1。在时期i期间,参考委员会CR的节点接收到回合i+1的活跃节点的所有已确认交互。参考委员会CR的节点可以创建回合i+1的所有活跃节点的列表,并且还创建A(即活跃委员会的集合)和I(即非活跃委员会的集合)。参考委员会CR可以使用随机值ri+1为每个新节点分配A中的委员会。对于具有新节点的每个委员会C,参考委员会CR可以随机一致地选择委员会C中恒定k个节点(例如,使用ri+1作为种子)并收回k个节点。对于所有收回节点,参考委员会CR可以随机一致地确定I中的委员会,并将收回节点分配给不同委员会。参考委员会CR然后可添加ri以及所有节点和其分配委员会的新列表,并将其添加到所述时期的第一块。参考委员会CR将所述时期的第一块传播到计算机网络中的所有委员会。

共识阶段

在本节中,可以描述一种机制,由此根据本发明实施例的方法可以通过将区块链分成分区来减少每个节点的存储使用率,每个分区由一个委员会存储。虽然对区块链进行分区可以减少区块链的存储开销,但这使得对交互的验证变得具有挑战性,因为每次交互的输入和输出都可能驻留在多个委员会中。

在协议的这一部分中,客户端计算机可以将交互提交到计算机网络,并且可以将交互添加到区块链。本发明的实施例使用新的区块链分片协议,其可以在不同委员会当中分割区块链。新的交互可以提交给处理对应分片(即区块链的分区)的委员会。然后,委员会可以运行委员会内部共识协议来批准交互,并将其添加到所述委员会的分片。本节呈现了分片协议,并且还呈现了来自第IV.C.节的优化的委员会内部共识协议。

共识阶段可包括一种方法,包括:由委员会中的第一节点接收交互请求,所述交互请求包括来自客户端计算机的交互数据;由所述第一节点将所述交互数据以及与其它客户端计算机相关联的其它交互数据并入包括交互数据的块中,其中所述块包括块部分;由所述第一节点将所述块广播到所述委员会中的其它节点,其中所述委员会中的所述其它节点验证所述块;以及将所述块并入由所述委员会管理的区块链的分片中。

在比特币中,每个交易都有唯一的身份且其具有输入列表(按其身份描绘)以及按交易ID和行号示出的输出列表。图8示出根据本发明的实施例的示出各交易方的框图。图8包括初始UTXO状态810、交易820和输出UTXO状态830。图8参考第九交易(TX9)进行描述。然而,应当理解,本发明的实施例可以适用于其它情况,例如,其它交易以及例如文件传输等交互。

初始UTXO状态810可以是来自先前交易的初始未花费交易输出。例如,初始UTXO状态810参考与第二行(行2)相关联的第一交易TX1。初始UTXO状态810还参考第五交易TX5、第七交易TX7和第八交易TX8。这些先前交易TX1、TX5、TX7和TX8可以与存储在区块链中的先前交易相关联。在一些实施例中,每个先前的交易都可以存储在区块链的不同分片中。例如,第一交易TX1可存储在第一分片委员会610中,而第五交易TX5可存储在第二分片委员会620中。

在初始UTXO状态810下,交易的输入可以是未花费的交易输出(UTXO),这些交易输出可以是先前交易中未使用的数字资产。在输出UTXO状态830下,交易的输出也可以是未使用的数字资产,例如为兑换货币的接收者生成的新硬币。在接收交易后,节点可以通过检查(1)输入是否未花费和(2)输出的总和是否小于输入的总和来验证交易是否有效。节点可以将有效交易添加到他们接受的下一数据块。

图9示出根据本发明的实施例的示出共识阶段的流程图。在对交易达成共识的背景下描述图9中所示的方法。然而,应理解,本发明的实施例可以应用于其它情况。尽管以特定顺序示出上述步骤,但应理解,本发明的实施例可以包括具有呈不同顺序的步骤的方法。另外,可以省略或添加步骤,且它们仍可以在本发明的实施例中。

根据本发明的实施例的方法可以基于其在委员会中的交易ID对交易进行分区,所述委员会可以在每个节点处将交易输出存储于UTXO数据库中。在一些实施例中,交易ID可以是交互ID。每个委员会都可以存储交易,其具有委员会ID作为交易ID中的前缀。在一些实施例中,可以有不同的委员会参与验证交易Tran是否有效,然后可以将其添加到委员会的分片。

可以有两种类型的委员会。第一类委员会可以是能够存储与Tran输入相关的UTXO的源委员会。第二类委员会可以是验证者委员会,其可验证交易Tran是否有效。验证者委员会还可以存储交易的输出(UTXO)。在一些实施例中,这些委员会可以是临时角色,且每个委员会取决于交易在协议中可以作为来源或作为验证者。

在一些实施例中,客户端计算机可能不会附加其提交到计算机网络的交互的证明。相反,客户端计算机可以与任何委员会通信,并将交互发送给验证者委员会。在每一回合,验证者委员会都可以将使用属于同一源委员会的UTXO的交互合并为各批次,并且可以向源委员会发送单个UTXO请求。源委员会可检查每个UTXO的有效性。然后,源委员会可以将批次的结果发送给验证者委员会。由于多个UTXO请求被分批处理为同一请求,因此可以在验证者委员会处针对多个请求生成结果。

在步骤S900处,委员会中的第一节点可以接收交互请求,所述交互请求包括来自客户端计算机的交互数据。在一些实施例中,与交互相关联的交互数据可与交易相关,例如将数字资产从一方转移到另一方。例如,交互数据可以涉及将二十美元从客户端计算机转移到另一客户端计算机。

在步骤S910处,第一节点可以将交互数据以及与其它客户端计算机相关联的其它交互数据并入交互数据块中。例如,第一节点可以接收来自许多客户端计算机的交互数据,所述交互数据与许多不同交互相关联。例如,交互数据可以包括交易量和未花费的交易输出(UTXO)(即,块部分)。在一些实施例中,第一节点可以生成要验证的所有块部分的列表。例如,第一节点可生成包括对应于第一交互数据的第一UTXO、对应于第二交互数据的第二UTXO和对应于第三交互数据的第三UTXO的块部分的列表。块部分的列表可以包括要验证的块部分。

在步骤S920处,在将交互数据并入交互数据块中之后,第一节点可以将交互数据块广播到委员会中的其它节点,其中委员会中的其它节点可以验证所述块。在一些实施例中,第一节点可以从委员会中的其它节点接收其它块,所述其它块包括其它交互数据。

在步骤S930处,委员会中的其它节点可以验证所述块。其它节点可以使用本文所述的任何合适方法来验证所述块,例如,节点可以通过确定输入是否有效来验证所述块。节点可以确定输入(例如UTXO)是否与先前验证的交互相对应。节点还可以确定输出的总和是否小于输入的总和。如果输出的总和小于输入的总和,则节点可以验证所述块。如果委员会中的其它节点验证所述块,则所述过程可继续进行到步骤S940。但是,如果委员会中的其它节点无法验证所述块,则所述过程可以继续进行到步骤S950。

在步骤S940处,如果委员会中的其它节点可以验证所述块,则其它节点和第一节点可以将所述块并入由委员会管理的区块链(即,分片)中。第一节点可将所述块并入区块链的分片中。在一些实施例中,委员会的领导节点可以将所述块并入区块链的分片中。步骤S940可以对应于源委员会和验证者委员会可以是同一委员会的情况,且委员会中的每个节点都可以在本地验证交互。

在步骤S950处,如果委员会中的其它节点无法验证数据块,则第一节点可联系另一委员会来验证数据块。在其它实施例中,验证者委员会的领导节点可以联系另一委员会,其可以是源委员会,以验证数据块。根据本发明的实施例的方法可促进源委员会与验证者委员会之间的通信。验证者委员会可以确定哪个委员会是源委员会。在一些实施例中,验证者委员会可以基于交互ID确定源委员会。交互ID的前n位可以对应于源委员会。例如,与需要验证的交互相关联的交互ID的开头可以是0x011,这可以对应于第三委员会。作为另一实例,包括以0x111开头的交互ID的每个交互都可以与第七源委员会相关联。交互ID的其余位可以包括任何合适的字符。

在步骤S960处,源委员会可检查每个UTXO的有效性。源委员会可以使用本文所述的任何合适方法检查每个UTXO的有效性。在检查每个UTXO的有效性后,源委员会可以将包括结果的验证消息发送给验证者委员会。由于多个UTXO请求可以被分批处理成同一请求,因此源委员会可以针对多个请求(即多个交互)生成结果。

在步骤S970处,如果源委员会中的节点无法验证每个UTXO,则验证者委员会可接收验证消息,表明所述块未由源委员会验证。然后,验证者委员会可以决定不将所述块存储于区块链的分片中。在一些实施例中,将交互提交到验证者委员会的客户端计算机可以在未来时期重新提交交互。

在步骤S980处,如果源委员会中的节点验证了每个UTXO,则验证者委员会可接收验证消息,表明所述块已由源委员会验证。在步骤S990处,在接收表明所述块已验证的验证消息之后,验证者委员会中的节点可以将所述块并入由验证者委员会管理的区块链中。在一些实施例中,第一节点可将所述块并入区块链的分片中。

在一些实施例中,在步骤S980之后,第一节点可以将交互的输出UTXO传输到客户端计算机,并且可以表明所述交互被存储在区块链的分片中。

共识阶段可以提供以下优势:1)对于每次交易,委员会之间有一次通信;2)无锁定,因此客户端计算机可能不会丢失交互数据,即使它脱机;3)无分布式拒绝服务(DDOS)攻击;4)委员会可分批处理所有提交的交互,并要求一次大型交互来使所述过程更快地进行。

图10示出根据本发明的实施例的示出验证过程的流程图。图10包括客户端计算机1010和包括节点1024和区块链分片1022的验证者委员会1020。图10还包括源委员会1030到1050。

客户端计算机1010可以向验证者委员会1020提交包括交易数据的交易。在接收交易之后,验证者委员会1020可以将交易包括在包括多个交易的块中。验证者委员会1020可以确定所述块是否有效。如果验证者委员会1020确定所述块是有效的,则验证者委员会1020可以将所述块存储在区块链分片1022中。

如果验证者委员会1020无法确定所述块是有效的,则验证者委员会1020可以确定与数据块中的交易相关联的多个源委员会1030到1050中的源委员会1030(例如,使用交易标识符)。在一些实施例中,验证者委员会1020可以确定源委员会1030与UTXO(其为从客户端计算机1010接收的交易的输入)相关联。验证者委员会1020可以联系源委员会1030以请求源委员会1030验证数据块。在从验证者委员会1020接收数据块后,源委员会1030可以确定所述块是否有效。如果源委员会1030确定所述块是有效的,则源委员会1030可以向验证者委员会1020传输验证响应。如果验证响应表明所述块是有效的,则验证者委员会1020可以将所述块存储在区块链分片1022中。

下面的协议5描述如本文所述的实例共识协议。共识协议可以允许包括包括节点的委员会的计算机网络就交互块达成一致并将交互块存储在区块链的分片中。

协议5:共识

1.在从客户端计算机接收消息后,接受来自客户端计算机的新交易。

2.就所述块达成一致

(a)将所有交易置于建议的数据块上。

(b)可靠地将建议的数据块广播到委员会中的所有节点。

(c)从委员会中的所有节点接收建议的数据块,并合并建议的数据块。

3.验证UTXO

(a)创建需要验证的所有UTXO的列表。

(b)如果委员会可以在本地验证UTXO,则验证UTXO,否则联系源委员会来进行验证。

(c)如果委员会从另一委员会接收到UTXO验证的请求,则在未花费情况下回答“是”,否则回答“否”。

路由协议

目前在比特币和Ethereum中,交易广播通过谣传协议在全球P2P网络中发生,其中每个节点将其接收到的交易转发给其对等节点(即接近节点)。因此,只要网络是连接的图表,每个已发送的交易最终都可以到达网络中的所有节点。在分片的区块链中,这样的全球广播是浪费的,因为交易仅对几个委员会有意义。节点只能将新创建的交易输出转发给负责输出的委员会。根据本发明的实施例的方法可以提供路由方案,使得用户能够快速找到节点应将其输出发送到哪个委员会。

首先,可以讨论稻草人路由方案。一种方法可以是每个节点都可以存储计算机网络中所有委员会的信息(例如IP地址等)。因此,每个节点都可以快速找到用户应将其交易发送到的委员会成员的IP地址。这种解决方案的优势在于,它可以让每个用户能够在恒定时间内确定交易的预期委员会。但是,它在每个节点处需要O(n)存储量,以存储有关所有委员会的信息。此外,每个委员会成员都将向网络中的每个人广播其委员会成员数的任何变化,这会导致每个时期内消息广播的大量开销。这种解决方案无法对网络中的数千个节点进行缩放。

不同的解决方案可以是使专用委员会Crouter可以跟踪委员会成员数的变化,并且可以负责交易路由。每个用户都可以获得来自Crouter的关于当前处于委员会中应处理交易的节点的信息。这种方法提供高效的路由,其仅需要一个通信回合。但是,Crouter成为需要处理大量通信的网络的中心枢纽,且因此可能是DoS攻击的可能的瓶颈以及潜在目标。

接下来,可以讨论路由覆盖网络。在Kademlia中,系统中的每个节点都分配有标识符,且标识符之间存在距离(例如,标识符的汉明距离)。节点存储关于在距其自身的对数距离内的所有节点的信息。当节点想要向系统中的另一节点发送消息时,它会在其邻近节点(存储在本地)当中标识出所述节点(最接近于目的地节点ID),并要求其递归地运行发现机制。这将以logn个步骤启用节点发现和消息路由。另请参见[Petar Maymounkov和DavidMazieres,Kademlia:基于xor度量的对等信息系统。在对对等系统的第一届国际研讨会的修订论文中,IPTPS'01,第53到65页,英国伦敦,2002年,施普林格出版社]以获得有关Kademlia路由协议的更多详情。

根据本发明的实施例的方法可以在两个层级上采用路由机制:首先,在委员会间的通信的层级,所述通信构成协议的基础并防止因恶意节点造成的干扰,因为每个委员会都可以具有绝大多数诚实的各方。路由协议中的第二概念层可以是节点间通信,其可用于实现委员会之间的消息发送。具体来说,每个委员会都可以维护指向logn个不同委员会的logn个记录的路由表,所述委员会对于0≤i≤logn-1相距距离2i(即,汉明距离1)。

图11示出根据本发明的实施例的示出通信路由的流程图。图11包括多个委员会:C0 1101、C1 1102、C2 1103、C3 1104、C4 1105、C5 1106、C6 1107和C7 1108。每个委员会都可以与委员会ID相关联。例如,C0 1101可与委员会ID 0x000相关联。例如,C1 1102可与委员会ID 0x001相关联,C2 1103可与委员会ID 0x010相关联,C3 1104可与委员会ID 0x011相关联,C4 1105可与委员会ID 0x100相关联,C5 1106可与委员会ID 0x101相关联,C6 1107可与委员会ID 0x110相关联,且C7 1108可与委员会ID 0x111相关联。委员会可以与任何合适的委员会ID相关联。

计算机网络中的每个委员会都可以维护包含logn个其它委员会的路由表。每个委员会都可以存储交易输出的非相连子集,所述输出的ID中可以具有固定logn位的前缀。交易输出中的此logn共同前缀也可以等于委员会ID。在一些实施例中,交易输出的前n位可以是与那些交易输出相关联的委员会的委员会ID。委员会中的节点可以存储包含有关logn个其它委员会的信息的路由表,而不是存储包括有关计算机网络中的每个其它委员会的信息的路由表。每个节点都不必存储较大路由表,从而减少使用的内存。

C0 1101可以存储以下路由表:包括有关与C1 1102、C2 1103和C4 1105的通信的信息。委员会C0 1101可以与相距2n个委员会(即20、21和22)的具有委员会ID的节点通信。

在一些实施例中,C0 1101可能需要与有关交互的C7 1108通信,C0 1101可以确定将包括交互的数据块传输到C4 1105,因为它有C0 1101已知的最接近于C7 1108的委员会ID(0x111)的委员会ID(0x100)。在接收数据块后,C4 1105可以确定其路由表中最接近于数据块的最终目的地的委员会ID(即,C7 1108)的委员会ID,C4 1105可以将数据块传输到C61107,其可将数据块传输到C7 1108。

此外,在节点到节点层级,每个节点的个别ID(即节点标识符)可以由委员会ID开头。在一些实施例中,一个委员会中的每一对节点彼此都可以非常接近(例如,log(log(n))距离),且可以传播一个委员会内部的消息,而不会经过另一委员会。更具体地说,每个节点都可以存储关于其委员会中的所有节点以及关于与所述节点自己的委员会最接近的logn个委员会中的每一个中的log(log(n))个节点的信息。通过发送方委员会中的所有节点将消息发送到已知处于接收方委员会中的所有节点,可实施每个委员会间的消息。每个接收消息的节点都可以使用可靠的广播[Gabriel Bracha和Sam Toueg,异步共识和广播协议,《美国计算机学会期刊》(JACM),32(4):824到840,1985]将消息发送给其委员会中的所有其它节点。

当客户端计算机请求添加具有交易身份IDtx的交易时,客户端计算机可以先找到负责根据本文所述的分片规则记录交易的委员会Ctx。客户端计算机可以使用发现和路由机制查找Ctx并向委员会Ctx发送其消息。图12示出根据本发明的实施例的示出通信响应路由的流程图。图12包括由委员会C0发起以请求委员会C7的信息的路由协议的实例。图12包括多个委员会:C0 1201、C1 1202、C2 1203、C3 1204、C4 1205、C5 1206、C6 1207和C7 1208。

图12示出了当委员会C0 1201定位委员会C7 1208时的通信图表的实例,所述委员会1208可以负责前缀为0x111的所有交易,如上图11所述。C0 1201可以首先与C4 1205通信,其在C0 1201的路由表中可能是最接近C7 1208的委员会。C4 1205可以与C6 1207通信,其在C4 1205的路由表中可能是最接近C7 1208的委员会,以从C7 1208寻求通信信息,例如数据块验证。由于C6 1207可以直接与C7 1208通信,因此C6 1207可以传回C7 1208到C4 1205的会员名单和地址,由于在一些实施例中,委员会可以存储关于邻近委员会中的节点的信息,例如地址。然后,C4 1205可以将通信信息(例如,数据块验证结果)转发到C0 1201。

在一些实施例中,计算机网络中的节点可以以任何合适的方式执行设置阶段、重新配置阶段,以及接着共识阶段,如本文所述。例如,计算机网络中的第一节点可以确定包括包括第一节点的多个选择节点的领导委员会。领导委员会可以是第一委员会。第一节点可以从第二节点接收到加入计算机网络的委员会的请求。请求可以包括节点标识符。然后,第一节点可以基于由第二节点计算的工作证明过程确定第二节点可以加入第二委员会。第一节点可以向第二委员会引入第二节点,其中第二委员会移位节点以允许第二节点加入第二委员会,其中有关第二节点处于第二委员会中的信息被传达到计算机网络中的其它节点。然后,第一节点可以接收交互请求,所述交互请求包括来自客户端计算机的交互数据。第一节点可以将交互数据以及与其它客户端计算机相关联的其它交互数据并入包括交互数据的数据块,其中所述块包括块部分。然后,第一节点可以将数据块广播到委员会中的其它节点,其中委员会中的其它节点验证所述块。第一节点可以将所述块并入由第一委员会管理的区块链的分片中。

评估

在本节中,可以评估根据本发明的实施例的方法的可扩展性以及所述方法与基于分片的协议的比较,例如Elastico[Loi Luu、Viswesh Narayanan、Chaodong Zheng、KunalBaweja、Seth Gilbert和Prateek Saxena,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第17到30页,美国纽约州纽约市,2016年,ACM]和OmNiledger[Eleftherios Kokoris-Kogias、Philipp Jovanovic、LinusGasser、Nicolas Gailly、Ewa Syta和Bryan Ford,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017年。https://eprint.iacr.org/2017/406]。在一些实施例中,Bracha的可靠广播协议[Gabriel Bracha,异步Byzantine协商协议,《信息与计算》,75(2):130到143,1987年11月]可以使用里德-所罗门擦除编码库实施[进行中的里德-所罗门擦除编码,2017年5月,请访问https://github.com/klauspost/reedsolomon]。

通过超额订阅各自运行多大125个例子的32台机器的集合,模拟具有多达4,000个节点的网络。每台机器都配有具有64个内核的1.3GHz下的Intel Xeon Phi 7210和10Gbps的通信链路。为了模拟互联网延迟,请考虑每个消息100毫秒的延迟和每个节点20Mbps的带宽。这可以在地理上模拟世界各地的分布式节点。除非另有说明,否则本节中报告的数字可能适用于所有节点诚实行事的情况。可以执行根据本发明实施例的方法的一个时期,并且可以单独评估协议的每个组分的成本。这些组分可以独立用于其它协议中。共识延迟可以按秒数、每秒提交的交易数量以及第一次交换到引导委员会的消息数来测量。与比特币核心类似,全球P2P网络中的每个节点最多可接受8个传出连接和最多125个传入连接。但是,可以使用任何合适数量的传出和传入连接。全球P2P覆盖可在引导阶段使用。在共识阶段期间,节点通过在每个委员会内创建的小得多的P2P覆盖而进行通信,其中每个节点最多接受16个传出连接和最多125个传入连接。

在评估期间,为了获得委员会内部共识的同步回合数,可以基于最长时间将Δ设置为600ms以将80字节的摘要传播到具有250个节点的P2P网络中的所有节点,如图28中所示。记住,仅在Ren等人的共识协议期间需要进行同步回合以就数据块的哈希达成一致,从而导致包括签名和控制位的最多80个字节大小的消息。

每个交易数据块可由4,096个交易组成,其中每个交易由512个字节组成,从而导致数据块大小为2MB。为了在委员会内实施这种基于IDA的谣传协议以传播2MB的数据块,可以将每个数据块分成128个信息块,并使用Jerasure库[Jerasure:擦除编码库(2018年5月),请访问http://jerasure.org]以对消息进行编码,使用里德-所罗门代码[IrvingReed和Gustave Solomon,1960年,某些有限字段内的多项式代码,《工业与应用数学学会期刊》(SIAM)(1960),300到304]以及Berlekamp和Welch的解码算法[e Berlekamp和Lwelch,代数块代码的误差校正,美国专利4,633,470(1986年12月30日)]。

图13示出根据本发明的实施例的示出设置阶段的通信的图。图13包括改进的消息数1302、原始消息数1304、改进的带宽1306以及原始带宽1308的图。当有5000方(即节点)时,原始消息数1304大约为3.25*109个消息,而改进的消息数1302大约为2.5*109个消息。此外,在5000个节点下,原始带宽1308大约为1900MB,而改进的带宽1306大约为1600MB。

图14示出了根据本发明的实施例的示出设置阶段延迟的图。图13和图14还示出了由于对委员会所需大小的更好分析而引起的设置运行时间的改善,可节省约20%的运行时间和带宽,而设置的延迟可以很大(例如,对于5000个节点约为20小时)。节点可以运行此协议一次,并且成本可以在调整和共识时期中分期偿还。相比之下,Elastico的协议假设可信设置,并且不会呈现任何对应测量。

接下来,可以讨论共识开销。图15示出根据本发明的实施例的示出交易成本的图。图16示出根据本发明的实施例的示出交易延迟的图。图17示出根据本发明的实施例的示出委员会大小可变情况下的交易延迟的图。图18示出根据本发明的实施例的示出委员会大小可变情况下的交易成本的图。

由于可以存在多个分片,因此可以同时处理超过一个交易数据块,具体地说针对每个委员会处理一个数据块。对于具有不同委员会大小n的实验,委员会的数量可设置为n/100。例如,对于委员会大小100和网络大小5000,计算机网络可以并行处理50个交易数据块。对于不同委员会大小的测量,节点总数可设置为1000。延迟和消息成本在网络大小方面都可以是次线性的,这表明本发明的实施例可以扩展到大量各方。相较于Elastico[LoiLuu、Viswesh Narayanan、Chaodong Zheng、Kunal Baweja、Seth Gilbert和PrateekSaxena,开放式区块链的安全分片协议。在2016年关于计算机和通信安全的ACM SIGSAC会议的论文集中,CCS'16,第17到30页,美国纽约州纽约市,2016年,ACM],本发明的实施例可以更好地关于延迟执行。例如,本发明的实施例可以将延迟改善约0.7倍。作为具有2,000个节点的网络中的实例,Elastico需要约460秒来传播四个数据块,而本发明实施例的延迟在类似大小的网络中可以大约为315秒。

图19示出根据本发明的实施例的示出每一节点数量的消息数的图。图20示出根据本发明的实施例的示出带宽与节点数的图。图21示出根据本发明的实施例的示出延迟与节点数的图。

OmniLedger时期的带宽开销使用以下数字进行估计,报告于[EleftheriosKokoris-Kogias、Philipp Jovanovic、Linus Gasser、Nicolas Gailly、Ewa Syta和BryanFord,OmniLedger:通过分片的安全、向外扩展、分散化分类账,密码电子打印归档,报告2017/406,2017年。https://eprint.iacr.org/2017/406]:总共1,800个节点,交易大小为500B,吞吐量为3,500tx/秒,且分片内的交易的概率为3.7%。由于OmniLedger要求每个跨分片交易至少有三种向所有对象传播的调用,因此每个节点所需的带宽至少为:3,500×0.967×500B×3≈45Mbps。对于n=1600、m=16且1MB的数据块,800秒的报告的交易确认延迟可用于估计Elastico的吞吐量。假设500B/tx,Elastico的吞吐量可以计算为16*2000/800=40tx/秒。

接下来,可以讨论重新配置开销。图22示出根据本发明的实施例的示出处理变动的成本的图。图22包括在重新配置阶段期间添加一个新节点2202、5个新节点2204和10个新节点2206时的消息数与节点数的图。图23示出根据本发明的实施例的示出变动延迟的图。为测量变动在本发明实施例中的影响,可以在网络大小可能发生变化时测量用以向每个委员会添加一方2302、五方2304或十方2306所传输的消息的数量。如图22和23所示,消息的数量与网络的大小以及变动的各方的数量大致线性地增长。由于并行发生不同方和不同委员会的变动,更高的变动率也可以增加延迟,但远低于以前的系统和方法。由于对应委员会中的各方可以处理变动,因此网络大小可能不会影响处理变动的延迟。在一些实施例中,新节点可以尝试加入计算机网络,但如果新节点尝试在时期的中间加入,则可不接受加入请求,然后新节点可以在所述时期结束时传输另一加入请求。这个过程可能会受到针对变动所选的随机性的影响,并且可能针对300个节点导致延迟的小峰值。Elastico的协议不能以增量方式处理变动,并且需要所有委员会的重新初始化。

由于本发明的实施例可以对区块链进行分片,因此各方的存储量可以等于总分类账大小的(委员会的1/#)分数。在具有5,000个节点与50个委员会的网络中,每个节点都可以在向网络提议大小为1MB的1,000个数据块之后存储约6MB。相比之下,比特币、Elastico和Byzcoin都要求每个参与节点在1,000个数据块之后存储大约270MB的数据。因此,根据本发明的实施例的每个节点可存储减少约45倍的数据。这可以是优于现有区块链协议的本发明实施例的优势。

图24示出根据本发明的实施例的示出故障概率的图。对于具有20到220个节点的委员会大小,本发明实施例中以1/3到1/2 2402示出的故障概率可以低于先前的工作(即1/4到1/3)。

图25示出根据本发明的实施例的示出延迟与委员会大小的图。图25包括最大延迟2502、平均延迟2504和中位延迟2506。图26示出根据本发明的实施例的示出用户感知延迟与节点数的图。图26包括用户感知延迟2602和确认延迟2604。处理交易的延迟可以使用两个度量来测量:确认延迟和用户感知延迟。前者测量交易数据块中包括交易的时间直到数据块添加到分类账的时间之间的延迟,使得可以通过计算机网络中的任何(诚实)节点确认分类账上数据块的存在。相比之下,用户感知延迟会测量用户(即客户端计算机)发送交易tx到计算机网络的时间直到可以由系统中的任何(诚实)节点确认tx的时间之间的延迟,。

图26示出了针对各种网络大小测量的延迟值。用户感知延迟2602仅增加了2.8秒,因为计算机网络中的节点数从1000个节点增加到4000个节点。用户感知延迟2602的小幅增加允许客户端计算机的用户在计算机网络大小增长时接收类似时间量的确认。虽然客户感知延迟大约比确认延迟多8倍,但两个延迟对于大于1,000个节点的网络仍然大约相同。相比之下,对于大小分别为1,600和1,800个节点的网络,Elastico和OmniLedger报告确认延迟大约为800秒和63秒。在1,500到2000的网络大小下,本发明的实施例的确认延迟为8.64到8.72秒。

接下来,可以讨论吞吐量可扩展性。图27示出根据本发明的实施例的示出每秒的交易与委员会大小的图。对于可变委员会大小,当网络大小从500个节点增加到4,000个节点时,可以测量由根据本发明的实施例的方法每秒处理的交易数量以评估分片的影响,使得每个时期的故障概率仍然小于2*10-6(即超过1,300年的故障时间)。对于网络大小4,000,可考虑为250的委员会大小,这会导致一个时期中的故障概率小于6*10-7(即超过4,586年的故障时间)。如图27所示,网络大小的倍增将本发明实施例的容量增加1.5到1.7倍。不幸的是,以前的基于分片的协议都不会报告随着网络大小的吞吐量可扩展性-系统利用其主要资源(参与者数量)扩展其处理能力的一个重要量度。

接下来,可以讨论块大小。图28示出根据本发明的实施例的示出每秒的交易与数据块大小的图。图28包括在128KB到8192KB的数据块大小下计算机网络的吞吐量2802和延迟2804。根据本发明的实施例的方法的吞吐量和延迟可以针对包括4,000个节点的计算机网络使用介于512KB到8,192KB之间的各种块大小测量。如图28所示,较大的块大小通常会导致更高的吞吐量,而且导致更高的确认延迟。为了获得小于10秒的延迟,在大多数主流支付系统中通用,在获得最高可能的吞吐量的同时,本发明的实施例可以使用2,048KB的块大小,这导致吞吐量超过7,000tx/秒且延迟大约为8.7秒。

结论

新的高度可扩展的共识协议可以提供开放式成员数和分布式公共分类账。可以通过使用分布式分类账设计来改善交易延迟,所述设计将区块链跨多个分片委员会进行分区。本发明的实施例可以使用高效的设置协议,以建立诚实的分片委员会,而且还采用新分析进行优化。根据本发明的实施例的方法可以处理变动并引起委员会成员数的最小变化,而不会影响交易延迟。本发明的实施例还以一些改进的原子广播和网络路由协议为特征。最后,经验评估表明,根据本发明的实施例的方法可以平稳地扩展到5,000个节点的网络大小,并且可以示出比比特币和Elastico等现有系统更好的性能。

本发明的实施例具有许多优点。例如,实施例允许区块链在多个节点委员会之间进行分片。每个节点委员会都可以存储区块链的不同分区,因此与以前的系统和方法相比大大减少了存储在每个节点上的数据量。

此外,委员会可以验证包括交互的块,并在区块链的委员会分区中存储所述块。委员会不需要将数据块广播到计算机网络中的每个节点,然后使计算机网络中的每个节点验证数据块,如以前的系统和方法。因此,本发明的实施例可以确定相较于之前的系统和方法,数据块是否在较少通信中有效。

此外,本发明的实施例处理更高的吞吐量,相较于以前的系统,例如Elastico和OmniLedger。在具有比以前的方法更大的网络大小时,本发明的实施例还提供了更小的延迟、每个节点处更小的存储量,以及更长的失效时间(参见上表2)。

本发明的实施例提供了另外的优点。例如,本发明的实施例允许新节点加入计算机网络,而不重新配置计算机网络中的每个节点,如先前的系统和方法。因此,本发明的实施例提供一种方式来在几个委员会中重新配置几个节点,同时防止恶意接收,例如Sybil攻击。

更多细节

原子广播

在本节中,可以讨论本文所述的稀疏化过程。稀疏化可能不会改变原子广播协议的正确性和安全性。n可能是Merkle树中的数据块或叶节点的数量且t可能是不诚实节点的分数。如果所述树中可存在所述节点上的哈希仅分配给已损坏方的节点,则重构阶段可能会失效。如果不会发送节点处的哈希T(Mi,Mj)以及需要所述哈希进行数据块验证的所有叶子,则可以使树节点稀疏化。可以使高达某个层级i的所有节点稀疏化。s,这可以是可以发送到所允许的每个稀疏节点的各方的子集的大小,可以使用所述节点可以发送到至少一个诚实方的至少为2-c的概率计算。让l(x)计数节点x上植根的子树中的叶节点数,且u(x)计数节点x上植根的子树中已损坏节点的数量。

可以通过两种方式向各方分配中间节点。可能具有更简单分析的第一种方法可以从各方的整个集合中随机选择将每个叶节点发送到s方。第二种方法可以是发送每个中间节点的各方可以是将在正常原子广播协议中已发送节点的各方的子集。

首先,可以讨论中间节点可分配给任何一方的情况。如果节点可以随机分配到s方,则仅损坏各方接收节点的概率最高可为ts。因此,对所有2i+1-1个已发送节点采取联合约束,

(2i+1-1)ts<2i+1ts≤2-c

(i+1)ln2+slnt≤-cln2

Figure BDA0002328251970000701

考虑中间节点可以分配给可能在正常广播中接收到所述节点的各方的情况。如果子树具有多于s个叶子,则可以使给定节点稀疏化。在层级i植根的子树至少可以有

Figure BDA0002328251970000711

个叶子,因此

Figure BDA0002328251970000712

对于节点x,l(x)>s,在不替换所有可能的各方的情况下,可以将各方到子树中的叶子的分配视为采样。对于任何单个随机选择的一方,所述方损坏的概率最高可能是t。因此,通过Hoeffding不等式,对于δ≥0,

Figure BDA0002328251970000713

接下来,可以在层级i约束子树中损坏的节点数。具体来说,j<i、x和y是层级j+1上的兄弟节点,且z是层级j上的其双亲。z的叶子可以是x的叶子和y的叶子的联合。使得u(x)/l(x)<α,且u(y)/l(y)<α。然后,(u(x)+u(y))/(l(x)+l(y))≤α。如果在层级i上植根的所有子树的损坏节点的比例受约束,则可以将所述约束归纳地应用于层级i-1,...,1处植根的所有子树。层级i处植根有2i个子树,因此

其它失效原因可以是从单个子树采样的所有s个节点是否全部是损坏节点。鉴于任何子树中已损坏节点的比例最高可以是t+δ,对所有2i+1-1个稀疏节点采取联合约束可以针对任一节点给定概率,针对所述节点采样的所有各方均损坏的概率最高为(2i+1-1)(δ+t)s

因此,在对两个失效原因采取联合约束的情况下,诚实发送方广播失败的概率最高可能是

Figure BDA0002328251970000715

首先,δ可以选择为t的函数以使上述表达式最小化。2i可独立于δ和t。最小化表达式可以等同于最小化其对数。因此,它可能等同于最小化-2sδ2+sln(2(δ+t))。提出s,可以使-2δ2+ln(2(δ+t))最小化。由于t可以是固定参数,相对于δ求导且将其设置为零可能导致

Figure BDA0002328251970000716

且因此导致-4δ2-4fδ+1=0,这可以具有在

Figure BDA0002328251970000717

下的解决方案。在一些实施例中,可以删除δ<0。可以检查这种情况,以确定是否为最小值,由于

Figure BDA0002328251970000718

回到整体表达式,并求解s的值:

Figure BDA0002328251970000721

-2sδ2+ln2+sln(δ+t)≤(-c-i)ln2

s(2δ2-ln(δ+t))≥(c+i+1)ln2

Figure BDA0002328251970000722

给定t、i和c,可以确定针对s的值的解决方案。这种情景可能包括大于任何一方可以接收中间节点情况下的s值。限制要由各方(有可能已经发送了中间节点)发送的中间节点的优势在于,计算可能较少,而且存储器成本较小。当任何一方可以发送任何中间节点时,损坏的各方都可以为任何可能稀疏化的节点制作哈希。虽然哈希可能不会结束于最终的Merkle树中,但重构器仍然可以考虑所述哈希。如果i是稀疏化的最大层,则内存使用率可以是并且重构的计算成本可以是

Figure BDA0002328251970000724

如果各方在其可发送的中间节点中受限,则各方最多可以发送可以考虑的

Figure BDA0002328251970000725

个哈希。内存使用率可以是因为各方都可以为每个层发送一个候选者。计算成本可以是

Figure BDA0002328251970000727

对各行进行汇总,并考虑每行中的中间节点数量,以及可能的候选者的数量,可以进行重构。这可以简化为

目前为止,为使通信最小化,这可能并不是i的最佳值。优化i的解决方案可能不具有闭合形式,如其可为

s(2(i+1)-1)+(log2n-i)n

这可以是发送方可以发送的哈希总数。之前表达式相对于i的衍生可能是

Figure BDA0002328251970000729

由于s可能是i的线性函数,因此在给定分配中间哈希的策略的情况下,ds/di可以是恒定的。然而,之前的表达式还告诉我们,稀疏化可能不会提供更好的渐近界限。如果n乘以2(由此使树的深度增加一),则i对于以上表达式可以增加小于1以保持0,由于s2i+1=Θ(i2i)。因此,稀疏层的最佳数量在树的深度上可以是次线性的。因此,Merkle树中每个层级发送的哈希数量可以相等。由于稀疏层的数量在树的深度上可以是次线性的,所以通信成本可以通过在树中接近于叶子的非稀疏层级中的哈希而逐渐占据主导。

受限Cuckoo规则

在本节中,可以讨论可能维持计算机网络中委员会的平衡和诚实属性的根据本发明的实施例的调整协议。

本节可描述对与Cuckoo规则相关联的证明的修改,且因此可使用类似的假设和术语。各方可以在每一回合中依次加入和离开。在协议期间的任何时候,不诚实方相对于诚实方的分数可以等于ε。协议可能从稳定状态开始,其中分区成m个委员会的n方能够满足平衡和诚实条件。

系统可以首先使用哈希函数随机将各方映射到[0,1)中的一点,以将各方映射到委员会。然后,范围[0,1)可被分区成大小为k/n的k-区域且委员会可以是对于c和k可分配给clogn个k-区域的各方的群组。当新的一方加入计算机网络时,所述方可以被称为新的一方,同时所述方处于委员会中。在此之后的任何时候,即使所述方更改了委员会,所述方也可以被称为旧的一方。k-区域的年龄可以是在新的一方已经放置在所述k-区域中之后过去的时间量。委员会年龄可以是k-区域的年龄的总和。此外,回想起,一组活跃委员会可以是其中具有最高数量的节点的m/2个委员会。

对于任何固定活跃委员会C且在任何时候,任何活跃委员会C的年龄高概率下可以在内。

yi可以是被称为Ri的k-区域的年龄且

Figure BDA0002328251970000732

可以是C的年龄。在一些实施例中,在协议期间的任何时间点,一半委员会可以处于活跃状态,因此用于新的一方的区域可以由k区域的一半确定。因此,

Figure BDA0002328251970000733

Figure BDA0002328251970000734

可以在概率下通过几何形式分布。因此,

Figure BDA0002328251970000736

Y可以集中在E[Y]左右,意味着Y可能在(1±δ)E[Y]之间。

接下来,可以讨论活跃委员会中k-区域的最大年龄。活跃委员会中的任何k-区域的年龄最多都可以是λ(n/2k)logn。k-区域Ri可以在任一回合被收回的概率可能是2k/n,因为在给定回合,可存在m/2个活跃委员会。因此,k-区域的一半可接受新的加入(即新节点)。如果所述委员会在此期间不会成为非活跃委员会,则所述概率可独立于其它回合。请注意,这种状况可以考虑最坏情况,因为所述委员会在此期间可能会变为非活跃状态。因此,Ri的年龄至少为λ(n/2k)logn的概率可能是(1-2k/n)λ(n/k)logn≤e-2k/nλ(n/2k)logn=n

在一些实施例中,活跃委员会中的任何固定方v在λ(n/2k)logn个回合内最多可移位(1+δ)λlogn次。所述方可能在概率1/2下被置于活跃委员会中。新的一方加入委员会后,委员会的一半可被视为活跃委员会。这种状况可能是最坏的情况,其中非活跃委员会的一半可以在下一回合具有接近于活跃的多方。例如,如果活跃委员会包括50个节点,且非活跃委员会包括49个节点,则非活跃委员会可以在下一回合具有接近于活跃的多方。如果所述方p可以t替代,则指示符随机变量可以是zt=1,否则,指示符随机变量可为0。

Figure BDA0002328251970000741

因为在任何时候,计算机网络都可以从所有活跃区域随机选择收回一区域。使

Figure BDA0002328251970000742

其中

Figure BDA0002328251970000743

Figure BDA0002328251970000744

使用切诺夫界,高概率下Z<(1+δ)E[Z]。

t可能是系统中在任何时候都不诚实的各方的数量。在任何时候,固定委员会在高概率下可具有(1-t/n)(1±δ)clognk/2内的旧的诚实方和

Figure BDA0002328251970000745

个旧的不诚实方。在一些实施例中,在本文所述的协议期间的任何合适时间,所有委员会都可以满足平衡和诚实条件。接下来,可以讨论一个委员会的平衡和诚实属性,但是平衡和诚实属性可能适用于任何数量的委员会。

每个委员会中的新的各方的数量最多可为clogn。旧的各方的数量如上所示。在一些实施例中,每个委员会中的最大各方数量可以是

Figure BDA0002328251970000746

Figure BDA0002328251970000747

且最小负荷可以是c/2(1-δ)logn。

对于诚实的委员会,可以确定k,使得

Figure BDA0002328251970000748

任何委员会在高概率下可具有(1-t/n)(1-δ)clognk/2个诚实方和

Figure BDA0002328251970000749

个不诚实方。请注意,这些值可针对最坏的情况,其中对手可能会以大小为(clogn)k/n的委员会为目标。

扩展器

在本节中,可以讨论本文所述的设置协议中参数的分析。考虑两个固定的节点子集L中的每个节点可以表示n方中的一个且R中的每个节点可以表示可以基于关联于来自L的节点的边缘选择的委员会。并且,T可以表示故障方的最大联盟,且S可以表示委员会的子集。ε(T,S)表示以下事件:其中S中的每个节点可以具有关联于T中的节点的超过

Figure BDA0002328251970000753

分数的边缘。

N可以表示T与S之间的边缘数。关联于S的边缘数可以等于dR|S|。通过预期的线性度,

Figure BDA0002328251970000754

在一些实施例中,可以依次添加关联于S的边缘。{Xi}可以表示随机变量的序列,使得Xi=1,如果第i个边缘可能关联于T。序列{Zi=[N|X0,...,Xi]}可限定Doob鞅,其中Z0=[N]。如果更改任何试验,则N最多可能变化一。对于某一正的δ,当出现以下情况时,可能发生故障事件ε:

通过Azuma不等式,

通过对可能的子集T和S的联合约束,

pi可能受到

Figure BDA0002328251970000758

Figure BDA0002328251970000759

的约束,并在等式2中取代等式1。例如,对于n=5000、α1=0.912、β1=0.766、γ1=0.1和δ=1/6,可能导致p1≤2-90。这种参数的选择可以在具有l个层级的选择图表的第一层级产生采样器图表,并且R1=2363、

Figure BDA00023282519700007510

且|S1|=788。应注意,

Figure BDA00023282519700007511

也可以表示选择网络的第一层级中委员会的大小。

在随机分配诚实方且对立地分配不诚实方的采样器图表中,任何大小为|R′|的子集中的委员会已损坏的概率可能小于

Figure BDA00023282519700007512

Figure BDA00023282519700007513

在一些实施例中,采样器图表选择过程可以被视为经典的balls-and-bins过程:可以将|L|dL个球(各方)随机独立且一致地掷入|R|个容器(委员会)。如果不损失普遍性,首先投掷所有不诚实方(坏球),然后是所有诚实方(好球)。

对于固定委员会C,Xg可以是随机变量,其可以表示分配给C的不。Xb可以是随机变量,其可以表示分配给C的诚实方的最小数量。μg和μb分别可以是每个委员会的诚实方和不诚实方的预期数量。

容器中(好/坏)球数的分布可以大致为泊松分布,其中平均值μb=dL|L|/4且μg=3dL|L|/4。

Figure BDA0002328251970000761

可能是泊松随机变量,接近于X,即

Figure BDA0002328251970000762

以下是用于泊松随机变量的切诺夫界:

Figure BDA0002328251970000764

x可以是阈值。如果Xg>2x且Xb<x,则委员会可被确定为良好委员会。在一些实施例中,良好委员会可能具有不良委员会两倍的诚实方。所述定义可能是低估的,并且可能未计入某些良好委员会。根据这个定义,如果Xg≤2x或Xb≥x,则委员会可被确定为不良委员会。

固定委员会可能被确定为不良委员会的概率可能是:

Figure BDA0002328251970000765

在一些实施例中,一组委员会的大小可以是|R′|,所述一组委员会中的所有委员会都可能被确定为不良委员会的概率可能是

Figure BDA0002328251970000766

Figure BDA0002328251970000767

在一些实施例中,对手可以选择不良的各方和不良委员会。在这种情况下,为了发现任何大小为|R′|的子集中所有委员会都已损坏的概率,可以对所有可能的对抗选择进行联合约束:

Figure BDA0002328251970000768

在其它实施例中,对手成功进行所有行动的概率可能不同。因此,可以考虑可能比另一策略更糟糕的策略,并且在一些实施例中,可以将其从联合约束中移除,因为对手选择此类策略可能并不有益。在一些实施例中,可能会发生以下过程:1)可以将良好的各方随机分配给委员会;2)对手可以将α分数的不良的各方分配给委员会,使得所述分配可能损坏最大数量的委员会;以及3)对手可能分配剩余的1-α个不良的各方,使得每一方都可以分配到至少一个良好委员会。另一个未遵循先前过程的策略可能是:对手可以在步骤(3)中为所有不良委员会分配不良的一方对于对手来说可能不是好选择,因为将不良节点分配到可能已经是不良委员会的委员会无法提高对手损坏新委员会的几率。

在投掷所有良好的各方和α分数的不良的各方之后大小为|R′|的集合中仅具有不良委员会的概率可能是

Figure BDA0002328251970000771

由于上述步骤三的规则,对手可忽略的策略的分数:

Figure BDA0002328251970000772

因此,在一些实施例中,在联合约束中,此分数可以被移除,

Figure BDA0002328251970000773

本申请中所描述的任何软件组件或功能可被实施为要使用例如Java、C、C++、C#、Objective-C、Swift等任何合适的计算机语言或例如Perl或Python等脚本语言,使用例如常规的或面向对象的技术由处理器执行的软件代码。软件代码可以作为一系列指令或命令存储在计算机可读介质上以供存储和/或传输,合适的介质包括随机存取存储器(RAM)、只读存储器(ROM)、例如硬盘驱动器或软盘的磁性介质,或例如光盘(CD)或数字通用盘(DVD)的光学介质、闪存存储器等。计算机可读介质可以是此类存储或传输装置的任何组合。

此类程序还可以使用适应于经由包括因特网的符合多种协议的有线、光学和/或无线网络进行传输的载波信号来编码和传输。因此,根据本发明的实施例的计算机可读介质可以使用以此类程序编码的数据信号来创建。以程序代码编码的计算机可读介质可与兼容装置一起封装或与其它装置分开地提供(例如,经由因特网下载)。任何此类计算机可读介质可以驻留于单个计算机产品(例如,硬盘驱动器、CD或整个计算机系统)之上或之内,且可存在于系统或网络内的不同计算机产品之上或之内。计算机系统可以包括用于将本文中所提及的任何结果提供给用户的监视器、打印机或其它合适的显示器。

以上描述是说明性的而非限制性的。在所属领域的技术人员阅读了本公开后,本发明的许多变化就将变得显而易见。因此,本发明的范围不应参考上文描述来确定,而是应参考待决的权利要求以及其完整范围或等同物来确定。

在不偏离本发明的范围的情况下,任何实施例的一个或多个特征可以与任何其它实施例的一个或多个特征组合。

如本文中所使用,除非明确指示有相反的意思,否则使用“一(a/an)”或“所述”旨在表示“至少一个”。

89页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:区块链网络中概率中继的流量控制

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类