比特幣中的共識機制


我們知道對於比特幣系統,所有的比特幣用戶都維護着一條相同的區塊鏈。讓這么多人不斷地更新區塊鏈的數據,如何才能維持共識與統一呢?

一、 區塊的創建

區塊中包含區塊頭和區塊體,我們的礦工在開始挖礦時,就將需要寫入區塊體的交易打包在區塊內,隨后用不同的nonce去嘗試,以獲取滿足記賬權的hash值。

明確了這一點,我們可以想象當各種客戶把交易發布到區塊鏈網絡中時,礦工開始打包交易,不同的礦工打包的交易很可能是不同的。沒有打包的交易只能等到下一個區塊進行打包。

那一個區塊如果被礦工挖出,人們怎么承認其合法性呢?

對於一個比特幣用戶,首先會驗證區塊頭中的一些數據是否合法,如target(即記賬權的閾值),以及nonce計算和一些版本信息。確定了這些之后區塊鏈系統就會承認其合法性。

二、 同時獲得記賬權

如果兩個礦工同一時間挖出區塊,在短時間內,這兩個區塊都是合法的,剩余的礦工可以選擇任意一個區塊進行挖礦,當下一個區塊挖出時,該區塊在哪個區塊之后,哪個區塊就會變的合法。這里說的是最長合法鏈機制。

三、 重新挖礦

大家可能發現,當別人開始挖到新的礦時,對於其他礦工不得不重新打包交易,重新計算hash值,這一步開始時半途而廢,但是由於哈希算法的memoryless性質,無論你什么時候開始挖礦,下一秒挖到礦的概率都是相同的。這也保證了挖礦的公平性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM