引自 analysis of hashrate-based double-spending,meni rosenfeld
1.問題描述
假設:1.誠實節點和攻擊節點的算力總和為常數,p為誠實節點記錄下一區塊的概率,q為攻擊節點記錄下一區塊的概率。
2.生成區塊的難度(需要用的工作量)是常數,產生乙個區塊的平均時間是t0。
3.誠實鏈的長度為n,攻擊節點生成的虛假鏈的長度為m,兩者的差z = n-m.
求解:攻擊節點生成的虛假鏈長度超過誠實鏈長度的概率。
2.定性分析
上述問題描述了雙花(雙重支付)的過程,可看成是乙個連續時間馬爾可夫過程,當 z = -1時攻擊者攻擊成功。由於我們只關心攻擊者成功的概率,並不關心何時攻擊成功,因此上述問題等價為乙個離散馬爾可夫鏈。
設為當攻擊者生成的虛假鏈落後誠實鏈z個區塊時,攻擊成功的概率。則有如下關係成立:
可推導出:
即:當q>p時,攻擊者的虛假鏈無論落後誠實鏈多少個區塊,均可攻擊成功,最終生成比誠實鏈長的鏈。
當q攻擊者成功的概率與落後區塊個數有關,跟生成區塊的時間長短無關。
基於這個結論,交易資訊的真實性,往往需要等待若干個區塊確認被寫入最長鏈後才得到保障。
3.定量分析
下面定量分析。依舊是上述假設:
1.誠實節點和攻擊節點的算力總和為常數,p為誠實節點記錄下一區塊的概率,q為攻擊節點記錄下一區塊的概率。
2.生成區塊的難度(需要用的工作量)是常數,產生乙個區塊的平均時間是t0。
3.誠實鏈的長度為n,攻擊節點生成的虛假鏈的長度為m,兩者的差z = n-m.
新產生的區塊由攻擊者產生的概率為q,由誠實節點產生的概率為p。每次產生的區塊或者由攻擊者生成,或者由誠實節點生成。m個區塊由攻擊者產生,n個區塊由誠實節點產生。這個過程描述了乙個n重伯努利試驗。
在總共m+n次試驗中,攻擊者成功產生新區塊個數m是乙個隨機變數,服從負二項分布,其概率密度函式為:
其中
現在假設攻擊者已經新計算出乙個區塊,即攻擊者產生了m+1個區塊,則在此情況下攻擊者成功進行雙花的累積分布函式r為:
觀察在確認區塊數量為n,攻擊者佔全網算力比重為q的情況下,雙花成功的概率r的曲線。取n=2,4,6,8,10,用matlab做圖如下:
當攻擊者佔全網算力小於50%時,更多的區塊確認數量可以顯著降低攻擊者雙花成功的概率;當攻擊者佔全網算力超過50%時,必然導致雙花成功,這種現象被稱為「51%算力攻擊」。在此先討論q<50%的情況,「51%算力攻擊」將在之後討論。
由圖可以看出:當攻擊者算力佔全網10%時,2個區塊確認可以保證攻擊者雙花成功的概率小於10%,4個區塊確認可以保證攻擊者雙花成功的概率小於1%,6個區塊確認可以保證攻擊者雙花成功概率小於0.1%。隨著確認數的增加,攻擊者雙花成功的概率呈指數下降。
通常的位元幣區塊鏈中,除了鉅額交易之外,一般交易經過6個區塊的確認即可保證安全。這需要結合攻擊者完成雙花所需要的經濟成本來說明,下表展示了計算了雙花的經濟成本後,在攻擊者擁有佔全網q算力下,進行n次區塊確認可以安全交易的最大數量的價值(單位:btc,位元幣)。(引自 analysis of hashrate-based double-spending,meni rosenfeld)。等待更多的區塊確認將顯著增加攻擊者的雙花成本。(犯罪成本遠遠高於收益,在擁有一定理性的情況下不去犯罪)
速度定量分析 緩速行情的操作策略
因為緩漲對應的是急跌,緩跌對應急漲,面對緩速 的操作策略應該是逆勢而為,不是順勢操作。緩漲 對應的操作策略 因為緩漲之後,大多數對應的都是急跌,所以緩漲期間做多利潤很少,一旦 週期結束了,多半會引起短而急的 這樣的 由於空間較大,所以具備一定的殺傷力。策略 盡量在 的末端逆勢做空。非順勢做多。緩跌 ...
引用 計算機效能的評測(定量分析技術基礎)
我們強調計算機系統的價效比,強調計算機的效能設計,那麼效能是如何衡量的呢?1 計算機效能的評測 thoughput 在單位時間內所能完成的工作量。為了比較不同設計的差別,我們通常要對兩台機器的效能進行比較。假設兩台計算機為x和 y,x比 y快 的意思是 對於給定任務,x的響應時間比 y少。通常 x的...
位元幣雙花攻擊的原理分析
在學習區塊鏈的過程中,大家一定對會聽到 雙花 這個詞,意思就是雙重支付,或者更直白點就是一筆資金被花費了兩次。這篇文章我們來簡單的分析一下為什麼會有雙花,位元幣是如何避免雙花的。在傳統的交易中,因為有銀行這樣的中心化機構,所以是不會存在雙花問題的 每一筆支付都將從你的銀行賬戶中扣除相應的資金,所有的...