每種代表路線中都有很多值得學習瞭解的設計思路和哲學,本期問道區塊鏈請來了知名區塊鏈專案Nervos聯合創始人及COO呂國寧為大家講述如何透過鏈外擴容和分層思想打造下一代區塊鏈基礎設施。
5月6日晚,區塊鏈研習社社群專訪欄目——《問道區塊鏈》邀請了Nervos聯合創始人、COO呂國寧(前 imToken 聯合創始人兼 CTO,EthFans以太坊愛好者社羣發起人,前雲幣交易所 CTO,國內最大的線上技術社羣 RubyChina 創始人)為大家講述Nervos獨特的分層設計思想及鏈下擴容相關知識。
本次活動在“問道區塊鏈創世群”進行,並在區塊鏈研習社所有社群及合作伙伴社群進行直播。活動得到了鏈聞、星球日報、COINVOICE、耳朵財經、深鏈財經、Coin4A及各大媒體的大力支援。
呂國寧及Nervos團隊在業內深耕超過5年,在交易所、錢包、礦池、聯盟鏈等方面都取得了傑出成績,參與創立的專案在領域內均為頭部專案,具有豐富的區塊鏈開發實踐經驗。
鏈上擴容方案的取捨和妥協
呂國寧指出,目前區塊鏈的效能擴充套件方式有兩條路,一條路為鏈上擴容,另外一條路是鏈外擴容。
鏈上擴容是指從區塊鏈本身特性出發,解決影響效能的特性,從而提高區塊鏈效能。
比如共識演算法不夠高效,就選擇更高效的POS及其變種演算法;比如鏈式儲存結構效率不夠高,就使用可以並行打包的DAG方案;再比如網路處理交易和驗證是序列的,一次只能處理一筆交易,就使用可以給節點分組的分片技術,不同的組處理不同的交易,提升效能。
鏈上擴容的技術都在實現一個目標,即做一條更強的鏈。每一種技術方案在具體實現的時候都要面臨各種不同的取捨,每一種方案在帶來更好的效能提升的同時,其實都會在其他方面做出一些妥協。
比如分片方案能否高效的解決跨鏈計算,DAG 在雙花檢測上是否能夠做到比較低的延遲,而 PoS 共識演算法的安全效能否保證,所有基於 PoS 的攻擊方式是否已知並且有針對性的方案,且能帶來如 PoW 在真實環境中長達十年的檢驗給我們帶來的信心?
這些問題都是當下各個鏈上擴容團隊在積極努力和試圖解決的,雖然在過去的一兩年鏈上擴容的研究有了很多進展,但是這些都不是 Nervos 嘗試解決問題的方向。
Nervos不是為了做出一條更強的鏈
實現鏈上擴容是不是我們要解決的核心問題?
我們的看法是擴容不是唯一核心要解決的問題,比如說,如果我們把效能的瓶頸問題解決了,儲存可能會馬上變成瓶頸,這就是前段時間被熱議的狀態爆炸問題。由於交易量的提升,那麼對儲存的需求也會同步提升,而節點的儲存資源其實是有限不可回收資源,所以這個問題可能要比效能問題還要嚴重,甚至它直接影響到了去中心化這一區塊鏈的本質特性,且這類問題還無法透過分叉能方便得解決。
進一步深入思考,會發現在一層中要把所有的事情全部都做到最好,其實要權衡的東西很多,並且做取捨非常難,很多東西甚至是互相矛盾,導致無論做出怎樣的取捨,在保證去中心化和安全性的前提下,很難做到很好的效能。
Nervos Network 的設計思想的出發點不是為了做出一條更強的鏈,Nervos Network 的目標是去實現一個豐富繁榮的加密經濟生態,併為這個生態提供底層基礎設施服務。
區塊鏈在這個生態中的角色是提供最高效率達成全球共識的工具,並以最低的成本來構建信任。所以 Nervos 的方案是鏈外擴容,並提出了設計一個分層的加密經濟網路設計,並且帶來一個全新的公鏈架構設計思路:如果我們認為分層是未來的發展方向,我們應該從一開始就考慮到上層協議和分層網路的需求,在分層的大框架下去設計區塊鏈協議。
基於分層的思想,Nervos 的底層 Layer 1 網路只需要關注到安全和去中心化,Layer 2 層追求極致的效能,並且在業務實現上去滿足各類商業場景的需求,然後由 Layer 1 來對 Layer 2 提供保證。
分層思想和技術創新下的繁榮生態
Layer 2 的興起,是源於我們發現公有鏈的效能不足,很難擴容到滿足整個加密經濟體需求的水平,因此慢慢演化出了一系列可以由區塊鏈來保證安全的 Layer 2 協議,例如支付通道(Payment Channel),Plasma 等等方案。
Layer 2 方案共同特點是犧牲共識範圍來換取效能,因此作為 Layer 1 的區塊鏈,關注點顯然不應該是效能,因為 Layer 2 會承擔這個職責。Layer 1 是保障上層協議參與者的最後防線,它的關注點應該是安全和去中心化。
Layer 1 負責的是狀態共識(儲存),Layer 2 負責的是狀態生成(計算)。
Layer 1 需要一個安全的共識協議,並且範圍越大越好。基於 PoW 的 Nakamoto Consensus 正是這樣一個協議,這是唯一一個在現實環境中經過驗證的全球共識,於是我們針對 Layer 1 設計了一套效能最佳化的給予 PoW 的共識協議,這套共識協議可以在不犧牲安全性的基礎上,壓榨初網路頻寬的所有潛能,目前我們沒有給我們的 PoW 取正式的名字,暫定名字為 NC-Max。
Layer 1 需要驗證各種 Layer 2 的狀態,需要擁有一個強大的可程式設計能力的虛擬機器,以支援各種狀態驗證邏輯,這意味著我們需要一個強大的程式設計模型(狀態模型+虛擬機器),我們引入了基於 RISC-V 指令集實現的虛擬機器,來滿足 Layer 1 的各種需求。
在 Layer 1 這一層,基於 Cell 程式設計模型的靈活的狀態儲存能力,結合 Nervos CKB-VM 虛擬機器,可以方便的支援各種密碼學證明,讓 Layer 1 充當 Layer 2 的“法院”的角色,並且可以非常靈活的增加新的密碼學演算法而無需硬分叉。
最後,一個合理設計的經濟模型,對齊網路上參與的各方價值和利益,才能保證網路長久安全可靠執行。
最後總結一下創新點:
- Cell 模型,支撐靈活的狀態儲存和驗證
- CKB-VM 虛擬機器,基於 RISC-V 指令集實現
- NC-Max PoW 共識演算法,壓榨網路頻寬的所有潛能
- 靈活的新增各種加密演算法,而無需硬分叉
- 經濟模型,針對 Layer 1 定製的,保障網路長久安全可靠執行
開發進度和近期目標
5月18日,我們的測試鏈將正式釋出。大概會有不短於 6 個月的測試階段,然後才是主網上線。測試鏈執行期間,我們會繼續修復各種問題。當測試鏈比較穩定後,我們會引入第三方安全審計團隊從滲透測試到白盒測試進行多輪審計,基於審計結果我們會開展一系列的安全問題修復。以及在保障安全性的前提下做到儘可能的效能調優。
當安全方面的工作達到一個穩定階段後,我們會開始壓力測試,我們的目標是希望當壓力測試達到一個穩定的狀態持續一段時間,比如 30 天后,屆時我們會開啟主網路釋出計劃。
從測試鏈到主鏈,可能有長達半年的迭代時間,在這個期間,我們會針對社羣和開發者開展一系列的基於測試鏈的技術活動,包括系列的 Hackathon,Demo 大賽,漏洞懸賞等等,希望能借此吸引到更多的開發者早期參與到我們的測試鏈的測試和完善工作中。