對話時間:8 月 11 日 11:00
對話嘉賓:
蘭榮堅:Harmony 聯合創始人兼 CTO,硅谷 ABC 區塊鏈社羣的早期創始人之一
Rudy Lu:InfPool 無限礦池合夥人,BTCU 高校區塊鏈技術社區創始人

image (4).png

重要觀點:

  1. 分片技術相較於區塊擴容、共識機制等縱向擴容方法,是唯一可以實現橫向擴展性的技術,也即節點數量的增多會有利於交易處理速度的提升。
  2. 現在大部分的 PoS 共識都添加了即時最終性的設計,所以更適合分片系統,原因主要是它更適合跨片間的交互
    3.PoS 或者說 Staking 的項目未來會成爲主流,一方面 PoS 相對 PoW 更加安全高效,極少浪費能源,另外 PoS 所帶來的 Staking 經濟也會爲區塊鏈領域帶來更多的新模式和新玩法。
  3. 從技術演化史來看,方向都是從依託於實物的的介質,向更加虛擬化的模式發展,因此基於虛擬權益的 PoS 取代基於算力設備的 PoW 也將是區塊鏈的發展方向。
  4. 公鏈中不會再有一家獨大的局面產生,每個公鏈都會有自己獨特的市場,這樣的情況將是今後的常態。跨鏈技術是鏈接這些不同領域的頭部公鏈的主要技術基礎。

以下爲原文對話整理:

Rudy:Hello,各位聽衆晚上好,歡迎來到 「PoS 百家談」的第 3 期。「PoS 百家談」是由全球超級節點服務商 InfStones 主辦的系列訪談活動,邀請大咖一期一會,暢聊 PoS。我是本期的主持者,InfPool 無限礦池合夥人 Rudy Lu。

本期我們榮幸邀請到的嘉賓是 Harmony 的 CTO 蘭榮堅先生。蘭榮堅,Harmony 聯合創始人兼 CTO,曾於 Google 負責安卓應用商店的搜索基礎設施搭建,也是硅谷 ABC 區塊鏈社羣的早期創始人之一。

大家知道區塊容量是影響區塊鏈的 TPS 高低的重要因素,會顯著影響區塊鏈的使用性能,現在業內較爲常見的區塊鏈擴容方法主要包括分片、側鏈、新共識機制等。Harmony 與以太坊等公鏈致力於以分片技術來解決區塊鏈擴容,以太坊更推出了非常徹底的升級版 ETH2.0,將 PoS 機制與分片技術結合,帶火了諸如信標鏈、Casper、Sharding (分片)等概念,PoS、分片相信都是大家,包括我個人在內,特別關心的區塊鏈技術熱點問題。

因此,很榮幸今晚邀請蘭榮堅先生參與 InfPool 無限礦池 「PoS 百家談」,Harmony 在分片技術上有非常長時間的研究實踐,期待今晚的訪談對話,能夠讓更多人對區塊鏈現在以及未來的性能發展有更深入的認識。

下面,我們就開始今天的 PoS 對話吧!

分片:實現區塊鏈的橫向擴展性

Rudy:我剛剛介紹了幾個區塊鏈擴容的辦法,包括分片、側鏈、新共識機制等,請問蘭總如何看待這些拓展公鏈性能的方法呢?

蘭榮堅:大家知道比特幣和以太坊的 PoW 共識機制在安全性和去中心化上做的不錯,但是交易處理速度極低。並且完全是完全沒有橫向可擴展性的,即網絡中加入再多的節點,性能是不變的,甚至會略微變差。很多項目在縱向可擴展性上做努力,即通過改變單一共識機制來提高效率,例如 Bitcoin Cash 擴大了區塊大小,SegWit 隔離見證技術讓同樣的區塊內容納更多的交易等等。

這些縱向擴容的技術一般都逃離不了我們常說的區塊鏈不可能三角理論,即安全性、去中心化和性能不可能同時得到很好的優化。擴大區塊大小的做法其實是損失了一定的安全性和去中心化,因爲大區塊的廣播速度會變慢,這樣使得網絡更難達到同步狀態,更容易出現分叉,同時大區塊也會給小節點帶來存儲和網絡的壓力,阻礙小節點加入網絡,所以會損失去中心化程度。

其實很多其他方案比如 DPoS,DAG 等等,都是在安全性,去中心化和性能中間做權衡和取捨。DPoS 共識其實是放棄了去中心化,以極少數大節點在設備性能和網絡優勢,來獲得超高的交易處理能力。DAG 改變了傳統區塊鏈的數據結構,從鏈式結構,變成了有向無環圖結構,其實準確的說 DAG 並不是共識機制,而是數據結構,最終達成共識還是要靠類似 PoW 最長鏈共識或者 BFT 投票機制來避免分叉。這種沒有增加併發共識數量,而只是在單一共識機制上改進的方法,本質上都是縱向擴容,交難突破區塊鏈不可能三角的限制。

