何謂工作量證明 (PoW)?
首頁
文章
何謂工作量證明 (PoW)?

何謂工作量證明 (PoW)?

中等
發佈時間 Dec 6, 2018更新時間 Apr 18, 2024
10m

關鍵要點

  • 工作量證明 (PoW) 是一種共識機制,旨在防止數位支付系統中的雙重支付。

  • PoW 是挖礦過程的關鍵部分,涉及向區塊鏈新增交易區塊並創建新的加密貨幣單位。

  • 比特幣和許多其他加密貨幣都使用 PoW 作為保護區塊鏈網路和資料的方法。

前言

簡而言之,工作量證明 (PoW) 是一種機制,旨在防止數位支付系統中的雙重支付。比特幣和許多其他加密貨幣都使用 PoW 作為保護區塊鏈網路和資料的方法。這種機制通常稱為共識演算法或共識機制,因為它們涉及多方達成共識而無需彼此信任。

工作量證明是第一個出現的共識演算法,它與權益證明 (PoS) 一樣仍然是最重要的演算法之一。PoW 是由中本聰在 2008 年的比特幣白皮書中提出,但當時技術本身早已構思完成。

Adam Back 的 HashCash 就是前加密貨幣時代工作量證明演算法的早期範例。透過要求發送方在傳送電子郵件之前執行少量計算,接收方收到的垃圾郵件數量會有所減少。對於合法的發送方而言,這種計算幾乎毫無成本,但對於電子郵件的群發者而言,可以快速進行加總。

什麼是雙重支付?

多次使用同一筆資金進行消費時,就會出現雙重支付。這個術語幾乎是數位貨幣背景下的專屬產物 – 畢竟,很難用同一筆實體現金消費兩次。 

您今天買一杯咖啡,會將現金遞給收銀員,收銀員可能會將這些錢鎖在收銀機中。您不可能跑去對面的咖啡店,用這筆錢買另一杯咖啡。但是在數位現金系統中,您有可能這麼做。 

在使用複製和貼上指令之前,您肯定已經複製了電腦檔案。您也可以輕鬆地將同一檔案透過電子郵件發送給數十個人。由於數位貨幣只是資料,您必須避免對方人們雙重支付,也就是在不同地方複製並消費同一筆錢。無法防止雙重支付的數位支付系統很快就會崩潰。

如需更深入了解雙重支付,請查閱雙重支付說明。

為何需要工作量證明?

如果您讀過我們的區塊鏈技術相關文章,就會知道加密貨幣用戶會將交易廣播至網路。不過,這些交易不會立即視為有效。交易獲得確認並新增至區塊鏈時,才會出現這種情況。

例如:比特幣區塊鏈作為公共交易資料庫 (分類帳),每個用戶都可以看到。不妨想像一下:您和三位好友都有一個記事本追蹤您的比特幣交易。每當你們之中有人想要進行價值轉移,其他人都可以記下來:

Alice 向 Bob 支付 5 BTC; Bob 向 Carol 支付 2 BTC 等。

但是,每次進行交易時,您都會提及交易的資金來源。因此,如果 Bob 向 Carol 支付 2 BTC,則該條目實際上如下所示: 

Bob 向 Carol 支付 2 BTC,該金額來自先前與 Alice 的交易。

現在,我們有追蹤 BTC 單位的方法。如果 Bob 嘗試用他剛剛發送給 Carol 的同一筆 2 BTC 執行另一筆交易,每個人都會立即知悉。這個群組就不會允許將此交易新增至記事本中,因為這筆 2 BTC 已經付罄。

現在,這種方式可能在小型群組中運作良好。每個人都知根知底,因此,他們可能會一致同意讓哪位朋友向記事本中新增交易項目。如果我們想要建立擁有 10,000 名參與者的群組,會怎麼樣?記事本的想法可能行不通,因為沒有人願意信任陌生人的管理。

這就是工作量證明的切入點。此機制可確保用戶不會消費他們無權動用的資金。透過結合博弈論與密碼學,任何人皆可使用工作量證明演算法來依據系統規則更新區塊鏈。

工作量證明如何運作?

試想一下,我們在上方範例中的記事本就是區塊鏈。但我們不會逐一新增交易 – 而是將它們集中放入區塊中。我們向網路公告交易,隨後建立區塊的用戶會將它們加入候選區塊中。僅當候選區塊成為確認區塊時,交易方視為有效,表示此區塊已新增至區塊鏈中。

驗證交易和增加新區塊的過程稱為挖礦。挖礦既昂貴且困難,但是也能獲得回報。區塊獎勵由用戶的交易手續費和協定創建的全新比特幣組成。 

工作量證明機制要求礦工 (創建區塊的用戶) 投入電力和運算能力等資源,以便對候選區塊的資料進行雜湊處理,直到找出難題的解決方案。

對區塊資料進行雜湊,即表示您使其透過雜湊函數生成區塊雜湊。區塊雜湊的運作方式類似於「指紋」 – 這是您輸入資料的標識,對於每個區塊都是唯一的。

換句話說,礦工必須驗證和收集待處理的交易,將它們組織成候選區塊,並透過雜湊函數傳遞區塊資料,以創建有效雜湊。如果他們設法找到候選區塊的有效雜湊,即會向網路廣播,將該區塊新增到區塊鏈中,並收取挖礦獎勵。

當礦工將候選區塊和雜湊廣播到網路時,其他網路參與者將重複雜湊過程,以驗證輸出確實有效。 

儘管需要無數次雜湊嘗試才能找到有效雜湊,但任何人都可以輕鬆確認生成的雜湊是否正確。只需透過雜湊函數提交相同的輸入資料 (區塊資料) 並檢查輸出資料是否相同即可。

