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