第四章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這種由側鏈組成的項目,側鏈方案已經開始慢慢從研究走到應用當中。
美國海軍和Consensus網絡采用IoTeX區塊鏈技術為70萬海軍提供健康監測:據官方消息,美國海軍和Consensus網絡將使用基于IoTeX區塊鏈和IoTeX開發的可信硬件“Pebble原石”追蹤器開發醫療供應鏈系統HealthNet,實時監控 70 萬多名水手和海軍陸戰隊的健康狀況。
Consensus Networks 是 IoTeX的生態合作伙伴,自2020年起致力于構建醫療供應鏈系統HealthNet,今年5月獲得海軍150萬美金資助開發,將于 2022 年初為美國海軍啟動實施第一個IoTeX用例試點。CEO Nate Miller在采訪表示,IoTeX的基礎設施和可信硬件符合海軍對安全性和隱私性的需求,HealthNet將被推廣到更多的政府組織以及其他機構。
IoTeX作為硅谷開源項目成立于2017年,以鏈接現實世界和數字世界為發展目標,是與以太坊全兼容的高性能公有區塊鏈。[2021/11/23 22:11:00]
側鏈的解決辦法是將非必要的計算放在側鏈上計算,只把重要的狀態同步到主鏈。按照Cardano的設計方案,主鏈由于承擔著較為主要的價值傳輸,要設計的盡可能的簡單,只有簡單才能達到足夠的安全,而不會因為代碼太過于復雜審計不出bug,其他對安全不是更高優先級的計算,可以統一放到側鏈上來計算,最后將側鏈計算的結果同步到主鏈即可,這樣很好的解決性能和安全的沖突問題,把三角問題放在了一個不同空間維度來解讀。
另外一個更深化的解決側鏈方案是類似Cosmos或者Polkadot的解決方案,Polkadot創建了一個萬鏈互聯中心,讓各個公鏈都變成了Polkadot的側鏈,這樣的Polkadot可以掛超過100條的側鏈,這種擴容方案是指數級的,可以更好的承受計算壓力。當然,這些所有的Polkadot“側鏈”同樣可以有自己的側鏈系統,比如Loom項目的側鏈項目就形成了Cosmos的一個Zone,叫Plasmchain,并掛在了以太坊項目項目。
目前,側鏈的方案都在陸續開發當中,碰到的主要困難在于安全問題,像Plasms這樣的側鏈如果掛在以太坊下面,需要考慮側鏈對于主鏈的安全問題,還有考慮主鏈的ETH跑到側鏈后是否可以追回的問題等等,這些問題都是目前在困擾著側鏈項目的,所以還沒有看到一條真正跑得很順的側鏈,實際的應用上更是少之又少,比特幣的閃電網絡算是一個,Omisego的Plasmachain也是一個,但是他們的應用實在太少了。
側鏈雖然是一個種很好的解決方案,但是離我們還有點1~2年,甚至更遠的時間。
zk-SNARKs
zk-SNARKs,一種新型的零知識驗證,簡潔,不需要大量交互驗證,不需要雙方在線,相對于傳統的驗證方法,驗證快,體積小。
最早運用在Zcash上,于18年10月份升級成2.0版本——Zcashsapling,官方博客放出了兩個版本的對比圖,驗證時間從37s縮減到7s,體積從大于3GB縮減到了40M以內,質變。從此Zcash可以告別只有10%資源用于匿名交易的限制了。
業界對于zk-SNARKs的研究也從來沒停止過,但究其從大量的數學驗證到工程實現太過于復雜的原因,實際發展的并不太盡如人意。
Tezos在2014年的白皮書里面表示,未來利用zk-SNARKs將匿名交易帶入Tezos的意向,Vatilik也早在16年12月Medium上發表了關于zk-SNARKs的系列文章,從數學方式到代碼層面做了詳細的解釋;EliBenSasson,這個為再備受Vatilik推薦的大神,其基于zk-SNARKs的STARK匿名算法,STARKWARE也正在這一方向上前行。
Bitfinex首席技術官:很多USDT大額轉賬屬于不同鏈USDT幣種轉換:8月4日晚間,Bitfinex首席技術官Paolo Ardoino發布推文,針對Bitfinex轉賬作出解釋。他表示,其他加密交易所需要通過Bitfinex進行不同鏈上的USDT(比如TRC20、ERC20)轉換,隨后Bitfinex將不得不與Tether Treasury進行賬戶收支計算,于是人們就能經常看到相關的大額轉賬預警,比如從Tether Treasury賬戶轉USDT至Bitfinex,然后從Bitfinex又轉至其他交易所。[2020/8/5]
對于zk-SNARKs,匿名和擴容似乎可以并存,因為2.0版本當中,Zcash的博客這么描述,此次的提升:
Thisroughestimateindicatesan80%reductionofprovingtime,anda98%reductioninmemoryusagewhichisakeyrequirementforopeningupmobilesupportforZcashshieldedaddresses.
減少80%的驗證實踐,98%的存儲。這個驗證過程不確定是否可以用在Tezos的驗證階段,在Tezos的1分鐘出塊過程中,出塊節點是提前選好的,從打包交易到廣播全網也很快,花費最多的時間在32個驗證簽名,如果zk能解決這個驗證速度,將對性能有大的改善。
那zk-SNARKs的擴容方案怎么實現不舍棄去中心化的前提下擴容?
zk通過縮減驗證體積,加快驗證速度來提高性能,這是個數學解決方案。也就是說,通常區塊鏈廣播交易,需要所有驗證人驗證并簽名后,才能確定為真,這其中驗證簽名的過程耗時過長,導致性能受到影響。
分片通過縮減簽名人數,Cosmos通過指定人數的投票通過提前得到確定性,EOS通過減少驗證人人數達到全部驗證的快速度,這其中都是通過減少人數來達到的,而zk縮減的是驗證過程,而不是人數,那么確實是可以保證之前的去中心化的情況下,提高性能的。
zk本身是一個零知識驗證,這個驗證過程本用于隱私交易,但目前看來本地算法生成驗證材料的速度要比網絡傳播驗證要高了去了,這就是zk擴容的本質了。就像現在的edxxxx算法生成公私鑰對一樣,不聯網就生成了,毫秒級別的,如果把大量驗證的過程變成zk的本地算法,提交廣播驗證的數據壓縮到非常小的范圍,那性能的提高可見會是指數級的。
當然,zk的算法同樣中所周知的缺點:在零知識證明協議部署前,需要設置一些初始參數,這些參數將在每一次證明與驗證中被用到。參數生成后,參數生成算法運行中使用的所有數據必須銷毀,否則整個協議將不安全。
那么這次參數的生成必然會有一個來源,這個來源如果是偽隨機數還不能被找到規律,如果是真隨機數還得頭大,且找到可靠人來執行,兩種來源的弊端是明顯的,那么這個問題就出現了:我們怎么相信一個這么依賴的公共參數的系統協議呢?
隨著協議的發展,我們看到了解決該辦法的兩種方案
允許人,無人數限制,無門檻的進入到提交參數的過程中,并公然銷毀數據
EliBen-Sasson也提出了另一個具有競爭力的零知識證明協議STARKs,該協議可不需要考慮可信設置的問題,并依賴于較少的數學猜想。
山東港口油品全鏈條貿易金融服務平臺啟動 突出區塊鏈技術應用:山東港口2020全球石油貿易大會7月28日舉行。大會上,山東港口聯手29家國內外貿易商、金融機構、煉化企業代表共同啟動“山東港口油品全鏈條貿易金融服務平臺”。該平臺緊密銜接上游貿易商、下游山東煉化企業和銀行金融機構,突出貿易基礎、供應鏈金融保障和區塊鏈技術應用,全面提升優質資源配置能力,為廣大獨立煉化企業提供“端到端”全程綜合服務,建立透明開放的誠信新體系。(青島日報)[2020/7/29]
目前的發展也在進行當中,這也是為什么我在上面說zk有機會成為既可以保證去中心化的同事,又可以進行擴容的點了。可喜的是,第一個方案已經在Zcash上踐行,并且運行快幾個月還比較完好,所以,我們還是有理由期待zk在PoS其他項目上的擴容的。
側鏈解決的是數據的分層計算,zk這種方案是盡可能減少數據之間的交互,盡可能的較少數據大小,所以兩種方法是不同維度的解決方案,自然,zk也可以用到側鏈上去,減少側鏈交互,提高性能。現在區塊鏈的性能優化在減少底層架構,和上層數據交換上是一個大方向,有很大的優化空間。
第五章PoS中的激勵與懲罰
為什么PoS系統當中需要激勵?沒有激勵行不行?多少激勵才足夠?
區塊鏈的定義來源比特幣,比特幣立志于成為一種無政府主義的電子貨幣,擺脫中心化集權的控制,并且給所有人帶來自由。自始至終,比特幣給廣大人們帶來的印象就是去中心化和自由,但是,社會發展到今天,我們已經習慣了這種中心化思想形成的社會結構。國家,公司,乃至家
庭,都是不同形態下的中心。當我們要把去中心化當成主流的時候,我們會發現,我們要付出的代價,其實不小。特別在我們享受比特幣帶來的去中心化思想時,往往我們忽略的是自由背后所帶來的成本。
作為一個去中心化的社區,比特幣需要人運行程序來維護,而且越多的人維護,系統越安全。以往中心化公司運行的成本,其實相當于均攤到了維護網絡的每個人。那么這些人的成本誰來承擔?難不成都是心甘情愿自掏腰包嗎?
不太可能,所以比特幣的分發成為了激勵手段,以及比特幣背后的自由思想所帶來的憧憬,給所有維護的人們畫了一個大餅,這個大餅帶著自由之光,照亮了人們對于未來暴富的無限遐想。所以,我們看到的是,比特幣實現了去中心化的自由,用了一種激勵的手段解決人們前期所付出的成本,這個可能不對等,但是確實一種很好的價值背書。
那么我們就不難理解了,作為PoW后時代的PoS,自然同樣需要激勵來維護去中心化所帶來的成本。但是由于PoW算力挖礦的方式,被PoS的權重挖礦方式所替代,意味著網絡運行初期,就需要有足夠的幣來進行挖礦。同時,足夠多的幣才能像足夠多的算力一樣,更安全的保證去中心化的網絡運行,那么PoS的激勵不能像比特幣一樣,由剩余總量作為獎勵,而是通過增發通脹作為激勵了。
增發是PoS上最為常見的一種激勵手段,常年保持一個比較合理的增發率,來激勵礦工有足夠多的動力維護網絡。網絡的初期發展特別重要,所以通常,線性改變的增發率會把初始值設置的足夠大,以此來吸引更多的驗證人。同時,這也作為吸引已存在代幣參與到網絡中來驗證區塊的重要點子,不參加網絡安全驗證的代幣會被增發的代幣稀釋,這就是著名的PoS稀釋性通脹的概念。
動態 | 區塊鏈等技術已成為各大險企的核心競爭力:據北京商報消息,人工智能、大數據、云計算、物聯網、區塊鏈五大科技能力,目前已經成為各大險企紛紛入場角逐的核心競爭力。
保險業“十三五”規劃、新國十條、“一帶一路”、供給側結構性改革、國家區域經濟發展戰略,為保險行業的發展創造了前所未有的廣闊空間,而國內人工智能、區塊鏈、云計算等新興技術的快速發展,也為保險業的創新突破提供了強大技術支撐,將科技引入承保、核保、出單、查勘、報案、理賠、反欺詐等各個領域。[2018/11/28]
而后,增發率/通脹率會成為一個變化值,至于是多少合適,沒有人能準確得出來。現在世界里面的貨幣政策,通常是伴隨是通脹和緊縮同時發生的,在合適的時間使用合適的貨幣政策,是目前我們所能認識到的。比特幣給我們帶來的緊縮手段,PoS帶來的通脹手段,都是區塊鏈世界里面的一組實驗。所以很多PoS公有鏈并沒有把通脹率定死,而是初期定值,然后定價權交由社區定奪。
以太坊ETH把通脹率定在了年3%,Tezos和EOS把通脹率都定在了5%左右,Rchain把通脹率定在了7%,Cosmos把通脹率定在了7%~22%。目前來看,2019年要上主網的項目中,通脹率初始值都在5%~10%,看來是業界普遍的認同。
倒不是說這個是最終的答案,或者說根本沒有人知道答案,真實的世界里總是復雜的,所以,拍腦袋決定是也是一種好的辦法,而只要有一個人拍了腦袋,后面跟著的人連腦袋都不要拍,跟著就好了。
激勵
PoS上的激勵機制從比特幣衍生而來,比特幣需要礦工維護網絡的運行和去中心化,那么激勵礦工參與網絡是需要的,受利益驅使,人們會追逐礦工出塊所帶來的利潤,比特幣將鑄幣分發做成一種激勵機制,使用固定總量,分發稀缺性來吸引大量礦工涌入,成為比特幣網絡維護的一員。
PoS共識網絡也一樣需要維護,但是PoS的激勵和比特幣的激勵不一樣,PoS是新增鑄幣,比特幣是存量鑄幣,所以PoS的通脹設計和比特幣的存量分發設計有些許不同,造就了兩種激勵本質上的不一樣。
PoS共識中,激勵分為兩個重要階段
啟動
去中心化
PoS網絡啟動之初的通脹設計,是PoS網絡重中之重,為了防止初始Stake的不足,導致的攻擊成本過低問題,初始的激勵要足夠大,吸引人們將代幣進行Staking,否則,短程攻擊可能會發生,交易激勵可能會被篡改。一般情況下,啟動主網時,開發團隊會利用初始分發中留給自己的代幣先行Staking維護網絡,同時禁止其他節點進入,在保證整個網絡運行一段時間后,再開放給所有持幣人。
而在網絡順利啟動之后,去中心化又成為了一個重要的激勵方向,為了防止大戶更大的情況出現,很多項目會在獎勵激勵上做文章,比如單一節點的總量超過整體總量的1%時,超出部分將會的線性較少的獎勵,或者不會獲得獎勵。比如有一個大戶持幣量1.2%,那么0.2%的量是獲得不了獎勵的。這樣可以有效的控制PoS中的大戶恒大的問題。
其次,很多PoS項目會致力于將節點出塊,驗證程序做得足夠簡單,依賴的設備隨手可得,讓持幣人能簡單的參與到項目Staking中來,也會使得項目更進一步的去中心化,而不會因為無技能,無設備而導致無法參與網絡運行
伍浩:要積極推進區塊鏈等技術在電子政務中的應用:今日,首屆數字中國建設峰會分論壇“電子政務:協同、優化、創新”在福州舉行。國家發改委高技術司巡視員伍浩表示,黨的十八大以來,我國大力實施創新驅動發展戰略,將創新作為引領發展的第一動力,取得了顯著成效。推進政務信息化工作,我們也必須始終堅持創新驅動。
要以技術創新支撐發展。要積極穩妥推進云計算、大數據、區塊鏈、人工智能等新技術在電子政務中的應用,同時也要加強頂層設計,確保安全。[2018/4/23]
PoS中的激勵是通脹型的,通脹的比例作為參數被寫到了創世區塊中,作為可改參數,意味著社區有權利對通脹率進行修改,從而滿足不同時代下的需求。區塊鏈項目活的時間還不夠長,所以這個數字目前還未曾被修改過。不同項目的通脹率會在一個范圍內浮動,初始值在5%~7%,或有線性減少或是線性增加的趨勢,來保證合理性。
激勵的具體行為
一般PoS公有鏈,為了維護網絡不會暫停或者是崩潰,會盡可能的激勵出塊人正確行為,同時會對不良行為給與懲罰。這和現實中正向引導,反向打擊的邏輯是一樣的。區塊鏈的區塊是按一定時間一個個接著形成并連在一起的,區塊鏈的數據是保證正確并不能被修改的,所以我們可以看到一些具體被激勵的行為,包括
出塊
簽名
披露
譴責
在線
治理
所有的行為對于區塊鏈的維護是有影響的,只要這些行為被正確執行,很大概率下,區塊鏈會一直運行下去。當然,隨著區塊鏈的發展,更多新的技術會被帶入到現有區塊鏈中來,那么這些新的技術又會帶來新的問題,導致區塊鏈停止運行,甚至崩潰,屆時新的解決辦法又會被引入進來。
除了以上約束外,PoS中的激勵中還存在著一些隱患,這些隱患可能還隱藏的比較深,目前沒法對其做約束或者無法約束。
另外,POS激勵有很多自己的問題,比如大戶問題,選舉造假問題等,同樣,相對于比特幣,PoS激勵和比特幣激勵也有著相同的一些問題,如激勵不足,激勵單一。下面我來說一下幾個和比特幣相同的問題。
激勵不足
穩定的網絡依賴于穩定的礦工群體以及穩定的代幣參與,兩者都依賴于系統代幣對法幣穩定的匯率,或者是說有不斷上漲預期,這樣才能讓整個激勵得以繼續。從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里面著名的NothingatStake的問題。
所以引入抵押金后,系統會對礦工行為進行檢測,一旦發現檢測不法行為,系統將會扣除礦工的抵押金。而礦工因為擔心抵押金會被扣除,自然也不敢作惡了。
Slash
2014年1月,VitalikBurtain首次提及了Slasher,后Slash這種手段被廣泛應用于PoS共識當中,作為了PoS中解決網絡安全的一個重要手段。Slasher可以被翻譯為“劊子手”或者扣除人,Slash可以被翻譯為削減,或者意譯為扣除抵押金。
當時的區塊世界,PoW還是主流的共識,很多項目在開始往PoS共識轉,但也是這時候PoS上一個重要的缺陷開始暴露出來,這種缺陷會導致鏈分叉,從而使得雙花攻擊成功的概率大大提高。
Vitalik提議用懲罰的手段將出塊人的企圖扼殺在搖籃當中,這種方法叫做Slasher。區塊鏈對分叉或者重復提交行為進行檢測,一旦檢測出來,該行為就會被懲罰,而懲罰的抵押金意味著NothingatStake變成SomethingatStake。
那么SomethinatStake中的Something指的就是現在抵押金了,抵押金作為出塊人出塊的基礎,誠實的出塊人并不會害怕抵押金被扣除,因為他們不會去篡改程序,進行雙花攻擊,而不誠實的出塊人因為抵押金可能會被扣除的可能性,動機減弱。
Slash的抵押金會被回收到系統中,不同系統對Slash的抵押金的處理不同,一般情況下,會全部銷毀,一些系統有舉報人,如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**10)=1.6
一個礦工持幣量1億,那么他需要交多少抵押金呢?我們再列幾個系統參數
抵押金贖回時間15天
單塊抵押金為51.2
抵押的幣量=(15*24*60**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的另外兩個點,個別鏈在設計上都獨具匠心,這個我在第十章中會有具體的解釋。
5月初全球最重要加密貨幣投資機構的私密聚會上,他們聽了這樣一個關于未來趨勢的演講。從去年開始,4月底5月初的時候,全球一些最重要的加密貨幣領域的投資機構掌舵人會前往洛杉磯比弗利山,參加一個名叫「.
1900/1/1 0:00:00Gate.ioStartup首發上線通道旨在幫助區塊鏈行業的創新和技術進步,長期提供優質區塊鏈初創項目上線的通道,并為專業用戶提供早期投資機會.
1900/1/1 0:00:00截至9:00,58COIN交割合約行情如下:BTC合約現報價5788.50美元,較現貨貼水14.01美元,24h漲幅1.39%.
1900/1/1 0:00:00據Coindesk5月2日報道,加拿大央行和新加坡金融管理局已經通過使用區塊鏈技術和央行數字貨幣完成了跨境支付的試驗.
1900/1/1 0:00:00親愛的社區用戶: 第三期FOne交易挖礦幣種投票已順利結束。我們現公布結果如下: 排名??? 交易區?????????? 幣種?????? 全稱????????????????????? 票數.
1900/1/1 0:00:00新華社杭州5月1日電(記者吳帥帥)侵權成本低、維權成本高、舉證難度大,一直是知識產權維權過程中普遍存在的問題.
1900/1/1 0:00:00