比特幣之安全篇

比特幣之安全篇

雙重支付

如果上述在上述B to C的交易中,B to C的交易還沒有放入區塊鏈,或者剛剛放入區塊鏈,但是B同時發起了同樣的比特幣 B to B的交易怎麼辦(把同樣的比特幣轉給自己)?

如果交易池中有同樣的比特幣 B to C和B to B的交易,都是驗證合法的交易,則有一些礦工會把B to C加入自己的區塊中,當某礦工把B to C加入區塊中,且已經入鏈,,別的礦工要想在這個區塊後加入包含B to B的區塊,則不會成功,即B to B失效。但如果B本身是個礦工,別的礦工已經把B to C加入區塊鏈,B想把B to B加入自己的區塊,且把該區塊鏈接到B to C區塊的前一個區塊,如果成功,則在B to C區塊的前一個區塊後邊鏈接有倆個區塊,一個是包含B to C交易的區塊,一個是包含B to B交易的區塊。之後的礦工在選擇鏈接區塊的時候會在這倆個區塊之後選擇,當到達一定的區塊高度後,這倆個分支鏈總有一個是最長鏈,而所有的礦工都會選擇在最長鏈後鏈接自己的區塊。這樣,就會有一個交易不在最長鏈上,於是這筆交易就失效了。通常5-6個區塊後就會選出最長鏈這樣就避免了雙重支付的問題。因此在比特幣交易中,一般要等5-6個區塊(大約1小時)才可以確認交易是否成功

。圖解如下(該圖顯示B to B後的鏈最長,則B to C失效,B to C支付失敗):

比特幣之安全篇

雙重支付圖解

51%攻擊

眾所周知,比特幣區塊鏈產生的過程是個共識的過程,如果區塊鏈挖礦中有攻擊者掌握了51%的挖礦算力,會怎麼樣呢?是不是會出現不正當的交易包含在最長鏈中的呢?

首先,掌握了51%算力的攻擊者,可以把不收自己控制的地址裡的比特幣轉移到自己地址裡麼?顯然是否定的,即時他把這種不正當的交易加入到區塊鏈中,別的誠實節點不會接受這個區塊鏈,總會從最後一個正當的區塊後繼續挖礦,這樣攻擊者和誠實節點展開追逐,一旦出現這種情況,那麼大部分誠實節點就知道發生了攻擊,從而整個比特幣價值受損,幣價會受很大影響,這也是攻擊者不願意看到的。

其次,51%攻擊者會壓制其他交易麼?比如攻擊者討厭某用戶,這個用戶所有的交易,攻擊者都不會放入區塊中,但是他不能阻止該用戶廣播自己的交易,如果攻擊者沒有掌握全網,總會有誠實節點把這筆交易放入自己的區塊中。

最後,掌握51%以上算力的人,必定是比特幣的大量持有者,他不會希望比特幣價值受挫,他比大多數人更希望比特幣健康發展。

據報道,目前比特大陸已經持有全網算力的50-85%的算力。這也是中心化的一個體現,對比特幣的健康發展有一定的影響,也是現在大家對比特幣的擔憂之一。

到目前為止,比特幣區塊鏈沒有遭受過黑客攻擊,大家時常聽到的丟幣,幣被黑掉了,這些消息,都是發生在交易所中。在比特幣區塊鏈中的比特幣,如果擁有者沒有丟失私鑰,是不會丟失的。下一遍我們將會探討一下交易所。


分享到:


相關文章: