工作量證明(PoW)被用於一些最大的加密貨幣上,但這並不意味着其是最高效、最安全的系統。

原文標題:《科普丨什麼是加密貨幣挖礦?》
撰文:Jerry Qi
翻譯:Olivia

當我還是一個七年級的學生時,我就已經被加密貨幣的世界吸引住了。起初,我覺得這簡直就是一個免費的貨幣生成器,只要我讓我的筆記本電腦像風火輪一樣呼呼地運行 Crypto-mining 軟件,它就會給我免費的加密貨幣。

最後,我的筆記本電腦確實產生了加密貨幣,然而,只有非常非常少的加密貨幣。

我用我的筆記本電腦做的事情,本質上是「加密挖礦」。

簡明解讀加密貨幣 PoW 挖礦原理及挑戰來源:btcwires

「挖礦」

你可能聽說過加密貨幣比特幣,也聽說過一個叫「挖礦」的名詞與這類加密貨幣有關。

加密貨幣挖礦,簡單來說,就是礦工或個人使用設備從事支持區塊鏈網絡的「工作」,以獲得加密貨幣獎勵的過程。

簡明解讀加密貨幣 PoW 挖礦原理及挑戰Onenote 上的小型 P2P 網絡草圖

區塊鏈:它是一種網絡分佈式記錄或分佈式賬本,記錄那些人們在網絡上的行爲。因此,對於加密貨幣的區塊鏈網絡來說,區塊鏈的功能將是記錄網絡上個人的交易。

在這篇文章中,我將以比特幣爲例,解讀挖礦背後的意義。

回到礦工的「工作」這個話題。爲了讓礦工獲得比特幣的獎勵,礦工要做的簡單「工作」就是對比特幣區塊鏈上的交易進行驗證。

在驗證時,挖礦者將執行一系列檢查,以確保分配的交易是合法的,並且交易參與者不會支付相同數量的加密貨幣兩次。例如,當 Joe 給 Brandon 發送了 12 個比特幣,而 Brandon 試圖給 Tony 發送 7 個比特幣和 Max 8 個比特幣,這將被認爲是一筆欺詐交易,因爲 7+8>12。我剛纔給出的情況是「雙花問題」的一個例子:Brandon 試圖兩次消費同一個比特幣。

在礦工已經驗證了 0-4 兆字節之間的比特幣交易(大約 1500-3000 筆交易),相當於一個區塊的近似最大大小。他們已經完成了比較容易的一半工作,以獲得比特幣獎勵。然而,在驗證之前的任務是最複雜的,使礦工有資格驗證交易。

挖礦業的運氣部分

通過率先解決一個字符串序列的計算,也就是所謂的創建工作證明 (Proof of Work)。創建工作證明 (Proof of Work) 是礦工們最需要計算力的過程。(下面我將在後面的章節中解釋爲什麼叫工作證明 (Proof of Work))

爲了理解工作證明 (Proof of Work) 算法,你必須先熟悉區塊鏈中的「哈希」一詞。

網絡檢測區塊鏈中區塊的篡改的方式是通過其哈希值 ; 由區塊中的信息定義的數字和字符組成的長字符串。通過把數據通過哈希函數,比如比特幣使用的 SHA-256 使用,就會產生一個針對該特定輸入的序列。意思是說,如果輸入數據哪怕改變一個字符,輸出的哈希值就會完全改變。另外,哈希是一個可加密但不可解密的結果,因此,它不能用來獲取原始數據,只能作爲驗證哈希的輸入數據是否相同的一種方式。

創建工作證明 (Proof of Work) 需要礦工運行哈希算法來「猜測」問題的合適答案。對於比特幣區塊鏈網絡來說,礦工必須率先創建一個符合一定要求的哈希值,這個哈希值被稱爲「目標哈希」。

猜測目標哈希的必要信息就存在於新區塊的區塊頭中。包含:區塊版本號,時間戳,前一個區塊的哈希值,以及目標哈希值。

簡明解讀加密貨幣 PoW 挖礦原理及挑戰onenote 上的猜測過程草圖

目標哈希的答案是由前一個區塊的哈希值、現區塊交易數據,加上 0-4,294,967,296 的整數(簡稱 nonce),然後放入哈希算法中生成的。

如果答案符合目標哈希的要求,該區塊就會被添加到區塊鏈中。最先驗證交易並找出添加到該區塊哈希中的那個 nonce 的礦工,就會得到比特幣的獎勵。否則,他們就會不斷嘗試尋找有效的目標值。

由於哈希算法的隨機性,我們需要做大量的隨機猜測來確定滿足目標哈希的數值。

簡明解讀加密貨幣 PoW 挖礦原理及挑戰來源:Investopedia

儘管自己想找到 nonce 已經相當困難,並且在同一個網絡上還有≥百萬的其他個體與你競爭,使得一個設備獲得比特幣獎勵的機率類似於中彩票的機率。因此,你可以通過提高處理能力或使用多臺設備來獲得更快的 Hash Rate (單位包括:KH/s、MH/s、GH/s 等)。

Hash-rate 一詞可以解釋爲一個或一組設備計算數字和驗證交易速度有多快的量(是計算能力的衡量標準)。

共識機制

像比特幣區塊鏈這樣去中心化 P2P 的網絡,沒有中心主要人物,只能根據不同的共識機制進行決策。共識機制在交易驗證的同時,也奠定了挖礦的目的。

