比特幣挖礦攻擊及防御方案研究
發(fā)布時間:2020-07-17 11:44
【摘要】:比特幣,作為完全去中心化的數(shù)字貨幣,自問世以來就受到最廣泛的關(guān)注。它的安全依賴于區(qū)塊鏈,一個包含系統(tǒng)內(nèi)所有交易的公共賬本。比特幣系統(tǒng)利用工作量證明機制來解決共識問題,生成新的區(qū)塊,這個過程叫做挖礦,完成這項工作的用戶叫做礦工。在發(fā)展初期,挖礦難度較低,個人利用電腦CPU就可以直接參與挖礦,隨著比特幣價格的持續(xù)攀升,越來越多的人參與挖礦來獲得利潤,整個網(wǎng)絡(luò)的算力大幅增加,人們不滿足于當(dāng)前的計算能力,開始尋找提高算力的方法,生產(chǎn)出專門用于挖礦的設(shè)備:礦機,2010年出現(xiàn)了 GPU礦機,2013年又推出了ASIC礦機。一些大企業(yè)選擇在一些電力資源充足、用電成本低的地方建立礦場。單個礦工需要等很長的時間才能生成一個區(qū)塊,為了保持穩(wěn)定的收益他們選擇加入礦池挖礦,按照算力貢獻共享獲得的收益,礦池挖礦成為當(dāng)前主要的挖礦方式,并形成了新的產(chǎn)業(yè)鏈:挖礦業(yè)。盡管已經(jīng)成為當(dāng)今最成功的數(shù)字貨幣,比特幣系統(tǒng)仍然存在著許多安全方面的問題,受到研究者的廣泛關(guān)注,如比特幣自身的雙重支付問題、交易延展性問題和隱私保護問題,針對P2P網(wǎng)絡(luò)的攻擊如日蝕攻擊、路由攻擊,針對比特幣共識機制(PoW)的挖礦攻擊等等,其中比特幣共識機制的安全尤為重要,而共識機制的安全是依靠礦工的挖礦行為來保證的。比特幣最著名的51%攻擊,就是針對共識機制的攻擊方法,掌握全網(wǎng)51%算力的攻擊者擁有巨大的權(quán)力,能夠更改已有的交易實現(xiàn)雙花,阻止其它用戶的交易確認(rèn),甚至可以壟斷比特幣區(qū)塊的產(chǎn)生,這是最早的挖礦攻擊。鑒于礦工的自利性,礦工或礦池挖礦的目的是獲得收益(區(qū)塊獎勵),并力求最大化收益。默認(rèn)情況下,礦工的收益正比于算力,但是礦工可能采取一些惡意的挖礦行為如扣留區(qū)塊或延遲公布區(qū)塊來獲得更多收益,由此而產(chǎn)生三種攻擊:區(qū)塊截留攻擊、自私挖礦、FAW攻擊。在區(qū)塊截留攻擊中,礦池中的礦工只向礦池提交部分工作量證明(PPoWs)而不提交完整工作量證明(FPoWs),當(dāng)攻擊者對某個礦池發(fā)動此攻擊,利用剩余算力誠實挖礦時可以獲得更多收益。在自私挖礦中,自私礦工故意產(chǎn)生分叉來獲得更多收益,他們保持發(fā)現(xiàn)的區(qū)塊秘密地不公布,然后在私鏈挖礦,有選擇性地公布私鏈區(qū)塊希望在區(qū)塊競爭時成為主鏈,浪費誠實礦工的算力,使得自私礦池獲得更高的收益。FAW攻擊綜合運用區(qū)塊截留攻擊和故意分叉來獲得額外獎勵。本文首先分析51%攻擊的基本原理、可行性、應(yīng)對方法,然后重點介紹另外三種挖礦攻擊,模擬不同的情形和場景,定量分析攻擊行為對礦工收益的影響。最后分析這些攻擊行為對比特幣系統(tǒng)的危害,總結(jié)討論當(dāng)前應(yīng)對攻擊的防御方案的研究情況,給出一個衡量防御方案的標(biāo)準(zhǔn),并分析各種防御方案的優(yōu)缺點。
【學(xué)位授予單位】:山東大學(xué)
【學(xué)位級別】:碩士
【學(xué)位授予年份】:2019
【分類號】:TP309;F49;F821
【圖文】:
字段邐im逡逑 ̄邋4邐魔法數(shù)邐j變常量,是比特幣客戶端解析區(qū)塊數(shù)據(jù)時的識別碼逡逑 ̄邋4邐區(qū)塊大小邐3示的該字段之后的區(qū)塊大小逡逑 ̄邋1-9邐交易數(shù)量邐3區(qū)塊包含的打包交易的筆數(shù)逡逑大小邐Z7邐本區(qū)塊中包含的所有的交易信息,采用Merkle樹的數(shù)據(jù)結(jié)構(gòu)逡逑不定|邐文易邐丨存儲邐邐逡逑區(qū)塊的鏈接是通過區(qū)塊頭的哈希指針[29]來完成的。區(qū)塊頭中存儲著父區(qū)塊的逡逑哈希值,它指向了區(qū)塊鏈中的唯一一個區(qū)塊,同時存在著一個區(qū)塊指向本區(qū)塊,逡逑這樣就創(chuàng)建了一條最新區(qū)塊指向創(chuàng)世區(qū)塊的唯一一條鏈路,形成了區(qū)塊的鏈?zhǔn)浇Y(jié)逡逑構(gòu),也叫做區(qū)塊鏈,其結(jié)構(gòu)如圖2-2所示。區(qū)塊之間彼此鏈接,能夠?qū)崿F(xiàn)可追溯逡逑性,同時改變?nèi)魏我粋區(qū)塊,意味著其后面的所有區(qū)塊都需要改變,這在實際來逡逑說是非常困難的,這也是區(qū)塊鏈能夠保證無法篡改的原因。學(xué)術(shù)界關(guān)于區(qū)塊鏈的逡逑定義沒有統(tǒng)一,一般認(rèn)為它是一種按照時間順序?qū)?shù)據(jù)區(qū)塊以鏈條方式組合形成逡逑的特定數(shù)據(jù)結(jié)構(gòu),利用密碼學(xué)方式保證其不可篡改、不可偽造的去中心化、去信逡逑任化的分布式共享總賬@]。逡逑扳本號^間&U_本號時間戮邐版衣號邋時間戥逡逑
礦工在礦池中挖礦雖然單位時間內(nèi)獲得的收益是相同的,但是獲得收益的方差逡逑變小了,收益更加穩(wěn)定,不會出現(xiàn)很長時間都沒有任何收益的現(xiàn)象。相比較于逡逑單獨挖礦,礦池挖礦具有許多的優(yōu)勢,這也是當(dāng)前礦工的最優(yōu)選擇。圖2-3顯逡逑示2017年比特幣全網(wǎng)的算力分布情況。礦池的出現(xiàn)導(dǎo)致算力的集中,這與比特逡逑幣去中心化的性質(zhì)相違背,威脅著比特幣系統(tǒng)的安全,本篇文章討論的挖礦攻逡逑擊都是基于一定算力的攻擊行為。逡逑表2-3單獨挖礦和礦池挖礦礦工的收益表逡逑牙?刑I邐I邋皆七I邋1時間內(nèi)挖到|邋t時間內(nèi)獲得|獲得收益逡逑眶塊數(shù)邐白勺平均收益邐的方差逡逑ht邐htB邐htB:逡逑犖-獨挖礦邐D邐h邐-jr-逡逑2}2D邐2邋D邐2邋D逡逑Ht邐HtB邐HtB1逡逑礦池挖礦邐D邋H邋(h=qH)邋^邐^5逡逑礦池中邐Ht邐HtB邐2HtB]_逡逑單個礦工邐D邐h邐q邋f2D邐q邋2}1D邐q邋23:D逡逑2.邋4.1礦池挖礦逡逑礦池挖礦過程:逡逑(1)每個礦池有一個管理者,負責(zé)收集交易、分配挖礦任務(wù)和分配收益。逡逑當(dāng)新的挖礦輪開始時,管理者打包交易進入?yún)^(qū)塊,,把此區(qū)塊和各自的挖礦任務(wù)逡逑分配給礦工,并記錄每個礦工的任務(wù)完成情況。為了衡量礦工的貢獻率,管理逡逑]0逡逑
圖3-1邋51邋%攻擊挖礦競爭逡逑
本文編號:2759392
【學(xué)位授予單位】:山東大學(xué)
【學(xué)位級別】:碩士
【學(xué)位授予年份】:2019
【分類號】:TP309;F49;F821
【圖文】:
字段邐im逡逑 ̄邋4邐魔法數(shù)邐j變常量,是比特幣客戶端解析區(qū)塊數(shù)據(jù)時的識別碼逡逑 ̄邋4邐區(qū)塊大小邐3示的該字段之后的區(qū)塊大小逡逑 ̄邋1-9邐交易數(shù)量邐3區(qū)塊包含的打包交易的筆數(shù)逡逑大小邐Z7邐本區(qū)塊中包含的所有的交易信息,采用Merkle樹的數(shù)據(jù)結(jié)構(gòu)逡逑不定|邐文易邐丨存儲邐邐逡逑區(qū)塊的鏈接是通過區(qū)塊頭的哈希指針[29]來完成的。區(qū)塊頭中存儲著父區(qū)塊的逡逑哈希值,它指向了區(qū)塊鏈中的唯一一個區(qū)塊,同時存在著一個區(qū)塊指向本區(qū)塊,逡逑這樣就創(chuàng)建了一條最新區(qū)塊指向創(chuàng)世區(qū)塊的唯一一條鏈路,形成了區(qū)塊的鏈?zhǔn)浇Y(jié)逡逑構(gòu),也叫做區(qū)塊鏈,其結(jié)構(gòu)如圖2-2所示。區(qū)塊之間彼此鏈接,能夠?qū)崿F(xiàn)可追溯逡逑性,同時改變?nèi)魏我粋區(qū)塊,意味著其后面的所有區(qū)塊都需要改變,這在實際來逡逑說是非常困難的,這也是區(qū)塊鏈能夠保證無法篡改的原因。學(xué)術(shù)界關(guān)于區(qū)塊鏈的逡逑定義沒有統(tǒng)一,一般認(rèn)為它是一種按照時間順序?qū)?shù)據(jù)區(qū)塊以鏈條方式組合形成逡逑的特定數(shù)據(jù)結(jié)構(gòu),利用密碼學(xué)方式保證其不可篡改、不可偽造的去中心化、去信逡逑任化的分布式共享總賬@]。逡逑扳本號^間&U_本號時間戮邐版衣號邋時間戥逡逑
礦工在礦池中挖礦雖然單位時間內(nèi)獲得的收益是相同的,但是獲得收益的方差逡逑變小了,收益更加穩(wěn)定,不會出現(xiàn)很長時間都沒有任何收益的現(xiàn)象。相比較于逡逑單獨挖礦,礦池挖礦具有許多的優(yōu)勢,這也是當(dāng)前礦工的最優(yōu)選擇。圖2-3顯逡逑示2017年比特幣全網(wǎng)的算力分布情況。礦池的出現(xiàn)導(dǎo)致算力的集中,這與比特逡逑幣去中心化的性質(zhì)相違背,威脅著比特幣系統(tǒng)的安全,本篇文章討論的挖礦攻逡逑擊都是基于一定算力的攻擊行為。逡逑表2-3單獨挖礦和礦池挖礦礦工的收益表逡逑牙?刑I邐I邋皆七I邋1時間內(nèi)挖到|邋t時間內(nèi)獲得|獲得收益逡逑眶塊數(shù)邐白勺平均收益邐的方差逡逑ht邐htB邐htB:逡逑犖-獨挖礦邐D邐h邐-jr-逡逑2}2D邐2邋D邐2邋D逡逑Ht邐HtB邐HtB1逡逑礦池挖礦邐D邋H邋(h=qH)邋^邐^5逡逑礦池中邐Ht邐HtB邐2HtB]_逡逑單個礦工邐D邐h邐q邋f2D邐q邋2}1D邐q邋23:D逡逑2.邋4.1礦池挖礦逡逑礦池挖礦過程:逡逑(1)每個礦池有一個管理者,負責(zé)收集交易、分配挖礦任務(wù)和分配收益。逡逑當(dāng)新的挖礦輪開始時,管理者打包交易進入?yún)^(qū)塊,,把此區(qū)塊和各自的挖礦任務(wù)逡逑分配給礦工,并記錄每個礦工的任務(wù)完成情況。為了衡量礦工的貢獻率,管理逡逑]0逡逑
圖3-1邋51邋%攻擊挖礦競爭逡逑
【相似文獻】
相關(guān)碩士學(xué)位論文 前1條
1 韓健;比特幣挖礦攻擊及防御方案研究[D];山東大學(xué);2019年
本文編號:2759392
本文鏈接:http://www.wukwdryxk.cn/guanlilunwen/sjfx/2759392.html
最近更新
教材專著