而側鏈技術本質上是 layer 2 的解決方案,安全性上是需要依靠 layer 1 的公鏈來保證的,所以拿側鏈技術和其他 layer 1 的共識技術作比較,有點不在一個範圍內討論問題。

我認爲狀態分片技術可以在安全性,去中心化和性能上做到很好權衡。狀態分片是目前唯一可以做到橫向擴展區塊鏈性能的擴容技術,即在網絡中增加更多節點和分片,就可以提升交易處理量,並且不損失安全性和去中心化。

Rudy:幫大家畫個重點,橫向擴展性,指的是節點數量的增多會有利於性能的提升。相較於區塊擴容、共識機制等縱向擴容方法,分片技術是可以實現橫向擴展性的技術。

狀態分片:分片技術的主流選擇

Rudy:您剛剛提到了狀態分片。分片一般被分爲網絡分片、交易分片、狀態分片,它們有什麼差異?這樣的分類法是否能涵蓋目前所有公鏈的分片技術?您更看好哪一類分片?

蘭榮堅:網絡分片是指區塊鏈網絡節點被分成互相獨立的組,每組節點分別處理交易,達成共識, 而這裏每個分片分別處理交易的過程就是交易分片,所以通常網絡分片和交易分片是一同發生的。

而狀態分片是指每組分片分別存儲一部分賬本信息,而不是存儲全網所有賬本信息。網絡分片和交易分片一定程度上可以提高交易處理速度,但如果沒有實現狀態分片,分片間就沒法實現完全獨立,交易也必須最終在全網進行同步,這樣大大限制了系統可擴展性。

區塊鏈分片機制目前只有這三個主要分類: 網絡,交易和狀態分片。網絡分片和交易分片實現起來相對容易,狀態分片是最難的,因爲狀態分片中的片間交易是比較難處理的,片和片的數據一致性也需要更多機制來保證。

Rudy:現在 Harmony、以太坊等選擇的都是狀態分片,我們可以說狀態分片是目前比較主流的選擇嗎?

蘭榮堅:現在業界已經公認分片需要做狀態分片了,不然其實意義不大

跨片與跨鏈交易:區塊鏈的未來生態圖景

Rudy:之前分片給人的感覺是把不同節點分區處理不同的鏈上交易,大家還是一條鏈,就好像一條馬路分了多個通道,但隨着以太坊 2.0 宣佈自己的信標鏈+分片鏈設計之後,給人感覺是每條分片也是一條鏈,再由信標鏈作爲中心來調配管理。這種結構很容易讓人想到 Cosmo 的 hub,或者波卡的中繼鏈。您覺得他們是同樣的結構嗎?有什麼區別?

蘭榮堅:其實本質上分片的信標鏈和 cosmos 的 hub,波卡的中繼鏈在某些功能上是類似的,包括確保分片鏈或者側鏈的數據一致性,還有鏈間消息傳遞和驗證等。在跨鏈或者跨片的角度講,這幾種主鏈的功能都是一致的,就是傳遞鏈間可驗證的信息,提供信任中心。

而不同於 cosmos 和 polkadot,信標鏈在分片系統中的更大的作用是產生隨機數,總領所有分片的結構和狀態,包括對分片的節點進行分配,再分配,Staking 的接管等等。所有分片需要依靠信標鏈的原信息,來知道自己需要做什麼,同時知道其他分片是什麼結構,等等。

Rudy:所以在跨鏈 / 片的信息傳遞這個功能上它們是一致的,但是信標鏈還需要總領各個分片和節點的結構和行爲,因爲信標鏈和分片是一個統一的賬本,cosmos 多條鏈各自是不同的賬本,可以這麼理解嗎?

蘭榮堅:嗯,是的。分片區塊鏈的分片鏈 一般都是同質的,而多鏈結構裏的鏈每個都不同。

Rudy:您如何看待未來跨鏈的生態圖景?

蘭榮堅:談到跨鏈,我的看法是,在公鏈領域,今後是不會有一家獨大的情況的,在 18 年以前也許 Ethereum 可以是公鏈的唯一選擇,但是自從 18 年開始,很多新公鏈的誕生,讓整個公鏈環境百家爭鳴,每個公鏈都有自己獨特的屬性和功能,適用於不同的應用需求,這樣的情況將是今後的常態。所以跨鏈技術是鏈接這些不同領域的頭部公鏈的主要技術基礎。

