SPoS共識機制簡介:SunnyKing從去中心化到多中心思維改變

買賣虛擬貨幣
第0章 引言Vsystems的白皮書有兩份,一份是vsystems的系統白皮,另一份是SPoS共識機制白皮書,可見在SunnyKing的團隊裡,SPoS共識機制的定位是相當重的。第1章 什麼是共識機制區塊鏈系統是一個分散式計算系統,即由許多節點(電腦)共同維護一個賬本。區塊鏈維護賬本包括誰來更新新賬本頁,和在所有節點中同步賬本。共識機制就是在區塊鏈系統內,讓所有節點達到一個——由哪個節點來更新新賬本頁,並且其他節點會將自己的賬本同步到該最新的賬本頁——的共同的決策方法論。更專業的術語是,共識機制是決定哪個節點能出塊的演算法。
第2章 去中心化共識機制比特幣的共識機制是工作量證明PoW,點點幣的共識機制是權益證明PoS。PoW和PoS都是去中心化的共識機制。PoW和PoS都沒有規定一共有多少節點可以出塊,理論上出塊節點可以是無限個。PoW機制是系統發一個“目標值”,這是一個數字,比如前面19個零的數字,只要你的節點能夠提供一個透過特定演算法計算出來的前面有20個零的數字,你就可以獲得出塊的權力。PoW機制下是要消耗能源來完成計算,我認為這是合理的。不過整個加密數字貨幣社羣有很大的聲音認為PoW不對,浪費能源。PoS的誕生就是基於反對PoW消耗能源。PoS是所有節點出一個叫“幣齡”的值,“幣齡=幣數x持幣不動的時間”,比大小,誰的幣齡大,誰就獲得出塊的權力。
PoW和PoS這種模式是可以實現去中心化,任何人,都可以買礦機或買幣,加入出塊的博弈。PoW的出塊原理決定了競爭出塊是需要消耗真實的能源的,在同一高度上,哪怕你是沒有競爭到出塊權,你也是真實消耗了計算能力。在每一個高度上誕生出新塊後,之前所有的計算全都報廢,大家又同時站在同一起跑線重新計算。PoS出塊是要真實消耗幣齡的,一個PoS節點一旦獲得了出塊權,那它的幣齡就歸零了,要重新積累參與博弈。但只要你不出塊,你的幣齡就不會因為別人出塊了而消耗。這和PoW是不一樣的,PoW是別人出塊了,你的計算就得清零。目前純PoS共識機制好像流行,點點幣已經被邊緣化了。ADA幣看起來是最成熟的PoS。ADA幣的PoS模組被Fork的最多。PoW和PoS的出塊還有一個大特點,就是出塊在時間分佈上是隨機的,只能在統計意義上獲得一個平均的出塊時間。比如比特幣的出塊時間平均是10分鐘,但具體的兩個塊時間間隔可能是幾秒鐘,也可能是1個小時以上。第3章 多中心共識機制——SPoS
中本聰透過比特幣發明了PoW機制。SunnyKing透過發明點點幣發明了PoS機制。PoW工作的非常好,但PoS並沒有大量流行。SunnyKing曾經發表過一篇文章描述他的認知升級,他認為真實的世界是多中心的。整個人類就是一個多中心的世界,一個國家就是一箇中心。多中心形成龐大的系統。SunnyKing思考去中心化在效能上遇到了瓶頸,大量的真實世界並不是去中心化的,自然的演化形成多中心的系統。而比特幣挖礦礦池的誕生,大礦場的誕生,也證明了多中心是一個複雜系統演化的方向。所以,SunnyKing在他的新區塊鏈系統中採用了多中心的架構——SPoS。在SPoS機制下,出塊節點的數量是有限的,目前vsys一共15個出塊節點,叫超級節點。超級節點分成兩類,一類是“候任節點”,一類是“在任節點”。在任節點是可以出塊的節點。要成為出塊節點,需要先完成“挑戰”。“挑戰”的過程就是將“在任節點”選下去,自己成為“在任節點”。“挑戰”是使用“加權平均幣齡”這個引數來完成。vsys幣同樣是有幣齡的屬性,這和比特幣、點點幣是完全一樣的。“幣齡=餘額x持幣天數”,以“幣天”為單位。只要持幣不動就可以累計幣齡,幣只要轉移其幣齡就會被銷燬。
但是幣齡在比特幣這種UTXO模型下是非常方便計算的,因為UTXO和錢包裡的餘額是不同的概念,錢包餘額是UTXO的總和。幣齡只需要計算UTXO剩餘持幣天數,錢包裡的餘額的總幣齡就是所有UTXO幣齡的累加。但在賬戶制下,比如以太坊,計算幣齡就非常複雜了,因為一個賬戶有多筆金額轉入時,餘額會變成一個數值,無法像UTXO那樣非常方便地區分輸入。在vsys幣裡,為了實現幣齡更方便地計算,使用了“已確認餘額”的屬性來計算幣齡,具體的計算公式很複雜,我們不用管,你可以簡化成是將區塊確認數和賬戶餘額相乘。在SPoS的白皮書裡,還描述了更多的計算細節,以在工程上實現“節點”的“挑戰”與“被挑戰”。包括一些攻擊解決辦法。數學上的證明,我們就不用管了,我們只需要理會里面的精神就好了。使用者持有vsys幣,在錢包裡可以有傳送接收操作,這就和我們傳送接收比特幣一樣。vsys幣還有一個"租賃"操作。允許使用者將自己的vsys幣的“已確認餘額(即幣齡)”的屬性“租借”給超級節點。超級節點累加借來的所有幣的“幣齡”,一旦超級節點的“幣齡”擠進了全網所有節點“幣齡”排行前15名,就可以透過“挑戰”操作將“在任節點”幣齡最後一名挑下馬,自己成為“在任節點”。“挑戰”操作需要消耗超級節點5萬個vsys。使用者發起“租賃”操作,只是將“幣齡”租借給超級節點使用,而私鑰依然是使用者控制,使用者依然是可以隨時發起“傳送”和“接收”操作的。“在任節點”需要時刻關注全網其他“候任節點”的“幣齡”,一旦“幣齡”被比下去了,那“在任節點”就可能會被挑戰,從而被擠出去。
在超級節點挑戰成功後,就獲得了出塊權。系統有一個叫“槽位”的概念,每一個超級節點佔據一個槽位,共同構成一個有順序的環,輪流有序出塊。目前vsys系統設定15個可出塊的超級節點,將1分鐘切割成15份,4秒一份,全網4秒出一個塊,15個節點輪流有序出塊。SPoS機制還可以升級成更多的超級節點數,vsys在將來會在需要提升效能時將節點數提升到30個,2秒出一個塊,在更遠的未來會提升至60個超級節點,1秒出一個塊。SPoS機制下,出塊節點成為一箇中心節點,它們共同組成多中心的系統。SPoS機制的特點是系統設定固定數量的出塊節點,和節點按順序出塊,出塊時間是固定的。採用SPoS,可以獲得相對去中心化共識機制更高的出塊速度,更高的tps。在網路結構上多中心機制和去中心化機制是有質區別的。去中心化共識機制的節點是一個P2P網路,各個節點之間需要網路發現探測各自在哪裡。但多中心節點的系統,節點之間共同組成一個有序網路,相互之間是知道各自存在的。第4章 多中心共識機制——DPoS現在更流行的多中心共識機制是DPoS,這是BM發明了位元股和EOS帶來的,其內建的共識機制是委託權益證明DPoS。
DPoS是一個多中心共識機制,其特點是系統設定固定數量的出塊節點,和節點按順序出塊,出塊時間是固定的。在DPoS機制下,同樣的,節點有兩類,一類是“候任節點”,一類是“在任節點”。在任節點是可以出塊的節點。要成為出塊節點,需要先完成“競選”。DPoS機制下的“競選”選票是幣的“投票權”。在DPoS機制下,幣有一個屬性,叫“投票權”,使用者可以透過鎖定幣來獲得“投票權”,即使用者要放棄幣的“流動屬”性才能獲得“投票權”。在EOS系統裡,任何使用者的EOS幣都可以透過鎖定來獲得一些特性,包括“記憶體資源”“CPU資源”和“Net資源”,還有就是一個幣獲得“30張投票權”。這“30張投票權”對一個節點來說,只能投一次,你不能說我給一個節點投30張票,但你可以投給30個不同的節點,一個節點一張票。使用者鎖倉幣的行為會讓幣喪失流動性,贖回需要3天。DPoS機制下“候任節點”向全網公佈自己的被“投票賬號”,你要吸引足夠多的票數。EOS系統設定21個可以出塊的“在任節點”,節點之間透過比“票數”多少來競爭,票數前21名競選成功。BTS也是類似的。
在節點競選成功後,就獲得了出塊權。系統有一個叫“槽位”的概念,每一個節點佔據一個槽位,共同構成一個有順序的環,輪流有序出塊。“在任節點”需要時刻關注全網其他“候任節點”的“票數”,一旦“票數”被比下去了,那“在任節點”就會被擠出去。採用DPoS,可以獲得更高的出塊速度,更高的tps。比如EOS就是現在所有鏈裡出塊最快的,0.5秒,tps可以達到千,真實峰值達到過3000多。第5章 多中心vs去中心化SPoS和DPoS,vs, PoW和PoS。顯然,在區域鏈的效能上,包括確認時間和tps,這兩個指標上多中心要明顯優於去中心化機制。
多中心的缺點在於抗打擊性上。去中心化機制是的出塊節點可以是完全匿名的,出塊節點是無須許可加入網路的,這樣的機制是很難被消滅的。你消滅了任何一個出塊節點,對整個網路的影響是非常小的。你又不可能同時消滅所有的出塊節點。多中心機制則有可能被同時消滅,因為多中心的節點想要匿名更難,整個網路結構決定了,這是一個需要某種許可的機制。當然,兩類機制的差別還遠不止這一些,但評估這兩類共識機制不是本文的重點,以後有機會再講。第6章 中心共識機制哈哈,中心共識機制就是“伺服器-客戶端”結構啦,賬本由中心節點負責維護,即“出塊權”全部歸中心節點。銀行、支付寶、微信支付都是中心共識機制。
第7章 結束語很多人講“多中心化”,我怎麼都覺得這個“化”字多餘。“去中心化”是一個動詞“去”,“化”這個詞是一個描述這個動作後的結果。但“多中心”,這裡面沒有動詞,就不需要“化”了。

免責聲明:

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

推荐阅读

;