PoS 及 Staking 都不是一個新的東西,早在 2011 年 PoS 的概念就被提出,中間經歷了多個階段逐漸演化到今天百花齊放的 PoS 公鏈,以及火熱的 Staking Economy。過往的 PoS 項目有着對礦工激勵性不夠的問題,技術安全問題及中心化問題,後期的 PoS 項目不斷地根據過往問題而演化,目前看到成熟的有兩個方向,一個是 DPoS, 另一個是 PoS + BFT,PoS 帶來了比 PoW 更好的效能,同時爲了吸引早期參與者維護網路安全,現在的增發率普遍在 5%-25% 之間比過去的 1%-2% 高出許多,這可能也是一部人開始吹捧 Staking 經濟的原因,回顧歷史可以讓我們看的更遠,我們一起見證 PoS 的新時代。

原文標題:《解讀:第二章 PoS 發展史》
作者:卡咩

一、PoW + PoS

一個名爲 QuantumMechanic 的人,2011 年 7 月 11 日在 Bitcointalk 論壇首次提出的 Proof of Stake,當時還沒有 PoS 的簡稱,是對 Proof of Work 提出來的。文章預見性的提出了很多現在仍在使用的方案,諸如由持幣量代替算力權重,委託權益,獎勵分配等等,還有一些詞彙像 Delegate、Vote、Voting Power 等,在 2018 年的今天我們仍然能看得到:

起底 PoS 共識的前世今生,展望 Staking Economy 新時代

https://bitcointalk.org/index.php?topic=27787.0

那時候,人們對於 PoS 的提出都感到非常的興奮,這種興奮一直持續到今天,很多後起的項目都開始研究 PoS 算法的區塊鏈,甚至很多已有的項目都開始考慮轉型 PoS,以太坊就是最典型的例子。從提出到落地,大概經歷了 1 年左右的發展,2012 年 8 月 19 日,首個基於 PoS 共識的區塊鏈項目點點幣(Peercoin)誕生,Token 代號 PPC。點點幣的出現真正代表了 PoS 從紙面走向了工程實現的里程碑。

點點幣是一種類似 BTC 的電子貨幣,SunnyKing (點點幣創始人)在最初設計的時候,可能因爲時間過短,沒有想清楚如何解決 PoS 機制下出現的問題,也可能是 PoW 共識在人們的思維方式裏面佔據着主要地位,點點幣的共識實際上是基於 PoW + PoS 的混合共識,而不是純 PoS (Pure PoS)的共識,混合共識裏面保留繼承了大量 PoW 的設計,PoS 算法在其中所起到的作用實際上並沒有想象着那麼大。但畢竟是第一個將 PoS 共識工程化到區塊鏈中的項目,在點點幣的白皮書裏面,我們可以看到很多新的概念,幣齡(Coinage),隨機數參數(prev_blocks_data),PoS 的 checkpoint 等等。

混合 PoW + PoS 共識是 PoW 過渡到 PoS 的一種過渡階段。在 2009 ~ 2014 年期間,比特幣的 PoW 還是具有較高的權威性,大部分人對 PoW 的印象裏面,除了浪費資源和效率稍低一點之外,並沒有太大的致命性問題,而且很多基於比特幣的二代 PoW,像萊特幣,僅僅因爲縮小了區塊時間而備受推崇。可以說點點幣的設計還是站在了比特幣 PoW 的肩膀上的,並繼承了很多好的策略,像激勵措施,分叉保護,共識實現,分發策略等等。但是由於 PoS 共識的實踐過程過短,PoS 在點點幣的實現中以探索的成分居多,所以說這種混合共識其實算是一種過渡方式。

二、純 PoS

PoS 在不斷髮展,繼點點幣橫空出世之後,純 PoS 共識成爲了人們重點的研究方向。在點點幣發佈後一年左右的時間,2013 年 9 月 28 日,一個賬號名爲 BCNext 的人在 Bitcointalk 上宣佈啓動 Nxt 項目的衆籌(那時叫衆籌 Fundraise,還不叫 ICO)。

