近日,中国科学院软件研究所张振峰团队联合美国新泽西理工学院唐强团队,在区块链核心技术的拜占庭容错(BFT)共识研究中取得重要突破,在国际上提出首个完全实用的异步共识算法“小飞象拜占庭容错(Dumbo BFT)算法”(简称“小飞象算法”)。
在以“去中心化”为主要特征的区块链技术中,共识算法为什么重要?什么是“拜占庭容错共识算法”?“小飞象算法”又有哪些过人之处?
共识算法为什么重要?
“去中心化”是区块链的特征之一。在一个去中心化的系统里,没有负责“拍板”的角色,这就好比一个临时组成的旅游团,有人想往东,有人想往西。
“中心化”与“去中心化”
再举一个更加贴近生活的例子,在传统的金融系统里,A向B转账了一笔钱,这个行为会被保存在银行数据库里,交易数据的真实性由银行这样的传统机构保证,以他们的记录为准。
但是在比特币这种“去中心化”的区块链系统中,可能有的节点记录了A向B转账的事情,有的节点没有记录,那到底有没有转账这回事?以谁的记录为准?
很明显,在上述两种情况下,通过一个合适的共识机制,让整个系统能做出统一的决定非常重要。
因此,在区块链的世界里,不同的节点通过预设共识算法最终达到数据的一致性,这其实就是一种通用性规则,每个人只要按照这个规则参与运行,结果即可得到其他人的认可。
“拜占庭容错共识算法”与拜占庭有何关系?
在实际运行中,共识算法并非无懈可击。来自各方的挑战经常会影响共识的达成,其中最大的挑战还是源自“信任问题”。
1982年,图灵奖获得者莱斯利·兰伯特(Leslie Lamport)等在论文中提出了这样一个可能令共识算法失灵的情况假设,即“拜占庭将军问题”。
什么是 “拜占庭将军问题”?
由此可见,拜占庭容错(Byzantine Fault Tolerance, BFT)共识算法是由拜占庭将军问题衍生出来的共识算法,其目的是要解决在非信任环境下,如何达成共识。
类似的故事在中国的历史上更为普遍,例如战国时期的“合纵连横”:秦国的势力不断强大,成为其他六国的共同威胁,于是六国“合纵”,合力抵抗强秦。与此同时,秦国也通过“连横”分别与六国联盟,目的是破坏六国间的“合纵”,以便孤立各国,各个击破。
在上述背景下,无论秦国还是其他六国,均面临所谓的“拜占庭将军问题”——既要联合作战,又要防范自己被灭。那时候的古人往往通过人质或联姻等手段建立信任,而在区块链的语境中,类似的问题可以由“拜占庭容错共识算法”来解决。
因此,作为区块链的关键核心技术,“拜占庭容错共识算法”是确保区块链安全可靠运行、提升区块链扩展能力和运行性能的核心算法,具有运行性能高、资源消耗低、易于部署等特点,得到工业界的青睐,广泛应用于中外区块链系统中。
“小飞象算法”有何过人之处?
此次研究成果主要完成人张振峰研究员在接受采访时表示,如何设计高效的异步“拜占庭容错共识算法”,这是密码学和分布式计算领域的著名难题。自20世纪80年代起,包括多位图灵奖得主在内的众多国际著名学者先后对这一难题进行探索,2016年提出的“蜜獾算法”(Honey Badger BFT)是第一个接近实用的异步共识算法,已被应用于区块链平台。
张振峰指出,为设计完全实用的异步共识算法,中科院软件所于2015年开展“小飞象算法”研究工作,该算法以独到视角对“蜜獾算法”进行分析,揭示其性能受限的根源是大量随机化子模块调用导致的运行时间增加,提出全新的可证明可靠广播原语,通过密码学“证明”保证了交易广播的正确完成,并给出基于门限数字签名技术的高效构造方法,通过一种创新性的多值拜占庭共识应用,将对交易的共识转换为对“证明”的共识,使“小飞象算法”在容忍1/3的恶意节点的同时,突破异步共识算法在性能上的设计挑战。
目前,在遍布全球四大洲的100个共识节点的测试网络中,“小飞象算法”的确认延迟时间为24秒、不到“蜜獾算法”的1/20,交易吞吐量为每秒近1.8万笔、是“蜜獾算法”的9倍多。
张振峰还表示,联合团队完成“小飞象算法”的创造性突破,不仅解决了异步共识算法设计的理论难题,而且在性能上大幅提升并全面超越当前工业界采用的“蜜獾算法”,从而成为国际首个完全实用的异步共识算法。这项研究成果,可为中国区块链基础设施建设提供强安全、高性能、可扩展的新一代核心技术。