標籤:

POS (Proof of Stake 權益證明) 與 POW(Proof of Work 工作量證明) 本質都是什麼?他們各有什麼優劣?


本質上,POW和POS都是一種隨機選擇下一個區塊上傳者的方式。然而,創建一個每個人被選中幾率相等的演算法其實是非常難的事情,同時,這種演算法只是聽上去很美,而在現實中這種演算法卻稱不上公平——因為你怎麼在虛擬世界裡確定一個人的身份?你怎麼知道一個ID背後的是真實的用戶還是女巫攻擊的腳本?

所以說,與其耐心去驗證每一個人的身份,不如乾脆根據某種無法偽造的東西進行隨機,於是才有了工作證明和權益證明,以及許許多多的其他證明。

POW就是根據計算能力隨機,POS根據擁有財產隨機。

這就是這兩個共識機制的本質。

但是,另一個問題是,POW是一個在比特幣出現之前就有了的東西,而因為比特幣的成功,POW基本上特指比特幣的POW。但相反,POS是個新東西,目前並沒有成熟的POS應用,所以,當提到POS的時候,並不是指某一個演算法,而是一類,而且,這類演算法目前各有優劣。並且,目前為止,沒有一個演算法的可靠性通過了實踐的檢驗。所以,要對比POW和POS的優劣,我只能以POS這一大類為例。以上基本上所有其他的答案,其實都在說PPCoin的POS,也就是最早的POS,那個東西是有根本缺陷的,例如啥幣齡攻擊(save-up attack),都僅僅是對PPC適用,而並不是POS的問題。

下面說優劣。

POW:

優勢:可靠(或者叫安全,我不喜歡用安全這個詞),這就是它最大的優點,因為它是目前唯一接受了實踐檢驗的公有鏈演算法。

劣勢:浪費算力,對於51%攻擊有潛在隱患——攻擊者並不需要擁有比特幣,所以如果要做51%攻擊,所需要的花費跟挖礦難度相關而不是直接跟比特幣價格相關(雖然說挖礦難度會和比特幣價格相關),所以,如果挖礦公司的市值不如比特幣的價格的話,比特幣面臨51%攻擊的風險就會變大。

POS:

優勢:不需要浪費算力,同時,進行51%攻擊的代價更高,因為想要進行51%攻擊的話,你得擁有51%的貨幣。也就是說,這東西越值錢,攻擊的成本就越高。

劣勢:

1,權益粉碎攻擊(nothing-at-the-stake attack),上面有人說POS是社會主義,我是不贊同的。我覺得POS就是完全的資本主義——你錢越多,你擁有的權力就越大。當然,這個也並不是沒有道理,因為在其中利益越多的人,就更願意去維護這個幣的系統,於是他們手中的幣才能更有價值。因此,他們並不願意去進行惡意攻擊,因為那樣實際上他們手中的幣也會受害,這就是POS能夠更有效地防禦51%攻擊的原因。換句話說,錢越多責任越大。

但反過來講,錢越少責任越小。假設你只有1%的錢,你成功的概率只有1%,但是你盡可以去嘗試分叉,因為這並不消耗任何資源。也就是你在最長鏈上挖礦的同時,也去創造一個只在自己的區塊上挖礦的分支。放在POW里,創建這個分支完全得不償失因為你浪費了大量的算力。然而在POS里,如果這個分支不被接收,實際上你什麼都沒損失。於是,即便是誠實的礦工也可能回去偷偷地進行這種分叉嘗試。儘管他們知道這種嘗試會造成整個幣的價值降低,但是他們的錢很少,他們並不在乎,這就是所謂的平凡人悲劇(tragedy of the commons)。

對於這種攻擊,基本上所有的新的POS演算法都有應對的機制,例如以太坊的casper里的slasher,基本概念就是如果有人嘗試了這種攻擊,其他人發現了可以公布證據然後對這個人進行懲罰。

2,理性分叉。很多地方把這個合在權益粉碎攻擊里了,但我覺得必須要分出來說。

權益粉碎攻擊是主動的,而這個是被動的——假設有人做了權益粉碎攻擊進行了分叉嘗試,誠實節點理應不予理會,因為他們能看到這種分叉被接受的幾率小。對於POW來說,你不會在被接收幾率小的分叉(例如不是最長鏈的分叉)上挖礦,因為那樣浪費算力。但對於POS來說,在那上面挖礦沒任何損失,反而是不在那上面挖礦,萬一這條鏈被接收了,你就會受到損失。

於是,即便是誠實節點,如果它足夠理性,那麼它也會在所有它收到的鏈上同時挖礦。POW里,沒人挖的分支很快就會變成孤塊被丟棄,但在POS里,如果整個網路足夠理性,會出現的情況反而是每條分支都會永遠存在因為理性的礦工會同時在所有分支上挖礦。這是我覺得POS最大的缺陷,就是如果只用最長鏈共識的話,POS本身是沒法應對分叉的,必須通過懲罰。而這種懲罰不光是基於作惡,而是違反節點逐利本性的。

放在真實社會中的話,1就好比是搶劫,抓了判刑沒有任何問題。可是2就像是投資,把他們也抓了判刑,這就有點過了。


根據已知的材料,對PoS有如下解讀:

1. PoS的起源: 相關鏈接:股權證明及點點幣(PPC)的歷史意義

「今天,很少人知道股權證明的想法來自於對挖礦中的公地悲劇問題的辯論。如果你還不了解這些的話,我建議你閱讀比特幣論壇(bitcoinTalk)中極為重要的帖子之一,由Vandroiy所寫的挖礦公地悲劇([If tx limit is removed] Disturbingly low future difficulty equilibrium )。Vandroiy的帖子吸引了很多人的興趣,但是在兩個月內並沒有對這個問題取得實際的進展。然而,當QuantumMechanic發表了「股權證明而不是工作證明」的帖子( Proof of stake instead of proof of work )後,事情發生了變化。Quantum的帖子是比特幣社區中第一個使用「股權證明」這個術語的,也有可能這就是「股權證明」這個概念的起源。Quantum認為股權證明可以允許更低的交易費用。當Quantum的股權證明概念出現在Vandroiy的帖子里後,這個概念獲得了很多人的青睞。很快,Vandroiy, Meni, 我以及其他人意識到股權證明可能就是挖礦公地悲劇的解決方案了。從這以後,我個人的使命就是來推廣股權證明加密學貨幣。」

2. PoS的實現:PoS (Proof of Stake權益證明)挖礦由Sunny King 在2012年8月發布的PPC(點點幣)首先實現。相關鏈接:PPC: 一種P2P(點對點)的權益證明(Proof of Stake)電子密碼貨幣

"早在2011年BTC圈子中就有了對POS權益證明這個概念的討論。大概說來,POS指的是一種對貨幣所有權的證明。一筆交易所消耗的幣齡可被視為POS的一種形式。我們在2011年10月獨立發現了POS及幣齡的概念,當時我們意識到通過對BTC造幣及安全模式精心地進行重新設計,POS實際上可以取代POW的大部分功能。這主要是因為,和工作量證明POW一樣,POS權益證明也不可能被輕易偽造。當然,這也是貨幣系統中的一個關鍵特性-防止偽造。從哲學角度而言,貨幣在過去就是一種「工作量證明」,因此其本身可以代替工作量的證明。"

--SK在白皮書中的說法,也佐證了加密貨幣圈內在2011年開始就已經有討論,而PPC是第一個將其變成的現實的加密貨幣。

3. PoS權益證明的概念

3.1 PPC白皮書:PPC: 一種P2P(點對點)的權益證明(Proof of Stake)電子密碼貨幣

自從中本聰在2008年創造出比特幣以來,工作量證明(POW)的設計理念已成為P2P電子貨幣的主流思想。在中本聰的設計中,POW是保證採礦及BTC安全的支柱。

