區(qū)塊鏈重組是如何運作的?
區(qū)塊沖突是如今最為常見的區(qū)塊鏈問題之一,如果兩個區(qū)塊幾乎同時發(fā)布,那么區(qū)塊鏈可能會發(fā)生分叉。
當前的沖突解決方法基于最長鏈規(guī)則(LCR),即如果存在多個塊,則將最長的鏈視為有效。這意味著每個節(jié)點都遵循僅嘗試擴展他們知道的最擴展分支的協(xié)議要求。因為分叉錯邊的交易會被重組成新的區(qū)塊,這個規(guī)則會導致一些分叉錯邊的交易被延遲,從而導致區(qū)塊鏈重組。
區(qū)塊鏈重組可能發(fā)生在比特幣和以太坊等更繁忙的區(qū)塊鏈上,其中節(jié)點可能會同時在同一個地方生成一個新區(qū)塊。兩個節(jié)點更新他們的賬本副本;如果發(fā)生這種情況,產生較短后續(xù)鏈的節(jié)點會重組該鏈。鏈重排,本質上是確保所有節(jié)點運營商擁有相同的分布式賬本副本。
區(qū)塊鏈重組攻擊是指鏈分裂,其中節(jié)點從新鏈接收塊,而舊鏈繼續(xù)存在。在5 月 25 日,以太坊 Beacon 鏈經歷了7個區(qū)塊的重組,并暴露于稱為鏈組織的高級安全風險。在客戶端更新提升特定客戶端后,Eth2上的驗證器(現(xiàn)在是共識層升級)信標鏈變得不同步。然而,在此過程中,區(qū)塊鏈網(wǎng)絡上的驗證者感到困惑,并沒有更新他們的客戶端。
七塊重組意味著在網(wǎng)絡發(fā)現(xiàn)它不是規(guī)范鏈之前,將七個交易塊添加到最終丟棄的分叉中。因此,如果某些節(jié)點運營商比其他節(jié)點運營商更快,就會發(fā)生區(qū)塊鏈重組。在這種情況下,更快的節(jié)點將無法就應該首先處理哪個區(qū)塊達成一致,他們將繼續(xù)向其區(qū)塊鏈添加區(qū)塊,并在創(chuàng)建下一個區(qū)塊時留下較短的鏈。
例如,礦工 X 和 Y 可能同時找到一個有效區(qū)塊,但由于區(qū)塊在點對點網(wǎng)絡中的傳播方式,網(wǎng)絡的一部分將首先看到 X 的區(qū)塊,然后是 Y 的區(qū)塊。更多區(qū)塊鏈消息,請關注下載WikiBit APP,全球區(qū)塊鏈監(jiān)管查詢APP。如果兩個塊的難度相同,則會出現(xiàn)平局,客戶將可以選擇隨機選擇或選擇先前看到的塊。當?shù)谌齻€礦工 Z 在 X 或 Y 的區(qū)塊之上創(chuàng)建一個區(qū)塊時,通常會打破平局,而另一個區(qū)塊會被遺忘,從而導致區(qū)塊鏈重組。
在以太坊的信標鏈重組案例中,最新節(jié)點比未在 3,887,074 塊更新客戶端的驗證者快約 12 秒。當更新的客戶端在其余驗證者之前提交下一個區(qū)塊時,就會發(fā)生以太坊鏈重組。這讓驗證者對誰應該提交初始區(qū)塊感到困惑。
以太坊核心開發(fā)人員 Preston Van Loon 表示,以太坊區(qū)塊鏈的重組是由于部署了 Proposer Boost 分叉決策,該決策尚未完全推廣到網(wǎng)絡。此外,這種重組是更新和過時的客戶端軟件的重要細分,而不是錯誤選擇的標志。
當鏈的第一個塊形成時,隨機數(shù)會生成加密哈希。除非被挖掘,否則塊中的數(shù)據(jù)被視為已簽名且不可撤銷地鏈接到 nonce 和 hash。每個塊中都包含一個標頭和幾個事務。然后,從塊中的交易生成固定長度的哈希輸出,并將其添加到塊頭中。
在第一個有效塊生成之后,每個后續(xù)有效塊都必須包含前一個或舊塊頭的哈希輸出。每個有效塊都通過包含在每個塊中的前一個塊頭的散列鏈接到它之前的塊。結果,通過將每個塊與其前身連接起來,形成了一個塊鏈(數(shù)據(jù)鏈),稱為區(qū)塊鏈。