《讀懂區塊鏈PoS共識》第十章 PoS專案例子-Cosmos

買賣虛擬貨幣
專案介紹Cosmos的中文翻譯是宇宙,之前看過一個講宇宙起源的紀錄片《宇宙時空之旅》,IMDB的評分非常高,也叫Cosmos,其中展示了整個宇宙的浩瀚和壯闊,令人震撼。我想專案方給專案起Cosmos這個名號也是有原因的,象徵著區塊鏈世界的浩瀚廣闊。Cosmos的口號喊的很大,大概是我見過最有理想氣息的區塊鏈專案。The Internet of Blockchain 區塊鏈的網際網路同時跨鏈明星專案的Polkadot,其中開發團隊的一篇博文中也起了一個旗鼓相當的口號The Foundation of a New Internet 一個新網際網路的組織結構
這兩個跨鏈專案,無疑都在爭奪的是同一個角色的位置,那就是區塊鏈世界最底層架構。這個角色的重要性可以追溯到整個網際網路的起源時代,類似於奠定網際網路基礎協議的TCP/IP協議。TCP/IP這個協議規範了整個網際網路初期的資料傳輸標準,提供點對點的連結機制,將資料應該如何封裝、定址、傳輸、路由以及在目的地如何接收,都加以標準化,對現代網際網路奠定了非常重要的基礎。如果我們認為區塊鏈是下一個網際網路時代,未來也是多鏈共存的這麼一個情況,那麼提供基礎架構/協議支援多鏈互通是一件非常重要的,而且是必然會發生的一件事。Cosmos作為跨鏈專案最早的參與者,最早可以追溯到2014年,到目前為止已經發展了5年,2019年Q1預計會上線主網。Cosmos的願景是實現代幣最底層的價值交換,即Token交換,讓Tendermint共識成為人們值得信賴的“第三方”,來保證價值互換的安全性,取代目前中心化交易所實現價值交換的方法,消除暗箱操作的可能性,讓密碼學為安全做背書。外掛化,模組化是Cosmos一個典型的特點,可整合性讓眾多基於CosmosSDK搭建的專案獲便利了許多。專案開發方惡意自由定製相關模組,也可以直接使用和Cosmos hub一樣的機制,這是Cosmos希望作為中心的一種市場策略,即儘量降低專案方接入的成本。目前,從Cosmos論壇上看,選擇使用Cosmos SDK搭建的專案已經超過50多種。模組化,外掛化只種,Tendermint就是Cosmos中一個很重要的外掛,也是Cosmos團隊的第一個重磅產品(SDK)。基於該SDK開發的區塊鏈專案可以使用和Cosmos一樣的共識,並可以使用SDK中的IBC(Inter-Blockchain Communication)模組和進行其他連線公鏈進行價值交換。所有交換都會指向到一箇中心(Cosmos Hub)區域,Hub是Cosmos中一箇中心記賬本,接受IBC傳遞的資訊並記錄,最終實現多鏈之間的價值互換,其中的安全由Tendermint Core來保證。
其他重要的模組化還包括Stake模組,獎勵分發模組,IBC模組等。基於Tendermint共識建立的專案,需要自己的驗證人體系,這和Polkadot的分享驗證人機制不同,Polkadot有類似於Cosmos的hub,叫Relay Chain,其中心的驗證人可以幫助連線的側鏈做區塊驗證,而Cosmos的hub只是承擔記賬中心的功能,沒有幫助側鏈驗證的功能,這是兩者非常不同的一種策略。Cosmos測試網跑了大概2年時間,也一直在修正roadmap,我在寫這本書時,Cosmos已經完成測試網的測試,正在進行最終上線前的程式碼審計。代幣情況Cosmos是一個雙代幣結構的區塊鏈,主代幣稱號為Atom,主要用於Stak;次代幣稱號為Photon,主要用於流通性。ICO主要是眾籌的Atom,其總量為68,475,963個,Photon總量不定,按照ETh2:1數量錨定。總共1090人參與了Atom的眾籌,整個募資結構分為ICF 基金會(10%),AIB 開發團隊(10%),Initial Donors 戰略投資夥伴(5%),ICO (75%)。
Cosmos ICO 日期 2017 4月4號,30分鐘募資結束,募資金額1700萬美金左右,其中btc佔1/3,eth佔2/3,按照當時估值為一個Atom0.1美金左右。Atom每年會有增發,增發率7%~22%,具體的比例根據當前Atom Staking的數量。當Stake數量大於整體Atom總量的1/3時,增發率為7%,小於1/3時,增發率為22%。代幣作用Atom的作用主要用於Stake,Photon的作用主要用於流通。因為Cosmos的Tendermint共識是PoS+BFT的混合共識,Stake是保證系統安全的重要因素,加上拜占庭容錯機制的加入,Cosmos對Atom的Staking量要求更要嚴格。Cosmos會有系統增發,越多Atom Stake,增發率越小,這會讓持有人為了防止Atom被增發稀釋,通通來Stake,那麼系統的Atom流通性就減弱,為了提高系統代幣的流通性,Cosmos新發了Photon來代替Atom作為系統流通性的燃料。當然,除了Stake,Atom和其他PoS共識的公有鏈一樣,還擁有鏈上投票的作用。Photon則只是充當手續費的燃料,另外,Cosmoshub支援手續費白名單體系,也就是說,未來只要是被大部分人認同的手續費token種類,都可以被當做為手續費使用代幣。
發展路線Cosmos對自己路線圖的規劃一直都比較清晰,官網對路線圖的記錄頁一直保持著完整的記錄。以下列舉了從第一個測試網以來到即將上線的路線圖:2017-10-19:gaia-1000測試網,支援Token的交易2018-01-31:gaia-2000測試網,全節點和驗證人節點可以升級連線的節點2018-04-20:gaia-3000測試網,社羣成員可以從創世區塊開始,參與網路驗證2018-04-20:gaia-4000測試網,全節點驗證人可以宣告成為驗證人節點
2018-05-02:gaia-5000測試網,驗證節點出塊可以獲得區塊獎勵2018-06-08:gaia-6000測試網,持幣人可以透過委託,將代幣委託給驗證節點2018-06-08:gaia-6000測試網,加入Slash,懲罰不對區塊進行驗證的驗證節點2018-07-16:gaia-7000測試網,支援鏈上治理,簡單的投票2018-07-21:gaia-7000測試網,支援Ledger Nano S 硬體錢包2018-09-28:GoS牛排賽
2018-10-31:gaia-9000測試網,支援區塊和手續費獎勵2018-11-09:gaia-9000測試網,Cosmos SDK v0.26版本2018-12-18:GoS牛排賽,開始測試網測試比賽完成SDK審計結束GoS牛排測試賽以下是未來規劃
· 建議創世區塊的代幣分配· 上線主網在上線主網之後,還要對一些既有提案的表決,決定是否執行,如· Atom的交易:上線主網時,Atom並不能轉移· 支援IBC:上線主網時,跨鏈資產交易還不能進行· 社羣治理
從發展規劃來看,Cosmos算是發展比較順利的,至少從每個里程碑上看,都有在做事情。但是,Cosmos主網上線也是跳票了幾次,本來在2018年中要上線了,現在已經延續到2019年Q1了。從測試網GoS的比賽來看,網路穩定還並不明朗,我很驚訝官網在此時結束了GoS,並宣佈即將啟動主網上線。那既然開發團隊都官宣了,我們就拭目以待吧。設計哲學Cosmos的設計哲學圍繞著兩個方向展開的,一個是擴容,一個是互通。擴容的設計採取了側鏈的方式,非必要且不重要的價值交換都放在側鏈上進行,重要的,必要的的價值交換都放在主鏈上進行,這是目前主鏈效能瓶頸出現下的解決方案。這能有效解決現在的效能問題,並且順從整個生態的發展方向。Cosmos正是這樣的設計思路:讓所有主鏈都連線自己,成為Cosmos Hub的側鏈,並承擔起一箇中心賬本的作用,記錄連線自己的各條主鏈之間的價值互換關係,這也是Cosmos設計哲學圍繞的第二個方面:互通。Cosmos設計了一套中心(中心)-區域(Zone)的模型,每個連線自己的Hub的都是一個Zone,每個Zone有著自己的作用,比如產權鏈,金融鏈等,每個Zone只有需要進行價值交換,即Token互換時才會和Hub發起互動。為此,Cosmos特意設計了一套互動協議IBC(Inter Blockchain Communication)來保證接入的Zone都可以以統一標準進行互動,這樣一來,Cosmos hub就可以成為一個類聯合國一樣的機構,統管,協調來自各個Zone的價值交換。所以可以看到,Cosmos的設計哲學,將解決問題和基礎架構合理的結合在了一起,一方面看到以太坊的效能瓶頸,一方面看到多鏈架構下有交換價值的需要,Cosmos以一個統一的協調方出現,安全,有效的模型讓人們看到了區塊鏈世界,基礎架構的重要性。
為此,Cosmos開發團隊給接入方提供了諸多的便利,提供了基於Tendermint的SDK,用於開發方可以輕鬆實現自己的區塊鏈專案,並整合了接入Cosmos Hub的IBC模組。同時Cosmos專案方還為那些不是以SDK搭建的區塊鏈專案做了連線橋,方便現存的區塊鏈也可以簡單接入Cosmos的中心,進行價值交換。Cosmos SDK實現了多功能模組的可插拔,這意味著以Cosmos SDK搭建區塊鏈專案的專案方有比較大的便利性,也有比較大的可選擇性來建立自己的生態,這和Polkadot專案方只能依賴系統的驗證人系統的方式是大大不同的。這也許就是Cosmos設計哲學給Cosmos帶來的優勢吧。TendermintTendermint是Cosmos的共識名稱,其背後是BFT共識。也有人將Cosmos共識稱作為BPoS,因為Cosmos中也有PoS共識存在。BPoS,其中的B是Bond(抵押金),意思是說Cosmos其實也是一種抵押金的PoS共識。Tendermint中利用的是非常典型的拜占庭容錯方案,一個高度上,驗證人被提前選舉出來,按照投票權重,透過隨機演算法被選出,成為區塊的出塊人,在此高度上打包交易,生成新區塊,然後所有人對新區塊進行驗證,並投票,投票透過後新區塊生成,轉而進入下一個迴圈。投票的過程有兩個階段,一次Prevote,一個Precommit,兩次投票都超過2/3的投票權重,新區塊才得以生效,否則會有新的區塊代替沒透過的區塊來重新發起投票。因為有了投票權重的加入,Tendermint為Cosmos帶來了及時的區塊確定性,這讓Cosmos的交易速率大大提高。
投票權重的概念是PoS在最早提出時就已經明確的概念,意思是持幣人幣量佔總量的比例(而非驗證人數佔據的比例)。Tendermint的安全和投票權重有很大的關係,所以為了讓足夠多的Atom Staking到系統中來,Cosmos定義了動態的高稀釋通脹方案。Staking的越多,稀釋的越少,投票權重也就越高,對區塊達成共識權重也更大,也就更安全。為了提高效能,Tendermint規定了Cosmos Hub在第一年只有100個驗證人位置,然後以每年30人左右的人數增加,人數的增加依賴於網路速度的提升(如5G),這些驗證人以接受的Atom委託量決定是否從全節點轉為出塊節點。Cosmos中的委託和Tezos的委託還不太一樣,雖然都是將代幣權利關係轉移,但是Cosmos中的委託需要使用者一起來承擔系統風險,委託是一個池子的概念,而不是塊的概念。這個池子可能面對很多風險,這個風險可能來自於系統的不成熟,也可能來自於出塊節點的不作為,或者是有意作惡,當發生系統不可預期的情況發生時,系統會扣除池子裡面的Atom,扣除的Atom按照比例攤到每個委託人身上,同時,除了承擔風險,委託的代幣還會被系統鎖定15天左右的時間,來防止長程攻擊。Cosmos是池子式的委託模式,Tezos是基於塊的委託模式,我認為Cosmos這種型別的委託是對Tezos的進一步設計,是將”市場解決“的這隻手變成了開發團隊的直接規定,Cosmos這樣做可以將大量的代幣委託引向社羣名望較大的驗證人,也就是有效的讓代幣趨向於前100個驗證人,這對整體系統啟動有直接作用。這前100名委託量的排名,和EOS投票選出前21個驗證人的邏輯很相似,從這個角度上看,可以將Cosmos的系統看成是一個放大版本的EOS,只不過Cosmos是允許將驗證人給委託/投票的人給與區塊獎勵分紅的,並且將這種分紅模式做成了功能,寫在程式碼(Protocol)裡了,EOS則不行,這樣分紅會被憲法定義為賄選,是不合法的。Cosmos對出塊節點的要求較為嚴格,要求24小時線上,如果出現不線上的情況,會被系統Slash,還有新的提案需要投票時,節點也需要對提案進行投票,不積極參與投票的也會被Slash。這種Slash的制定和BFT的效能,安全都有關係,這也是Tendermint比較典型的特點了。
總的來說,被抽出來的Tendermint共識,被人們看到了輕鬆實現區塊鏈專案的可能性,連幣安的公鏈都是基於Tendermint共識來搭建的,可見,其便利性還是有專案方看中的。Tendermint首次實現了無需信任的Token互動機制,用中心Hub執行共識來保證安全,這種跨鏈技術和其他跨鏈技術,如第三方信任人,雜湊時間鎖等方式並不同。這種方式目前來看,被驗證是可行的,但還需要Cosmos上線來檢測。效能按照主網上線前的測試網(Gos,Game of Stake)演練來看,200+個驗證人,Cosmos的出塊速度為7s左右,TPS沒有真實的資料。由於GoS驗證人超標(主網第一年只會有100個),所以測試網的出塊時間應該是不準確的,如果按照2倍的關係來看,GoS的出塊時間在3s左右。另外一方面,從Cosmos官網顯示的測試資料來看,Tendermint共識的出塊時間在1s左右,TPS在1000+,但不確定這個資料是基於哪個測試網的。不過官網顯示的一般是理論值,所以只能看看。結合真實的測試網資料來看,理論值都需要打對摺,甚至更多,但是,如果僅僅是打對摺的話,那Tendermint的共識應該還算蠻快的。
Tendermint的效能和驗證人數量多少強相關,驗證人數量過多,效能肯定是降低的,Cosmos官網中和了效能和去中心化的需要,第一年定了100個驗證人。按照現在的市場情況來看,1個專案啟動初期能有100個驗證人,就已經非常不容易了,其他基於Tendermint搭建的專案,很可能達不到如此高的數量,從這個角度看,效能還會有所提升。執行Cosmos節點有全節點和出塊節點之分,執行Cosmos的出塊節點有門檻,得到的投票權重必須是前100名之內。節點執行簡單來說只需要兩步:· 執行節點具體操作步驟可以看官網:https://cosmos.network/docs/gaia/what-is-gaia.html· 建立驗證人
執行好節點後,需要建立成為驗證人,並設定自己的投票權重(Voting Power),比如你的賬戶已有Atom,你可以將該賬戶中全部的Atom都設定為投票權重。如果該權重排名不在前100中,那麼這個驗證人將不能獲得選舉出塊的機會。增加投票權重的方式可以透過二級市場購買,也可以從委託使用者處獲得。· 出塊人Cosmos的出塊人也叫驗證人(Validator)第一年只有100個名額,每年新增十幾到二十個位置不等,最終維持在300個驗證人左右,以下是驗證人的年增加情況:Year 0: 100Year 1: 113
Year 2: 127Year 3: 144Year 4: 163Year 5: 184Year 6: 208Year 7: 235
Year 8: 265Year 9: 300Year 10: 300任何人都可以成為驗證人,只需要按照系統要求,執行節點程式,參加到網路維護中來,並獲得足夠多的投票。驗證人的職責很簡單,就是保護網路安全,只需要按照系統要求完成系統所安排的工作,就能獲得系統的獎勵,比如出塊,投票等。當然,驗證人不能做出毀壞系統的行為,比如雙籤,否則會被Slash。下面列舉一下Cosmos驗證人所需要做的工作包括有:出塊:完成指定時間系統的打包交易,生成新出塊的工作投票:參與鏈上治理,決定社羣發展方向
線上:保持投票權重7x24小時線上由於採用了較為典型的BFT,Cosmos對驗證人的線上時間要求極其嚴格。Atom的總量我們知道是系統中所有的投票權重,只有當擁有投票權重超過66%以上的驗證節點出現的情況下,Cosmos網路才會啟動創世區塊。而在啟動之後,Cosmos對於超過66%的共識安全要求,讓節點線上的嚴格性比其他PoS公鏈要強很多。所以最早在驗證人的要求上,Cosmos提出了諸如,要是公司或者團隊,需要硬體伺服器,在社羣有足夠高的影響力等在一般公有鏈上,體會不到的“高大上”要求。但從GoS測試網比賽看來,不是所有驗證人都能滿足如此嚴格的要求。Cosmos的驗證人可以接收持幣人的委託,以此來達到前100名投票權重的要求,當然如果驗證人自己有足夠多的Atom,也可以不接受委託。驗證人接收委託會被要求設定一定的委託手續費,這系統層面的設定,系統會按照這個比例給委託使用者做區塊獎勵的分紅。另外,Cosmos每年增發7%~22%的Atom用於獎勵維護網路的驗證人。這些驗證人獲得獎勵的多少和做的工作量有關係,而工作量的機會獲得是按照驗證人所擁有的投票權重來確定的,權重越高,獲得的機會越多,同樣,獎勵也就越多。目前來說,跨鏈的驗證人還是比較有吸引力的,Cosmoshub承擔了一箇中心驗證人角色,如果這個hub真正成為了區塊鏈世界的Internet,那麼這個中心驗證人的角色,肯定是非常非常重要的。
持幣人持有Atom的人可以將代幣委託給驗證人,來獲得區塊的分紅獎勵。當然,前提是你委託給的是前100的投票權重的驗證人,否則是沒有獎勵的。系統會按照驗證人設定委託手續費,扣除後手續費後,將獎勵傳送到委託人使用者。除了Stake,Atom的持幣人目前還有太多的使用功能。激勵Cosmos的激勵方式有3種· 區塊獎勵(Block Provision),獎勵是Atom,主要是用於獎勵那些Stake Atom的委託人
· 區塊獎勵(Block Reward),獎勵是Photon,主要用於獎勵 Ethermint zone的驗證獎勵· 手續費(fee),獎勵是白名單中的代幣種類,現在有Atom和Photon因為Cosmos是跨鏈架構,所以會多出來一個區塊獎勵,這個區塊獎勵是為了激勵Pegzone區域的驗證的,也就是支援那些不是基於Tendermint共識的區塊鏈專案的。這些專案如果想接入Cosmos,需要有一個單獨的架構來支援,而這個架構的驗證支援,同樣需要經濟激勵,這個多出來的區塊獎勵(Block Reward)就是獎勵給這些驗證人的。Atom其總量為68,475,963個,每年增發7%~22%的比例用作是區塊激勵,按照Stake的比例來決定獎勵數值,但目前具體單區塊,單行為的獎勵還未明確。Photon的初始總量是1:1錨定ETH數量的,最終總量還沒有明確,增發的情況也不確定,因為Ethermint的開發計劃還暫時在擱淺中。另外,為了Cosmos的後續發展,Cosmos設計了一個基金池子,來源是交易費Fee中的一部分,主要是用來資助後續的Cosmos開發人員的工資。懲罰
Cosmos的懲罰Slash方式有以下3種· 雙籤:在同一高度籤兩條不同鏈的區塊· 不線上:沒有參與Tendermint的共識流程,如Prevote,Precommit等· 不投票:沒有參與社羣的治理投票除此之外,還有一些不能太明確的“壞”行為,如節點崩潰,失去連線或是遭遇DDoS攻擊等這些行為都會讓該節點的抵押金被Slash。具體Slash多少還未確定,但可以明確的是,如果發生Slash,委託人的委託金一樣會被Slash。舉一個例子,一個驗證節點有1000個Atom,其中有600個是透過委託來的,由於非惡意的行為,該驗證節點在4545高度發生了雙籤,導致系統扣除了100個Atom。這100個Atom會按照驗證節點的Atom比例來扣除,這裡就是節點被扣除40個,委託人總共被扣除60個。
前面說過,Cosmos對驗證人的要求極其嚴格,要求7x24小時都需要線上,否則會被Slash。節點線上就相當於投票權重線上,這能增加系統被攻擊的成本,這個Slash就是上述描述中的第2點。治理鏈上治理不是Cosmos的特點,Cosmos的治理目前看到的只有鏈上投票,比較簡單,而且沒有上線,相對於Dfinity和Tezos來說,還沒看見什麼創新的方向。問題從我參加Cosmos主網上線前的測試網來看,Cosmos的團隊並沒有像我想象中的出色,第一印象感覺就是人力有限,很多應該在前期由開發團隊主導的工作,並沒有得到及時的支援,反倒是社羣裡面有幾個團隊還比較活躍,幫助開發團隊完成了很多方面的組織工作,甚至是修復工作。但宣傳方面,Cosmos是比較在行的,官網隨著專案進展的多次改版,路線圖的及時更新,以及創始人頻繁在各個大會上的演講,Cosmos的市場宣傳一直在有條不紊的進行。
這也許會給人一種錯覺,只會宣傳,不會做事。但這可能只是我的個人偏見,從Cosmos的另外一個Hub——Irisnet團隊口中得知(Irisnet的團隊曾經是Cosmos中國開發團隊),Cosmos團隊其實是一個非常追求完美的團隊,對很多新的技術都保持好奇心,同時也是很非常積極向上的一個團隊。這點我是比較認同的,但是我也覺得這樣所帶來的問題是,無法明確一個很簡化的產品方向,大而全的設計會導致不可預知的情況出現,導致延期上線,投資者詬病等。相信,這也是為什麼Cosmos主網屢次跳票的原因之一了。另外一個問題就是Cosmos的融資額度有點小了,總共1600萬美元,不知道這個資金是否能支撐Cosmos的開發,好在,融資時,獲得ETH和BTC的價格都較低,且在2017你那4月進行的ICO,如果團隊在牛市將ETH和BTC都換成了法幣,那肯定是可以支援團隊不斷髮展的。目前,Cosmos團隊並沒有公佈財務狀況。未來和Polkadot一樣,Cosmos站在跨鏈的風口,未來還是可期的。如果我們認為未來肯定是一條多鏈的世界,公有鏈,聯盟鏈,私有鏈在各個行業裡面生存,那麼其本身價值的交換就肯定有需求,這個需求在Cosmos看來,可以非常輕鬆的滿足,同時又不會對接入的生態造成破壞。我個人還是比較傾向多鏈架構的,未來的區塊鏈世界肯定不是一條公鏈主導,而是多鏈並存的情況,那麼多鏈並存的底層基建就是強需求,那麼最早開始搭建的Cosmos,是有一定優勢的。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;