Please use this identifier to cite or link to this item: https://ah.lib.nccu.edu.tw/handle/140.119/127216
題名: 私有區塊鏈上的兩步驟拜占庭共識演算法
A Simple TwoStep Byzantine Fault Tolerance in Private Blockchains
作者: 蘇鑑微
Su, Jian-Wei
貢獻者: 郭桐惟
Kuo, Tung-Wei
蘇鑑微
Su, Jian-Wei
關鍵詞: 區塊鏈
共識演算法
拜占庭容錯
Blockchain
Consensus Algorithm
Byzantine Fault Tolerance
日期: 2019
上傳時間: 6-Nov-2019
摘要: 區塊鏈技術至今已發展十多年歷程。區塊鏈應用也從一開始數位貨幣衍伸生出多樣化的應用與服務。區塊鏈是一種分散式帳本技術,帳本內容是由多個網路節點共同維護,而非受到單一節點所控制。為了確保安全性,系統內所有節點需要擁有相同帳本資料;換句話說,節點間須對帳本內容達成共識,而達成共識的方法稱共識演算法。為因應不同的應用情境,區塊鏈分為公有鏈與私有鏈。公有鏈對所有人皆開放,而私有鏈只開放特定人群或企業加入。本篇論文針對私有鏈上的共識演算法進行探討及研究。一般而言,私有鏈共識演算法需要三個步驟的訊息交流,才能確保共識結果是正確的。我們設計了一個兩步驟的共識演算法-TwoStep­BFT。此演算法能夠容許拜占庭節點錯誤,且保有安全性及活性。為了架設大規模節點的私有鏈,我們整合了多樣的自動化雲端部署套件,此套件幫助我們在雲端平台上自動產生多個節點。實驗結果顯示我們的方法在一百個節點依舊能有300TPS的共識效率。
Blockchains have been developed for more than a decade. The very first application of blockchains is digital currency. Within a decade, blockchains have found applications in various fields. A blockchain can be viewed as a distributed ledger, whose content is maintained by multiple network nodes rather than by a single node. In order to ensure correctness, all nodes in the blockchain need to have the same content of the ledger. In other words, all nodes must reach consensus on the content of the blockchain. Toward this goal, all nodes must execute the same protocol that specifies the rules of adding new blocks to Blockchain. Such a protocol is called a consensus algorithm. There are two types of blockchains, public blockchains and private blockchains. Public blockchains have no access control, and is open to everyone. On the other hand, private blockchains can only be accessed by admitted nodes. This thesis focuses on the design and analysis of consensus algorithms for private blockchains. In general, consensus algorithms for private blockchains involve three steps of information exchange to ensure correctness. In this thesis, we design a two-step Byzantine tolerant consensus algorithm, TwoStepBFT. In order to evaluate the performance of TwoStepBFT on a 100-node blockchain, we integrate a variety of automated tools to deploy blockchains. Experimental results have shown that our consensus algorithm can reach a throughput of 300 TPS on a 100-node Blockchain.
參考文獻: 參考文獻\n[1] R3 corda, 2016. https://www.r3.com.\n[2] Librawhitepaper, 2019. https://libra.org/en-US/wp-content/uploads/sites/23/\n2019/06/LibraWhitePaper_en_US.pdf.\n[3] I. Abraham, G. Gueta, D. Malkhi, and J.P.\nMartin. Revisiting fast practical byzantine\nfault tolerance: Thelma, velma, and zelma. arXiv preprint arXiv:1801.10022, 2018.\n[4] V. Buterin. A nextgeneration\nsmart contract and decentralized application platform.\nhttps://github.com/ethereum/wiki/wiki/White-Paper, 2014.\n[5] V. Buterin. clique for go ethereum. https://github.com/ethereum/go-ethereum/\ntree/master/consensus/clique, 2016.\n[6] M. Castro, B. Liskov, et al. Practical byzantine fault tolerance. In OSDI, volume 99,\npages 173–186, 1999.\n[7] C.W.Chen, J.W.Su, T.W.Kuo, and K. Chen. Msigbft:A witness\nbasedconsensus algorithm for private blockchains. In 2018 IEEE 24th International Conference\non Parallel and Distributed Systems (ICPADS), pages 992–997. IEEE, 2018.\n[8] K. Croman, C. Decker, I. Eyal, A. E. Gencer, A. Juels, A. E. Kosba, A. Miller,\nP. Saxena, E. Shi, E. G. Sirer, D. Song, and R. Wattenhofer. On scaling decentralized\nblockchains. pages 106–125, 2016.\n[9] dexon org. dexon whitepaper. https://dexon.org/whitepaper, 2018.\n[10] I. Eyal, A. E. Gencer, E. G. Sirer, and R. Van Renesse. Bitcoinng:\nA scalable\nblockchain protocol. In NSDI, pages 45–59, 2016.\n[11] M. J. Fischer, N. A. Lynch, and M. S. Paterson. Impossibility of distributed consensus\nwith one faulty process. Technical report, Massachusetts Inst of Tech Cambridge lab\nfor Computer Science, 1982.\n[12] Y. Gilad, R. Hemo, S. Micali, G. Vlachos, and N. Zeldovich. Algorand: Scaling\nbyzantine agreements for cryptocurrencies. In Proceedings of the 26th Symposium\non Operating Systems Principles, pages 51–68. ACM, 2017.\n[13] D. Johnson, A. Menezes, and S. Vanstone. The elliptic curve digital signature algorithm\n(ecdsa). International journal of information security, 1(1):36–63, 2001.\n[14] R. Kotla, L. Alvisi, M. Dahlin, A. Clement, and E. Wong. Zyzzyva: speculative\nbyzantine fault tolerance. In ACM SIGOPS Operating Systems Review, volume 41,\npages 45–58. ACM, 2007.\n[15] C. Lee. Litecoin, 2011.\n[16] J.P.\nMartin and L. Alvisi. Fast byzantine consensus. IEEE Transactions on Dependable\nand Secure Computing, 3(3):202–215, 2006.\n[17] S. Nakamoto. Bitcoin: A peertopeer\nelectronic cash system. https://bitcoin.org/\nbitcoin.pdf, 2008.\n[18] Y.J.\nShiu. Nccu bft for go ethereum. https://github.com/ethereum/EIPs/issues/\n650, 2017.\n[19] W. T. Tsai, L. Yu, C. J. Hu, Y. F. Yao, and G. N. Li. Hydrachain: Design of a private\nblockchain. https://github.com/HydraChain/hydrachain/blob/develop/\nhc_consensus_explained.md, 2016.\n[20] P. Vasin. Blackcoin's proofofstake\nprotocol v2. URL: https://blackcoin.\nco/blackcoinposprotocolv2whitepaper.\npdf, 71, 2014.\n[21] M. Yin, D. Malkhi, M. K. Reiter, G. G. Gueta, and I. Abraham. Hotstuff: Bft consensus\nin the lens of blockchain. arXiv preprint arXiv:1803.05069, 2018.
描述: 碩士
國立政治大學
資訊科學系
106753006
資料來源: http://thesis.lib.nccu.edu.tw/record/#G0106753006
資料類型: thesis
Appears in Collections:學位論文

Files in This Item:
File SizeFormat
300601.pdf1.75 MBAdobe PDF2View/Open
Show full item record

Google ScholarTM

Check

Altmetric

Altmetric


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.