Aiming at the problem of Byzantine fault tolerance (BFT) in the Raft algorithm, a Raft Byzantine fault tolerance (RBFT) algorithm combined with BLS signature is proposed. First, it uses BLS signatures to implement threshold signatures, converts the voting process into a threshold signature process, and combines this process with the Raft algorithm's AppendEntries message and RequestVote message to minimize the impact of the fault-tolerant process on consensus efficiency. Second, it introduces a safe status through the incremental Hash value to ensure the log's tamper-resistibility. Then it provides dynamical monitoring on the leader node so as to avoid the possible negative feedback of Byzantine leader and ensure the liveness of the algorithm. Finally, local multi-node simulation experiments show that the RBFT algorithm could improve the throughput and scalability, and reduce the latency of transactions effectively.
WANG Rihong, ZHANG Lifeng, ZHOU Hang, XU Quanqing
. A Byzantine Fault Tolerance Raft Algorithm Combines with BLS Signature[J]. Journal of Applied Sciences, 2020
, 38(1)
: 93
-104
.
DOI: 10.3969/j.issn.0255-8297.2020.01.007
[1] Baird L. The Swirlds hashgraph consensus algorithm:fair, fast, Byzantine fault tolerance[R]. Swirlds-TR-2016-01, 2016.
[2] Swan M. Blockchain:blueprint for a new economy[M]. O0Reilly Media, Inc., 2015.
[3] Oki B M, Liskov B H. Viewstamped replication:a new primary copy method to support highly-available distributed systems[C]//Proceedings of the seventh annual ACM Symposium on Principles of Distributed Computing, 1988:8-17.
[4] Lamport L. The part-time parliament[J]. ACM Transactions on Computer Systems, 1998, 16(2):133-169.
[5] Ongaro D, Ousterhout J. In search of an understandable consensus algorithm[C]//2014{USENIX}Annual Technical Conference ({USENIX}{ATC}14), 2014:305-319.
[6] Morgan J. Quorum:a permissioned implementation of Ethereum supporting data privacy[EB/OL].[2016-09]. https://github.com/jpmorganchase/quorumdocs/raw/master/Blockchain_QuorumHyperledger_20160922.pdf.
[7] Cowling J, Myers D, Liskov B, et al. HQ replication:a hybrid quorum protocol for Byzantine fault tolerance[C]//Proceedings of the 7th Symposium on Operating Systems Design and Implementation, 2006:177-190.
[8] Kotla R, Alvisi L, Dahlin M, et al. Zyzzyva:speculative Byzantine fault tolerance[C]//ACM SIGOPS Operating Systems Review, 2007:45-58.
[9] Hendricks J, Sinnamohideen S, Ganger G R, et al. Zzyzx:scalable fault tolerance through byzantine locking[C]//2010 IEEE/IFIP International Conference on Dependable Systems&Networks (DSN), 2010:363-372.
[10] Veronese G S, Correia M, Bessani A N, et al. Spin one's wheels Byzantine fault tolerance with a spinning primary[C]//28th IEEE International Symposium on Reliable Distributed Systems, 2009:135-144.
[11] Chun B G, Maniatis P, Shenker S, et al. Attested append-only memory:making adversaries stick to their word[C]//ACM SIGOPS Operating Systems Review, 2007:189-204.
[12] Veronese G S, Correia M, Bessani A N, et al. Efficient Byzantine fault-tolerance[J]. IEEE Transactions on Computers, 2011, 62(1):16-30.
[13] Kwon J. Tendermint:consensus without mining[EB/OL]. https://tendermint.com/static/docs/tendermint.pdf
[14] Larimer D. Delegated proof-of-stake (DPoS)[R/OL]. Bitshare Whitepaper. 2014. https://whitepaper.io/document/388/bitshares-whitepaper
[15] Ahmed S. A scalable Byzantine fault tolerant secure domain name system[D]. Cambridge:Massachusetts:Massachusetts Institute of Technology, 2001.
[16] Kim Y, Jo J Y. Dynamically adjusting the mining capacity in cryptocurrency with binary blockchain[J]. International Journal of Networked and Distributed Computing, 2018, 6(1):43.
[17] Miller A, Xia Y, Croman K, et al. The honey badger of BFT protocols[C]//Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security, 2016:31-42.
[18] Kurosawa K. Advances in cryptology[C]//ASIACRYPT 2007:13th International Conference on the Theory and Application of Cryptology and Information Security, Kuching, Malaysia, December 2-6, 2007.[S.l.]:Springer, 2007:4833-4839.
[19] Fox A, Brewer E A. Harvest, yield, and scalable tolerant systems[C]//Proceedings of the Seventh Workshop on Hot Topics in Operating Systems, 1999:174-178.
[20] Kokoris-kogias E, Jovanovic P, Gasser L, et al. Omniledger:a secure, scale-out, decentralized ledger via sharding[C]//2018 IEEE Symposium on Security and Privacy (SP), 2018:583-598.
[21] Fischer M J, Lynch N A, Paterson M S. Impossibility of distributed consensus with one faulty process[R]. Massachusetts Inst of Tech Cambridge lab for Computer Science, 1982.
[22] Shamir A. How to share a secret[J]. Communications of the ACM, 1979, 22(11):612-613.
[23] Cachin C, Guerraoui R, Rodrigues L. Introduction to reliable and secure distributed programming[M].[S.l.]:Springer Science&Business Media, 2011.