簡明解讀加密貨幣 PoW 挖礦原理及挑戰來源:維基百科

共識機制有很多形式,但它們都是爲了同一個目標:「覈實並確保記錄的真實性和完整性」(來源:Tech in Asia)。

目前主要有三種機制:工作證明 (Proof of Work)、權益證明和權力證明。在本文中,我將重點介紹共識的工作證明 (Proof of Work) 方法。

說到挖礦,這總結了工作證明 (Proof of Work) 模式的工作原理:個人首先要創建一個工作證明 (Proof of Work),然後他們驗證比特幣交易以確保區塊鏈中的記錄是真實的。然而,在驗證交易之前先讓我們深入瞭解一下工作證明 (Proof of Work) 的目的。

工作證明 (Proof of Work) 的歷史和目的

這種工作證明 (Proof of Work) 的想法在 1993 年就已經出現,由 Cynthia Dward 和 Moni Naor 在一篇論文(On Memory-Bound Functions For Fighting Spam)上提出,文中解釋了阻止垃圾郵件的不同方法。這篇論文的重點是通過計算能力來發送電子郵件的想法。

例如,如果你想通過電子郵件給我發送一條信息,那麼你必須證明你僅僅爲了給我發送這條信息就花費了比如說 30 秒的計算能力。

由於現代計算機的速度很快,在這種情況下,垃圾信息 / 郵件 / 交易就成了一個大問題。但是,通過給每個操作設置一個「工價」,就可以大大減少垃圾信息。

簡明解讀加密貨幣 PoW 挖礦原理及挑戰在 onenote 上驗證勤勞的門鑰匙例子

簡而言之,「prover」向「vercker」證明他們在一定的時間間隔內投入了一定的計算能力。

隨着時代的發展,比特幣的創造者「中本聰」修改了讓比特幣礦工生成數據片段的想法,這是比較困難的部分。而網絡上的其他人要驗證它是否真的滿足目標哈希值就很容易了,因爲他們只需要把需要的數據通過 SHA-256 算法。

通過這種工作證明 (Proof of Work) 系統,就能夠保證區塊鏈等系統的安全性並建立一個驗證共識,因爲真正驗證區塊的將是一個投入了巨大計算能力的設備。這就給了網絡一個保持公平和誠信的經濟理由。

如何做到這一點呢?

舉例來說,如果發生了欺詐交易並被批准,用戶就會變得「猶豫不決」轉而使用其他加密貨並且降低價格。從經濟上來說,礦工,也就是做比特幣「生產」的人,會因爲價格下跌而不開心。而與此同時,只有控制礦工纔有足夠的計算能力來觸發欺詐性驗證。所以,礦工們的工作動機就會轉向保護交易,以確保幣價不跌。

工作證明 (Proof of Work) 機制的劣勢

雖然工作證明 (Proof of Work) 被用於一些最大的加密貨幣(比特幣、以太坊等)上,但這並不意味着其是最高效、最安全的系統。

簡明解讀加密貨幣 PoW 挖礦原理及挑戰來源:BBC

消耗功率

工作證明 (Proof of Work) 的過程需要耗費大量工作,因爲計算機只是通過粗暴的方式用所有的可能性來猜測正確答案。這一方式浪費大量的電力和資源。從更大的範圍來看,想象一下,全世界所有的礦工都在試圖「挖礦」以獲得比特幣的獎勵同時浪費着資源,如果他們不先猜出 nonce 甚至對網絡沒有貢獻。

違背了去中心化的理念

由於挖礦需要耗費大量的電費,礦工們建立了中央礦場,控制了大部分的區塊驗證。這幾乎讓 P2P 去中心化的想法變得毫無用處因爲這意味着只有控制礦工纔會同意攻擊網絡。

電力成本也促使礦商聚集在電力成本較低、利潤較高的地方,以便開展挖礦活動。集中決策權。

工作證明 (Proof of Work) 的替代方案

如上所述,還有其他共識機制能夠取代 PoW。例如:Proof of Stake、Proof of Authority 和 Proof of Capacity。

Proof of Stake 通過驗證者錢包裏的貨幣數量來確定交易驗證者。

假如你想象一羣人買彩票。買彩票最多的人將有更大的中獎機會。這與股權證明類似,如果你的錢包裏有最多的加密貨幣,你將有最大的機會成爲驗證者並獲得獎勵。

權限證明通過個人的「可信度」來確定交易驗證者。

想象一下,一羣人選擇幾個最值得信任、信譽最好的人去驗證交易的有效性。

能力證明通過個人對網絡內存空間的貢獻來確定驗證者。

這種機制允許網絡上的貢獻節點共享內存空間,所以貢獻的設備擁有的內存越多,它成爲驗證者和獲得獎勵的可能性就越大。

上述這些方法所需要的計算量大大減少,在交易的驗證中可以更加省電。

總結

  • 挖礦行爲是驗證和生成工作證明 (Proof of Work) 的過程。

  • 生成工作證明 (Proof of Work) 允許礦工驗證交易。

  • 生成工作證明 (Proof of Work) 是一個數字猜測和強迫的過程。

  • 工作證明浪費電 (Proof of Work wastes electricity),除了工作證明 (Proof of Work),還有其他方式,如利害關係證明 (Proof of Stake)、能力證明 (Proof of Capacity)、權力證明 (Proof of Authority)