طراحی یک الگوریتم اجماع امن برای بهکارگیری در بلاکچین
محورهای موضوعی : مهندسی برق و کامپیوترحسین بدری 1 , معصومه صفخانی 2 *
1 - دانشكده مهندسي کامپیوتر، دانشگاه تربیت دبیر شهید رجایی
2 - دانشکده مهندسی کامپیوتر، دانشگاه تربیت دبیر شهید رجایی
کلید واژه: بلاکچین, الگوریتم اجماع, امنیت بلاکچین, الگوریتم اثبات کار, الگوریتم اثبات سهام, الگوریتم تحمل خطای بیزانس,
چکیده مقاله :
فناوری بلاکچین، شبکه را از لزوم وجود کارساز مرکزی بینیاز مینماید. این فناوری از یک دفتر کل توزیعشده تشکیل گردیده که تمامی تراکنشهای شبکه در آن ثبت میشود و شامل زنجیرهای از بلاکهاست. همه گرههای شبکه، یک رونوشت از این دفتر کل را دارند. برای آنکه وضعیت این دفتر کل در هر لحظه از زمان برای تمام گرههای شبکه یکسان باشد، به سازوکاری نیاز داریم که حصول توافق را برای کل شبکه فراهم کند که به آن «الگوریتم اجماع» میگویند. ما در این مقاله، یک الگوریتم اجماع جدید ارائه خواهیم نمود که در مقابل چهار حمله رایج بر بستر بلاکچین ایمن است. این حملات عبارت هستند از حمله سیبل، حمله منع خدمت، حمله 51 درصد و حمله کسوف. با توجه به آنکه الگوریتم پیشنهادی ما دارای ویژگیهایی نظیر وجود پارامترهای کنترلی مختلف، ماهیت عمومی و همهمنظوره، مقاومبودن در برابر حملات مختلف و سرعت اجرای مناسب است، میتوان از آن در پیادهسازی سامانههای امن مبتنی بر بلاکچین در حوزههای مختلف مانند اینترنت اشیا و سلامت الکترونیک استفاده نمود.
Blockchain technology eliminates the need for a central authority. This system consists of a distributed ledger with a chain of blocks that records every network transaction. This ledger is replicated by every node in the network. We require a mechanism that provides consensus for the entire network, known as "consensus algorithm," in order for the state of this ledger to be the same for all nodes of the network at any given time. In this work, we will suggest a novel consensus algorithm that protects the blockchain platform from four common attacks. These attacks include the Sybil, Denial of Service, 51%, and Eclipse attacks. Due to its multiple control parameters, generic and all-purpose character, immunity to different attacks, and acceptable execution speed, our suggested algorithm can be used to build secure blockchain-based systems in a variety of applications.
[1] L. Zhu, K. Gai, and M. Li, Blockchain Technology in Internet of Things, Springer, 2019.
[2] R. Pinto, What Role will Blockchains Play in Cybersecurity? Forbes Technology Council. April 3. 2019. https://www.forbes.com/sites/forbestechcouncil/2019/04/03/what-role-will-blockchains-play-in-cybersecurity/ (Accessed Apr. 15, 2019).
[3] C. Thompson, How Does the Blockchain Work? (Part 1), Medium, 2016. https://medium.com/blockchain-review/how-does-the-blockchain-work-for-dummies-explained-simply-9f94d386e093 (Accessed Jun. 30, 2021).
[4] I. Marco and K. R. Lakhani, "The truth about blockchain," Harv. Bus. Rev., vol. 95, no. 1, pp. 118-127, 2017.
[5] D. Freuden, "Hybrid Blockchains: The Best of Both Public and Private, Brave New Coin, 2018. https://bravenewcoin.com/insights/hybrid-blockchains-the-best-of-both-public-and-private (Accessed Jun. 30, 2021).
[6] The Investopedia Team, Consensus Mechanism (Cryptocurrency) Definition, https://www.investopedia.com/terms/c/consensus-mechanism-cryptocurrency.asp (Accessed Aug. 13, 2021).
[7] D. Hellwig, G. Karlic, and A. Huchzermeier, Build Your Own Blockchain: A Practical Guide to Distributed Ledger Technology, Springer, 2019.
[8] س. ع. بنوفاطمه، بررسی الگوریتم اجماع اثبات سهام PoS) ) و 3 شبکه محبوب آن، 1398، https://www.bourseiness.com/41344/proof-of-stake (دسترسی شهریور 15، 1401).
[9] M. Castro and B. Liskov, "Practical byzantine fault tolerance," in Proc. of the 3rd Symp. on Operating Systems Design and Implementation, pp. 173-186, New Orleans, LA, USA, 22-22 Feb. 1999.
[10] K. Seifried, Over 200 Documented Blockchain Attacks, Vulnerabilities and Weaknesses, CSA| CSA, https://cloudsecurityalliance.org/blog/2020/10/26/blockchain-attacks-vulnerabilities-and-weaknesses/ (Accessed Sept. 6, 2022).
[11] V. Patel, "A framework for secure and decentralized sharing of medical imaging data via blockchain consensus," Health Informatic Journal, vol. 25, no. 4, pp. 1398-1411, Dec. 2019.
[12] R. Pass, and E. Shi, "Fruitchains: a fair blockchain," in Proc. of the ACM Symp. on Principles of Distributed Computing, pp. 315-324, Washington DC, USA, 25-27 Jul. 2017.
[13] M. Milutinovic, W. He, H. Wu, … M. K. the 1st W. on S., and undefined 2016, "Proof of luck: an efficient blockchain consensus protocol," in Proc. of the 1st Workshop on System Software for Trusted Execution, Trento, Italy, 12-16 Dec. 2016.
[14] S. Kim, "Two-phase cooperative bargaining game approach for shard-based blockchain consensus scheme," IEEE Access, vol. 7, pp. 127772-127780, 2021.
[15] D. Vangulick, B. Cornélusse, and D. Ernst, "Blockchain: a novel approach for the consensus algorithm using Condorcet voting procedure," in Proc. of the IEEE Int. Conf. on Decentralized Applications and Infrastructures, 10 pp. Newark, CA, USA, 4-9 Apr. 2019.
[16] M. Ahmed-Rengers and K. Kostiainen, Don’t Mine, Wait in Line: Fair and Efficient Blockchain Consensus with Robust Round Robin, Apr. 2018, http://arxiv.org/abs/1804.07391 (Accessed Aug. 3, 2021).
[17] S. Azouvi, P. McCorry, and S. Meiklejohn, Betting on Blockchain Consensus with Fantomette, May 2018, http://arxiv.org/abs/1805.06786 (Accessed Aug. 3, 2021).
[18] D. Tosh, S. Shetty, P. Foytik, C. Kamhoua, and L. Njilla, "CloudPoS: a proof-of-stake consensus design for blockchain integrated cloud," in Proc. of the IEEE 11th Int. Conf. on Cloud Computing, pp. 302-309, San Francisco, CA, USA, 2-7 Jul. 2018.
[19] B. Shala, U. Trick, A. Lehmann, B. Ghita, and S. Shiaeles, "Novel trust consensus protocol and blockchain-based trust evaluation system for M2M application services," Internet of Things, vol. 7, Article ID: 100058, Sept. 2017.
[20] S. Leonardos, D. Reijsbergen, and G. Piliouras, "Weighted voting on the blockchain: Improving consensus in proof of stake protocols," Int. J. Netw. Manag., vol. 30, no. 5, Article ID: e 2093, Sept./Oct. 2020.
[21] F. Yang, W. Zhou, Q. Wu, R. Long, … N. X.-I., and U. 2019, "Delegated proof of stake with downgrade: A secure and efficient blockchain consensus algorithm with downgrade mechanism," IEEE Access, vol. 7, pp. 118541-11855, 2019.
[22] Y. P. Tsang, K. L. Choy, C. H. Wu, G. T. S. Ho, and H. Y. Lam, "Blockchain-driven IoT for food traceability with an integrated consensus mechanism Access, vol. 7, pp. 129000-129017, 2019.
[23] Z. Ren, K. Cong, J. Pouwelse, and Z. Erkin, "Implicit Consensus: Blockchain with Unbounded Throughput," May 2017, http://arxiv.org/abs/1705.11046 (Accessed Aug. 3, 2021)
[24] J. Liu, W. Li, G. O. Karame, and N. Asokan, "Scalable Byzantine consensus via hardware-assisted secret sharing," IEEE Trans. on Computers, vol. 68, no. 1, pp. 139-151, Jan. 2019.
[25] F. Muratov, A. Lebedev, N. Iushkevich, B. Nasrulin, and M. Takemiya, YAC: BFT Consensus Algorithm for Blockchain, Sept. 2018, http://arxiv.org/abs/1809.00554 (Accessed Aug. 3, 2021).
[26] E. Buchman, J. Kwon, and Z. Milosevic, The Latest Gossip on BFT Consensus, Jul. 2018, http://arxiv.org/abs/1807.04938 (Accessed Aug. 3, 2021).
[27] N. Alzahrani and N. Bulusu, "A new product anti‐counterfeiting blockchain using a truly decentralized dynamic consensus protocol," Concurrency and Computation Practice and Experience, vol. 32, no. 12, Article ID: e5232, Jun. 2019.
[28] F. Bravo-Marquez, S. Reeves and M. Ugarte, "Proof-of-learning: a blockchain consensus mechanism based on machine learning competitions," in Proc. of the IEEE Int. Conf. on Decentralized Applications and Infrastructures, pp. 119-124, Newark, CA, USA, 4-9 Apr. 2019.
[29] I. Abraham, D. Malkhi, K. Nayak, L. Ren, and A. Spiegelman, "Solida: A Blockchain Protocol Based on Reconfigurable Byzantine Consensus," Mar. 2018, https://arxiv.org/abs/1612.02916v1 (Accessed Aug. 3, 2021).
[30] R. Pass, E. Shi, "Hybrid consensus: efficient consensus in the permissionless model," in Proc. 31st Int. Symp. on Distributed Computing, vol. 91, pp. 39:1-39:16, Vienna, Austria, 16-20 Oct. 2017.
[31] T. Zhou, X. Li, and H. Zhao, "DLattice: q permission-less blockchain based on DPoS-BA-DAG consensus for data tokenization," IEEE Access, vol. 7, pp. 39273-39287, 2019.
[32] Z. –C. Li, J. –H. Huang, D. –Q. Gao, Y. –H. Jiang, and L. Fan, "ISCP: an improved blockchain consensus protocol.," International Journal of Network Security, vol. 21, no. 3, PP.359-367, May 2019.
[33] K. Li, H. Li, H. Hou, K. Li and Y. Chen, "Proof of vote: a high-performance consensus protocol based on vote mechanism & consortium blockchain," in Proc. IEEE 19th Int. Conf. on High Performance Computing and Communications; IEEE 15th Int. Conf. on Smart City; IEEE 3rd Int. Conf. on Data Science and Systems, pp. 466-473, Bangkok, Thailand, 18-20 Dec. 2017.
[34] K. Finlow-Bates, A Lightweight Blockchain Consensus Protocol, Aug. 2017, https://www.chainfrog.com/wp-content/uploads/2017/08/consensus.pdf (Accessed Aug. 3, 2021).
[35] S. Solat, "RDV: An alternative to proof-of-work and a real decentralized consensus for blockchain," in Proc. the 1st Workshop on Blockchain-enabled Networked Sensor Systems, pp. 25-31, Shenzhen, China, 4-4 Nov. 2018.
[36] A. K. Talukder, M. Chaitanya, D. Arnold and K. Sakurai, "Proof of disease: a blockchain consensus protocol for accurate medical decisions and reducing the disease burden," in Proc. of the SmartWorld, Ubiquitous Intelligence & Computing, Advanced & Trusted Computing, Scalable Computing & Communications, Cloud & Big Data Computing, Internet of People and Smart City Innovation, pp. 257-262, Guangzhou, China, 08-12 Oct. 2018.
[37] H. Y. Yuen, et al., "Proof-of-play: A novel consensus model for blockchain-based peer-to-peer gaming system," in Proc. of the ACM Int. Symp. on Blockchain and Secure Critical Infrastructure, pp. 19-28, Auckland, New Zealand, 8-8 Jul. 2019.
[38] E. K. Wang, Z. Liang, C. -M. Chen, S. Kumari, and M. Khurram Khan, "PoRX: A reputation incentive scheme for blockchain consensus of IIoT," Future Generation Computer Systems, vol. 102, pp. 140-151, Jan. 2020.
[39] S. Bouraga, "A taxonomy of blockchain consensus protocols: A survey and classification framework," Expert Syst. Appl., vol. 168, Article ID: 114384, Apr. 2021.
[40] -, Logistic Functions, http://wmueller.com/precalculus/families/1_80.html (Accessed Oct. 01, 2022).
[41] I. Syed, PHP: Utility Function for Getting Random Values with Weighting, 2015, https://gist.github.com/irazasyed/f41f8688a2b3b8f7b6df (Accessed Oct. 15, 2022).
[42] D. M. Chiu and R. Jain, "Analysis of the increase and decrease algorithms for congestion avoidance in computer networks," Comput. Networks ISDN Syst., vol. 17, no. 1, pp. 1-14, Jun. 1989.
[43] E. Heilman, A. Kendler, A. Zohar, and S. Goldberg, Eclipse Attacks on Bitcoin’s Peer-to-Peer Network, Mar. 2015, https://hashingit.com/elements/research-resources/2015-03-20-eclipse-attacks-bitcoin.pdf (Accessed Oct. 15, 2022).
[44] M. Deer, What Is an Eclipse Attack? Dec. 2021, https://cointelegraph.com/explained/what-is-an-eclipse-attack (Accessed Oct. 25, 2022).