在2011年10月,我們意識到幣齡(coin age)可以是中本聰POW設計以外的另一種設計,即權益證明(POS)。自從那時起,我們就開始構思利用POS來構建P2P現金的安全模式及一部分造幣流程,而POW主要在最初的造幣階段起作用,而重要性逐漸減少。此設計試圖展示將來可在不依賴消耗能源的情況下,P2P電子貨幣仍然是可行的。我們將此項目命名為PPC.

3.2. PPC的FAQ: PPC常見問題 FAQ(2013年10月更新)

問題:是什麼是權益stake及權益證明POS?

回答:所有權/所有權證明是一個用於使用貨幣本身(擁有權)來達到某種目的的專有名詞。在PPC中,POS取代工作量證明POW來處理交易及進行採礦。請參考我們的設計論文,裡面有對此的詳盡描述及實施方法。

4. PoW和PoS各有什麼優劣?

股權證明及點點幣(PPC)的歷史意義

"當我發現比特幣的時候(2011年3月),對我來說,比特幣聽起來太棒了!當時股權證明還沒有成為一個術語。2011年4月,我才知道挖礦的公地悲劇問題,當時我認為這就是比特幣棺材上的那顆釘子,現在我仍然這麼看。

發現股權證明這個概念再次讓我異常興奮。股權證明極為美妙的是它無需挖礦獎勵而工作。因為有了股權證明,挖礦中的公地悲劇就不再是一個問題。當然股權證明中可能沒有得到交易費用,但這又有什麼呢?如果你使用股權證明,這就是一個非常偉大的特點。如果你使用工作證明,低交易費反而是精彩中的缺陷。當我了解到股權證明,我發現有幾種可能性:1)比特幣也採用股權證明(或者是其他一些非常規的替代方法)從而長期保持壟斷地位;2)另一種競爭幣採用股權證明從而長期保持壟斷地位。就我個人來看,我認為一種新的加密學貨幣出現的可能性很大。比特幣非常規地改變規則,這樣的挑戰實在太艱巨。而重寫規則,從頭開始則是非常值得的寶貴財富。"


POW:Proof of Work工作量證明
POS:Proof of Stake 權益證明

工作量證明的原理很簡單:一方(通常稱為證明人)出示計算結果,這個結果眾所周知是很難計算的但卻很容易驗證的。通過驗證這個結果,任何人都能夠確認證明人執行了一定量的計算工作量來產生這個結果。第一個POW程序是1996年Adam Back開發的「哈希現金Hashcash"程序,它使用SHA-256工作量證明措施來反垃圾郵件—通過要求所有收到的郵件都使用強POW附件。此系統使得垃圾郵件發送者在大量發送郵件時在經濟上不可行,但卻允許個人在需要的時候互相發送信息。時至今日,殊途同歸的程序是 Bitmessage, 而這種演算法也被賦予新的意義,即以「採礦」形式出現的BTC安全核心。
SHA256工作量證明是如何工作的?
對於密碼學者來說,SHA256被稱為單向函數,即其結果很難計算得出,但卻很容易被驗證。但如果要將這個結果反向計算出來,卻需要嘗試每個輸入直到某個隨機數匹配為止。傳統的SHA256輸出形式是一系列十六進位的64位數字和字母組合--從0123456789abcdef中取出。舉例說明:
SHA256("hello") = 2cf24dba...
SHA256("Hello") = 185f8db3...
SHA256("Hello.") = 2d8bd7d9...
SHA256的輸出被設計成了高度隨機性,即使輸入的數據有微小的變化也會使得輸出結果迥異,這也就是SHA256成為單向函數的原因。
找出以"0"打頭的SHA256的輸入值平均需要嘗試16次,「00」打頭的需要嘗試256次,以此類推。哈希現金及比特幣採礦工作的方式,是要求使用者(即郵件發送者或礦工)找到一個「隨機數」,使得其SHA256(信息+隨機數)以一串零開頭,然後把找到的隨機數與信息一起發送出去,作為其工作量證明。例如,編號為254291的區塊是:
000000000000003cf55c8d254fc97d2850547e5b787a936bc729497d76443a89
平均而言,在一個區塊內進行運算時,需要進行72957千億次嘗試才能找到一個隨機數,才能返回這樣一個以很多0開頭(技術上而言,282394 千億,因為POW要求的比「以很多零開頭」的要複雜一些,但是大體而言是如此。「人為設置這樣的難度是因為防止攻擊者凌駕於比特幣網路之上,引入另一個區塊鏈,並推翻之前的交易,引入新的交易。任何想要攻擊比特幣網路的人,都必須完成 282394 千億次SHA256 運算來達到這樣的目的。
但是,這有一個問題:工作量證明是相當浪費資源的。比特幣網路每秒種進行600千億次運算,最終這些運算並沒有任何實際或科學用途。其唯一目的在於解決工作量證明問題,而工作量證明如此之難,是為了阻止攻擊者輕易偽裝成數以百萬計的節點,並控制網路。當然,這種浪費也不是天生的。在沒有其它選擇的情況下,這種工作量證明的浪費對於獲得一種去中心化的,半匿名的而允許所有人都能夠幾乎免費即時發送現金到其它人的全球貨幣網路來說,這個代價可能不算大。在2009年,工作量證明確實是唯一的選擇。

但是在四年之後,我們有了其它選擇。
Sunny King的素數幣可能是最溫和,但同時也是最有希望的解決方案。除了運算工作量證明之外,素數幣還試圖使其變得有用。沒有採用SHA256運算,素數幣要求礦工們尋找長的坎式鏈素數-如n-1,2n-1,4n-1等,然後這些數值在區塊鏈里是素數(為了準確,n+1,2n+1,4n+1也是有效的坎式素數,素數幣也接受孿生素數如n-1,n+1,2n-1,2n+1,這些都是素數。目前還不清楚這些區塊鏈有什麼用處--素數幣支持者列出一些理論上的應用,但這些應用只需要長度為3的區塊鏈,這很容易產生。但是,在目前比特幣採礦界的更有力的說法是目前採礦硬體的大部分生產成本都是用在研發如何更有效地採礦方式上面(ASICs,優化線路等),而不是自己製造或運行這些硬體。而在素數幣的世界裡,這些研究會投入到尋找更有效的演算法及數字理論計算上-這些研究的目的比單純地進行加密貨幣採礦要更高級。
類似素數幣這種「有用的工作量證明」令人鼓舞的原因還有,如果這種計算是足夠有用的,那麼這種貨幣的「浪費指數」會降至零以下,使得這種貨幣成為一種公共貨幣。假如有一種加密貨幣的每一次運算,都能夠推動治療癌症的研究能夠進展1020 之一。現在,沒有個人或組織有足夠的動力去這樣做:如果他們運氣好能夠成功的話,有兩個選擇。一是將秘密公諸於眾,除了一些短期的媒體報道外,對於他們個人並無益處;二是在有保密條款的前提下把結果出售給一些研究者,這樣大部分沒有簽署保密條款的人就無法從中受益。無論哪個選擇,他們都不會掙到大錢。但是,如果這種神奇的運算可以被整合到某種虛擬貨幣中去,採礦所得就能鼓勵不少人進行這種運算,而且運算所得會公布在區塊鏈上,所有人都能看到。其社會效益將遠超電力成本。不過,目前我們不知道這種神奇的治癒癌症的運算,最接近的一個項目是Folding@home項目,但這個缺乏數學上的可驗證性—一個不誠實的礦工能夠輕易地製造讓工作量證明人難以分辨的虛假計算,但對社會毫無益處。在數學可驗證及有用的工作量證明的領域,素數幣是目前最好的。雖然其帶來的效益能否完全超出其生產及電力成本仍然很難判斷。很多人對此存疑。但即使如此,素數幣的成就仍然值得表揚,能夠給公眾帶來效益已經收回了部分成本,總比沒有強。
POS權益證明
但是,還有另外的SHA256演算法已經存在,從根本上擺脫了工作量證明的算力浪費,這就是權益證明。與要求證明人執行一定量的計算工作不同,權益證明要求證明人提供一定數量加密貨幣的所有權即可。中本聰沒能做到這一點的原因很簡單:在2009年之前,沒有任何一種數字財產可與密碼協議層面上產生互動。Paypal和信用卡在線支付已經存在十幾年了,但這些系統都是中心化的。如此這些中心化的系統也使用權益證明的話,就會給Paypal及信用卡供應商在提供虛假交易上提供可乘之機。IP地址及域名是部分去中心化的,但目前針對這兩種方式都無法建立一種所有權證明而且無法驗證。實際上,第一種能夠實現在線權益證明的數字財產就是比特幣本身(及普通的加密貨幣)。r&> 對於如何實現權益證明有過幾種方案,但目前為止實際成功應用的就是PPC,也是由Sunny King 發明的。POS權益證明的運作方式如下:當創造一個POS區塊時,礦工需要創建一個「幣權」交易,交易會按設定的比例把一些幣發送給礦工本身。(類似利息,原理與比特幣的區塊產出25個接近)。一個SHA256的哈希運算是基於以下數據得出的:交易輸入,其它一些固定數據,以及當前時間(以秒為單位的整數,基點是1970年1月1日)此哈希運算將與工作量證明要求進行比較,與比特幣很象,除了其難度是與交易輸入的「幣齡「成反比的。在PPC中,幣齡的定義是交易數量乘以該筆交易的幣存在於錢包中的時間。由於POS的哈希運算只是基於時間及靜止數據,因此無法加快其運算速度。每一秒鐘,每個PPC交易輸出都有一定機會產生與其幣齡及其錢包餘額成正比的有效的工作。不增也不減。實質上,每個PPC都可以成為「模擬礦機」,雖然這種礦機的算力會隨著時間直接增長,但每次發現一個新塊其算力就會歸零。
目前還不清楚PPC使用幣齡或使用輸出大小是否一定有必要,這樣做的初衷是防止礦工重複使用得到的幣,但是PPC目前的設計並不允許礦工有意識地去通過一定量的交易輸出生成一個區塊。目前的機制是系統會每隔若干隨機秒挑選出某個PPC,賦予其所有人生成POS區塊的權力。即使在這個隨機過程中沒有把幣齡做為衡量因素包括進去,這也幾乎和比特幣採礦相類似,只是沒有了浪費。但是,對幣齡一說不利的還有一個比較複雜的理論:因為如果你無法創建一個區塊的時間拖得越長,下一次成功的機率就會越大。而POW礦工創建區塊的時間會更有規律些,因此減少了類似中心化礦池的風險。
加密貨幣之外
但POS更有趣的地方是其可以應用於加密貨幣之外的地方。

目前,反垃圾郵件系統在以下三類防護機制中都失敗了:工作量證明,captchas和身份認證系統。
工作量證明,已經使用在Hashcash及bitmessage當中,我們上面已經進行了深入討論,不再贅述。
Captchas在互聯網上廣泛使用。其原理是給出一個機器很難解答但人類很容易解答的問題,因此把人和機器區別開來(CAPTCHA 是 Completely Automated Public Turing test to tell Computers and Humans Apart」的首字字母縮寫)。實際應用中,通常會使用很混亂的背景圖上帶上字母和數字,然後要求答題人打出其中的數字和字母。最近的變化是將其「對大眾有用」,方法是從印刷書的掃描件里取出某個字,利用公眾的力量將其數字化。不幸的是,captcahs效率並不高,最近的機器學習進展已經將成功率提高了到30-90%,這個數字和人類的成功率相近。
身份識別系統有兩種形式。一種是系統會要求使用身份證進行註冊,這也是民主團體防止被匿名發言者控制的方法。另一種是系統要求交納一定費用進行註冊,如果發現用戶濫用系統,則管理員可以說沒收註冊費並取消帳戶。這些系統是起作用的,但犧牲了匿名性。
權益證明可以用於第四類反垃圾郵件的機制。假設在註冊論壇帳戶時,不需要填寫Capthas字元,而是要求用戶通過發送給自己一定量的PPC或者BTC來消耗幣齡。為確保每個權益證明運算都是由用戶執行的,而且不是隨機從區塊鏈中抽取的,系統可以要求用戶使用相同的地址發送已簽署的信息,或者是可以用某種方式把他們的錢發送給他們自己(例如,發送的數量可以設定為0.0000xxx,這個數字是隨機設定的。)請注意,此處幣齡起到了決定性的作用,我們希望用戶能夠根據需求創造權益證明,所以必須消耗一些東西來防止重複花費。從某個角度而言,手機簡訊驗證就是某種形式的權益證明,要求用戶發送某個信息,證明對某個號碼的所有權以便創建google帳戶。雖然這並不是純粹的權益證明,因為電話號碼通常與身份證緊密相關,而且買電話的過程也象是填captcha。因此,簡訊驗證具備了這三種反垃圾郵件系統的一些好處和一些壞處。
但權益證明的真正優勢在於其去中心化的系統,類似bitmessage.目前,bitmessage使用工作量證明因為沒有其它選擇。目前並沒有去中心化的captcha存在,而且在這個方面也沒有太多的研究在進行中。

不過,工作量證明是浪費資源的,這一點也讓Bitmessage有些難以處理,同時也要耗費電力去維持系統運行。如果是電子郵件通信還行得通,但如果是即時通信就省省吧。但如果bitmessage 能夠與比特幣(素數幣或PPC)整合在一起,並用POS來運行,就可以消除大部分的困難和浪費。
POS權益證明有未來嗎?
有很多跡象表明確實有。Sunny King說比特幣的安全性將隨著區塊產出持續下降而變得脆弱,這確實也是他創造PPC及素數幣的出發點之一。自從那時候起,PPC的市值佔據了第五的位置(本文寫於8月底,截止10月2日PPC市值已經上升至第3),而且還有很多山寨幣模仿了這種POS設計。目前,PPC還不是完全的權益證明,因為其支持者人數不多,幣值也不高。被人控制的風險大於比特幣,所以存在著一個中心化的檢查機制,無論攻擊者如何攻擊,開發者可以確保「檢查點」存在於區塊鏈中。
最終的目的使得這個檢查機制更加去中心化,並弱化其影響,同時更多的人群可以擁有PPC。另一個方法是可以把POS作為一個去中心化的檢查機制整合進比特幣裡面去。例如,可以創建一個協議讓多人合作,通過把幣發回給自己,消耗至少1百萬年的BTC幣齡來產生一個區塊,而這個區塊將被所有人同意為一個有效的區塊。
在2009年,加密貨幣在一系列看似不相關的創新下誕生了:哈希現金、merkle 哈希樹,工作量證明及公匙密碼學。而這些創新都在BTC中起到了關鍵作用。
現在,比特幣及加密貨幣將繼續存在下去,這又為加密貨幣的未來提供了另外令人興奮的可能性。我們現在能夠在加密貨幣本身以外設計新的協議-權益證明就是絕好的例子。權益證明可以被用來保證一種加密貨幣的安全,它可以被用在去中心化的反垃圾郵件系統,甚至還有我們沒有想到過的數十種其它協議。就象直到1998年戴偉發明B-money之後,人們才會想到比特幣。
未來,存在無限可能。


POW是按工作量,POS是按持有證明。四個字解釋POS,社會主義。

做虛擬貨幣投資的時候,POS的幣最好繞開,目前沒有活下來的。

ETH目前為止還沒切。


推薦閱讀:

BTC的實際價值和意義是什麼?
技術上,中國真的可以阻斷比特幣的p2p交易么?
比特幣什麼時候會崩潰?
關於比特幣近期(20180111--20180201)走勢分析?

TAG:比特幣Bitcoin |