Transactions

乙太坊工作量證明中的交易訂單

  • February 2, 2022

我的問題是:

  • 揀貨和訂購交易如何連接到工作證明共識

讓我再解釋一下:

我對乙太坊工作證明(PoW)中的一個概念感到困惑。

我讀過 PoW 是關於找到一個隨機數,這樣:

  • hashOf( Block Data+ Previous Block Data+ Nonce) ==A Hash With Desired Leading Zeros

並且一旦礦工發現了這個 nonce,它就可以將這個 nonce 廣播到網路上,每個礦工可以通過使用上述相同的功能來驗證它是正確的 nonce。

如果上述陳述為真,那麼這如何與交易排序或挑選要包含在區塊中的交易相匹配。我的理解是,如果交易順序發生變化,或者要包含的交易不同,那麼Block Data不同礦工的交易順序就會不同。

我認為礦工可以自由決定將哪些交易包含在一個區塊中以及交易的順序。前提是 nonce 的順序正確(毫無疑問,大多數礦工也會偏好具有更高 gas 費用的交易)。

但從我上面的陳述來看,我覺得如果一個礦工沒有一個標準的機制來訂購和包含至少符合 51% 其他礦工的交易,那麼他們將永遠無法開採一個區塊。

我讀過 PoW 是關於找到一個隨機數,這樣:hashOf(Block Data + Previous Block Data + Nonce) == A Hash With Desiredleading zeros

我想你的意思是hashOf(Block Data + Previous Block Hash + Nonce)

並且一旦礦工發現了這個 nonce,它就可以將這個 nonce 廣播到網路上,每個礦工可以通過使用上述相同的功能來驗證它是正確的 nonce。

不可以。一旦礦工根據目前難度標準找到一個導致有效雜湊的隨機數,它應該廣播該塊。與通常用作範例的相比,乙太坊有一個稍微複雜且更面向記憶體的工作證明,您可以在此處閱讀有關它的更多資訊,但我們可以堅持使用基本範例。

但從我上面的陳述來看,我覺得如果一個礦工沒有一個標準的機制來訂購和包含至少符合 51% 其他礦工的交易,那麼他們將永遠無法開採一個區塊。

如果我錯了,請糾正我,但您似乎認為 PoW 中的共識是礦工普遍同意區塊中應包含哪些交易。要做到這一點,他們確實需要有一個共同的規則來包括哪些交易,以及以什麼順序。但是,他們還需要對待處理的交易都有相同的了解。由於網路延遲/消息失去/等,該假設無法成立……

因此,這與擁有正確的交易或任何交易無關,沒有交易的區塊是完全有效的(不包括 coinbase tx),正如您在比特幣乙太坊中看到的那樣。

共識的真正意義是雙重的:

  • 什麼是主鏈(比特幣的最長鏈規則,乙太坊的 GHOST)
  • 有效區塊內容(雜湊和交易)

我們所說的工作量證明,其實就是眾所周知的中本聰共識(PoW+鏈選規則)。

因此,當礦工打算創建一個新區塊時,它會選擇一些交易(或不選擇),同時最大化他們的個人利益的費用。這些交易可能只有該礦工和創建它們的參與者知道,畢竟,每筆交易都包含一個簽名,並且可以根據目前狀態檢查它所做的操作。然後礦工通過改變區塊隨機數來計算工作量證明,如果成功,則將其廣播到網路。

其他參與者最終將收到該塊並基本上檢查以下內容:

  • 雜湊是有效的並且符合難度標準。
  • 所有 tx 都是有效的(沒有人花費超過它所擁有的/如果一個帳戶在塊中包含多個 tx,則 tx nonce 是按遞增順序排列的)

參與者在收到塊時知道一些以前未知的交易的存在並不重要,交易被簽署並且可以檢查它們的有效性。另外,交易在被包含在一個塊中之前並不真正“存在”,因為它在包含之前沒有任何影響。

如果該新塊擴展了主鏈,則應用狀態轉換,礦工將使用該塊作為其下一個塊創建嘗試的父塊。你對區塊鏈的目前狀態有了一個新的共識視圖,不需要對未決交易進行網路範圍的視圖。

我希望這能回答你的問題。

引用自:https://ethereum.stackexchange.com/questions/120577