以太坊挖礦演算法原理
A. 浠ュお鍧婃寲鐭跨殑闅懼害鏄濡備綍璁$畻鐨
浠ュお鍧婃寲鐭跨殑闅懼害鏄濡備綍璁$畻鐨勶紵
浠ュお鍧婃槸鐩鍓嶆瘮鐗瑰竵浠ュ栨渶涓虹煡鍚嶇殑鍔犲瘑璐у竵涔嬩竴錛屽叾鐭垮伐鍙浠ラ氳繃鎸栫熆鑾峰緱浠ュお甯併傜劧鑰岋紝浠ュお鍧婃寲鐭跨殑闅懼害鏄濡備綍璁$畻鐨勫憿錛
鎸栫熆鏄姒傚康鎬х殑銆傜熆宸ョ殑鐩鏍囨槸瑙e喅瀵嗙爜闅鵑橈紝浠ヨ幏寰楁柊鐢熸垚鐨勫潡騫惰幏寰椾竴瀹氭暟閲忕殑浠ュお甯佸栧姳銆傝屼互澶鍧婃寲鐭跨殑闅懼害涓昏佹槸鐢變互涓嬩袱涓鍥犵礌緇煎悎鍐沖畾鐨勩
棣栧厛錛屾寲鐭塊毦搴﹀彇鍐充簬姣忎釜鍧椾腑鍖呭惈鐨勪氦鏄撴暟閲忋傛瘡涓鍧椾腑鍖呭惈鐨勪氦鏄撴暟閲忚秺澶氾紝鍏惰В鍐崇殑瀵嗙爜闅鵑樺氨瓚婂嶆潅錛屾寲鐭塊毦搴︿篃灝辮秺澶с傝繖涓鐐逛笌姣旂壒甯佺被浼礆紝姣旂壒甯佺殑鎸栫熆闅懼害涔熸槸鏍規嵁姣忎釜鍧椾腑鍖呭惈鐨勪氦鏄撴暟閲忔潵璁$畻鐨勩
鍏舵★紝浠ュお鍧婇噰鐢ㄤ簡鍚嶄負鈥滆皟鏁存寲鐭塊毦搴︹濈殑鏈哄埗鏉ョ『淇濇寲鐭塊熷害鍜岀綉緇滃畨鍏ㄣ傝ユ満鍒舵牴鎹涓婁竴涓鍧楃殑鎸栫熆鏃墮棿鏉ヨ皟鏁存寲鐭塊毦搴︼紝浠ヤ繚鎸佹瘡涓鍧楄瑙e喅鐨勬椂闂村ぇ綰︿負15縐掋傚傛灉鍧楃殑鎸栫熆鏃墮棿浣庝簬15縐掞紝闅懼害灝嗚嚜鍔ㄥ炲姞錛屽弽涔嬪垯浼氬噺灝戙
璋冩暣鎸栫熆闅懼害鐨勬満鍒跺彲浠ョ『淇濅互澶鍧婄殑鎸栫熆閫熷害濮嬬粓淇濇寔紼沖畾錛屼粠鑰岄伩鍏嶄簡鎸栫熆閫熷害榪囧揩鎴栬繃鎱㈢殑鎯呭喌銆傚悓鏃訛紝涔熶嬌寰椾互澶鍧婄綉緇滄洿鍔犲畨鍏錛屽洜涓轟換浣曟伓鎰忕熆宸ラ兘鏃犳硶閫氳繃鍗曠嫭鎿嶄綔鏉ョ牬鍧忚ユ満鍒躲
鎬葷殑鏉ヨ達紝浠ュお鍧婃寲鐭塊毦搴︾殑璁$畻鏄緇煎悎鑰冭檻姣忎釜鍧椾腑鍖呭惈鐨勪氦鏄撴暟閲忓拰璋冩暣鎸栫熆闅懼害鏈哄埗鏉ュ疄鐜扮殑銆傝繖縐嶈$畻鏂瑰紡紜淇濅簡浠ュお鍧婄綉緇滅殑紼沖畾鍜屽畨鍏ㄦэ紝鍚屾椂涔熶繚璇佷簡鐭垮伐鐨勬敹鐩婂拰鏁翠釜紺懼尯鐨勮繍浣溿
B. eth挖礦是什麼原理
凡是涉及到幣,就一定離不開挖礦。以太坊網路中,想要獲得以太坊,也要通過挖礦來實現。說到挖礦,就一定離不開共識機制。
不知道大家還記得比特幣的共識機制是什麼嗎?比特幣的共識機制是 PoW (這是英文 Proof of Work 的縮寫,意思是「工作量證明機制」)。簡單來說,就是多勞多得,你付出的計算工作越高,那麼你就越有可能第一個找到正確的哈希值,就越有可能得到比特幣獎勵。
但是,比特幣的PoW存在著一定的缺陷,就是它處理交易的速度太慢,礦工們需要不斷地通過計算來碰撞哈希值,這是勞民傷財且效率低下的。對區塊鏈知識有涉獵的朋友們應該看到這樣一種說法:
以太坊為了彌補比特幣的不足,提出了新的共識機制,名叫 PoS(這是英文的縮寫,意思是「權益證明」,也有翻譯成「股權證明」的)。
PoS 簡單來講,其實就跟它的字面意思一樣:權益嘛,股權嘛,你持有的幣越多相當於你的股權越多,你的權益越高。
以太坊的PoS就是說:你持幣越多,你持有幣的時間越久,你的計算難度就會降低,挖礦會容易一些。
在以太坊最初的設定中,以太坊希望能夠通過階段性的升級,在前期依舊採用PoW來構建一個相對穩定的系統,之後逐漸採用 PoW+PoS,最後完全過渡到 PoS。所以,說以太坊的共識機制是PoS,沒錯,但是PoS只是以太坊發布之初的一個計劃或者說目標,目前以太坊還沒有過渡到 PoS,以太坊採用的共識機制仍是 PoW,就是比特幣那個 PoW,但是又和比特幣的PoW稍稍不同。
這里的信息量有點大,
第一個信息點是:以太坊目前採用的共識機制也是PoW,但是和比特幣的PoW稍稍不同。那麼,和比特幣的PoW到底有什麼不同呢:簡單來說,就是以太坊挖礦難度可以調節,比特幣挖礦難度不能調節。就好比咱們高考,因為各個省份的教學情況、生源人數都不一樣,所以高考分為全國卷和各省自主命題。
以太坊說我贊成這樣分地區出題,比特幣說:不行,必須全國同一卷,大家難度都一樣!
通俗解釋,就是,比特幣是利用計算機算力做大量的哈希碰撞,列舉出各種可能性,來找到一個正確哈希值。而以太坊系統呢,它有一個特殊的公式用來計算之後的每個塊的難度。如果某個區塊比前一個區塊驗證的更快,以太坊協議就會增加區塊的難度。通過調整區塊難度,就可以調整驗證區塊所需的時間。
以太坊協議規定,難度的動態調整方式是使全網創建新區塊的時間間隔為 15 秒,網路用 15 秒時間創建區塊鏈,這樣一來,因為時間太快,系統的同步性就大大提升,惡意參與者很難在如此短的時間發動51%(也就是半數以上)的算力去修改歷史數據。
第二個信息點是:以太坊最初的設定中,希望通過階段性升級來最終實現由 PoW 向
PoS過渡的。
時間追溯到 2014 年,在以太坊發布之初,團隊宣布將項目的發布分為四個階段,即 Froniter(前沿)、Homestead(家園)、Metropolis(大都會)和 Serenity(寧靜)。前三個階段共識機制採用 PoW(工作量證明機制),第四個階段切換到 PoS(權益證明機制)。
2015年7月30號,以太坊第一個階段「前沿」正式發布,這個階段只適用於開發者使用,開發人員可於在以太坊網路上編寫智能合約和去中心化應用程序 DAPP,礦工開始進入以太坊網路維護網路安全並挖礦得到以太幣。前沿版本類似於測試版,證明以太坊網路到底是不是可靠的。
2016年3月14日,以太坊進入到第二個階段「家園」,這一階段,以太坊提供了錢包功能,讓普通用戶也可以方便體驗和使用以太坊。其他方面沒有什麼明顯的技術提升,只是表明以太坊網路已經可以平穩運行。
2017 年 9 月,以太坊已經進行到第三個階段「大都會」。「大都會」由拜占庭和君士坦丁堡兩次升級組成,這個階段的的目標是希望能夠引入 PoW 和 PoS 的混合鏈模式,為 PoW向PoS的順滑過渡做准備。最近比較熱門的「以太坊君士坦丁堡升級」升級的就是這個,在君士坦丁堡升級中呢,以太坊將對底層協議和演算法做一些改變,來為實現 PoW 和
PoS奠定良好的基礎。
以太坊挖礦會得到對多少獎勵呢?贏得區塊創建競爭成功的礦工會得到這么幾項收入:
1、 靜態獎勵,5個以太坊;
2、 區塊內所花費的燃料成本,也就是Gas,這部分我們上一期內容講過;
3、 作為區塊組成部分,包含「叔區塊」的額外獎勵,叔就是叔叔的叔,每個叔區塊可以得到挖礦報酬的1/32作為獎勵,也就是5乘以1/32,等於0.15625 個以太坊。這里我們簡單解釋一下「叔區塊」,「叔區塊」這個概念是以太坊提出來的,為什麼要引進叔塊的概念?這還要從比特幣說起。在比特幣協議中,最長的鏈被認為是絕對的正確。如果一個塊不是最長鏈的一部分,那麼它被稱為是「孤塊」。一個孤立的塊是一個塊,它也是合法的,但是可能發現的稍晚,或者是網路傳輸稍慢,而沒有能成為最長的鏈的一部分。在比特幣中,孤塊沒有意義,隨後將被拋棄掉,發現這個孤塊的礦工也拿不到采礦相關的獎勵。
但是,以太坊不認為孤塊是沒有價值的,以太坊系統也會給與發現孤塊的礦工回報。在以太坊中,孤塊被稱為「叔塊」(uncle block),它們可以為主鏈的安全作出貢獻。 以太坊十幾秒的出塊間隔太快了,會降低安全性,通過鼓勵引用叔塊,使引用主鏈獲得更多的安全保證(因為孤塊本身也是合法的) ,而且,支付報酬給叔塊,還能激發礦工積極挖礦,積極引用叔塊,所以,以太坊認為,它是有價值的。
C. 比特幣、以太坊與IPFS挖礦的區別
比特幣和以太坊是pow算力挖礦。ipfs是存儲即挖礦,新型模式。
D. 以太坊怎麼挖礦
與所有區塊鏈技術一樣,以太坊使用基於激勵的安全模型。聲稱是網路中的礦工的任何節點都可以嘗試創建並阻止驗證區。世界各地的許多礦工正在同時創建和驗證區塊。
一、以太坊采礦的基本原則
1、與所有區塊鏈技術一樣,以太坊使用基於激勵的安全模型。聲稱是網路中的礦工的任何節點都可以嘗試創建並阻止驗證區。世界各地的許多礦工正在同時創建和驗證區塊。每個礦工通過向塊鏈發送塊來提供數學機制的「證據」。此測試類似於保證:如果此測試存在,則此塊必須有效。
2、對於要添加到主鏈的塊,礦工必須比其他礦工更快地提供此「測試」。通過礦工提供的數學機制的「證明」,每個區塊的確認過程稱為工作測試。經證實,新區塊內的礦工將獲得一定的獎勵。什麼是獎勵?以太坊使用內在數字代幣 - 以太作為獎勵。每次礦工嘗試新的塊時,都會生成一個新的以太坊並將其提供給礦工。
第二、以太坊和比特幣的區別
1、同點:比特幣和以太坊都是成功的區塊鏈技術應用。人們通過比特幣認識區塊鏈技術。通過以太坊,人們意識到區塊鏈可以是獨立的。所有這些都基於區塊鏈,其中交易是公開記錄的,貨幣和資產交易更方便和讓步,並且消除了繁瑣的中間人。
2、差異:比特幣是一種分散的點對點數字支付系統,類似於全球清算銀行。而且這家銀行不是一個集中式組織的成員,它沒有CEO,它沒有管理員,只有代碼的基本原則和共識。從同行轉移價值,沒有其他第三方或信託機構。
3、比特幣總量為2100W。對於每生成21W的塊,塊生成的比特幣數量減少一半,每10分鍾生成一個塊。一般而言,它是一種通貨緊縮的電子貨幣。以太坊的定義是一個分散的點對點虛擬機,可以理解為使用代幣執行價值分配並吸引所有各方建立生態系統的平台。以太坊的總量沒有上限。
三、智能合約和協議ERC20
1、智能合約首先是合同,它以代碼的形式規定交易執行的雙方,並規定了執行合同的某些激活條件。一旦這些條件被激活,商定的交易就會自動執行,通常是一些交易。這些交易將由礦工挖掘出來,並最終合並到公共鏈中,這是不可否認的,不可逆轉。
2、以太坊中的智能合約基本上是互聯網上的開源。任何用戶都可以看到相關介面的定義和激活時間。如果沒有統一的標准,許多智能合約將使每個人都難以理解,這份智能合約究竟做了什麼?此時,ERC20協議已啟動。
3、開發人員可以通過查看其他智能合約然後調用自己的合同輕鬆了解相關界面的角色。標准化是非常有益的,這意味著這些資產可以在不同的平台和項目中使用,否則它們只能在特定情況下使用。
四、為什麼以太坊可以用來發送硬幣
因為智能合同的存在的,合同可以被用來安排貨幣集資最後存入帳戶的用戶,並且因為0x7D0使用相同的標准ERC20如直接交換0x7D0和FAD支持以太坊生態系統這將更容易。
五、以太坊貿易限制
1、對於每筆交易,交易的發起人必須設定交易的Gas限價和Gas價格。不同的操作將產生不同的Gas,Gas成本當礦工完成後,礦工將停止運行並且用過的Gas將被獎勵給礦工。
2、如果某些氣體仍然存在,如果用戶聲明限制值太低或者中間的帳號Eth不足以支付Gas消耗,它將返回到交易的發起人或智能合約的創建者,由於Gas不足,協議將被取消,用於計算的Gas將不會退回賬戶。
六、網路計算能力為太坊全
乙太網中所有當前采礦機器的總計算能力,當前采礦集群是根據該值計算的當前塊的難度。
七、以太坊提取難度
塊的難度用於提高塊驗證區的一致性。 Genesis塊的難度是131,072,並且有一個特殊的公式用於計算之後每個塊的難度。如果檢查塊比前一個塊更快,則以太坊協議將增加塊的難度。通過調整塊的難度,您可以調整驗證區塊所需的時間,即突發速度。檢查時間的自我調整以繼續以恆定速率生成新快。
8、單張卡的計算能力與采礦收入之間的關系
單張卡的計算能力越大,可以進行的檢查越多,獲得公式結果的概率是,情況越大,如果使用地雷組,所提供的股份數量越大,采礦業的收入就越大。
E. 011:Ethash演算法|《ETH原理與智能合約開發》筆記
待字閨中開發了一門區塊鏈方面的課程:《深入淺出ETH原理與智能合約開發》,馬良老師講授。此文集記錄我的學習筆記。
課程共8節課。其中,前四課講ETH原理,後四課講智能合約。
第四課分為三部分:
這篇文章是第四課第一部分的學習筆記:Ethash演算法。
這節課介紹的是以太坊非常核心的挖礦演算法。
在介紹Ethash演算法之前,先講一些背景知識。其實區塊鏈技術主要是解決一個共識的問題,而共識是一個層次很豐富的概念,這里把范疇縮小,只討論區塊鏈中的共識。
什麼是共識?
在區塊鏈中,共識是指哪個節點有記賬權。網路中有多個節點,理論上都有記賬權,首先面臨的問題就是,到底誰來記帳。另一個問題,交易一定是有順序的,即誰在前,前在後。這樣可以解決雙花問題。區塊鏈中的共識機制就是解決這兩個問題,誰記帳和交易的順序。
什麼是工作量證明演算法
為了決定眾多節點中誰來記帳,可以有多種方案。其中,工作量證明就讓節點去算一個哈希值,滿足難度目標值的勝出。這個過程只能通過枚舉計算,誰算的快,誰獲勝的概率大。收益跟節點的工作量有關,這就是工作量證明演算法。
為什麼要引入工作量證明演算法?
Hash Cash 由Adam Back 在1997年發表,中本聰首次在比特幣中應用來解決共識問題。
它最初用來解決垃圾郵件問題。
其主要設計思想是通過暴力搜索,找到一種Block頭部組合(通過調整nonce)使得嵌套的SHA256單向散列值輸出小於一個特定的值(Target)。
這個演算法是計算密集型演算法,一開始從CPU挖礦,轉而為GPU,轉而為FPGA,轉而為ASIC,從而使得算力變得非常集中。
算力集中就會帶來一個問題,若有一個礦池的算力達到51%,則它就會有作惡的風險。這是比特幣等使用工作量證明演算法的系統的弊端。而以太坊則吸取了這個教訓,進行了一些改進,誕生了Ethash演算法。
Ethash演算法吸取了比特幣的教訓,專門設計了非常不利用計算的模型,它採用了I/O密集的模型,I/O慢,計算再快也沒用。這樣,對專用集成電路則不是那麼有效。
該演算法對GPU友好。一是考慮如果只支持CPU,擔心易被木馬攻擊;二是現在的顯存都很大。
輕型客戶端的演算法不適於挖礦,易於驗證;快速啟動
演算法中,主要依賴於Keccake256 。
數據源除了傳統的Block頭部,還引入了隨機數陣列DAG(有向非循環圖)(Vitalik提出)
種子值很小。根據種子值生成緩存值,緩存層的初始值為16M,每個世代增加128K。
在緩存層之下是礦工使用的數據值,數據層的初始值是1G,每個世代增加8M。整個數據層的大小是128Bytes的素數倍。
框架主要分為兩個部分,一是DAG的生成,二是用Hashimoto來計算最終的結果。
DAG分為三個層次,種子層,緩存層,數據層。三個層次是逐漸增大的。
種子層很小,依賴上個世代的種子層。
緩存層的第一個數據是根據種子層生成的,後面的根據前面的一個來生成,它是一個串列化的過程。其初始大小是16M,每個世代增加128K。每個元素64位元組。
數據層就是要用到的數據,其初始大小1G,現在約2個G,每個元素128位元組。數據層的元素依賴緩存層的256個元素。
整個流程是內存密集型。
首先是頭部信息和隨機數結合在一起,做一個Keccak運算,獲得初始的單向散列值Mix[0],128位元組。然後,通過另外一個函數,映射到DAG上,獲取一個值,再與Mix[0]混合得到Mix[1],如此循環64次,得到Mix[64],128位元組。
接下來經過後處理過程,得到 mix final 值,32位元組。(這個值在前面兩個小節《 009:GHOST協議 》、《 010:搭建測試網路 》都出現過)
再經過計算,得出結果。把它和目標值相比較,小於則挖礦成功。
難度值大,目標值小,就越難(前面需要的 0 越多)。
這個過程也是挖礦難,驗證容易。
為防止礦機,mix function函數也有更新過。
難度公式見課件截圖。
根據上一個區塊的難度,來推算下一個。
從公式看出,難度由三部分組成,首先是上一區塊的難度,然後是線性部分,最後是非線性部分。
非線性部分也叫難度炸彈,在過了一個特定的時間節點後,難度是指數上升。如此設計,其背後的目的是,在以太坊的項目周期中,在大都會版本後的下一個版本中,要轉換共識,由POW變為POW、POS混合型的協議。基金會的意思可能是使得挖礦變得沒意思。
難度曲線圖顯示,2017年10月,難度有一個大的下降,獎勵也由5個變為3個。
本節主要介紹了Ethash演算法,不足之處,請批評指正。
F. 浠ュお鍧婄殑鍏辮瘑綆楁硶鏄浠涔
浠ュお鍧婄殑鍏辮瘑綆楁硶鏄浠涔堬紵
浠ュお鍧婃槸涓縐嶅熀浜庡尯鍧楅摼鎶鏈鐨勫幓涓蹇冨寲搴旂敤騫沖彴錛屽叾鍏辮瘑綆楁硶鏄瀹炵幇鍖哄潡閾劇綉緇滃叡璇嗙殑閲嶈佺粍鎴愰儴鍒嗐備互澶鍧婇噰鐢ㄤ簡縐頒負鈥滃伐浣滈噺璇佹槑鈥濓紙Proof-of-Work錛孭oW錛夌殑鍏辮瘑綆楁硶鏉ラ獙璇佷氦鏄撳拰娣誨姞鏂扮殑鍖哄潡鍒伴摼涓娿
鍦ㄤ互澶鍧婁腑錛屾寲鐭胯妭鐐逛嬌鐢ㄨ$畻鑳藉姏鏉ヨВ鍐蟲暟瀛﹂毦棰橈紝榪欎簺鏁板﹂毦棰橀渶瑕佸ぇ閲忚$畻璧勬簮鏉ヨВ鍐熾傚畬鎴愯В棰樼殑鐭垮伐灝嗚幏寰椾互澶甯佺殑濂栧姳錛屽苟鐢辯綉緇滅『璁ゅ叾宸ヤ綔緇撴灉錛屼粠鑰屽皢鏂扮殑鍖哄潡娣誨姞鍒板尯鍧楅摼涓銆
濡備綍淇濋殰鍏辮瘑綆楁硶鐨勫畨鍏ㄦэ紵浠ュお鍧婇氳繃璋冩暣鍥伴毦搴︼紙Difficulty錛夛紝浣垮緱鎸栫熆闅懼害涓庣畻鍔涙垚姝f瘮銆備篃灝辨槸璇達紝褰撴洿澶氱殑鎸栫熆鑺傜偣鍔犲叆緗戠粶騫舵彁楂樼畻鍔涙椂錛岄毦搴︿篃鐩稿簲鍙樺寲錛岀『淇濆叏緗戞誨叡璇嗛毦搴︿繚鎸佷竴瀹氱殑姘村鉤銆
闄や簡宸ヤ綔閲忚瘉鏄庯紝浠ュお鍧婅繕璁″垝閲囩敤鈥滆瘉鏄庢潈鐩娾濓紙Proof-of-Stake錛孭oS錛夌殑鍏辮瘑綆楁硶鏉ユ浛浠PoW銆傚湪PoS鍏辮瘑綆楁硶涓錛岀敤鎴烽渶瑕佹姇鍏ヤ竴瀹氶噺鐨勪互澶甯佹潵楠岃瘉浜ゆ槗鍜屾坊鍔犳柊鐨勫尯鍧椼傞殢鐫鐢ㄦ埛鎸佹湁鐨勪互澶甯佹暟閲忚秺澶氾紝鍏跺弬涓庡叡璇嗙殑鏉冨埄涔熷氨瓚婂ぇ銆
鎬葷殑鏉ヨ達紝浠ュお鍧婄殑鍏辮瘑綆楁硶閲囩敤浜哖oW鍜屾湭鏉ュ彲鑳戒細閲囩敤PoS錛岃繖涓ょ嶇畻娉曞潎鏄涓轟簡淇濋殰鍖哄潡閾劇綉緇滅殑瀹夊叏鎬с傞殢鐫鎶鏈鐨勮繘姝ュ拰鍏辮瘑綆楁硶鐨勪笉鏂婕旇繘錛屼互澶鍧婂皢鍦ㄤ笉鏂浼樺寲鍏辮瘑綆楁硶鐨勫悓鏃訛紝瀹炵幇鏇村ソ鐨勫幓涓蹇冨寲搴旂敤騫沖彴銆
G. 浠ュお鍧婄殑鎸栫熆鏂瑰紡鏄浠涔
浠ュお鍧婄殑鎸栫熆鏂瑰紡鏄浠涔堬紵
浠ュお鍧婄殑鎸栫熆鏂瑰紡鏄浠涔堬紵
浠ュお鍧婃槸涓縐嶅熀浜庡尯鍧楅摼鎶鏈鐨勫姞瀵嗚揣甯侊紝鏃ㄥ湪涓哄幓涓蹇冨寲搴旂敤鎻愪緵騫沖彴銆備笌姣旂壒甯佷竴鏍鳳紝浠ュお鍧婄殑浜ゆ槗闇瑕侀氳繃鎸栫熆鎵嶈兘寰楀埌楠岃瘉鍜岀『璁ゃ傞偅涔堜互澶鍧婄殑鎸栫熆鏂瑰紡鏄浠涔堝憿錛
浠ュお鍧婄殑鎸栫熆鏂瑰紡涓庢瘮鐗瑰竵鏈夊緢澶氱浉浼間箣澶勶紝閮芥槸閫氳繃瑙e喅鏁板﹂棶棰樻潵鑾峰緱姣旂壒甯佹垨浠ュお甯併傝繖浜涢棶棰橀渶瑕佺殑璁$畻璧勬簮闈炲父楂橈紝鍥犳ら渶瑕佸ぇ閲忕殑鐢靛姏鍜岃$畻鑳藉姏銆
浠ュお鍧婇噰鐢ㄧ殑鏄宸ヤ綔閲忚瘉鏄庯紙ProofofWork錛夌殑綆楁硶錛屽嵆ETHash銆備笌姣旂壒甯佹寲鐭跨殑SHA-256綆楁硶涓嶅悓錛孍THash綆楁硶鏄鍩轟簬DAG鍥懼艦鐨勮$畻銆侱AG鍥炬槸涓縐嶆湁鍚戞棤鐜鍥撅紝鐢變互澶鍧婂垵濮嬪潡鐢熸垚錛屾瘡涓鏂扮殑鍖哄潡閮藉熀浜庡墠涓涓鍖哄潡鐨凞AG榪涜岃$畻銆傚洜姝わ紝綆鍗曞湴璇達紝浠ュお鍧婃寲鐭塊渶瑕佽В鍐矰AG鍥懼艦鐨勮$畻闂棰樸
鍏蜂綋鏉ヨ達紝浠ュお鍧婄殑鎸栫熆榪囩▼鏄榪欐牱鐨勶細
1.鎸栫熆鑺傜偣鍦ㄧ綉緇滀笂鑾峰緱鏂扮殑浜ゆ槗淇℃伅銆
2.鎸栫熆鑺傜偣灝嗚繖浜涗氦鏄撲俊鎮鎵撳寘鎴愪竴涓鍖哄潡銆
3.鎸栫熆鑺傜偣浠庝互澶鍧婄綉緇滆幏鍙栧埌鍓嶄竴鍖哄潡鐨凞AG鍥俱
4.鎸栫熆鑺傜偣浣跨敤DAG鍥句笂鐨勮妭鐐硅繘琛岃$畻錛屼互鐢熸垚鏂扮殑鍖哄潡銆
5.鎸栫熆鑺傜偣閫氳繃緗戠粶灝嗘柊鐨勫尯鍧楀彂閫佸埌鍏朵粬鑺傜偣榪涜岀『璁ゃ
6.鍏朵粬鑺傜偣涔熼渶瑕佽В鍐矰AG鍥懼艦鐨勮$畻闂棰橈紝浠ョ『璁よ繖涓鏂扮殑鍖哄潡鏄鍚﹀悎娉曘
7.濡傛灉鍏朵粬鑺傜偣楠岃瘉閫氳繃錛屽垯榪欎釜鏂扮殑鍖哄潡灝變細琚娣誨姞鍒頒互澶鍧婄殑鍖哄潡閾句笂銆
浠ュお鍧婄殑鎸栫熆榪囩▼鍙鑳芥瘮姣旂壒甯佹洿涓哄嶆潅錛屽洜涓哄畠闇瑕佽В鍐矰AG鍥懼艦鐨勮$畻闂棰樸傝繖涔熸剰鍛崇潃浠ュお鍧婄殑鎸栫熆闇瑕佹洿楂樼殑綆楀姏鍜屾洿澶х殑鐢靛姏鏀鎸併備絾涓庢ゅ悓鏃訛紝浠ュお鍧婄綉緇滀篃鍏峰囦簡鏇撮珮鐨勫畨鍏ㄦу拰鍙闈犳э紝鍥犱負瀹冮渶瑕佹洿澶氱殑鑺傜偣鍙備笌瑙e喅璁$畻闂棰樸
鎬葷殑鏉ヨ達紝浠ュお鍧婄殑鎸栫熆鏂瑰紡鏄宸ヤ綔閲忚瘉鏄庣畻娉曪紝浣跨敤鐨勬槸ETHash綆楁硶錛岄渶瑕佽В鍐矰AG鍥懼艦鐨勮$畻闂棰樸傝繖縐嶆寲鐭挎柟寮忛渶瑕佹洿楂樼殑璁$畻鑳藉姏鍜岀數鍔涙敮鎸侊紝浣嗕篃涓轟互澶鍧婄綉緇滄彁渚涗簡鏇撮珮鐨勫畨鍏ㄦу拰鍙闈犳с
H. 以太坊是如何挖礦的
以太坊的代幣是通過采礦過程中產生的,每塊采礦率為 5 個以太幣。以太坊的采礦過程幾乎與比特幣相同,對於每一筆交易,礦工都可以使用計算機通過散列函數運行該塊的唯一標題元數據,反復,快速地猜出答案,直到其中一人獲勝。
許多新用戶認為,采礦的唯一目的是以不需要中央發行人的方式生成醚(參見我們的指南「 什麼是以太? 」)。這是真的。以太坊的代幣是通過采礦過程中產生的,每塊采礦率為 5 個以太幣。但是,采礦還有至少同樣重要的作用。通常,銀行負責保持交易的准確記錄。他們確保資金不是憑空創造的,用戶不會多次欺騙和花錢。不過,區塊鏈引入了一種全新的記錄保存方式,整個網路而不是中介,驗證交易並將其添加到公共分類賬。
Ethereum Mining
盡管「無信任」或「信任最小化」貨幣體系是目標,但仍有人需要確保財務記錄的安全,確保沒有人作弊。采礦是使分散記錄成為可能的創新之一。礦工們在防止欺詐行為(特別是醚的雙重支出)方面達成了關於交易歷史的共識 – 這是一個有趣的問題,在分散化的貨幣未在工作區塊鏈之前解決。雖然以太坊正在研究其他方法來就交易的有效性達成共識,但采礦目前將平台保持在一起。
挖礦如何工作
今天,以太坊的采礦過程幾乎與比特幣相同。對於每一筆交易,礦工都可以使用計算機反復,快速地猜出答案,直到其中一人獲勝。更具體地說,礦工將通過散列函數(它將返回一個固定長度,亂序的數字和字母串,它看起來是隨機的)運行該塊的唯一標題元數據(包括時間戳和軟體版本),只改變』nonce 值』 ,這會影響結果散列值。
如果礦工發現與當前目標相匹配的散列,礦工將被授予乙醚並在整個網路上廣播該塊,以便每個節點驗證並添加到他們自己的分類賬副本中。如果礦工 B 找到散列,礦工 A 將停止對當前塊的工作,並為下一個塊重復該過程。礦工很難在這場比賽中作弊。沒有辦法偽造這項工作,並拿出正確的謎題答案。這就是為什麼解謎方法被稱為「工作證明」。
另一方面,其他人幾乎沒有時間驗證散列值是否正確,這正是每個節點所做的。大約每 12-15 秒,一名礦工發現一塊石塊。如果礦工開始比這更快或更慢地解決謎題,演算法會自動重新調整問題的難度,以便礦工回彈到大約 12 秒鍾的解決時間。
礦工們隨機賺取這些乙醚,他們的盈利能力取決於運氣和他們投入的計算能力。以太坊使用的具體工作量驗證演算法被稱為』ethash』,旨在需要更多的內存,使得使用昂貴的 ASIC 難以開采 – 特殊的采礦晶元,現在是唯一可以盈利的比特幣開采方式。
從某種意義上講,ethash 可能已經成功實現了這一目的,因為專用 ASIC 不可用於以太坊(至少目前還沒有)。此外,由於以太坊旨在從工作證明挖掘轉變為「股權證明」(我們將在下面討論),購買 ASIC 可能不是一個明智的選擇,因為它可能無法長久證明有用。
轉移到股權證明
不過,以太坊可能永遠不需要礦工。開發人員計劃放棄工作證明,即網路當前使用的演算法來確定哪些交易是有效的,並保護其免受篡改,以支持股權證明,網路由代幣所有者擔保。如果並且當該演算法推出時,股權證明可以成為實現分布式共識的一種手段,而該共識使用更少的資源。