Blockchain

BTC 協議如何保證“主”區塊鏈的出現?

  • January 23, 2021

我正在閱讀比特幣/區塊鏈技術。通常,關於工作量證明和如何創建區塊的部分都得到了很好的解釋。然而,從未解釋過網路上的塊通信如何/為什麼允許“區塊鏈”融合。

讓我解釋一下:如果兩個礦工同時創建一個新塊,並同時廣播它會怎樣?大約 50% 的節點將每個節點都有一個新的(不同的)塊,並在其上建構。現在,想像一下這種情況再次發生等等。然後,沒有一個區塊鏈正在執行,因為現在礦工都在幾個分叉上工作。比特幣提案通過說必須使用最長的鏈來解決這個問題,但是:

  • 在給定的時間可能有兩條相同大小的分叉鏈,並且以大致相同的速度增長
  • 知道哪條鏈最長需要“回溯”到開始,這意味著任何鏈上的任何交易都不能“驗證”,因為我們不確定是否在正確的鏈上

比特幣協議是否解決了這些問題?基本上,似乎沒有證據表明在網路上以分佈式方式添加塊可以乾淨地融合到一條鏈中。

比特幣節點認為累積工作量證明最多的鍊是最好的鏈。每當一個鏈尖通過添加另一個塊來領先時,所有節點都會在得知該鏈尖後立即重新組織到該鏈尖。

網路快速收斂到一條最佳鏈的另一個原因是比特幣礦工如何獲得報酬。當礦工建構他們的區塊模板時,每個模板都包含一個獨特的coinbase 交易它向自己支付塊獎勵。這意味著找到一個有效的區塊會導致區塊作者通過他們包含的 coinbase 交易向自己支付區塊獎勵。但是,coinbase 交易的輸出需要經過 100 次確認的成熟期。這意味著只有產生至少 99 個繼承者的塊才能被使用。這實質上意味著只有當一個區塊成為最佳鏈的一部分時才會支付區塊獎勵。由於無論成功與否,挖礦業務都會產生大量的硬體和電力費用,因此礦工在處理最終沒有進入最佳鏈的區塊時會損失大量資金。因此,即使偶爾有兩個礦工同時發現區塊並產生兩個相互競爭的鏈尖,即使是“輸了”

雖然單個採礦工作沒有集中協調,但在同一高度發現兩個競爭區塊的情況並不常見:它每月僅發生一次。比特幣挖礦是一個Poisson過程,旨在每十分鐘產生一個區塊。節奏由每 2016 個區塊發生的難度調整來調節,這會重置難度目標,以便在假設網路繼續產生與前一個時期觀察到的相同數量的雜湊值的假設下,下一個 2016 區塊預計需要 14 天.

引用自:https://bitcoin.stackexchange.com/questions/101744