區塊鏈鼻祖比特幣之8:分叉帶來的雙花支付、51%攻擊與解決辦法
分叉
前面講到了比特幣通過區塊鏈+工作量證明的獨特設計來解決了時間順序,但是不能保證在同一時刻有兩個節點算出了正確的解,雖然這種可能性很低很低。這就帶來了區塊的分叉。
雖然說幾乎同時有兩個節點計算出這一數學問題的可能性微乎其微,但是仍然存在這樣的可能性,所以分叉就以為著同一個區塊的後面可能會跟上兩個不同的區塊。
規則的打破一直要到下一個區塊被人解開。則會立即轉向最長的區塊,而那些短的區塊則會被拋棄。數學問題使得區塊很難被同時拆解。要連續發生多次更是困難。最終區塊鏈會穩定下來。也就是說所有人對最後幾個區塊順序達成共識。分叉意味著,譬如,若你的交易出現在較短的支鏈,它就會失去進入區塊鏈的位置。一般而言,只代表他會回到未確認交易池。然後被納入到下一個區塊。
比特幣網路如何解決分叉帶來的雙花支付
可惜,交易失去區塊位置的潛在可能,給了本來定序系統防範的重複支付攻擊機會。考慮下面的一個攻擊者A,其首先用自己的比特幣交換B節點的貨物,其立即又支付給自己。然後其通過努力的製造更長的鏈條來讓自己的支付替代掉B節點的支付,從而實現了雙重支付,B節點既得不到錢,還失去了貨物。
這時交易會退回到未確認池中,因為A節點已經利用參照同樣的input交易取而代之。節點就會認為Bob的交易無效。因為已使用掉。
你可能會猜測A節點會預先的計算出一支區塊鏈,然後抓住時機發布到網路。但是每個區塊的數學謎題阻擋了這個可能性。如前面所訴,解開區塊是猜測出一個隨機數的過程。一旦得出答案,解出的雜湊值就會成為指紋一樣的區塊識別。只要區塊內容有一丁點變化,下一個區塊的參考值就會完全不同。此機制的結果就是無法在區塊鏈中置換區塊。在得到前一個區塊之前,下位區塊無法被解開。前一個區塊的指紋也是雜湊函式的引數之一。
同時,該工作量證明機制還解決了在集體投票表決時,誰是大多數的問題。如果決定大多數的方式是基於IP地址的,一IP地址一票,那麼如果有人擁有分配大量IP地址的權力,則該機制就被破壞了。而工作量證明機制的本質則是一CPU一票。“大多數”的決定表達為最長的鏈,因為最長的鏈包含了最大的工作量。如果大多數的CPU為誠實的節點控制,那麼誠實的鏈條將以最快的速度延長,並超越其他的競爭鏈條。如果想要對業已出現的區塊進行修改,攻擊者必須重新完成該區塊的工作量外加該區塊之後所有區塊的工作量,並最終趕上和超越誠實節點的工作量。我們將證明,設想一個較慢的攻擊者試圖趕上隨後的區塊,那麼其成功概率將呈指數化遞減。另一個問題是,硬體的運算速度在高速增長,而節點參與網路的程度則會有所起伏。為了解決這個問題,工作量證明的難度(the proof-of-work difficulty)將採用移動平均目標的方法來確定,即令難度指向令每小時生成區塊的速度為某一個預定的平均數。如果區塊生成的速度過快,那麼難度就會提高。
如果有一臺超級電腦,能夠在區塊解題中獲勝?
即便是一臺超級電腦,或者時幾百上千臺電腦也很難贏得解一個區塊的勝利,因為競爭對手不是任一臺電腦,而是整個比特幣網路。你可以用買彩票來比擬。操作千百臺電腦,如同買了千百張彩票一樣。
51%攻擊是指的什麼
根據前面的例子,我們知道,要想有50%的概率領先其他人解題得到勝利,就需要掌握全網50%以上的算力。要連續領先他人解出區塊,掌握的運算能力還需要高得多。所以區塊鏈中的交易是受到數學競賽所保護。惡意使用者必須和整個網路較量。區塊連線建立的結果,使得在支鏈越前方的交易越安全。惡意的使用者必須在更長的時間贏過全網路,來達成重複支付,替換前面的區塊鏈。所以,系統只有支端末尾易受到重複支付攻擊。這也是為什麼系統建議多等幾個區塊,才能確認收款成功。
網址:http://www.qukuailianxueyuan.io/
欲領取造幣技術與全套虛擬機器資料
區塊鏈技術交流QQ群:756146052 備註:CSDN
尹成學院微信:備註:CSDN
網址:http://www.qukuailianxueyuan.io/
欲領取造幣技術與全套虛擬機器資料
區塊鏈技術交流QQ群:756146052 備註:CSDN
尹成學院微信:備註:CSDN
相關文章
- 區塊鏈鼻祖比特幣之6:詳解比特幣的密碼攻擊與分散式雙花攻擊區塊鏈比特幣密碼分散式
- 區塊鏈鼻祖比特幣之1:比特幣的內涵與價值區塊鏈比特幣
- 區塊鏈鼻祖比特幣之7:區塊鏈在比特幣中的真正用意區塊鏈比特幣
- 區塊鏈鼻祖比特幣之11:比特幣困難度區塊鏈比特幣
- 區塊鏈鼻祖比特幣之13:比特幣原始碼編譯詳解區塊鏈比特幣原始碼編譯
- 區塊鏈鼻祖比特幣之9:挖礦、礦池與比特幣的產生區塊鏈比特幣
- 區塊鏈鼻祖比特幣之5:獨特交易模式的優勢與困境解決區塊鏈比特幣模式
- 區塊鏈鼻祖比特幣之10:merkle tree與spv節點區塊鏈比特幣
- 區塊鏈鼻祖比特幣之2:可分割與去中心化區塊鏈比特幣中心化
- 區塊鏈鼻祖比特幣之4:獨特交易設計區塊鏈比特幣
- 區塊鏈鼻祖比特幣之12:(SPV) 節點與Bloom 過濾器區塊鏈比特幣OOM過濾器
- 加拿大央行:比特幣不會受到51%算力和雙重支付攻擊比特幣
- 區塊鏈安全:實現公鏈雙花攻擊的多種方法區塊鏈
- 比特幣和區塊鏈(2):比特幣中區塊鏈的實現比特幣區塊鏈
- 區塊鏈鼻祖比特幣之3:驗證訊息真偽的數字簽名區塊鏈比特幣
- BTG(bitcoin gold)受到51%攻擊,攻擊者利用雙重支付獲利Go
- 比特幣如何使用區塊鏈解決分散式儲存帶來的一致性問題——原理解析比特幣區塊鏈分散式
- 【LBTC區塊鏈進階】分叉幣的正確開啟方式區塊鏈
- 區塊鏈安全:基於區塊鏈網路攻擊的方式原理詳解區塊鏈
- 區塊鏈每日一問 | 什麼是區塊鏈的“分叉”?區塊鏈
- 比特幣的私鑰【區塊鏈生存訓練】比特幣區塊鏈
- 一文讀懂區塊鏈安全:區塊鏈會帶來哪些衝擊?區塊鏈
- 比特幣學習筆記——————7、區塊鏈比特幣筆記區塊鏈
- 比特幣區塊分析比特幣
- “區塊鏈與比特幣”-架構師之路年終總結區塊鏈比特幣架構
- 區塊鏈和比特幣常見的七大誤區區塊鏈比特幣
- 區塊鏈安全————DAO攻擊事件解析區塊鏈事件
- Bitcoin Gold 遭遇雙花攻擊Go
- ICO的前世今生:5分鐘瞭解區塊鏈和比特幣(上)區塊鏈比特幣
- 區塊鏈筆記(2)直觀感受比特幣區塊鏈筆記比特幣
- 精通比特幣(第九章)【區塊鏈】比特幣區塊鏈
- 資源 | 區塊鏈比特幣設計素材合集區塊鏈比特幣
- 區塊鏈支付系統:跨境支付清算產業的解決方案區塊鏈產業
- 各國政府的態度——從比特幣到區塊鏈比特幣區塊鏈
- DDOS攻擊的具體解決辦法如何防護
- 阿里巴巴與比特幣和區塊鏈密不可分的關係阿里比特幣區塊鏈
- 談談比特幣的機制及攻擊比特幣
- 淺談最近流行的三起區塊鏈51%算力攻擊區塊鏈