以太坊共識演算法是什麼?ETH使用的共識協議介紹

買賣虛擬貨幣

以太坊共識演算法是什麼?以太坊作為目前全球數字貨幣排行榜第二的存在,相信大多數投資者都對以太坊有一定的瞭解,不過這些瞭解大多數處於最基礎的,比如說以太坊價格、發展歷史、創始人等等,要說到以太坊共識演算法,可以說是一臉蒙圈,目前共識演算法比較常見並不多,而以太坊屬於其中哪種呢,絕大多數投資者都不知道,那麼,以太坊共識演算法是什麼呢?下面鏈報小編就給大家詳細說說以太坊共識演算法是什麼?

以太坊共識演算法是什麼?

以太坊中設計了一套基於POW的Ethash共識演算法。以太坊中共識設計的主要思想是設計一大一小的2個資料集,初始大小是:小:16M的cache 大:1G的dataset(DAG)

設計一大一小的目的是:大的資料集是小的cahce透過計算生成的,礦工為了能更快的挖礦只能儲存大的dataset,以免重複計算耽誤時間,而輕節點只需儲存儲存小的cache即可驗證。

大小資料集的生成原理

以太坊共識演算法是什麼?ETH使用的共識協議介紹

1.小cache:

初始大小為16M,容量大小以後每30000個區塊會更改一次。

透過Seed種子進行一些運算得到第一個數,之後在小cache中的每個數都是前一個數取雜湊後得到的,一般輕節點儲存此小cache。

2.大DAG:

大的資料集中的元素都是透過小的cahe計算得到的,小cache中透過偽隨機順序先得到一個位置的元素A的值,再透過A計算雜湊得到B位置的值,迴圈迭代256次後得到了大資料集中的第一個元素,依次類推直到得到全部的DAG元素。

3.挖礦過程

在以太坊中挖礦成功的條件跟比特幣一樣,找到一個nonce值,需要滿足H(header) <= target.

嘗試一個隨機數nonce時,在大的DAG中,透過header及nonce計算出一個初始的雜湊值對映到初始位置A,然後讀取A位置元素和A的相鄰後一個位置A'的元素,再透過(A和A')計算出位置(B和B'),依次類推,迭代64次後,一共讀取出128個數,最後計算這128個數的雜湊值與目標值target比較,若滿足<=target,則挖礦成功;否則重新嘗試nonce。如下圖所示:

以太坊共識演算法是什麼?ETH使用的共識協議介紹

整體的挖礦過程如下圖所示:

以太坊共識演算法是什麼?ETH使用的共識協議介紹

4.驗證過程

驗證過程跟比特幣類似,給定一個nonce值,只需驗證一次即可。

驗證過程跟挖礦過程類似,對於全節點來說,在記憶體中儲存了大的DAG,只需迴圈計算64次後得到最後的雜湊值與目標值比較即可;對於輕節點來說,首先透過小的cache計算出大的DAG後再計算,後面過程跟全節點一樣了。

ETH使用的共識協議介紹

以太坊共識機制共有四個階段,即Frontier(前沿)、Homestead(家園)、Metropolis(大都會)、Serenity(寧靜)。以太坊前三個階段採用的是POW共識機。第四個階段將採用自己建立的POS機制,名為Casper投注共識,這種機制增加了懲罰機制,並基於POS的思想在記賬節點中選取驗證人。

POW即工作量證明,是比特幣系統中採用的共識機制。(本文主要講解以太坊的共識機制)

談起Casper投注共識,要先說POS。POS即權益證明,主要特點以權益證明代替工作量證明,由具有最高權益的節點實現新塊加入和獲得激勵收益。POS共識是為解決POW共識機制的資源浪費和安全性缺陷而提出的替代方案。它的本質是採用權益證明來代替POW中的基於雜湊算力的工作量證明,是由系統中具有最高權益而非最高算力的節點獲得區塊記賬權。權益體現為節點對特定數量貨幣的所有權,稱為幣齡或幣天數(Coindays)。

幣齡是特定數量的幣與其最後一次交易的時間長度的乘積,每次交易都將會消耗掉特定數量的幣齡。例如某人在一筆交易中收到10個幣後並持有10天,則獲得100幣齡;而後其花掉5個幣後則消耗掉50幣齡,顯然採用POS共識機制的系統在特定時間點上的幣齡總數是有限的,長期持幣者更傾向於擁有更多幣齡,因此幣齡可視為其在POS系統中的權益。

投注共識是以太坊下一代的共識機制Casper(鬼馬小精靈)引入的一個全新概念,屬於POS。Casper的共識是按區塊達成的,而不像POS那樣按鏈達成。

為了防止驗證人在不同的世界中提供不同的投注,還有一個簡單嚴格的條款:如果你兩次的投注序號一樣,或者說你提交了一個無法讓Casper依照合約處理的投注,你將失去所有保證金。從這一點可以看出,Casper與傳統的POS不同的是,Casper有懲罰機制,這樣非法節點透過惡意攻擊網路不僅得不到交易費,而且還面臨著保證金被沒收的風險。

Casper協議下的驗證人需要完成出塊和投注兩個活動。具體如下:

出塊是一個獨立於其他所有時間而發生的過程,驗證人收集交易,當輪到他們的出塊時間時,他們就製造一個區塊,並簽名,然後傳送到網路上。投注的過程更為複雜一些,目前Casper預設的驗證人策略被設計為模仿傳統的拜占庭容錯共識:觀察其他的驗證人如何投注,取33%處的值,向0或1進一步移動。

而客戶端確認當前狀態的過程是這樣的:一開始先下載所有的區塊和投注,然後用上面的演算法來形成自己的意見,但是不公佈意見;它只是簡單地按順序在每個高度進行觀察,如果一個區塊的概率高於0.5就處理它,否則就跳過它。在處理所有的區塊之後,所得到的狀態就可以顯示為區塊鏈的當前狀態”。

以太坊共識演算法是什麼?以上就是以太坊共識演算法是什麼的相關內容。總之,ethash基本思路和比特幣的pow類似,都是不斷隨機nonce得到的值與難度進行比較,滿足條件則挖礦成功,否則繼續嘗試。與比特幣比拼cpu算力不同的是,ethash透過生成一個巨大的資料集,透過限制記憶體來防止具備強大算力的ASIC礦機壟斷,增強了去中心化能力。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读