自2019年開始,PoS和其背后的Staking Economy逐漸進入主流視野,鮮少再有人提及經典的PoW,而隨著今年ETH2.0以及波卡這兩大PoS公鏈IP逐漸落地,這種趨勢已經達到了頂峰,截至目前ETH2.0信標鏈存款合約質押的ETH已經達到了138萬枚,波卡達到了7.6億枚。這種浪潮鼓動了大批持幣者拿著32個ETH成為驗證者,但問題是外界大部分的注意力幾乎都放在暴漲的ETH行情和質押上,并沒有完全知悉其中的風險。
PoS項目Staking情況
20075:第一個倒霉蛋
PoS由于機制設計的一些原因,挖礦的風險遠高于PoW,除了獎勵丟失之外,還有可能出現一種叫Slash的懲罰機制會出現,大部分礦工或者用戶都是從PoW挖礦的認知過來的,所以很多人不懂得什么叫Slash,更不知道Slash的嚴重程度。
在ETH2.0信標鏈主網成功啟動的第二天晚上,出現了第一個受到系統處罰的人:驗證人20075,為此這個驗證人付出了0.2344個ETH的Slash罰款,余額變成了31.77個ETH,而驗證人20075之所有收到了這張Slash罰單,是因為其出現了雙簽行為,也就是該驗證人在一個插槽中選出了兩個不同的區塊,而且不管是因為節點操作失誤還是有意為之,這種行為都對主網產生了一定的不良影響,
本來,ETH2.0的Slash罰金是1ETH起,但是由于早期大家都需要時間去適應規則,出錯的概率可能會增加,因此當前這個處罰的力度是被縮減了的,只要后面運行正常肯定還會調整到1個ETH起步,而且只要有多個人遭到Slash懲罰,那么這個罰金還會不斷增長。需要注意的是,這個罰金是直接在你質押的32個ETH里面去取,并且驗證人也不能說通過補全或者換掉原先質押的幣來重置整個驗證人節點,如果最后最早質押的32個ETH被扣到16個以下時,這個驗證人節點就會被自動踢掉,
后期數據統計,在信標鏈主網上線第二天的一天內,有多達600個驗證人被開出了Slash罰單。這在社區內引發了一股爭議:“好好的驗證人做著,怎么還會被罰呢?”而相比于其他PoS公鏈內的Slash懲罰,驗證人20075這樣的遭遇算是好的了。
Tezos社區的tzscan瀏覽器,專門記錄著被Slash過的礦工。有一個最高被罰24256個XTZ的記錄,等于這個礦工在不到1分鐘的時間里被罰了17萬左右。無獨有偶,2019年6月,在同樣是跨鏈方向的Cosmos上,一個名為Cosmospool.org因為除了兩個不同的區塊,當天就被系統扣除了價值90萬的代幣,
Slash罰沒出現的情況
1.私自試圖分叉
其實也就是在同一區塊高度出現雙塊(或多塊)的情況,因為在PoS 共識機制里,無論是軟分叉還是硬分叉,都需要通過投票來共同決定,所以任何節點私自試圖分叉的行為都有可能受到 Slash 懲罰,開頭提到的 Cosmos 節點,就是因為服務器運行問題,在同一高度提交了雙塊而受到 Slash 懲罰,因為這樣可能造成不必要的分叉和鏈上混亂。
2.雙簽行為
雙簽行為,是指在同一個高度下,一個節點驗證了不同鏈上的塊;或者指在同一高度下,一個節點在一條鏈上的同一個塊簽多次名,
3.長期掉線或者節點運行不穩定
以 Cosmos 為例,如果節點離線時間大于網路中生成 9500 個區塊的時間(大概 18 個小時),節點將會受到 Slash 懲罰,但是短暫的離線并不會受到Slash罰沒。
波卡里面關于Slash懲罰的機制
在不同的網路內,可能這些懲罰機制會有所不同,例如Filecoin不是PoS共識機制,但機制有相似之處,PoS共識中,Staking的是token,但Filecoin中 Staking的是存儲空間。與PoS不同的只是,token可以被Slash,而存儲空間不能。所以系統會對不作為乃至作惡的節點進行降權,降低收益,無論是什么樣的場景或者機制,Slash的核心原則是不變的,即任何有損主網穩定運行的行為都會受到懲罰,
樹立Slash罰沒機制的核心目的是什么?
首先,拿ETH2.0舉例,由于共識機制轉向POS,礦工再也不需要通過比拼算力從而獲得處理交易也就是出塊權,改成讓一個個驗證人節點去處理這些交易。
然后為了讓這些驗證人能夠正常且穩定地“工作”,除了正常的激勵機制之外,還需要對驗證人進行利益綁定,也就是必須要存入32ETH作為保證金才能夠運行驗證程式并獲得相應的“獎勵”。這里的激勵是正向的,此外還有反向“激勵”,來抑制不良企圖的惡意行為,反向激勵的方式一般有兩種,一種是扣除節點押金也就是Slash懲罰,另外一種就是降低甚至短期剝奪節點的收益,目前這種抑制方式的設計難點在于如何在獎勵清算中去涵蓋對惡意行為的考慮并有所體現,
單純的PoS機制存在一個很嚴重的問題Nothing at Stake(無利害關系),拿分叉這件事兒來舉例,假如說有一個節點希望分裂社區,通過分叉重新分配權力,節點會告知其他節點,分叉不會對他們的利益產生影響,反而會讓他們受益,節點受到蠱惑紛紛表示同意,雖然最終分叉完成,但是社區項目都遭受了重創,最終的結果也并不是大家想要的。但是主網對此是無可奈何的。
為了防范類似“無利害關系”這樣的攻擊,PoS機制引入了Slash懲罰機制來抑制那些試圖惡意制造分裂和混亂的節點,一般這樣的機制還會伴隨拜占庭容錯機制出現,Slash是Staking后期變革的一個典型機制,通過削減Staking中質押Token的威懾,達到進一步維護系統安全的目的,
相比于PoW,Staking-Slash讓PoS的獎懲機制更加完善,PoW中,大部分作惡的懲罰是錯失獎勵,而在PoS中,除了錯失獎勵之外,還面臨著本金的損失。
Slash懲罰的爭議點
Slash懲罰機制除了能夠提升PoS網路的安全性,同時基于一個合理的設計,這種機會更會帶來一個高質量的驗證系統,同時這也讓某些驗證者不得不考慮風險分配,從而有利于代幣獎勵在驗證者之間的公平分配,但這種機制可能會對后續的某些衍生品產品產生極大的干擾,因為衍生品一旦生成后,萬一錨定的原質押資產遭到Slash懲罰,那么原本的錨定關系就會被破壞,其中產生的損失和價差需要誰來負責是一個很大的問題。
而關于Slash懲罰本身來說,最大的爭議點在于平衡懲罰的力度。原本只是一個敲打提醒的木棍,很有可能變成一枚核武器,就像此前提到的Cosmos網路中的那個倒霉節點一樣。Slash大多以扣除抵押金中的百分比作為懲罰,大概比例在1%~5%,視情節嚴重情況而定,已上線的PoS項目中,Slash發生的頻率并不是很高,威懾的效果較為明顯,已知的Slash大都因為操作不規范所導致,但是隨著網路的發展這種懲罰的比例可能會越來越高,但問題就在于如何判斷節點的某些不合規行為是否是惡意攻擊,網路初始階段應該設置什么程度的Slash懲罰?這需要一個全面且系統的評估機制來解決,
其實,Slash懲罰也在無形中催生了一些新的機會,例如專業的代質押服務,Slash罰沒一般是因為運行服務不穩定,而一般Staking中用戶除了需要質押代幣,還需要配置節點運行環境和程式,并且要租賃專門的云計算服務器,很難保證穩定性,因此實際上Staking對于一般用戶來說門檻很高。因此就會有類似“專家”這樣的角色來幫助不具備自主Staking的用戶來進行操作,就相當于選擇了一個委托人,但是代價就是你委托給“專家”的這些代幣會有一個鎖定期。可以說, Slash機制在Staking Finance當中承擔著舉足輕重的作用,而充分理解Staking經濟中的所有風險和機制是每一個驗證者必備的功課,