我個人認爲公鏈中不會再有一家獨大的局面產生,相反,每個公鏈都會有自己獨特的市場,並且在其中深挖,鏈和鏈之間的溝通交流會更多依賴跨鏈技術。醫療數據共享就是一個很好的例子,通常醫療數據所有權和隱私性是非常敏感的,如果兩個醫療系統分別採用了兩條不同的鏈存儲數據,那麼要想打通兩家醫院的數據壁壘,就必須靠一個安全可信的去中心化跨鏈協議來支撐。將來整個區塊鏈生態將是多條公鏈並存,服務不同的業務需求,鏈和鏈之間會由跨鏈協議來完成價值和信息的流轉,實現類似局域網和廣域網的生態連接。

Rudy:咱們剛剛談到,跨片與跨鏈交易的技術非常相近,您覺得分片鏈在實現與其他公鏈的跨鏈上會有優勢嗎?

蘭榮堅:分片跨鏈的實現和性能,會比跨鏈更容易和高效一些,因爲分片鏈還是在統一的系統內,並且分片一般都是同質的,所以跨片的實現會清晰一些。這不只體現在跨片交易上,跨片智能合約也是有可能實現的。而在多鏈系統中,跨鏈的智能合約調用,很難實現。

PoS 的即時最終性設計更適合分片系統

Rudy:就分片而言,公鏈採用 PoW 共識和 PoS 共識在哪些設計上會存在差別?從整體來看您覺得哪種共識機制更適合分片?

蘭榮堅:PoW 還是 PoS 是個很大的論題,就共識的特性而言,對於分片系統,更值得探討的指標是共識是否支持即時最終性。

PoW 的最長鏈共識由於有分叉的可能,所以交易沒有即時最終性,對於分片系統來說,如果沒有即時最終性,那麼對跨片的交易的速度和安全性都會有很大影響,因爲如果你沒法很快確定另一個片的動作確定完成,不會改變,那麼你在另一個分片就沒法做出相應反應,或者更壞的情況是,如果做了反應,然後發現另一個片的動作被回滾了,那麼整個系統的狀態都會紊亂。

而現在大部分的 PoS 共識,不管是基於 BFT 的還是基於其他算法,大部分都添加了即時最終性的設計,所以更適合分片系統,原因主要是它更適合跨片間的交互。

隨機分配有效解決 1% 攻擊問題

Rudy:談到分片,大家都會提到算力的分散和 1% 攻擊,當然在 PoS 公鏈裏算力的分散就是投票量的分散了,假使一個節點獲得了 1% 的得票量,而這個公鏈有 100 個分片,那麼無論它被分到哪個分片都具有極大的得票量優勢,也就容易壟斷該分片的交易驗證,這個問題如何來解決呢?

蘭榮堅:解決辦法是讓每個分片多有足夠多的節點,每個節點的 stake 數量儘量接近。然後通過安全的隨機數,讓節點在分片間的分配完全隨機。這樣一個有大量 stake 的攻擊者,是不可能完全把他的 stake 集中到一個分片的。他的 stake 會被平均隨機分散到多個分片,降低他在一個分片的權利,從而使每個分片都足夠去中心化,避免攻擊。

所以在 staking 的設計上,我們就需要儘量保證每個小節點的 stake 數量相近,避免一個節點 stake 過多。這個設計上,我們剛剛發佈了我們的 EPoS (Effective Proof-of-Stake) 設計,它很好的解決了分片系統中做 PoS 的難題。

Rudy:隨機分配是剛剛提到的保障安全性的重要因素,大部分分片公鏈都會應用 VDF (可驗證延遲函數)來產生隨機數,但也會有人質疑這種隨機依然不是真隨機,會存在被利用的漏洞。因此想請問蘭總,現在公鏈一般採用的都是 VDF 製造隨機數嗎?它隨機的安全性有多大呢?依然存在怎樣的安全隱患?

蘭榮堅:好的隨機數算法必須同時保證不可預測、不可干擾,可驗證、以及執行效率高的特性。其實除了自然界的量子級別之外,是沒有完全的“隨機“數的,所有電子世界的隨機數都是僞隨機數,但通過多方計算 MPC (multi-party computation) 的方法,還是有可能實現之前的幾個特性,從而滿足作爲區塊鏈隨機數的基本需求。

之所以在分佈式隨機數產生協議中加入 VDF,是爲了避免 last revealer attack (最後發佈者攻擊). 這種問題在普通分佈式隨機數協議中是很常見的,它打破了”不可干擾“的要求,具體講,當大部分節點多發佈了自己對隨機數的一小部分貢獻時,最後一個節點可以根據看到的其他人發佈的數據,他可以很快的通過計算,來決定自己是否要發,或者發什麼樣的數據,從而導致最後的隨機數結果對他自己有利。

