如何讓中本聰共識更牛

買賣虛擬貨幣
共識協議是當前區塊鏈網路最重要的部分之一,並已經由最早的PoW衍生出PoS與DPoS等諸多共識協議。不過當前行業所面臨的問題是,技術的不斷進步與使用者需求的提升會要求區塊鏈共識協議做出一定的改進,但這往往相當困難,以太坊就是最典型的案例。在這種情況下,如何設計出一種可以自我調整的共識協議越來越成為行業的內在需求。本文闡述了共識協議的特性與行業進展,提出共識協議自我調整的可能方案,希望對大家有所啟發。新的基礎設施湧現出新的技術,而新技術中所帶來的慾望則孕育著技術的自否定。原有的基礎設施終因無法再滿足慾望所需而被遺棄,在新的技術與慾望的共同推動下實現變革。人類本身就是在不斷迭代的環境中自我進化,不斷適應新的技術和掌握新的技能,若無法學習和成長,自然被淘汰。而技術本身也是,若技術無法跟上時代發展的步伐,技術本身也會被超越,被淘汰。公鏈和圍繞公鍊形成的生態就如同一個社會體系,很多時候整個社會不是不想快速前進,而是需要一個保守的方式,以穩定和安全為第一優先順序,儘量用最小化的變動完成對新情況的適應。
我們必須承認區塊鏈是類似硬體的軟體,回顧這項技術並不長的歷史,我們已經明顯感受到它這一項弱點:每一次分叉都是對整個社羣的一種衝擊。比如,以太坊從 2015 年至今,經歷了三次分叉:· Homestead 分叉,透過了 3 個 EIP;· Byzantium 分叉,透過了 8 個 EIP;· Constantinople 分叉,透過了 5 個 EIP。而 GitHub 中的正在討論的 EIP 還有上千個。每次分叉都是在千萬個需求中艱難地做抉擇,找到當下最必要的幾個需求做出改進,並在社羣進行大規模的探討。以太坊的核心開發者要清楚智慧合約平臺目前面臨的情況,調查開發者們的需求,評估每一個協議改進對以太坊本身的影響;而且在一個開源的體系中,每一次改進都會有諸多的安全問題。
如最新的君士坦丁堡分叉,SSTORE 指令的改進在最後關頭被 ChainSecurity 團隊發現漏洞,是一個原本不會出現、但是改進之後牽扯到其他程式碼帶來的可重入漏洞問題。對於一個如此龐大的開源生態,在不斷權衡升級的利弊之後,你還不得不在升級之前在測試網反覆進行測試來確保安全性,確保任何指令不會由於本次對程式碼的修改造成其他後果。但是現實情況就是,技術是不斷進步的,不斷會有新的硬體設施、軟體技術,會有全新的需求,要求區塊鏈協議做出一定的改進。最理想的方式是區塊鏈能夠足夠的底層、足夠靈活、足夠簡單,在需要升級的時候能夠儘可能避免過多的變動。協議是否能夠自我調整?若協議能夠自動適應環境的變化,擁有某種類似自我進化的能力,是否能夠極大程度改善這一點?在這其中,共識的設計關係到網路和計算能力,是其中關鍵的一個部分。

比特幣是目前執行最久的區塊鏈,已經執行了十年,而十年前和十年後,頻寬水平發生了巨大的變化。

如同上圖中這個研究所指出的,連結到網路中的比特幣 IPv4 節點在 2016 年時頻寬中位數為 33 Mbit/s,在 2017 年 2 月,這個數字達到了 56 Mbit/s。而比特幣的最大吞吐量至今沒有太大的改觀。

那是否有能力來讓共識演算法能夠根據環境調節自己的吞吐量,而不需要透過分叉等方式進行升級呢?這裡有兩個規律我們需要去了解,雖然規律是對歷史的總結,但是某種程度上我們可以用這些規律預測未來。

1)摩爾定律 Moore’s Law:也就是積體電路效能18-24個月翻倍,同樣的,儲存器也是遵循同樣的規律。也有表述稱每年增長 60%。

2) Nielsen's Law:這是一個和頻寬水平有關的定律,大致意思是使用者的頻寬每年增長 50%。相對於摩爾定律每年 60% 的計算速度增長速率,頻寬增長速率慢大約 10 %。

上圖是 1983 年到 2018 年頻寬的變化曲線,注意豎軸是 Log10,所以我們也能夠看到頻寬的增長也是指數形式增長的。

在 Nervos 共識研究員張韌之前的分析中,我們知道衡量區塊鏈共識協議的一個標準是頻寬利用率。頻寬提高是節點間通訊水平的提升,意味著共識會更加高效。

而共識協議是一開始就寫死的,如果需要修改則要進行分叉。比特幣、以太坊如果需要根據網路情況提高自己的吞吐量,需要的是開發者對網路情況進行估計,權衡效率和安全,然後採用一種保守的方案對協議進行升級。

升級又是一件痛苦的事情,最好的情況是:設計一種共識機制能夠根據頻寬水平的提升「自我進化」,來適應頻寬增長帶來的變化。

如何設計可以自我調整的共識協議

那麼我們需要去思考,有沒有一個區塊鏈能夠感知的指標,同時這個指標能夠體現當前網路的情況。根據這個指標協議能夠動態調節自己的吞吐量?

在 PoW 共識協議的研究中,有一個很重要的概念是孤塊。

