
今天我們討論密碼經濟領域使用頻率最高的一個詞——去中心化。
去中心化常常被視為區塊鏈存在的全部理由,人們評價一個公鏈也經常把「去中心化」程度做為重要的衡量標準,在區塊鏈技術領域的人們表現得尤其「憎恨」中心化,當一個技術討論陷入僵局時人們通常會用對方的方案會導致「中心化」來做為反駁技術觀點的最有力論據。
之所以要實現去中心化,相信很多人都有各自的理解,這里大致總結幾點:
規則透明且廣泛參與:中心化系統的弊端已被詬病了很長時間,一個系統的記賬規則(或者說遊戲規則)應該由所有的參與者共同確定而絕不應該由單個個人或組織來確定,如果權力過於集中則很難保證有權力的人或組織不會以犧牲其他人的利益來使自己收益。
容錯性:當存在少數惡意節點或故障節點時,不會影響系統的平穩運行,畢竟不太可能所有節點都同時發生故障或同時作惡。
不會被操控:因為它們缺乏敏感的中心點,攻擊和破壞或操縱成本更高。
關注PlatON的同學可能已經發現,PlatON的共識機制將候選節點數量提升到了201,每輪共識節點的數量提升到了43,從去中心化程度上來說相比於先行示範網絡Alaya提高了接近一倍。然而是不是意味著參與共識的節點越多越好?試想一下不考慮硬件和帶寬成本,全世界70億人每人都運行一個節點,共同參與記賬,會有什麼問題呢?
1. 共識效率低
對於基於Giskard共識協議的PlatON來說,區塊或狀態的確認至少要經過2輪QC(Quorum Certificate),每輪QC要保證全網超過2/3(2f+1)個節點的簽名,過多的節點將導致共識效率的嚴重下降。
2. 安全性問題
按照BFT共識理論,總節點數N=3F+1,在壞節點比例不變的情況下總數越大意味著惡意節點或故障節點F越大,PlatON當前採用隨機選取節點參與共識的機制,雖然可以通過改進隨機性算法以及通過Slashing及時罰沒壞節點等方式盡量避免同一輪共識節點都是壞節點,但目前在安全性上仍不宜將備選節點總數設置太大。
3. 對節點的激勵不夠
參與共識的節點要維護網絡安全和高效,但這並不是無私的,包括PlatON在內的大多數網絡通過增發Token來激勵節點,但如果節點數過多,則需要激勵的數量過於龐大,分配到單個節點的激勵將變得非常有限,會影響節點維護網絡高效和安全的積極性。
4. 更新升級慢
一個龐大的群體內必然充斥著各種各樣的聲音,對於新的改進建議(如PIP)的推進並不是一件容易的事,提案發起者需要爭取到足夠的支持才能得以實施。
基於以上原因,PlatON當前沒有將驗證人總數和每輪共識節點數完全放開,而是基於當前的技術、嚴謹的性能要求以及異常測試前提下做的初步調整,關於到底有多少個驗證人節點才是最合適的目前並沒有一個結論,但從技術迭代和發展長遠角度來看,當前201+43這個參數需要進一步擴充,我們可以試著在平衡安全性以及性能的前提下定幾個小目標來進一步提升去中心化:
備選節點數量:計劃支持10000個節點以上,考慮根據質押LAT數、交易數、出塊率等因素動態調整備選節點數量,增加節點作惡成本,降低被攻擊的風險。
驗證節點數量:考慮對Giskard共識協議進行優化,在保證性能沒有明顯的損耗的前提下支持更多驗證節點,由於存在DDoS攻擊的時間窗口,參與BFT驗證節點數量不能太大,計劃支持到200個驗證節點。
優化隨機性算法:好的算法可以同時保證安全性和公平性,對於選取共識節點的算法PlatON會持續優化和改進。