Nxt 是一個 100% PoS 的項目,沒有 PoW 共識同時存在。Nxt 的亮點在於沒有和其他的山寨幣(altcoin)一樣,簡單複製比特幣代碼,然後改變哈希機理,縮短區塊之間的時間、或是改變啓動難度,而是基於自己全新編寫的算法的區塊鏈。強調 100% 的 PoS 挖礦,沒有預挖。PoS 裏面要求的股權(Stake)也完全由捐贈來決定總量和分配,用捐贈的方式把 PoW 的分發直接分配了。

衆籌持續了 21 天,有 73 個用戶參加,總共捐贈了 21 個 BTC,一起瓜分 10 個億 Nxt,2013 年 11 月 24 日,Nxt 發佈主網,預示着首個 100% 基於 PoS 共識的創世區塊在 Nxt 上誕生。

Nxt 的發展並不順利,論壇對 Nxt 記錄歷史停留在了 2014 年 5 月 12。Nxt 的沒落歸結於太過於中心化的開發,代碼質量和速度一直跟不上,只有 3 個開發者並不能完成衆多投資者的預期,雖然主網功能的開發順序有社區投票,但是 Nxt 還是慢慢的走向了衆多投資者的詬病,市值在 2014 年 6 月 5 日達到 8 千萬美元市值的高峯後,留下一地雞毛。但無論怎麼說,和當初衆籌的 21 個 BTC 比較起來,簡直是一個天上一個地下,對比同時期起來項目,真可謂是老來迎新春。再看同時期的點點幣和黑幣,它們可就沒有那麼好過了。

黑幣(Blackcoin),最早於 2014 年 2 月 24 號開始公佈計劃,宣稱是基於純 PoS 搭建,但實際也是 PoW + PoS 混合共識。那爲什麼在純 PoS 這裏說混合共識,是因爲黑幣上運行的 PoW 只持續到 10000 個區塊高度,按照 1 分鐘一個塊,挖礦時間大概是一個星期左右(6.9 天),隨後整個區塊的驗證將不再接受 PoW 的挖礦,轉而形成 PoS 的挖礦,從這個角度,加上時間順序,我把黑幣也歸結到了純 PoS 的陣營中。

PoW 挖礦總量最大是 10,000,000,進入 PoS 之後每年通脹 1%(和 Nxt 一樣,沒有最大限制)。純 PoS 有更短的區塊間隔,更合理的鑄幣方式,從而吸引了很多早期的人進來挖礦,甚至有很多專門做礦池的開始在論壇收幣做驗證人(Validator)。那時候,PoS 這種新型共識的確吸引了很多人的眼球,不需要電腦,不需要 GPU,只要持幣就可以獲得獎勵。

但黑幣的好景也沒有持續多長時間,在 2014 年 4 月 14 號,短短不到 2 個月時間,就將近 2 千萬美元的市值,後一路下挫,幾經周折,還是沒能逃過摸底的厄運。而因爲市值的下挫,1% 的增發獎勵對於 PoS Staking 的人來說,也顯得杯水車薪了。

雖然,2016 年新的一批開發者又重啓了對黑幣的開發,並花了重金請來正規軍,公司化,全面宣傳,但是,黑幣以及它的 PoS 也沒再回到主流世界的視野中來。還記得黑幣經典的宣傳語,簡直如教科書般的存在:第一個基於純 PoS 幣,公平啓動,沒有預挖,沒有 ICO,以社區爲中心,重新迴歸,比以往更好,比以前更強。

The first fair-launch pure Proof of Stake coin. No premine. No ICO. Community focused.
Back again, better than ever, stronger than before.

2014 年 7 月 18 日,一個和黑幣共識類似的幣,叫影子幣(Shadowcoin),是一種基於聊天匿名的應用幣,也基於 PoW+PoS 混合共識,PoW 只挖 31000 個塊,隨後進入 PoS,但是和黑幣不一樣的是,影子幣看到了激勵的不足,它提高了每年的通脹率,把黑幣的每年 1% 提到了每年的 2%。但進入 2015 年後,應用幣的價值遠遠還看不到,加上熊市到來,影子幣很快就消失在人們的視野中了。

我總結了整個 PoS 的歷史,發現很多基於 PoS 的項目,基本都出現在 2012~2014 年,那時候加密貨幣市場處於上漲週期,帶富了一批項目,一批人,很多人雖然都爲項目的探索買了單,但是總體上來說在那段時間週期,大家在紙面上都是很好看的。到了 2015 年~2016 年,幣圈進入了大熊市,很多項目和開發者就進入了冬眠過冬階段,也很少有項目再出現吆喝捐贈,IPO 或者 ICO 了,PoS 的研究也在市場上消失了一段時間。

排除市場大週期的原因,我們歸結那段時間 PoS 機制幣種失敗的原因,點點幣,Nxt,黑幣,影子幣都是 PoS 很早期的探索項目,技術上並未完全考慮全面(在第九章節中我們會介紹 PoS 的技術缺陷),另外,對於 PoS 中 Staking 的激勵太小,無法支持驗證人的成本,還有就是去中心化的運行模式在 PoS 上的應用並不想 PoW 上那麼完善。

年 1%~2% 的增發比例無法讓礦工維持,特別特別是在熊市階段。這種初創的 PoS 增發模式,在很多人開來還是足夠新鮮的,在初始可能爆發的幣價上來看,增發的初期利益只是一個非常重要的誘因罷了,但當投資者面對幣價無法帶來預期的收益之後,低激勵變成了一種雞肋。礦工看不到收益,自然無法參與網絡驗證,那麼網絡要不發生堵塞,要不就是慢性死亡,潛在的攻擊成本越來越低。

另外,多數項目的啓動都是幾個開發者甚至 1 個開發者發起的項目,Bitcointalk 發起一個話題,大概描述要做什麼,100%PoS,1% 獎勵 …… 然後就沒有然後了,初次上線後,開發者像中本聰一樣隱匿,這樣的結果,帶來的不是像比特幣一樣的繁榮,而是死亡。

至此,這是 PoS 的發展第二個階段。

三、委託 PoS (DPoS)

委託 PoS,也稱作爲 Delegate Proof of Stake,DPoS,其雛形誕生在 2013 年 12 月 8 日,Daniel Larimer 在 bitsharetalk 首次談及用投票選擇出塊人的方式,代替 PoS 中可能出現的選舉隨機數被操縱的問題,描述是這樣的:

我最近有一個可以用的點子,但是我還不能完全確定是否可行。爲何不讓持幣人選出簽名區塊的驗證人?持幣人用幣天(CDD coin-day-destroyed)投票給簽名人,當簽名人簽名的時候會消耗投票人的幣齡。沒有人會被允許在 100 個區塊裏面籤超過 1 個的區塊數。這個點子可能會有潛在的問題,但是我會把它加入我的點子庫。

I recently came up with another system that could work, though I am not fully sold on it.What if the share holders elected people who would sign blocks? You vote for the signers with CDD. When they sign they spend the CDD they accumulated from people voting for them. No one would be allowed to sign more than 1 in 100 blocks. This plan has many potential problems, but I thought I would add it to the idea pool.

這就是委託(Delegate) PoS 的雛形,這個系統被成功的運用到了比特股(Bitshares)上,比特股社區對 DPoS 的宣傳語是:DPoS 不僅解決了 PoW 的浪費資源問題,同時還解決了點點幣和未來幣的 PoS 問題。在當時看來,DPoS 的確是一種解決方案。雖然比特股的發展也非一番風順,Dan 最終還被踢出比特股的社區,但不可否認的是,委託權益 DPoS 共識在未來一段時間裏,爲 PoS 的進一步發展起到了奠基作用。

比特股的 DPoS 基於石墨烯(Graphene)平臺搭建,這套石墨烯技術後來發展成了 DPoS 的專用底層,基於石墨烯開發的區塊鏈項目可以直接使用 DPoS 的共識機制,免去了重複開發的苦惱,像 Steemit,EOS,Lisk 等都是基於石墨烯平臺搭建的 DPoS 公鏈。直到現在的 2018 年,我們仍然可以看到在比特股交易所(Bitshares DEX)裏面,很多網關資產都是基於石墨烯的 DPoS,基於 PoS 共識的項目在數量上達到了一個數量級。

的確,DPoS 有比較多的優點。DPoS 解決了權益使用不及時的問題,是一種讓專業人做專業事情的基本原則,可以理解爲是國家治理裏面的代議制,或者說是人大代表制度,鄉里鄉鎮的居民通過選舉選出鄉長,然後是鎮長,縣長,省長等等,這種制度最大的好處就是解決了驗證人過多導致的效率低下問題,當然,這種制度也有很明顯的缺點,就是中心化詬病。

比特股的初始節點驗證人大概人數在 100 人左右,後逐漸減少到 30 多(因爲無利可圖),EOS 的節點驗證人固定在 21 個人。在去中心化思想被及其推崇的區塊鏈世界裏,傾向中心化的項目是容易爲人詬病的,很多開發者並不會認同這種委託權益的做法。在 2014 年開始起源的另外一個項目 —— Tezos,把去中心化和委託權益更好的結合到了一起。

Tezos 的 PoS,開發團隊更喜歡稱之爲 LPoS (Liquid Proof of Stake),但稱之爲 DPoS 也不爲過,因爲委託權益在 Tezos 的 PoS 裏是極其重要的一環。爲了保證系統安全,PoS 希望提高系統代幣的 Staking 量,這樣攻擊者發動 51% 攻擊的代價就會變得很大。

Tezos 解決了初期激勵不夠大和用戶 Staking 意願比較低的問題,用年 5.5% 的增發來給 Staking 用戶作爲獎勵,同時,用戶可以將自己的權益委託給驗證人(Tezos 中叫麪包師,baker),讓驗證人幫助委託人行使權益。驗證人可以收取用戶一點的手續費,作爲服務費用,這樣驗證人節點除了自己 Staking 的獎勵之後,還能得到接受委託的獎勵,這種激勵對於未來幣,黑幣的 1%~2% 的激勵,高出了很多。

另外,Tezos 的委託和 EOS 的委託有很多方面不一樣,原則上,每一位委託人都可以選擇任意候選人進行投票,但由於 Tezos 和 EOS 的投票激勵不同,導致了不同的結果。Tezos 上,委託人可以選中任意一個驗證人,投票並獲得收益,而 EOS 的委託選中的驗證人只有當選不當選的結果,並沒有激勵。

EOS 上的當選者有責任和義務代表投票人意志,在大部分節點候選人都誠實的情況下,委託人並不能很好的判斷出來區別,所以投票動機也變得不一樣了。總體上來說,兩種 DPoS 都是根據持幣的權重佔比給與分配一定的權益,此權益是否委託在於持幣人的初始動機,這就是 DPoS 的精髓了。

Tezos 於 2018 年 6 月 30 日上線了主網,目前主網節點數量 400 多個,驗證人 100 多個。EOS 於 2018 年 6 月 15 號啓動了主網,主網主節點數量 21 個,備選節點 100 個。

四、BFT + PoS

拜占庭容錯(Byzantine Fault Tolerance,簡稱 BFT )和 PoS 結合最早是在 2014 年由 Tendermint 團隊,Jae Kwon 提出的。而 Tendermint 前身,則是基於 1988 年在麻省理工學院開發的經過驗證的 BFT 算法,Tendermint 進行了優化和改良。但是 Tendermint 出來之後一直沒有被運營到項目當中,Jae Kwon 後來創建了 Cosmos 項目,可以說是基於 Tendermin 的第一個項目。

按照主網上線時間排序,BFT + PoS 或者是類 BFT + PoS 的項目應用最早開始於 2018 年,先是 EOS 帶着 BFT + DPoS 的上線,然後,Tezos 的類 BFT + PoS 的算法在 EOS 後一個月也上線了。而基於 Tendermint 的第一個項目 Cosmos,則會在 2019 年 Q1 上線主網,另外,我現在知道的還有 Ethereum,Algorand 都會採用了 BFT + PoS 的共識算法,具體的上線時間未知。雖然說 Tendermint 先出來,Cosmos 卻別別人佔據了先機,但是不得不說的是後來者基本都參考了 Tendermint 的設計,所以 Tendermint 對 BFT 在項目中的應用還是起到了很好的帶頭作用的。2018 年 ~ 2019 年,會是 BFT 上線大量項目的共識,百花齊放。

BFT 容錯能給分佈式網絡帶來了可觀的抗風險能力,還能帶來了較快的區塊確認速度,解決區塊鏈分叉問題,並帶來一定程度的交易的最終確定性,間接的提高了性能。如果說純 PoS 比起純 PoW,僅僅是解決了能源消耗,那麼 BFT + PoS 比起純 PoS,那就是除了解決能源消耗外,還解決了 PoW 的交易確認,交易分叉,性能較低等問題,帶來的飛躍是不可忽視的,特別在安全這塊,我們來看 Tendermint:

Tendermint 中很重要的一部分就是它的共識引擎部分(Tendermint Core),該共識引擎將 BFT 和 PoS 共識結合到了一起,持幣人通過 stake 獲得驗證區塊機會,簽名完成後,新區塊的驗證通過 3 輪提交,2 輪 2/3 的投票過程,來達成最終共識。由於投票是在區塊廣播後就開始的,那麼當它完成了驗證之後,新區塊即獲得了及時確定性(Instant Finality),這和比特幣交易需要 6 個區塊確認不一樣,Tendermint 大大縮短了驗證時間,使得交易能及時生效,提前避免了交易被回滾,雙花等問題的出現。

除了交易確認這塊,同時拜占庭容錯最大能容忍系統中小於 1/3 的驗證權重宕機,能很好的保證系統運行,可以簡單理解爲,只要系統中大部分人是誠實的,不管其他驗證人怎麼做,系統還能運行,不會出現停止,宕機的情況。

基於 Tendermint Core 引擎打造的第一個項目叫 Cosmos,Cosmos 是一個以提供跨鏈功能爲目的的公有鏈項目。Cosmos hub 是這個項目最重要的部分,也是作爲跨鏈總協調方,如果跨鏈生態繁榮,多鏈接入到 Cosmos 中心,那麼這個中心的安全性可見多麼的重要。而提到 Cosmos,就不得不提到另外一個跨鏈項目波卡(Polkadot),波卡同樣是基於 BFT 的 PoS 項目,由以太坊黃皮書撰寫人 Gavin Wood 帶領,雲集衆多技術牛人,團隊陣容可謂強大。只不過,在作者寫系列文章時,波卡的 GRANDPA 共識還在不斷改進當中,具體需要等到對於波卡臨近上線的時候才能具體分析了。

目前,已經在運行的 Tezos,情況良好,只有一次因爲 Slash 判斷出現問題,導致整個網絡暫停了出塊(Halt),原因共識機制有部分關係,但是通過手動注入 Nonce 後解決了問題。除此之外,Tezos 運行了小半年,除了受到了低手續費的垃圾交易攻擊外,共識部分並沒有出現過大的問題。

2014 年 BFT 開始引入到區塊鏈分佈式網絡,後配合 PoS 開始開始流行起來,BFT+PoS 的混合共識已經受到了很多項目的重視,不僅因爲 BFT 這種算法的安全性已經研究了將近 30 年時間,而且因爲這種算法提高系統的抗風險能力和性能,所以我預計未來一段時間內,這種共識會流行很長一段時間。

五、PoS 新時代

PoS 的研究腳步還在不斷前進,安全、性能和去中心化一直都是 PoS 所追求的方向。2018 年後開始發起的一些新起的項目,我看到了它們身上或多或少都有前人的影子,基於此,要不優化了性能,要不優化了安全性,要不極致的優化不可能的鐵三角。Algorand 和 Thunderalla 是 2018 後開始走入我的視野的新項目,這兩個項目我認爲可以在一定程度上代表了新的 PoS 時代。如果把 PoS 的發展分成 4 年一個輪迴的話,恰巧,這兩個項目都會在 2022 左右開始成型。

Algorand 和 Thunderalla 都站在了巨人的肩膀上。由圖靈獎得主、MIT 教授 Sivio Micali 帶領研究的 Algorand,專注於新的 PoS+BFT 共識算法(簡稱 BA,Byzantine Agreement),旨在讓驗證人的選舉更加隨機,不可預測,以更好的保證系統的安全爲研究方向;Thunderella,由兩位康奈爾大學計算機教授 Rafael Pass 和 Elaine Shi 發起,旨在解決 PoS 當中的性能擴展問題,目前理論性能最高可以達到 1000~2000Tps。

相信 2019 年會是 PoS 豐收的一年,衆多 2014 年~2018 年間做的研究將在 2019 年上線驗證,預示 PoS2.0 時代的開啓。我覺得我很幸運能經歷 PoS 兩個時代(20112014,20152019)從 PoW + PoW,到純 PoS,再到 DPoS,最後來到 BFT + PoS 新的混合共識裏面。我相信,這遠遠不是終點,而是新時代的起點。