為什麼大區塊會增加鏈重組的機率?
在最近在比特幣現金 SV 中發生的兩次鏈重組之後,我發現許多開發人員表示大區塊是重組的原因:
“幾乎每次有人試圖在 $BSV 鏈上生成一個非常大的區塊時,都會發生重組。” Nikita Zhavoronkov,Blockchair 的首席開發人員
“這基本上正是 BU gigabock 測試網發現的問題。在大小 > 100mb 時,記憶體池是如此不同步,以至於塊基本上作為完整塊傳輸。
“BSV 有一個 128mb 塊,它導致了 6 個塊的重組。在 BU 測試網上,持續的 128mb 塊導致了鏈的完全崩潰,其中有如此多的重組,以至於每個節點對區塊鏈的狀態都有不同的看法。並且會你相信幾乎沒有一天,BSV 的支持者不會嘲笑我指出這一點,就好像我錯得多麼明顯一樣。” OpenBazaar首席執行官Chris Pacia
大區塊的本質是什麼使得區塊鏈更有可能自我重組?
如果網路無法及時處理它們的傳播,這表明增加塊大小的想法存在固有缺陷。
如果塊大小很大並且連接節點的記憶體池不同步,則完整節點基本上必須在添加到其鏈之前下載幾乎整個塊,然後將該塊傳輸到與其連接的節點。這會消耗大量時間。如果礦工開采了一個區塊
h
,他們通常會嘗試h+1
在他們找到的區塊之上建構區塊。只有在他們收到塊之後h+1
(在他們開採它之前),它才會知道他們輸掉了“比賽”h+1
。然後,礦工將其鏈重組到h+1
他們剛剛收到的最佳高度,並在此之上進行開採。當塊大小很大時,上例中的礦工可能
h+1
只有在探勘後才能收到塊h+1
。因此,礦工將開始在他開采的區塊之上建造,被欺騙,他是第一個找到該區塊的解決方案的人h+1
。如果塊大小很大,這可以擴展到多個高度,直到礦工h+6
在該高度開採該塊之前收到一個高度塊。因此,礦工現在將根據他過去收到的區塊重新組織他的鏈。與礦工緊密相連的完整節點也必須重組他們的鏈才能實現這一點。