1.以太坊
以太坊技術最早起源于比特幣,作為第二代可編程的區塊鏈體系,聚集大量開發者,以太坊生態也日益擴大穩健。以太坊在2013年底首次提出,在2014年由比特幣雜志聯合創始人之一的Vitalik
Buterin發布了以太坊的白皮書。

2.以太坊基本要素
以太坊要素由節點、礦工、賬戶、交易四部分構成。
(1)節點:顧名思義,即構成以太坊的基本單位。以太坊中含有大量節點,通過節點可以對區塊鏈數據進行讀取和寫入。根據節點參與度大小和使用情況又劃分為兩種:公有鏈和私有鏈。公有鏈類似
CPU 出廠的正式版本,用于上線最終版本的以太坊相關開發。私有鏈類似 CPU 的 ES 版本(Engineering
Sample,即不上市僅供測試的工程樣品),用以測試即將要上線到公有鏈中的開發。在公有鏈中,每一個節點均具有同等的地位和操作權限,同時可以自由加入以太坊中進行數據讀取寫入。節點間依靠
POW 機制保證其數據交換的無差性和可靠性。
(2)礦工:網絡中節點用來不停進行哈希運算來滿足 POW 機制規定。一個節點可以包含若干礦工,通過
CPU、GPU、專用礦機進行運算哈希數學難題碰撞得出答案,算力越大的礦工有較大幾率求得難題的答案,將計算結果保存到新的區塊當中并向全網廣播。當結果被確認后,新生成的區塊將獎勵以太幣(ETH)發送到礦工所屬的節點賬號中。
(3)賬戶:以太坊賬戶上存在兩種賬戶:外部賬戶和合約賬戶。外部賬戶通過公私鑰對及進行控制,合約賬戶表示在區塊鏈上指向了一個智能合約。合約賬戶無法主動發起交易,但是外部賬戶可以進行交易。
(4)交易:以太坊交易中,若干節點進行數字資產的轉移。首先由以太坊檢查交易是否有效,并計算交易所需費用設定所需的 gas
值。外部賬戶通過創建和簽名交易進行信息的發送。因外部賬戶并沒有代碼,此時需要合約賬戶。在合約賬戶收到消息后,啟動合約的代碼對其內部存儲進行讀寫,交易在以太坊上進行到其代碼運行為止或
gas 消耗完畢。
3.以太坊共識機制
以太坊有四個版本,前沿、家園、大都會和寧靜。從以太坊的規劃來看,前三個版本使用共識機制POW,到寧靜時,再轉為POS。
(1)PoW(工作量證明)
比特幣采用的共識機制也是PoW,礦工通過把網絡尚未記錄的現有交易打包到一個區塊,然后不斷遍歷嘗試來尋找一個隨機數,使得新區塊和隨機數的哈希值滿足一定的難度條件,例如前面10位是零。
找到滿足條件的隨機數,就相當于確定了區塊鏈最新的一個區塊,也相當于獲得了區塊鏈的本輪記賬權。
礦工把滿足挖礦難度條件的區塊在網絡中廣播出去,全網其他節點在驗證該區塊滿足挖礦難度條件,同時區塊里的交易數據符合協議規范后,將各自把該區塊鏈接到自己本地的區塊鏈上,從而在全網形成對當前網絡狀態的共識。
工作量證明算法的意義在于,要找到這樣一個隨機數,沒有比列舉可能性更好的策略,而解決方案的驗證又非常簡單。由于輸出有均勻分布(是散表功能應用的結果),我們可以保證,平均而言,需要找到這樣一個隨機數的時間取決于難度閾值。這使得只通過操縱難度來控制找到新區塊的時間成為可能。
這種共識算法挖礦造成大量的資源浪費;挖礦的激勵機制也造成礦池算力的高度集中,背離了當初去中心化設計的初衷。更大的問題是PoW機制的共識達成的周期較長,每秒最多只能做7筆交易,不適合商業應用。
(2)PoS權益證明
以太坊目前處于第二階段,也就是家園階段,100%采用PoW挖礦。從家園到寧靜,從PoW到PoS,這個過程中,以太坊通過難度炸彈的調節來避免以太坊被分成兩條鏈,引導大家平穩過渡到PoS。關于難度炸彈的詳細解釋,下節課會介紹。
PoS要求節點提供一定數量的代幣證明來競爭區塊鏈記賬權。但是如果單純依靠代幣余額來決定記賬者必然使得富有者勝出,導致記賬權的中心化,降低共識的公正性,因此不同的PoS機制在權益證明的基礎上,采用不同方式來增加記賬權的隨機性來避免中心化。
例如根據你持有貨幣的量和時間來競爭記賬權,比如你持有100個幣,總共持有了30天,那么,此時你的幣齡就為3000,這個時候,如果你發現了一個PoS區塊,你的幣齡就會被清空為0。你每被清空365幣齡,你將會從區塊中獲得0.05個幣的利息(可理解為年利率5%)。比如你有365個幣,如果年利率是1%,那每天你得到的利息就是0.001個幣。
以太坊計劃采用基于保證金的經濟激勵共識協議,我們稱它為Casper。協議中的節點,作為“鎖定保證金的驗證人(bonded
validators)”,必須先繳納保證金才可以參與出塊和共識。Casper共識協議通過對這些保證金的直接控制來約束驗證人的行為。具體來說就是,如果一個驗證人作出了任何Casper認為“無效”的事情,他的保證金將被罰沒,出塊和參與共識的權利也會被取消。保證金的引入解決了'nothing
at stake',也就是經典POS協議中做壞事代價很低的問題?,F在有了代價,而且被客觀證明做錯事的驗證人將會付出這個代價。
以太坊PoS的共識機制還在商討中,所以到寧靜階段,PoS的具體細節可能才能完全敲定。
4.以太坊為什么需要共識機制?
分布式系統中,多個主機通過異步通信方式組成網絡集群。在這樣的一個異步系統中,需要主機之間進行狀態復制,以保證每個主機達成一致的狀態共識。在運行過程中,可能出現主機故障,導致無法通信,也有可能主機性能下降,網絡擁塞,這些都可能導致錯誤信息在系統內傳播。因此需要在不可靠的異步網絡中定義容錯協議,以確保各主機達成安全可靠的狀態共識。
以太坊,一個基于去中心化的分布式賬本,也需要解決在不可靠的網絡中如何保障賬本數據一致性和正確性的問題,這就是共識機制。
以上梳理了以太坊的起源、基本要素及共識機制,希望對你有所幫助,如果你想了解更多相關內容,敬請關注三個皮匠報告的行業知識欄目。
推薦閱讀:
區塊鏈行業以太坊生態之Layer2:技術融合應用為王-220907(25頁).pdf
區塊鏈行業:大轉換以太坊合并從顯卡跌價說起-220525(32頁).pdf
區塊鏈行業以太坊Layer2:區塊鏈應用的鑰匙元宇宙創新之基石-211104(15頁).pdf