一种结合BLS签名的可拜占庭容错Raft算法

2020-01-17 03:07:46王日宏张立锋徐泉清
应用科学学报 2020年1期

王日宏,张立锋,周 航,徐泉清

1.青岛理工大学信息与控制工程学院,山东青岛266520

2.蚂蚁金服,杭州310012

近几年,作为比特币底层技术的区块链技术取得了重大发展[1].所谓区块链,概括来说,就是去中心化的分布式记账本,综合了密码学、分布式原理等[2].它通过加密链式区块结构完成数据的存储,利用共识算法验证数据.区块链的产生对互联网乃至整个社会信用机制的建立带来了至关重要的影响.

作为区块链核心部分的共识算法主要分为非拜占庭容错共识算法和拜占庭容错(Byzantine fault tolerance, BFT)共识算法.非拜占庭容错共识算法的发展由来已久,例如:文献[3]提出了一个在副本出现宕机情况下仍能正常工作的主从节点备份算法;文献[4]提出了Paxos 算法;文献[5]在文献[4]的基础上提出了更容易理解的Raft算法,并凭借着高可拓展性和高吞吐量的优势在联盟链中得到了应用.文献[6]就在Quorum 项目中将Raft 算法作为可选算法.针对Raft 算法无法实现拜占庭容错问题,提出了一种结合Raft 算法优势的拜占庭容错算法.

拜占庭容错算法可以分为3 类:状态机拜占庭容错算法、带可信部件的拜占庭容错算法和针对区块链应用场景进行优化的拜占庭容错算法.状态机拜占庭系统的代表算法主要是PBFT 算法及其改进算法,例如没有主节点排序(hybrid quorum, HQ)算法[7]、基于投机的Zyzzyva 算法[8]、基于拜占庭锁的Zzyzx 算法[9]、优化主节点切换代价的Spining 算法[10]等.带有可信部件的拜占庭系统的代表算法主要包括A2M[11]和MinBFT[12]等,其主要思路是利……

登录APP查看全文