工作量證明(PoW)
工作量證明(PoW) 是一種加密證明方式,其中一方(證明者)向其他方(驗證者)證明其已經付出了特定數量的計算努力。驗證者隨後可以以極少的努力確認這一支出。該概念最早在 1993 年由 Moni Naor 和 Cynthia Dwork 在 Hashcash 中實現,作為一種通過要求服務請求方進行一些工作(通常是計算機處理時間)來阻止拒絕服務攻擊和其他網絡服務濫用(如垃圾郵件)的方法。術語「工作量證明」首次出現在 1999 年 Markus Jakobsson 和 Ari Juels 的論文中,並被正式化。該概念在 2004 年被 Hal Finney 通過「可重複的工作量證明」思想應用到數字代幣上,使用的是 160 位安全哈希算法 1(SHA-1)[1]。
工作量證明後來被比特幣作為去中心化、無需許可的網絡共識基礎所推廣,礦工通過競爭附加區塊和挖掘新貨幣來進行工作,每個礦工的成功概率與其所投入的計算努力成正比。PoW 和 PoS(權益證明)是目前最知名的 Sybil 攻擊防範機制,在加密貨幣的背景下,它們是最常見的機制[2]。
工作量證明方案的一個關鍵特徵是其不對稱性:計算工作對於證明者或請求者而言必須適度困難(但可行),而對於驗證者或服務提供者而言檢查起來則非常容易。這一理念也被稱為 CPU 成本函數、客戶端難題、計算難題或 CPU 定價函數。另一個常見特徵是內建的激勵結構,通過將計算能力分配到網絡上,獎勵以加密貨幣的形式提供價值[3]。
工作量證明算法的目的是通過設定較大的能量和硬件控制要求來防止數據被操縱,而不是證明某項工作已完成或某個計算難題已被「解決」。工作量證明系統因其能源消耗問題而受到環保人士的批評。
背景[編輯 | 編輯原始碼]
工作量證明(PoW)的概念源於早期研究,旨在防止垃圾郵件和拒絕服務攻擊(DoS)。PoW 的最早實現之一是 Hashcash,由英國密碼學家 Adam Back 於 1997 年創建。它被設計為一種反垃圾郵件機制,要求電子郵件發送者執行一個小的計算任務,從而有效地證明他們在發送電子郵件之前已經消耗了資源(以 CPU 時間的形式)。對於合法用戶而言,這個任務是微不足道的,但對於試圖發送大量郵件的垃圾郵件發送者來說,執行該任務會產生顯著的成本。
Hashcash 的系統基於尋找滿足特定標準的哈希值這一概念,這一任務需要計算工作,因此充當了「工作量證明」。其思想是通過讓發送大量電子郵件的行為在計算上變得昂貴,從而減少垃圾郵件的數量。
在 Hashcash 中使用的一個流行系統是通過部分哈希反轉來證明已經進行過計算,作為發送電子郵件的善意標記。例如,以下標題表示要向 [email protected] 發送一封郵件,需要進行大約 252 次哈希計算:
X-Hashcash: 1:52:380119:[email protected]:::9B760005E92F0DAE
它通過單次計算進行驗證,方法是檢查戳記(去除 X-Hashcash: 標頭,包括冒號和任何空白字符,直到數字 '1')的 SHA-1 哈希值是否以 52 個二進制零開頭,也就是 13 個十六進制零:
0000000000000756af69e2ffbdb930261873cd71
PoW 系統是否能夠真正解決像垃圾郵件問題這樣的拒絕服務問題尚有爭議;該系統必須使垃圾郵件發送者發送垃圾郵件的行為變得顯著不具生產力,但又不應阻止合法用戶發送電子郵件。換句話說,真正的用戶在發送電子郵件時不應遇到任何困難,但垃圾郵件發送者必須花費大量計算能力才能一次發送許多電子郵件。工作量證明系統已被更複雜的加密系統所使用,例如比特幣,它使用了類似於 Hashcash 的系統。
變種[編輯 | 編輯原始碼]
工作量證明協議有兩類。
- 挑戰-響應協議 假設請求方(客戶端)和提供方(伺服器)之間有直接的互動連接。提供方選擇一個挑戰,例如選擇一個具有某種屬性的集合中的某個項,請求方在集合中找到相關的響應,並將其返回給提供方進行檢查。由於挑戰由提供方當場選擇,因此其難度可以根據提供方當前的負載進行調整。如果挑戰-響應協議具有已知解決方案(由提供方選擇),或者已知解決方案存在於有限的搜索空間內,則請求方一側的工作可能是有限的。
- 解決方案-驗證協議 則不假設有這樣的連接:因此,問題必須在請求方尋求解決方案之前自我設定,提供方必須檢查問題選擇和找到的解決方案。大多數這樣的方案是無界的概率迭代過程,例如 Hashcash。
已知解決方案協議通常比無界概率協議具有稍低的方差,因為矩形分佈的方差低於泊松分佈的方差(在均值相同的情況下)。減少方差的一種通用技術是使用多個獨立的子挑戰,因為多個樣本的平均值將具有更低的方差。
還有一些固定成本函數,例如時間鎖難題。
此外,這些方案所使用的底層函數可能是:
- CPU綁定:計算速度受處理器的限制,計算速度在時間上有很大的變化,也會在高端伺服器和低端便攜設備之間有所不同。
- 內存綁定:計算速度受主內存訪問(無論是延遲還是帶寬)的限制,其性能預計對硬件的演變不那麼敏感。
- 網絡綁定:如果客戶端必須執行很少的計算,但必須從遠程伺服器收集一些令牌,然後再查詢最終的服務提供方。在這種情況下,工作實際上並不是由請求方執行的,但由於獲取所需令牌的延遲,仍然會產生延遲。
最後,一些 PoW 系統提供捷徑計算,允許知道某個秘密(通常是私鑰)的參與者生成便宜的 PoW。其原理是,郵件列表持有者可以為每個收件人生成戳記,而不會產生高成本。是否需要此功能取決於使用場景。
工作量證明函數列表[編輯 | 編輯原始碼]
以下是已知的工作量證明函數列表:
- 大素數模運算的整數平方根
- 弱化的 Fiat–Shamir 簽名
- Ong–Schnorr–Shamir 簽名,被 Pollard 破解
- 部分哈希反轉:本文形式化了工作量證明的概念,並引入了「麵包布丁協議」的相關思想,這是一個「可重用的工作量證明」 (RPoW) 系統。
- 哈希序列
- Puzzles
- 基於 Diffie-Hellman 的難題
- Moderate
- Mbound
- 北海道難題(Hokkaido)
- 雜樹(Cuckoo Cycle)
- 基於 Merkle 樹的
- 引導遊覽難題協議
有用工作量證明 (PoUW)[編輯 | 編輯原始碼]
2022年,IACR加密會議上研究人員展示了一篇論文,描述了Ofelimos,這是一種基於「有用工作量證明」(PoUW)的區塊鏈協議共識機制。與礦工通過解決複雜但本質上無用的難題來驗證交易不同,Ofelimos在提供共識的同時,還提供了一個去中心化的優化問題求解器。該協議圍繞「雙重並行局部搜索」(DPLS)構建,DPLS是一種作為PoUW組件使用的局部搜索算法。論文給出了一個實現WalkSAT變種的示例,WalkSAT是一種解決布爾問題的局部搜索算法。
比特幣類型的工作量證明[編輯 | 編輯原始碼]
2009年,比特幣網絡上線。比特幣是一種基於工作量證明的數字貨幣,像Finney的RPoW一樣,也基於Hashcash的工作量證明。然而,在比特幣中,防止雙重支付是通過去中心化的P2P協議來跟蹤幣的轉移,而不是像RPoW中使用的硬件可信計算功能。比特幣由於受到計算保護,具有更好的可信度。比特幣通過Hashcash工作量證明函數由個人礦工「挖掘」,並由P2P比特幣網絡中的去中心化節點驗證。難度會定期調整,以保持區塊時間接近目標時間。
能源消耗[編輯 | 編輯原始碼]
自比特幣創建以來,工作量證明一直是點對點加密貨幣的主要設計機制。研究估算了加密貨幣挖礦的總能源消耗。PoW機制需要大量的計算資源,消耗大量電力。2018年劍橋大學的估算表明,比特幣的能源消耗相當於瑞士的總能源消耗。
歷史修改[編輯 | 編輯原始碼]
每個被添加到區塊鏈的區塊,從包含給定交易的區塊開始,稱為該交易的確認。理想情況下,接收加密貨幣支付的商家和服務應該至少等待一個確認,即交易在網絡上分發後,再假定支付已完成。商家等待的確認越多,攻擊者成功逆轉區塊鏈中交易的難度就越大——除非攻擊者控制了超過一半的網絡總算力,這種情況被稱為51%攻擊。
ASIC 和礦池[編輯 | 編輯原始碼]
在比特幣社區中,有一些群體合作成立礦池。一些礦工使用專用集成電路(ASIC)進行工作量證明(PoW)。礦池和專用ASIC的趨勢使得沒有最新ASIC、便宜能源來源或其他特殊優勢的大多數玩家無法經濟地進行某些加密貨幣的挖礦。
一些PoW聲稱具有抗ASIC性,即限制ASIC相對於普通硬件(如GPU)的效率提升,使其增益遠低於數量級。抗ASIC性有助於保持在普通硬件上挖礦的經濟可行性,但也帶來了相應的風險,即攻擊者可以短時間租用大量非專用的商品計算能力來發起針對加密貨幣的51%攻擊。
環境問題[編輯 | 編輯原始碼]
參見:比特幣的環境影響
礦工們在比特幣區塊鏈上競爭解決加密難題,他們的解答必須得到所有節點的認可並達成共識。然後,這些解答被用來驗證交易、添加區塊並生成新的比特幣。礦工因解決這些難題並成功添加新區塊而獲得獎勵。然而,比特幣式的挖礦過程非常耗能,因為工作量證明機制類似於一種彩票機制。底層的計算工作除了為提供開放訪問並能夠在對抗性條件下工作的網絡提供安全性外,沒有其他用途。礦工們必須消耗大量能源才能將包含交易的新區塊添加到區塊鏈中。這種競爭中消耗的能源是比特幣獲得其安全性和抗攻擊能力的根本原因。此外,礦工還需要投資大量計算機硬件,這些硬件需要大量空間,作為固定成本。
2022年1月,歐洲證券和市場管理局副主席埃里克·泰迪恩呼籲歐盟禁止工作量證明模型,轉而支持能耗更低的權益證明模型。
2022年11月,紐約州實施了為期兩年的加密貨幣挖礦暫停令,要求在兩年內不完全使用可再生能源作為電力來源的挖礦活動停止。現有的礦業公司將被允許繼續挖礦,但它們不能擴大規模或更新許可證。而不完全使用可再生能源的新礦業公司將無法開始挖礦。
參考連結[編輯 | 編輯原始碼]
- ↑ What Is Proof of Work (PoW) in Blockchain? By Scott Nevil
- ↑ Cryptocurrencies and blockchain European Parliament. July 2018.
- ↑ Proof of Work Explained in Simple Terms - The Chain Bulletin