《讀懂區塊鏈PoS共識》第四五章 PoS中的效能與擴容 & 激勵與懲罰

買賣虛擬貨幣
第四章 PoS中的效能與擴容效能一直以來都是困擾區塊鏈專案的問題,從BTC到ETH,效能問題在2017年的牛市當中暴露出來,並以極其悲觀的速度散播開來,什麼一漲網路就卡,什麼一個遊戲拖垮整個公鏈,幾乎瞬時間,面對BTC和ETH的擴容方案如雨後春筍般不斷冒出,那些透過白皮書宣傳每秒可以處理百萬級交易的專案受到了熱捧。大區塊,閃電網路,DPoS,側鏈,zk-SNARKs等方案開始走入人們的視野,其速度更迭之快,頗有科技大爆炸的感覺。這些方案大都帶著誠意而來,但面對這Vitalik曾提出來的區塊鏈鐵三角定律,多多少少有點缺胳膊短腿的感覺。效能,安全和去中心化,這3個指標沒有專案能達到三全,兩全的專案大都突出自己的強勢,而忽略了自己的劣勢,市場上的投資者缺少對技術的認知,大都被宣傳矇蔽了雙眼,他們的追漲也助推了區塊鏈專案改變效能的浪潮。從大區塊紛爭到進入新的共識時代,對待效能擴容,人們起碼已經經歷了兩次效能升級了。1是BTC的大區塊擴容,2是共識時代帶來的擴容。在我們所接觸到,已經實現的擴容方案中,大區塊擴容,共識升級和側鏈方案也是離我們最近的,也是最容易理解的。大區塊的擴容發生在BTC上,這個擴容引發了,起碼是至今區塊鏈史上最大且多次的社羣分裂,BTC成功被同一個社羣多個人分裂成了不同的專案,BCH,BSV,SBTC,LBTC......高達10多種的社羣分裂幣,把整個加密貨鏈報搞的“烏煙瘴氣”,削弱了很多人對BTC的共識,也給其他Token帶去了希望。共識的擴容已經脫離BTC的本質,從PoW的共識改變到了PoS的共識,PoS共識帶來了合作社形式的共識,讓PoW礦工的競爭關係變成了合作,這讓整個共識效率得到了非常大的提高。而另外一方面,由於PoW礦機出現了長時間的軍備競賽,大量的算力被導向了單一礦池,去中心化程度堪憂,PoS共識的提出有助於解決中心化的問題,這個提出在2014年,Vitalik提出將以太坊的PoW共識改成PoS共識時達到高潮。
我們簡單說,PoS改變效能是基於PoW了。PoW的礦工透過同時計算一個雜湊值,誰先計算出來誰就勝利的方式,獲得共識,但也使得礦工之間浪費了不必要的能量,特別是時間。PoS的礦工透過選舉演算法的方式,隨機輪流在指定時間確定出塊,並達成共識,這種由系統決定的次序會比爭奪位置獲得機會的效能要最佳化很多。所以我們在2014年後,看到越來越多基於PoS共識的公有鏈專案,提出了高於ETH的效能口號,並且是高出指數級別以上的。當然,共識上的優勢並不能讓PoS專案滿足,況且PoS共識的效能也無法和現實中的Master和Visa相比較。據瞭解,Visa的交易處理速度能達到4000筆/s,而2018~2019年開始執行的公鏈專案,EOS的TPS最高峰有達到3900,平常也只有60~70左右,而大量PoS公鏈也只有100以內的TPS,這樣的TPS針對分散式網路來說,已經算是比較高的,但是還是不能滿足當今顯示的商業需要。當人們看到了PoS共識能帶來的效能有限的情況下,基於PoS擴容的方案也逐漸開始出現,其中側鏈和zk-SNARKs是目前比較常見的兩種方案。側鏈側鏈解決擴容是目前業界一起探索的方向,從閃電網路開始,到Plasma,再到Cosmos,Polkadot這種由側鏈組成的專案,側鏈方案已經開始慢慢從研究走到應用當中。側鏈的解決辦法是將非必要的計算放在側鏈上計算,只把重要的狀態同步到主鏈。按照Cardano的設計方案,主鏈由於承擔著較為主要的價值傳輸,要設計的儘可能的簡單,只有簡單才能達到足夠的安全,而不會因為程式碼太過於複雜審計不出bug,其他對安全不是更高優先順序的計算,可以統一放到側鏈上來計算,最後將側鏈計算的結果同步到主鏈即可,這樣很好的解決效能和安全的衝突問題,把三角問題放在了一個不同空間維度來解讀。
另外一個更深化的解決側鏈方案是類似Cosmos或者Polkadot的解決方案,Polkadot建立了一個萬鏈互聯中心,讓各個公鏈都變成了Polkadot的側鏈,這樣的Polkadot可以掛超過100條的側鏈,這種擴容方案是指數級的,可以更好的承受計算壓力。當然,這些所有的Polkadot“側鏈”同樣可以有自己的側鏈系統,比如Loom專案的側鏈專案就形成了Cosmos的一個Zone,叫Plasmchain,並掛在了以太坊專案專案。目前,側鏈的方案都在陸續開發當中,碰到的主要困難在於安全問題,像Plasms這樣的側鏈如果掛在以太坊下面,需要考慮側鏈對於主鏈的安全問題,還有考慮主鏈的ETH跑到側鏈後是否可以追回的問題等等,這些問題都是目前在困擾著側鏈專案的,所以還沒有看到一條真正跑得很順的側鏈,實際的應用上更是少之又少,比特幣的閃電網路算是一個,Omisego的Plasmachain也是一個,但是他們的應用實在太少了。側鏈雖然是一個種很好的解決方案,但是離我們還有點1~2年,甚至更遠的時間。zk-SNARKszk-SNARKs,一種新型的零知識驗證(零知識驗證就是驗證:我能證明我知道問題答案,但卻不用告訴你答案),簡潔,不需要大量互動驗證,不需要雙方線上,相對於傳統的驗證方法,驗證快,體積小。最早運用在Zcash上,於18年10月份升級成2.0版本——Zcash sapling,官方部落格放出了兩個版本的對比圖,驗證時間從37s縮減到7s,體積從大於3GB縮減到了40M以內,質變。從此Zcash可以告別只有10%資源用於匿名交易的限制了。
業界對於zk-SNARKs的研究也從來沒停止過,但究其從大量的數學驗證到工程實現太過於複雜的原因,實際發展的並不太盡如人意。Tezos在2014年的白皮書裡面表示,未來利用zk-SNARKs將匿名交易帶入Tezos的意向,Vatilik也早在16年12月Medium上發表了關於zk-SNARKs的系列文章,從數學方式到程式碼層面做了詳細的解釋;Eli Ben Sasson,這個為再備受Vatilik推薦的大神,其基於zk-SNARKs的STARK匿名演算法,STARKWARE也正在這一方向上前行。對於zk-SNARKs,匿名和擴容似乎可以並存,因為2.0版本當中,Zcash的部落格這麼描述,此次的提升:This rough estimate indicates an 80% reduction of proving time, and a 98% reduction in memory usage which is a key requirement for opening up mobile support for Zcash shielded addresses.減少80%的驗證實踐,98%的儲存。這個驗證過程不確定是否可以用在Tezos的驗證階段,在Tezos的1分鐘出塊過程中,出塊節點是提前選好的,從打包交易到廣播全網也很快,花費最多的時間在32個驗證簽名,如果zk能解決這個驗證速度,將對效能有大的改善。那zk-SNARKs的擴容方案怎麼實現不捨棄去中心化的前提下擴容?
zk透過縮減驗證體積,加快驗證速度來提高效能,這是個數學解決方案。也就是說,通常區塊鏈廣播交易,需要所有驗證人驗證並簽名後,才能確定為真(有些鏈的簽名還不是最終確定性,Finality),這其中驗證簽名的過程耗時過長,導致效能受到影響。分片透過縮減簽名人數,Cosmos透過指定人數的投票透過提前得到確定性,EOS透過減少驗證人人數達到全部驗證的快速度,這其中都是透過減少人數來達到的,而zk縮減的是驗證過程,而不是人數,那麼確實是可以保證之前的去中心化的情況下,提高效能的。zk本身是一個零知識驗證,這個驗證過程本用於隱私交易,但目前看來本地演算法生成驗證材料的速度要比網路傳播驗證要高了去了,這就是zk擴容的本質了。就像現在的edxxxx演算法生成公私鑰對一樣,不聯網就生成了,毫秒級別的,如果把大量驗證的過程變成zk的本地演算法,提交廣播驗證的資料壓縮到非常小的範圍,那效能的提高可見會是指數級的。當然,zk的演算法同樣中所周知的缺點:在零知識證明協議部署前,需要設定一些初始引數,這些引數將在每一次證明與驗證中被用到。引數生成後,引數生成演算法執行中使用的所有資料必須銷燬,否則整個協議將不安全。那麼這次引數的生成必然會有一個來源,這個來源如果是偽隨機數還不能被找到規律,如果是真隨機數還得頭大,且找到可靠人來執行,兩種來源的弊端是明顯的,那麼這個問題就出現了:我們怎麼相信一個這麼依賴的公共引數的系統協議呢?隨著協議的發展,我們看到了解決該辦法的兩種方案
允許人,無人數限制,無門檻的進入到提交引數的過程中,並公然銷燬資料(如Zcash 2.0上線前做的The Power of Tau活動,有興趣的小夥伴可以google一下這個有意思的活動)Eli Ben-Sasson 也提出了另一個具有競爭力的零知識證明協議 STARKs,該協議可不需要考慮可信設定的問題,並依賴於較少的數學猜想。目前的發展也在進行當中,這也是為什麼我在上面說zk有機會成為既可以保證去中心化的同事,又可以進行擴容的點了。可喜的是,第一個方案已經在Zcash上踐行,並且執行快幾個月還比較完好,所以,我們還是有理由期待zk在PoS其他專案上的擴容的。側鏈解決的是資料的分層計算,zk這種方案是儘可能減少資料之間的互動,儘可能的較少資料大小,所以兩種方法是不同維度的解決方案,自然,zk也可以用到側鏈上去,減少側鏈互動,提高效能。現在區塊鏈的效能最佳化在減少底層架構,和上層資料交換上是一個大方向,有很大的最佳化空間。第五章 PoS中的激勵與懲罰為什麼PoS系統當中需要激勵?沒有激勵行不行?多少激勵才足夠?
區塊鏈的定義來源比特幣,比特幣立志於成為一種無政府主義的電子貨幣,擺脫中心化集權的控制,並且給所有人帶來自由。自始至終,比特幣給廣大人們帶來的印象就是去中心化和自由,但是,社會發展到今天,我們已經習慣了這種中心化思想形成的社會結構。國家,公司,乃至家庭,都是不同形態下的中心。當我們要把去中心化當成主流的時候,我們會發現,我們要付出的代價,其實不小。特別在我們享受比特幣帶來的去中心化思想時,往往我們忽略的是自由背後所帶來的成本。作為一個去中心化的社羣,比特幣需要人執行程式來維護,而且越多的人維護,系統越安全。以往中心化公司執行的成本,其實相當於均攤到了維護網路的每個人。那麼這些人的成本誰來承擔?難不成都是心甘情願自掏腰包嗎?不太可能,所以比特幣的分發成為了激勵手段,以及比特幣背後的自由思想所帶來的憧憬,給所有維護的人們畫了一個大餅,這個大餅帶著自由之光,照亮了人們對於未來暴富的無限遐想。所以,我們看到的是,比特幣實現了去中心化的自由,用了一種激勵的手段解決人們前期所付出的成本,這個可能不對等,但是確實一種很好的價值背書。那麼我們就不難理解了,作為PoW後時代的PoS,自然同樣需要激勵來維護去中心化所帶來的成本。但是由於PoW算力挖礦的方式,被PoS的權重挖礦方式所替代,意味著網路執行初期,就需要有足夠的幣來進行挖礦。同時,足夠多的幣才能像足夠多的算力一樣,更安全的保證去中心化的網路執行,那麼PoS的激勵不能像比特幣一樣,由剩餘總量作為獎勵,而是透過增發通脹作為激勵了。增發是PoS上最為常見的一種激勵手段,常年保持一個比較合理的增發率,來激勵礦工有足夠多的動力維護網路。網路的初期發展特別重要,所以通常,線性改變的增發率會把初始值設定的足夠大,以此來吸引更多的驗證人。同時,這也作為吸引已存在代幣參與到(Staking)網路中來驗證區塊的重要點子,不參加網路安全驗證的代幣會被增發的代幣稀釋,這就是著名的PoS稀釋性通脹的概念。而後,增發率/通脹率會成為一個變化值,至於是多少合適,沒有人能準確得出來。現在世界裡面的貨幣政策,通常是伴隨是通脹和緊縮同時發生的,在合適的時間使用合適的貨幣政策,是目前我們所能認識到的。比特幣給我們帶來的緊縮手段,PoS帶來的通脹手段,都是區塊鏈世界裡面的一組實驗。所以很多PoS公有鏈並沒有把通脹率定死,而是初期定值,然後定價權交由社羣定奪。
以太坊ETH把通脹率定在了年3%,Tezos和EOS把通脹率都定在了5%左右,Rchain把通脹率定在了7%,Cosmos把通脹率定在了7%~22%。目前來看,2019年要上主網的專案中,通脹率初始值都在5%~10%,看來是業界普遍的認同。倒不是說這個是最終的答案,或者說根本沒有人知道答案,真實的世界裡總是複雜的,所以,拍腦袋決定是也是一種好的辦法,而只要有一個人拍了腦袋,後面跟著的人連腦袋都不要拍,跟著就好了。激勵PoS上的激勵機制從比特幣衍生而來,比特幣需要礦工維護網路的執行和去中心化,那麼激勵礦工參與網路是需要的,受利益驅使,人們會追逐礦工出塊所帶來的利潤,比特幣將鑄幣分發做成一種激勵機制,使用固定總量,分發稀缺性來吸引大量礦工湧入,成為比特幣網路維護的一員。PoS共識網路也一樣需要維護,但是PoS的激勵和比特幣的激勵不一樣,PoS是新增鑄幣(PoS的存量已經在初始分發時分發出去了,相當於一些PoW專案裡面的預挖),比特幣是存量鑄幣,所以PoS的通脹設計和比特幣的存量分發設計有些許不同,造就了兩種激勵本質上的不一樣。PoS共識中,激勵分為兩個重要階段
· 啟動· 去中心化PoS網路啟動之初的通脹設計,是PoS網路重中之重,為了防止初始Stake的不足,導致的攻擊成本過低問題,初始的激勵要足夠大,吸引人們將代幣進行Staking,否則,短程攻擊可能會發生,交易激勵可能會被篡改。一般情況下,啟動主網時,開發團隊會利用初始分發中留給自己的代幣(一般是20%)先行Staking維護網路,同時禁止其他節點進入,在保證整個網路執行一段時間後(一般是小一個月),再開放給所有持幣人。而在網路順利啟動之後,去中心化又成為了一個重要的激勵方向,為了防止大戶更大的情況出現,很多專案會在獎勵激勵上做文章,比如單一節點的總量超過整體總量的1%時,超出部分將會的線性較少的獎勵,或者不會獲得獎勵。比如有一個大戶持幣量1.2%,那麼0.2%的量是獲得不了獎勵的。這樣可以有效的控制PoS中的大戶恆大的問題。其次,很多PoS專案會致力於將節點出塊,驗證程式做得足夠簡單,依賴的裝置隨手可得,讓持幣人能簡單的參與到專案Staking中來,也會使得專案更進一步的去中心化,而不會因為無技能,無裝置而導致無法參與網路執行PoS中的激勵是通脹型的,通脹的比例作為引數被寫到了創世區塊中,作為可改引數,意味著社羣有權利對通脹率進行修改,從而滿足不同時代下的需求。區塊鏈專案活的時間還不夠長,所以這個數字目前還未曾被修改過。不同專案的通脹率會在一個範圍內(2%~20%)浮動,初始值在5%~7%,或有線性減少或是線性增加的趨勢,來保證合理性。
激勵的具體行為一般PoS公有鏈,為了維護網路不會暫停(Halt)或者是崩潰(Crash),會盡可能的激勵出塊人正確行為,同時會對不良行為給與懲罰。這和現實中正向引導,反向打擊的邏輯是一樣的。區塊鏈的區塊是按一定時間一個個接著形成並連在一起的,區塊鏈的資料是保證正確並不能被修改的,所以我們可以看到一些具體被激勵的行為,包括· 出塊(驗證,打包交易)· 簽名(驗證被打包的交易)· 披露(披露用於生成出塊人選舉的隨機數)· 譴責(舉報出塊人不良行為)
· 線上(長期保持節點線上)· 治理(參與鏈上治理行為)所有的行為對於區塊鏈的維護是有影響的,只要這些行為被正確執行,很大概率下,區塊鏈會一直執行下去。當然,隨著區塊鏈的發展,更多新的技術會被帶入到現有區塊鏈中來,那麼這些新的技術又會帶來新的問題,導致區塊鏈停止執行,甚至崩潰,屆時新的解決辦法又會被引入進來。除了以上約束外,PoS中的激勵中還存在著一些隱患,這些隱患可能還隱藏的比較深,目前沒法對其做約束或者無法約束。另外,POS激勵有很多自己的問題,比如大戶問題,選舉造假問題等,同樣,相對於比特幣,PoS激勵和比特幣激勵也有著相同的一些問題,如激勵不足,激勵單一。下面我來說一下幾個和比特幣相同的問題。激勵不足
穩定的網路依賴於穩定的礦工群體以及穩定的代幣參與(Stake),兩者都依賴於系統代幣對法幣穩定的匯率,或者是說有不斷上漲預期,這樣才能讓整個激勵得以繼續。從2012年到現在,Peercoin,Nxt,Blackcoin等,我們看到了太多專案因為幣價掉的太多,導致激勵不足的情況出現了。這樣會形成一個惡性迴圈,當系統對驗證人的要求更高,驗證人為此投入的成本越多的時候,我們發現,幣價無法補足人們在其投入的資金,這使得網路的順利維護有不好的預期。在法幣本位的今天,代幣作為激勵的方案是區塊鏈主流,但卻不是商業主流。當驗證人成為一種專業的工種之後,辛勤工作卻不能養家餬口的話,是比較諷刺的。2017年到啟動的牛市,把很多人帶入到了幣本位的道路上,但是這些人很快就發現,幣本位在短期內基本都是虧錢的,虧法幣的,這點對於一個創業公司來說,太致命了。所以,代幣作為激勵的手段,經常會出現激勵不足的問題,如果在1~3年的時間裡面,不能帶來足夠的激勵的話,那麼驗證人很容易會離開這個網路。激勵單一激勵不足的另外一面就是激勵太單一,代幣激勵是一方面,另外一個方面是驗證人獲得獎勵的機會。目前,提供給驗證人獲得獎勵的主要機會就是出塊和驗證(不同的鏈有別的一些細微的機會設定),這和該驗證人持有的幣量權重或者是接受委託的幣量權重是息息相關的,導致的結果就是驗證人如果幣量權重不夠高,那麼他獲得的獎勵是很少的。比如一個驗證人持幣量持幣量只佔據整個網路中代幣的0.01%,那麼他只能獲得整個網路0.01%的出塊和驗證機會,別以為0.01%已經很少了,PoS系統中小於該總量的人大有人在,這和世界上,20%的人佔據了世界總量80%的財富是一個道理。PoS代幣中,估值往往是幾十億美元,0.01%就是幾千萬美元,有多少人能有幾千萬美金的?所以,佔據總量0.000001%就很不錯了,那這0.000001%對應出塊獎勵就很少了。
所以,我們可以看到,這已經天然的形成一定的門檻,這個門檻會因為激勵的不足以及單一,使得幣量少的驗證人慢慢離開網路,最後只剩下頭部的玩家,整個系統又變成了有錢人的天下,強者恆強。這和我們在比特幣上看到的礦池是境況是一樣的。無法解決的問題?目前的各種嘗試當中,沒有一個方案可以完全解決此類問題,大都為嘗試性的解決,但觸動不了根基。本質上,無法解決的問題是貧富差距問題,任何事情一旦和錢掛鉤,就無法擺脫別人已經比你有錢的事實,企圖劫富濟貧,那是武俠小說,不是現實世界。中本聰願景是讓所有有電腦的人參與到比特幣的挖礦中來,這本質上就把一部分沒有能力購買電腦的人隔離開了,所以世界上無法做到完全的公平,在去中心化的世界裡面,也一樣。但是,我仍然很喜歡看到區塊鏈世界裡面,為此付出的嘗試。比如Cosmos的官方客戶端會針對頭部驗證人做出警示提醒,或是消減平均的收益率,又比如Tezos裡面的接受委託和抵押金息息相關,自己沒有抵押金,則無法獲得獎勵。這些都是防止強者恆強的手段,雖然觸發不到根基,但是有一定的作用。
懲罰比特幣裡面對礦工是沒有懲罰的,硬要說有懲罰,那就是礦工挖出來了孤塊。孤塊是比特幣裡面被拋棄的塊,合法,工作量證明足夠,只不過是因為廣播速度或是計算問題等原因,並沒有被大部分節點所接收到,而是被另外一個塊替代了。挖出來的孤塊是沒有比特幣獎勵的,對應的礦工需要自己承擔算力成本,所以競爭條件下,付出了算力卻沒得到獎勵,也算是變相的一種“懲罰”。而我在這裡說的懲罰,是PoS中獨有的懲罰機制,叫Slash,不同於PoW的“懲罰”。PoS中的懲罰機制是用來懲罰PoS中礦工的不良行為的。具體的不良行為由不同的鏈自己決定,雖有不同,但大致都是一個原則,那就是保證系統穩定,任何嘗試分叉,雙籤,和長期不線上的礦工,基本上都會被懲罰。當然,這裡的懲罰不單單是和比特幣一樣的沒有獎勵,同時還會扣除出塊人/驗證人在系統裡面交的抵押金,相當於是雙重懲罰。抵押金是PoS懲罰機制中獨有的設計,抵押金的引入是解決PoS中多方面問題的一個綜合解決方案。在PoS共識中,礦工由演算法根據持幣量權重選出,這些礦工在出塊時,作惡的成本要比PoW小的多,因為可以無限制的出塊,出多個塊,簽名分叉鏈等,不誠實的礦工會想盡辦法作惡來獲取更多的利益。在沒有抵押金的時代,這個動機顯得十分充足,2012年~2014年的那些年代,礦工幾乎可以隨意的“攻擊”這個網路,僥倖來欺騙系統來獲得更多的獎勵。PoW裡面出塊是有成本的,需要消耗算力,電力等,礦工好不容易獲得了出塊機會,如果嘗試攻擊系統,一旦被其他礦工識別出來,失去獎勵的成本比作惡獲得的獎勵要大,所以這麼做就得不償失了。而PoS中,出塊人的自由度是沒有成本可言的,本質上就和PoW區分開了,這就是PoS裡面著名的Nothing at Stake的問題(這個問題會在第九章節有具體描述)。
所以引入抵押金後,系統會對礦工行為進行檢測,一旦發現檢測不法行為,系統將會扣除礦工的抵押金。而礦工因為擔心抵押金會被扣除,自然也不敢作惡了。Slash2014年1月,Vitalik Burtain首次提及了Slasher,後Slash這種手段被廣泛應用於PoS共識當中,作為了PoS中解決網路安全的一個重要手段。Slasher可以被翻譯為“劊子手”或者扣除人,Slash可以被翻譯為削減(開支),或者意譯為扣除抵押金。當時的區塊世界,PoW還是主流的共識,很多專案在開始往PoS共識轉,但也是這時候PoS上一個重要的缺陷(Nothing at Stake)開始暴露出來,這種缺陷會導致鏈分叉,從而使得雙花攻擊成功的概率大大提高。Vitalik提議用懲罰的手段將出塊人的企圖扼殺在搖籃當中,這種方法叫做Slasher。區塊鏈對分叉或者重複提交行為進行檢測,一旦檢測出來,該行為就會被懲罰(Slash),而懲罰的抵押金意味著Nothing at Stake變成Something at Stake。那麼Somethin at Stake中的Something指的就是現在抵押金(bond,或者叫secure deposit)了,抵押金作為出塊人出塊的基礎,誠實的出塊人並不會害怕抵押金被扣除(Slash),因為他們不會去篡改程式,進行雙花攻擊,而不誠實的出塊人因為抵押金可能會被扣除的可能性,動機減弱。
Slash的抵押金會被回收到系統中,不同系統對Slash的抵押金的處理不同,一般情況下,會全部銷燬(burn),一些系統有舉報人,如Tezos,Polkadot,這些系統Slash的抵押金會把少部分給舉報人,大部分銷燬。還有一種設計就是一部分銷燬,一部分流入基金會的統一池子,用於後續的社羣/專案資助。但是,Vitalik並沒有在2014年發表的部落格中介紹Slasher具體的實現,也沒有提到抵押金,只是闡述了一下Slash的方法論。後Slasher經過4年左右時間的發展,已經逐漸發展成為PoS共識當中一個重要的標配功能。Slash的具體行為現在我們知道了Slash的物件是出塊人,Slash的結果是抵押金被扣除,獎勵也無法獲得。下面我來說一下Slash的具體行為。不同系統對於Slash的行為不同,Slash的多少也不相同。我列舉了一下通用的會被Slash的行為,如雙塊:指在同一個高度下,一個出塊人出多個塊雙籤:指在同一個高度下,一個驗證人驗證了不同鏈上上的塊;或者指在同一高度下,一個驗證人在一條鏈上的同一個塊,籤多次名
有些專案還有把節點線上時間和投票情況作為可能會被Slash的行為,對於節點要求是比較嚴格的,比如Cosmos。大體上,Slash的行為並不會很多,或者說不敢有太多,畢竟Slash還是新鮮事物,凡是有兩面,Slash不好,過度,會對出塊人生態造成傷害,特別是區塊鏈專案並不成熟的情況下,發生誤殺的話,很難處理。所以,我覺得把Slash用作為分叉殺手鐧就可以了,其他的一些行為可以在區塊鏈專案越來越成熟後再慢慢增加。Slash多少?那麼抵押金交多少合適呢?扣除抵押金的時候扣除多少合理呢?這涉及到一個計算問題,有兩種演算法:第一種:單塊抵押,也就是隻要是做涉及到獎勵的行為的時候,就需要提前按比例交抵押金第二種:整體抵押,也就是在做涉及獎勵的行為之前,你的持幣量是全部當成抵押金的。
在Slash發生的時候,第一種是扣除單個行為所交的所有抵押金,第二種是扣除全部抵押金的一部分,視情節嚴重程度來確定。其實兩種演算法有相似之處,最終的Slash結果都是落在了抵押金的按比例扣除上。而實際中,兩種演算法對社羣生態是有不同影響的。我們先說相似之處的抵押金情況,我們舉個例子,有一條PoS公有鏈的引數如下:年通脹率 5%初始供應量 10億區塊時間間隔 10s每個區塊獎勵=10億*5%/(365*24*60*(60/10)*10)=1.6
一個礦工持幣量1億,那麼他需要交多少抵押金呢?我們再列幾個系統引數抵押金贖回時間 15天單塊抵押金為51.2抵押的幣量=(15*24*60*(60/10)*10)*51,2=66355200抵押率=66355200/10億=6.6%個人出1個塊需要抵押金=1億*6.6%=6635520
其中單塊抵押金需要51.2個代幣是按照Tezos的抵押演算法算出來的,我並不知道為什麼Tezos單個塊的抵押金是512XTZ,我大概的猜想是為了算出接近8%個左右的安全抵押率。如果猜想正確的話,PoS抵押金我們認為會在整體持幣量的8%左右。當然,Tezos也可能拍腦袋決定的。如果發生Slash,按照第一種抵押方式,該個人會被扣除6635520個代幣,但是1億裡面其他的代幣並不會受影響,可以繼續進行出塊。第二種抵押方式,1億個代幣都在抵押中,只不過在下一個機會獲得之前,他的代幣會被扣除6635520個。激勵和懲罰是PoS有別於PoW的另外兩個點,個別鏈在設計上都獨具匠心,這個我在第十章中會有具體的解釋。

免責聲明:

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

推荐阅读

;