在工作量證明中,您必須提供雜湊符合特定條件的資料。但您不知道如何做到這一點。您唯一的選擇是透過雜湊函數傳遞您的資料,並檢查其是否符合這些條件。若不符合,您需要稍加變更您的資料,以獲取不同的雜湊值。即使是變更資料中的一個字元,也會產生截然不同的結果,因此無法預測可能出現的輸出。

因此,若想創建區塊,相當於是在玩猜謎。您通常會蒐集有關新增交易的所有資訊及其他重要資料,然後集中執行雜湊處理。但由於您的資料集不會變更,您需要新增一條可變資訊。否則,您始終會獲得與輸出相同的雜湊值。這個可變資料就是所謂的隨機數 (nonce)。您每嘗試一次,這個數字都會發生變更,因此,您每次都能獲得一個不同的雜湊值。

總的來說,挖礦是蒐集區塊鏈資料並將其與隨機數一起進行雜湊處理的過程,直至找到特定的雜湊值。如果您找到滿足協定所載條件的雜湊值,則有權限將新區塊廣播至網路。此時,網路的其他參與者會更新其區塊鏈,以加入新的區塊。

對於當今的主要加密貨幣來說,要滿足這些條件具有相當大的挑戰性。網路上的雜湊率愈高,找到有效雜湊值的難度就愈大。此舉旨在確保不會太快找到區塊。

可以想像,嘗試在您的電腦上猜測大量雜湊值可能費用不菲。您將浪費計算週期及電力資源。但若您找到有效的雜湊值,此協定會帶來加密貨幣獎勵。

我們對目前所講的做個回顧:

  • 挖礦既困難又昂貴,但可以為網路提供安全性。

  • 成功產生有效區塊的礦工將獲得新發行的加密貨幣和交易手續費的獎勵。

  • 生成有效雜湊需要時間,但其他用戶可以透過重複雜湊過程輕鬆檢查有效性。

到目前為止,一切順利。但若您試圖作弊呢?哪些措施會阻止您將一堆詐欺交易放入區塊,並產生有效的雜湊值?

這就是公鑰密碼學派上用場的時候。本文不會深入探討,您不妨查閱什麼是公鑰密碼學?以全面了解。簡而言之,我們使用巧妙的加密訣竅,可讓任何用戶驗證某人是否有權轉移他們試圖花費的資金。

創建交易時必須簽名。網路上的任何用戶皆可將您的簽名與您的公鑰作比較,查看是否相符。他們還將核實您是否確實可以消費資金,以及輸入總和是否高於輸出總和 (即您所擁有的資金是否高於您的消費資金)。

網路會自動拒絕任何包含無效交易的區塊。如果您試圖作弊,可能代價很大。您會白白浪費自己的資源,得不到任何獎勵。

這就是工作量證明的絕妙之處:作弊代價不菲,但誠實行事卻可獲得收益。任何理性礦工都會追求投資回報,因此可以預計他們的行事方式可保證帶來收入。

工作量證明 (PoW) 與權益證明 (PoS)

除了 PoW 之外,還有許多共識演算法,但最受歡迎的演算法之一是權益證明 (PoS)。這個概念可以追溯到 2011 年,並已在以太坊和其他數個協定實施。

在權益證明系統中,礦工會被驗證者所取代。這裡不涉及挖礦,亦不需要爭相猜測雜湊值。反而用戶是隨機選擇的,他們若被選中,必須提議 (或「偽造」) 一個區塊。若區塊有效,他們將獲得由區塊交易手續費組成的獎勵。

這不單單可以選擇任何用戶,儘管協定會依據許多因素來做出選擇。如需符合資格,參與者必須鎖定一個權益質押,這是區塊鏈原生貨幣的預定金額。權益質押與保釋金的原理相似:就像是被告砸入大量金錢,以免他們逃脫審判,驗證者會鎖定權益質押來阻止作弊行為。若他們不誠信行事,其權益質押 (或其中一部分) 將被沒收。

與工作量證明相比,權益證明確實有一些好處。最令人矚目的是,碳足跡更小。由於權益證明不需要大功率的礦場,消耗的電力只佔工作量證明的幾分之一。

也就是說,PoS 和 PoW 並沒有相同的軌跡記錄。儘管這種機制可能被視為浪費,但挖礦在過去十多年中卻是被大規模證明的唯一共識演算法。從發行開始,比特幣的 PoW 已經穩穩拿下價值數兆美元的交易。若要確定 PoS 的安全性能否匹敵,需要長時間妥善測試質押。

總結

工作量證明是雙重支付問題的原始解決方案,事實證明,這種機制安全可靠。比特幣證明了我們不需要中心化實體來避免重複消費同一筆資金。透過巧妙運用密碼學、雜湊函數及博弈論,去中心化環境中的參與者可就金融資料庫的狀態達成一致。

延伸閱讀

免責聲明:本內容按「如實」原則呈現給您,僅用於一般資訊和教育目的,不作任何形式的陳述或保證。請勿將其視為財務、法律或其他專業建議,亦未企圖推薦購買任何特定產品或服務。您應該向適當的專業顧問尋求建議。本文由第三方貢獻者提供,請注意,文中所述看法均屬第三方貢獻者所有,不一定能反映幣安學院意見。請在這裡參閱完整的免責聲明以了解詳情。數位資產價格可能會波動。您的投資價值可能會下跌或上漲,您可能無法收回投資金額。您須對自己的投資決策負全部責任,幣安學院對於您可能遭受的任何損失概不負責。本文並非財務、法律或其他專業建議。如需更多資訊,請參閱我們的使用條款和風險警告。