Please use this identifier to cite or link to this item: https://ah.lib.nccu.edu.tw/handle/140.119/127216
DC FieldValueLanguage
dc.contributor.advisor郭桐惟zh_TW
dc.contributor.advisorKuo, Tung-Weien_US
dc.contributor.author蘇鑑微zh_TW
dc.contributor.authorSu, Jian-Weien_US
dc.creator蘇鑑微zh_TW
dc.creatorSu, Jian-Weien_US
dc.date2019en_US
dc.date.accessioned2019-11-06T07:27:27Z-
dc.date.available2019-11-06T07:27:27Z-
dc.date.issued2019-11-06T07:27:27Z-
dc.identifierG0106753006en_US
dc.identifier.urihttp://nccur.lib.nccu.edu.tw/handle/140.119/127216-
dc.description碩士zh_TW
dc.description國立政治大學zh_TW
dc.description資訊科學系zh_TW
dc.description106753006zh_TW
dc.description.abstract區塊鏈技術至今已發展十多年歷程。區塊鏈應用也從一開始數位貨幣衍伸生出多樣化的應用與服務。區塊鏈是一種分散式帳本技術,帳本內容是由多個網路節點共同維護,而非受到單一節點所控制。為了確保安全性,系統內所有節點需要擁有相同帳本資料;換句話說,節點間須對帳本內容達成共識,而達成共識的方法稱共識演算法。為因應不同的應用情境,區塊鏈分為公有鏈與私有鏈。公有鏈對所有人皆開放,而私有鏈只開放特定人群或企業加入。本篇論文針對私有鏈上的共識演算法進行探討及研究。一般而言,私有鏈共識演算法需要三個步驟的訊息交流,才能確保共識結果是正確的。我們設計了一個兩步驟的共識演算法-TwoStep­BFT。此演算法能夠容許拜占庭節點錯誤,且保有安全性及活性。為了架設大規模節點的私有鏈,我們整合了多樣的自動化雲端部署套件,此套件幫助我們在雲端平台上自動產生多個節點。實驗結果顯示我們的方法在一百個節點依舊能有300TPS的共識效率。zh_TW
dc.description.abstractBlockchains 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.en_US
dc.description.tableofcontents目錄\n誌謝. . . . . . . . . . . . . . . . . . . . .i\n摘要. . . . . . . . . . . . . . . . . . . . .ii\nAbstract . . . . . . . . . . . . . . . . . . iii\n目錄. . . . . . . . . . . . . . . . . . . . .v\n圖目錄. . . . . . . . . . . . . . . . . . . .vii\n1 緒論. . . . . . . . . . . . . . . . . . . .1\n2 系統模型. . . . . . . . . . . . . . . . . .5\n2.1 網路模型與系統假設. . . . . . . . . . . .5\n2.2 共識假設與定義. . . . . . . . . . . . . .5\n3 共識演算法. . . . . . . . . . . . . . . . .7\n3.1 共識流程. . . . . . . . . . . . . . . . .7\n3.1.1 Propose . . . . . . . . . . . . . . . 7\n3.1.2 Vote . . . . . . . . . . . . . . . . . 8\n3.1.3 Commit . . . . . . . . . . . . . . . . 9\n3.2 Timeout . . . . . . . . . . . . . . . . 9\n4 演算法分析. . . . . . . . . . . . . . . . 11\n4.1 安全性(Safety) . . . . . . . . . . . . 11\n4.2 活性(Liveness) . . . . . . . . . . . . 12\n5 Geth 共識模組程式架構與私有鏈系統部署. . . 13\n5.1 Geth 共識模組程式架構. . . . . . . . . . 13\n5.1.1 Consensus Manager . . . . . . . . . . .14\n5.1.2 Height Manager . . . . . . . . . . . . 14\n5.1.3 Round Manager . . . . . . . . . . . . .15\n5.1.4 Message Handler . . . . . . . . . . . .15\n5.1.5 Synchronizer . . . . . . . . . . . . . 15\n5.2 私有鏈系統部署. . . . . . . . . . . . . .15\n5.2.1 雲端虛擬機器設定. . . . . . . . . . . .16\n5.2.2 私有鏈系統設定. . . . . . . . . . . . .17\n6 實驗結果. . . . . . . . . . . . . . . . . .19\n6.1 環境建設. . . . . . . . . . . . . . . . .19\n6.2 同資料中心吞吐量與延遲性測試. . . . . . .19\n6.3 跨資料中心吞吐量與延遲性測試. . . . . . .22\n7 相關研究. . . . . . . . . . . . . . . . . .27\n7.1 公有鏈上共識演算法. . . . . . . . . . . .27\n7.1.1 ProofofWork. . . . . . . . . . . . . . 27\n7.1.2 ProofofStack . . . . . . . . . . . . . 27\n7.1.3 混合型共識演算法. . . . . . . . . . . .28\n7.2 私有鏈上共識演算法. . . . . . . . . . . 28\n7.2.1 ProofofAuthority. . . . . . . . . . . 28\n7.2.2 三步驟拜占庭共識演算法. . . . . . . . .28\n7.2.3 兩步驟拜占庭共識演算法. . . . . . . . .29\n8 討論與結論. . . . . . . . . . . . . . . . .30\n8.1 討論. . . . . . . . . . . . . . . . . . .30\n8.2 結論. . . . . . . . . . . . . . . . . . .30\n參考文獻. . . . . . . . . . . . . . . . . . .32zh_TW
dc.format.extent1796383 bytes-
dc.format.mimetypeapplication/pdf-
dc.source.urihttp://thesis.lib.nccu.edu.tw/record/#G0106753006en_US
dc.subject區塊鏈zh_TW
dc.subject共識演算法zh_TW
dc.subject拜占庭容錯zh_TW
dc.subjectBlockchainen_US
dc.subjectConsensus Algorithmen_US
dc.subjectByzantine Fault Toleranceen_US
dc.title私有區塊鏈上的兩步驟拜占庭共識演算法zh_TW
dc.titleA Simple TwoStep Byzantine Fault Tolerance in Private Blockchainsen_US
dc.typethesisen_US
dc.relation.reference參考文獻\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.zh_TW
dc.identifier.doi10.6814/NCCU201901225en_US
item.openairetypethesis-
item.grantfulltextrestricted-
item.fulltextWith Fulltext-
item.openairecristypehttp://purl.org/coar/resource_type/c_46ec-
item.cerifentitytypePublications-
Appears in Collections:學位論文
Files in This Item:
File SizeFormat
300601.pdf1.75 MBAdobe PDF2View/Open
Show simple item record

Google ScholarTM

Check

Altmetric

Altmetric


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