在查看比特幣(BITCOIN)時經常會看到PoW這個詞。
這篇文章會介紹「工作量證明(Proof-of-Work,PoW)到底是什麼?其機制和問題點,以及PoW以外的驗證機制系統」。
工作量證明(PoW)是什麼?
所謂工作量證明(Proof Work,PoW),是指需要成功完成大量運算處理的人將成為交易的驗證人,並可以獲得權利將新的區塊鏈接到區塊鏈的機制。
這個運算處理稱為挖礦,對於成功的礦工會給予獎勵。
想了解工作量證明,首先必須要先了解區塊鏈(Blockchain)。
工作量證明和挖礦的機制
答案是,為了想確認在區塊鏈上所執行的交易是否合法。
首先,基本上在虛擬貨幣(加密貨幣)中是没有管理人的存在。
營運比特幣的公司或人員,通常來說是不存在的。
因此,執行的交易是否確實合法有必要讓在網路的所有參與者來做確認。
在那裡會進行激烈的運算競爭也就是「挖礦(Mining)」。
挖礦的機制是可以透過解決龐大數量的計算問題來驗證交易的合法性。
雖說是計算題,但並不是僅用紙和筆就能解開的問題。
這是一個需要用到幾百台的超高性能電腦運算才能完全解開的超難題。
挖礦人(礦工),為了獲取挖礦成功者的獎勵為目的沒日沒夜地進行挖礦。
顺便一提,只有首先解開計算問題的人才能被認可是成功的礦工。
為了更深入地了解工作量證明,有必要了解此計算問題中所使用的「哈希函數(Hash function)」。
哈希函數(Hash function)介紹
哈希函數(Hash function),又稱為雜湊函式或散列函數。它是一種從任何一種資料中建立小的數字「指紋」的方法。
它可以把很長的訊息或資料壓縮變小,並將其以固定長度輸出,就像所有的函數一樣。
利用此特徵工作量證明這個機制就能維持。
在挖礦工作中實際做的是,輸入哈希函數值後,尋找一個其開頭會產生固定個數的0排列出來的數字值(隨機數)的工作。
換句話說,所謂挖礦的成功意味著成功尋找到隨機數。
那麼,雖然哈希函數輸入數據進行運算是很簡單,但反向回推非常困難,有這樣的特性。換言之,雖然「輸入值後開頭就會排幾個0」就能馬上知道,但「開頭的0要出現這個個數到底是要輸入什麼值才好」就是無法知道。
因此,挖礦人(礦工)會使用高性能的電腦瞎猜輸入很多值,而進行尋找數字的競爭。
工作量證明無法隨意修改
在挖礦中發現的隨機數會記錄在各個區塊中。
其實在區塊鏈中如果以前的交易有被竄改過的話,包含該交易的區塊的隨機數將無法滿足條件,有這樣的機制。
而且,隨機數出現無法滿足條件的現象會對之後連接的全部區塊驗證連鎖影響。
換言之,自己持有的區塊鍊是合法的!
為了證明這一點,必須重新運算竄改的區塊之後的所有隨機數。
這是需要消耗龐大驚人的運算能力的工作,在運算期間未被竄改的區塊鏈也會越來越長,想趕上是不可能的事。
因此,也正是因為需要消耗龐大運算能力的工作,所以說竄改是行不通的。
挖礦難度(Difficulty)會被調整
實際上,挖礦的挖礦難度(Difficulty)是可以做調整的,並且挖礦難度是會定期的做調整。
所謂挖礦的工作是為了尋找出讓很多的0排列的適當值。
透過調整必須排列的0的數量就可以調整挖礦難度。
如果比起數字的開頭排列10個0和排列5個0的話,後者絕對比較簡單吧?
例如,比特幣在每生成2016個區塊會調整挖礦難度。
就像這樣,一個區塊所需的時間就會保持穩定。
可以從這裡查看目前比特幣的難度
工作量證明的問題點
雖然工作量證明可以說是劃時代的機制,但也有其缺點。
需要耗費大量的電力
工作量證明需要進行龐大運算的挖礦工作才能成立。
因為此運算在全世界使用了大量的高性能電腦,所以需要耗費大量的電⼒。
也就是說為了要維持貨幣而投入了大量的重要能源。
可以說這對環境不是很好。
而且,透過挖礦能獲得利益的人是從挖礦成功獎勵金扣除挖礦所使用的電費後,剰下還留在手上的利益,
因此電費較低的國家較容易挖礦,另外也會有礦工集中於電費較低國家的缺點。
對51%攻撃的憂慮
工作量證明的不可竄改性是以「任何一個團體所擁有的運算能力是無法超過其他多數人所擁有的運算能力」為依據的。
那麼,如果擁有超過全球一半運算能力的團體出現時會怎麼樣呢?
被擁有超過全球一半以上運算能力的網絡黑客竄改區塊鏈稱為51%攻擊。
工作量證明在這51%的攻擊發生的狀態下是可以被竄改的,且完全無法發揮其功能。
工作量證明(POW)與權益證明(POS)的差異
權益證明(POS)是什麼?
所謂權益證明(Proof of Stake, POS),是虛擬貨幣(加密貨幣)的持有量越多,而且其持有時間越長,就越容易獲得新區塊的記帳權的機制。
乙太幣正在從工作量證明(PoW)轉移到權益證明(PoS)的過程中。
那麼,與工作量證明機制有所不同這點應該可以馬上看得出來,但是在實際應用上會出現什麼差異呢。
與工作量證明的差異?
權益證明(PoS)可以解除工作量證明(PoW)的缺點。
首先,根據所持有的虛擬貨幣(數位貨幣)的量來決定誰有區塊的記帳權,所以不需要動用大量的高性能電腦。
換言之,不需要耗費大量的電力。
而且,受到51%攻擊的可能性極其低。
因為,想進行交易的竄改是需要持有大量的虛擬貨幣,費用極其昂貴,
而且如果由於自己的竄改行為導致該虛擬貨幣的信用下降,價格暴跌的話,
為了竄改而收集到的貨幣就會變得一文不值而遭受損失。
相反,作為權益證明的缺點是,想儲存大量虛擬貨幣的人増多,導至貨幣的流動性會變低。
PoW與PoS以外的驗證方法有哪些
還有其他的驗證機制系統。
PoW以外的驗證機制系統
- DPoS=透過投票來決定驗證者
- PoI=重視有多少交易量
- PoC=事先決定驗證者
- Hybrid PoW/PoS=彌補兩個系統的缺點
- Tangle=依自己本身交易部分的量,也平行驗證其他交易的機制
LSK(LISK幣)的DPoS
LISK幣是採用了DPoS(Delegated Proof of Stake 委託權益證明),這是一種把權益證明做了略改的驗證機制系統。
這是透過LISK持有者的投票決定下一個區塊由誰來驗證的系統。
當投票選出的人(= Delegate / 委派)進行交易的驗證時,將重新發行LISK作為獎勵。
Delegate有一種將獎勵分配給投票支持者的機制,利用此機制為基礎提供可獲利的staking服務的交易所也開始出現了。
NEM(新經幣)的PoI
NEM採用了PoI(Proof of Importance 重要性證明)的驗證機制系統。
在PoI中計算每個用戶的重要性,並且根據其重要性能驗證新區塊的可能性會大幅增加的機制。
PoI的重要性不僅在於所持有的虛擬貨幣的數量,還考慮到有多少交易量,因此可以說是改善了權益證明的流動性變低的缺點。
Ripple(瑞波幣)的PoC
瑞波幣採用了PoI(Proof of Concensus 概念性驗證)的驗證機制系統。
在PoC中,會事先決定驗證交易的人(Validator / 驗證器),如果Validator中有8成驗證,則交易就會被驗證的機制。
由於Validator中有可靠的知名公司(微軟或SBI)也被選中,因此雖然有點中央集權的感覺,但是交易會被竄改的可能性很低。
作為PoC的優點是,因為在於不需要挖礦的工作,驗證交易只需幾秒鐘就可以結束。
由於此交易的速度,瑞波幣被用於銀行之間的匯款。
Decred(德克幣)的Hybrid PoW/PoS
德克幣的虛擬貨幣採用了結合工作量證明與權益證明的Hybrid PoW / PoS的驗證機制系統。
在Hybrid PoW/PoS中,首先和工作量證明一樣,透過挖礦驗證新的區塊,然後根據投票來決定那個區塊是否有效。
持有的虛擬貨幣(加密貨幣)越多,能投票的票數越多,
也就是說,如果持有大量的虛擬貨幣的話,能驗證區塊的可能性就越大,
因此驗證過程也就成為權益證明。
透過將兩者結合起來可以彌補彼此的缺點。
首先,即使有運算能力但不被信賴的人驗證的區塊也會根據投票使其變無效,所以比較難遭受到51%的攻擊。
另外,在工作量證明中,如果不將區塊連接到最長的區塊鏈上,則無法獲得挖礦獎勵,
因此權益證明中的Nothing at Stake(無利害關係)問題(發生分叉時最長的鏈難以被採用的問題)已解決了。
IOTA(埃歐塔)的Tangle(纏結)
在IOTA這個虛擬貨幣中,採用了不需要透過工作量證明的方法而驗證區塊鏈的Tangle驗證機制系統。
Tangle具有進行交易的人會驗證在自己之前進行的交易的機制。可以想像成自己做交易時必須要挖礦的情形即可。
也就是說,因為依自己本身交易部分的量也平行驗證其他人的交易,所以在Tangle不需要支付交易手續費。
替代像Tangle的區塊鏈的機制稱為DAG(Directed Acyclic Graph有向無環圖),另外還有一種採用DAG的貨幣Byteball(位元組雪球幣)。
工作量證明(PoW)總結
- 工作量證明是一個需要大量運算工作的交易驗證系統,存在一些缺點,但應該可以看出在權益證明已改善了那些問題。
- 包括最後介紹的DPoS或PoI等,對於現有的驗證系統的改善方案每天都在進行思考。
- 並不是說哪個驗證系統最好,而是採用適合各種貨幣規模或特徵的驗證系統比較重要。