區塊鏈 - 以太坊礦工節點



以太坊網路包含各種型別的節點。一些節點僅作為錢包執行,而另一些節點則充當輕客戶端,少數節點則作為完整客戶端執行,維護整個區塊鏈。

其中,礦工節點尤為重要。挖礦是指透過共識機制選擇新區塊並將其新增到區塊鏈中的方法。

透過挖礦過程,礦工會獲得作為獎勵的貨幣(以太幣)。這些礦工節點,稱為礦工,會獲得以太幣作為獎勵,以鼓勵他們驗證和確認包含交易的區塊。這種挖礦活動透過確保計算的準確性在保障網路安全方面發揮著至關重要的作用。

礦工節點的功能

礦工節點執行多個關鍵功能 -

  • 它監控在以太坊網路中廣播的交易,並選擇要處理的交易。
  • 它識別陳舊的叔塊並將它們整合到區塊鏈中。
  • 它更新賬戶餘額以反映從成功挖礦中獲得的獎勵。
  • 最終,計算出一個有效的狀態,並完成區塊,代表所有狀態轉換的結果。

當前的挖礦方法使用工作量證明 (PoW),類似於比特幣。要使一個區塊被認為有效,它不僅必須滿足一般的連貫性標準,還必須包含與指定難度級別相對應的工作量證明。

以太坊的Casper

已建立一種稱為Casper的新演算法來取代以太坊中當前的工作量證明 (PoW) 演算法。該系統在經濟協議上執行,該協議要求節點在能夠生成區塊之前提供保證金。

Ethereum Casper

在這種情況下,節點稱為繫結驗證者,提供保證金的過程稱為繫結

以太坊的共識機制

以太坊實現了該協議的簡化版本,將計算投入最高的鏈指定為最終版本。

或者,可以識別最長的鏈,因為它反映了大量投入的挖礦工作。

GHOST 協議最初是為了解決與快速區塊生成相關的挑戰而提出的,快速區塊生成通常會導致陳舊或孤立的區塊。在 GHOST 框架中,陳舊的區塊(稱為叔塊)被納入計算以確定最長和最重的區塊鏈。

Ethereum Consensus Mechanism

隨著區塊鏈在共識機制的控制下新增新區塊而發展,它可能會偶爾出現分裂,這種現象稱為分叉

以太坊的分叉

區塊鏈中的分叉是指鏈分成兩條獨立路徑。這種分裂可以有意或無意地發生。通常,硬分叉是由重大的協議升級引起的,而無意分叉可能是由軟體錯誤引起的。

此外,分叉可以是臨時的,其中鏈會發生分歧,直到它識別出最長和最重的鏈,最終導致一致性。當幾乎同時生成兩個區塊時,就會發生這種臨時分叉,導致鏈分裂,直到它解決到主鏈為止。

以太坊的Ethash

Ethash指的是以太坊使用的工作量證明 (PoW) 演算法。最初作為Dagger-Hashimoto 演算法引入,自最初實施以來,它發生了重大變化,發展成為現在稱為 Ethash 的演算法。

與比特幣非常相似,挖礦的基本概念包括髮現一個隨機數,即nonce。當這個隨機數與區塊頭組合並進行雜湊運算時,它會生成一個值,該值必須小於當前網路的難度。

在以太坊的早期,難度級別相對較低,允許使用 CPU 和單個 GPU 進行有利可圖的挖礦。

以太坊的Ethash DAG

Ethash 是一種記憶體密集型演算法,這對專用硬體的實現提出了挑戰。與比特幣類似,比特幣已經建立了 ASIC,導致挖礦集中化,而記憶體硬工作量證明演算法則是針對此問題的對策。

以太坊使用 Ethash 來阻止開發用於挖礦的 ASIC。Ethash 的性質使得建立具有廣泛且快速記憶體功能的 ASIC 不切實際。該演算法需要從稱為有向無環圖 (DAG)的固定資源中選擇子集,該資源由隨機數和區塊頭確定。

DAG 是以偽隨機方式生成的大型資料集。它在以太坊挖礦過程中生成的DAG 檔案中表示為矩陣。Ethash 演算法要求 DAG 格式化為 32 位無符號整數的二維陣列。只有在挖礦節點的初始啟動期間完全生成 DAG 後才能開始挖礦。此 DAG 充當 Ethash 演算法的種子。根據當前規範,紀元持續時間設定為 30,000 個區塊,大約相當於六天。

Ethash 如何工作?

Ethash 演算法需要使用 DAG 檔案。此檔案每個紀元建立一次,每個紀元包含 30,000 個區塊。隨著區塊鏈的擴充套件,DAG 的大小線性增加。

目前,DAG 大小約為3.5 GB(截至區塊 9325164),紀元編號為310

協議按以下方式執行 -

  • 首先,使用 Keccak-256 雜湊函式將前一個區塊的頭與 32 位隨機隨機數結合。
  • 這種組合產生了一個稱為混合的 128 位結構。
  • 混合負責確定將從 DAG 中檢索哪些資料。
  • 從 DAG 中獲取資料後,它將與當前混合“混合”以生成新的混合,然後使用該混合從 DAG 中獲取更多資料。
  • 最終,第 64 個混合經過摘要函式以產生 32 位元組序列。
  • 然後將此序列與難度目標進行比較。如果它低於目標,則認為隨機數有效,並且工作量證明已成功完成,從而導致區塊的挖礦。
  • 如果它不滿足目標,則演算法將使用不同的隨機數重新啟動該過程。
廣告