而 VDF 的延遲計算作用,可以使最終的隨機數結果,需要通過一段較長的時間才能計算出來,這樣最後發佈者就沒辦法知道自己需要做什麼才能讓最後的結果對自己有利,從而實現了不可干擾的問題。

在 VDF 的實現方面,我們已經完成了業界第一個用 Go 語言實現的安全高效 VDF 可驗延遲函數,並且利用 BLS12-381 橢圓曲線實現了 VRF 的功能。 VRF 的用處是加入不可預測性的隨機數,VRF 和 VDF 都是可以驗證的密碼學算法,所以最後的結果也是可以驗證的。而且我們的分佈式隨機數協議的複雜度是 O(n),所以在那四個特性上,我們的算法完全滿足,可以做爲安全有效的隨機源,爲分片區塊鏈的安全做保障。

Staking 是否會成爲未來主流?

Rudy:您如何看待 PoS 採取 staking 來代替 PoW 算力挖礦?這會成爲未來的主流嗎?

蘭榮堅:對於 PoW 和 PoS 的較量,我強烈推薦 Zhijie Ren 的一篇文章:《支撐 POW 安全性的不是算力,而是信仰》

主要觀點是 PoW 的安全性其實比大家想象的要低得多,對於除了比特幣之外的 PoW 項目,其安全性都並不高,最近的 ETC 攻擊就是很好地證明。因爲想要拿到 51% 的算力,並不需要買 51% 的礦機,只需要租用相應的算力一段時間就好了。而 PoS 和 Staking 的機制,可以有效保證攻擊者的攻擊成本是整個項目幣的市值的至少 51%,而當一個攻擊者,有了 51% 以上的代幣後,他是沒有動機去攻擊這個鏈,然後讓自己的 Stake 歸零的。所以其實 PoS 的安全性比 PoW 更高。

所以,我認爲 PoS 或者說 Staking 的項目未來會成爲主流,一方面 PoS 相對 PoW 更加安全高效,極少浪費能源,另外 PoS 所帶來的 Staking 經濟也會爲區塊鏈領域帶來更多的新模式和新玩法。其實從技術演化史來看,方向都是從依託於實物的的介質,向更加虛擬化的模式發展,就好比電子計算器取代了實物算盤一樣,我認爲基於虛擬權益的 PoS 取代基於算力設備的 PoW 也將是區塊鏈的發展方向。

Rudy:全網 staking 率(投票率 / 質押率)的提升對公鏈安全性、性能有怎樣的影響?在 PBFT 類共識下可能追求 staking 率高於 2/3,其他 PoS 鏈也是 staking 率越高公鏈越安全嗎?

蘭榮堅:Staking 是區塊鏈系統層之上的協議,所以 staking 率其實對區塊鏈性能不產生影響。而安全性上,就像我說的,主要考慮攻擊成本,那麼 staking 率越高,要得到全網 50% 以上的 stake 的成本就越高,進而網絡的安全性就越好。

所以 staking 率對於網絡安全肯定是越高越好,但如果所有 token 都被 stake,對於 token 的流通和經濟又會產生不良影響,所以需要權衡處理。通常 66% 左右的 staking 率是比較合適的。

結束語

Rudy:公有鏈作爲區塊鏈世界的基礎設施,它的高性能是實現規模化應用的前提,分片技術無疑是實現區塊鏈性能擴展的重要路線之一,其橫向擴展性使得其性能擴展的天花板極高,而跨片交互、1% 攻擊等種種難點與問題也正在不斷取得突破。通過今天蘭總的分享我們瞭解到,對於分片技術而言,PoS 機制由於較多地融入了即時最終性的設計,更加適合跨片的交互,受到了分片公鏈的更多青睞。此外,基於虛擬權益的 PoS 將持幣者權益與礦工綁定在一起,安全性實際比 PoW 更高,基於虛擬權益的 PoS 取代基於算力設備的 PoW 將是區塊鏈的發展方向。

感謝 @ 蘭榮堅 今日能做客 InfStones 主辦的「PoS 百家談」,希望 Harmony 與分片鏈都能取得更好的進展。

「PoS 百家談」是由全球超級節點服務商 InfStones 主辦的系列訪談活動,邀請 PoS 公鏈創始人,及來自節點服務商、資本方等機構的行業大咖,一期一會,暢聊 PoS 與 staking 經濟。歡迎添加小助手微信 : infpool01,拉你進羣一同學習。