百度百科的定義是:在比特幣協議中,最長的鏈被認為是絕對的正確。如果一個塊不是最長鏈的一部分,那麼它被稱為是「孤塊」。一個孤立的塊是一個塊,它也是合法的,但是發現的稍晚,或者是網路傳輸稍慢,而沒有能成為最長的鏈的一部分。在比特幣中,孤塊沒有意義,隨後將被拋棄,發現這個孤塊的礦工也拿不到採礦相關的獎勵。

以比特幣為例,一個在中國的礦工很幸運的在上個區塊出塊之後的 9 分鐘的時候挖到了區塊,然後他很開心地開始廣播這個區塊。但是這個區塊花了幾十秒還是沒有廣播到美國的礦工,十分鐘的時候美國的礦工發現了同樣高度的區塊,也開始廣播。

隨著兩個區塊透過比特幣的 P2P 協議不斷廣播開來,這時候大家會發現網路裡有兩個相同高度的區塊,這時候比拼的就是全網算力的支援,一部分算力認可北美礦工的區塊,根據這個區塊所在的鏈進行挖礦,另一個則在中國礦工所在鏈上挖礦,這時候就是產生了分叉。

在隨後的幾個區塊競爭中,雙方陣營的礦工必然有一個先搶出塊權,成為最長鏈,而後根據最長鏈原則,最後只能有一條最長鏈被所有礦工接受,結束分叉。另一條被遺棄的鏈上面的區塊就是孤塊。

孤塊就是因為頻寬限制產生的延遲,礦工沒有收到新的區塊而自己出塊產生了競爭,而這個競爭必然帶來一方礦工的損失。並且短暫的分叉其實也是損害了網路的安全性,這也是我們應該避免的。如果我們能夠假設頻寬無限好,區塊出塊能夠瞬間無縫廣播出去,那麼就不會存在這樣的競爭出現孤塊,沒有人損失,也不會產生安全上的問題。

而孤塊是區塊鏈能夠感知的,我們可以用全網的孤塊率作為指標,來評估目前網路頻寬情況。孤塊率低的時候意味著網路情況良好,沒有太多的出塊競爭,高的時候則表示網路情況太差,需要調高出塊難度,提高出塊間隔避免密集的出塊產生競爭。因此設定一個合理的孤塊率作為指標,協議根據當前孤塊率,對比這個指標評估網路情況動態調節出塊難度會是一個不錯的選擇。

頻寬利用率是評估共識效率的重要指標。在孤塊率較低的時候,這意味著網路情況良好,能夠承載更多的吞吐量。因此這時候可以降低出塊難度,降低出塊間隔,提高吞吐量,更好地利用網路頻寬。

孤塊率較高的時候,意味著網路情況比較差,這時候可以提高出塊難度,提高出塊間隔,降低吞吐量。

這樣,透過設定孤塊率調節吞吐量,隨著未來頻寬水平的提升,協議也能夠根據網路情況的最佳化提高吞吐量來適應未來的發展和變化,在保證一定安全性的同時,充分利用網路頻寬。

在張韌博士的設計中,就採用了這樣的設計思路。

張韌因為對 Bitcoin Unlimited 漏洞的研究,被 Blockstream 邀請實習,實習期間和 Pieter Wuille 和 Greg Maxwell 對目前所有的 PoW 共識機制作出研究。目前張韌在魯汶大學 COSIC 實驗室師從  Bart Preneel ,並和導師完成了研究論文《Lay Down the Common Metrics: Evaluating Proof-of-Work Consensus Protocols’ Security》,近期該論文被頂級會議 IEEE S&P 收錄。

在他的設計中,在每一個難度週期根據網路中的孤塊率(孤塊的資訊會被打包到區塊中用於統計和計算)動態調節難度,從而調節出塊間隔。這個共識協議的設計在比特幣 Nakamoto Consensus(即中本聰共識) 的基礎上進行修改,能夠在不損失安全性的同時提高網路的吞吐量 —— 我們稱這個共識演算法為NC-Max,我們希望它能夠突破 Nakamoto Consensus 的吞吐量極限。

當然細心的讀者可能會想到兩個問題:

1)出塊獎勵如何計算?

出塊間隔是變化的,出塊獎勵其實也是變化的。但是在一個難度調節週期,總出塊獎勵保持不變。

2)吞吐量提高之後,是否有儲存的問題?交易速度提高了,交易產生的儲存需求也會增加。

很巧的是,根據之前提到的 Moore’s Law 以及 Nielsen's Law ,頻寬增長速度略慢於儲存水平的提升。因此,在頻寬提升、吞吐量提升的同時,計算能力和儲存能力會不斷跟上甚至超越,不會出現由於 TPS 過高對計算能力的要求而需要更強的超級計算機,損失去中心化。

另外,在 NC-Max 的設計中,除了採用動態調整出塊間隔和區塊獎勵來提升頻寬利用率以外,還有兩個設計亮點:

1)採用兩步交易確認來降低孤塊率:交易首先會提交交易的編號(編號是完整交易的 hash 值,和交易一一對應)在區塊的交易提案區進行共識,之後只有經過提案的交易才能完整傳送,從而能夠一定程度降低孤塊率;

2)在難度調整的時候考慮週期中所有的區塊,包括孤塊,來抵禦「自私挖礦」攻擊。

總的來看,共識協議的自我調整會受到行業越來越多的關注,其解決方案也會越來越多。

免責聲明:

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

推荐阅读

;