巴位元加速器技術公開課 | Layer1如何擁抱Layer2
巴位元加速器推出的全球線上區塊鏈技術深度對話欄目Geekhub Global Online,定期邀請世界各地的資深技術大咖連線對話,旨在為技術社群輸送前沿高質量的區塊鏈技術內容;同時Geekhub技術社群成員也可以參與直播互動,共同探討區塊鏈的技術發展與未來。
Geekhub Global Online-Layer 2擴容周第三日的線上活動有幸邀請到了Nervos基金會聯合創始人呂國寧Daniel為大家做 《擁抱Layer 2》 為主題的技術公開課。
Nervos存在的目的是作為下一代加密經濟系統的基礎設施,透過分層架構,打破區塊鏈“不可能的三角”,底層作為信任引擎,支撐上層的高效能去中心化應用。Nervos 成員來自以太坊分片核心開發團隊,imtoken 前 CTO,雲幣前 CTO,Ethfans 發起人,星火礦池發起人等等一票對技術執著的開源界大牛。
Nervos團隊對以太坊的理解可以說是非常深刻的,與以太坊社群、以太坊錢包、Casper等都有緊密的聯絡。同時也對區塊鏈有很多本質思考:
為什麼應用需要先把業務邏輯改造成去中心化模式,並通過智慧合約實現,並且開發者需要掌握一門叫做 Solidity 的程式語言,才能實現應用上鍊?為什麼需要全球所有的節點全部執行相同的計算並交叉驗證,通過得到相同的結果,這樣才能消除智慧合約執行的不確定性,區塊鏈的本質是以最低成本,高效建立全域性的信任。但是隨著共識規模的擴大,建立信任的交易成本,也就是說礦工費越來越貴,難道沒有更好的建立信任的機制?或者對使用者更友好的信任成本支付模型?為什麼所有希望實現下一代區塊鏈基礎設施的團隊,大多選擇了單點突破這個方向,比如更高效的共識演算法,或者更好的分片機制作為切入點,在不犧牲安全性和去中心化的前提下,儘量將效能做到最優,而不去考慮從整體架構上實現整體突破?為什麼現有的第二層擴充套件方案,包括 state channel,Plasma,Truebit,Teechan 等,不論從理論研究到工程實現,都慢慢趨向成熟,無論從工程,還是可靠性方面,都要比擴充套件主鏈這個方向耗費的成本更低,耗時更少,但是依然很難得到在任何一條主鏈上的更好支援?
不管是layer1,還是layer2,都有各自的優勢和瓶頸。那麼Nervos是如何優化並設計這個基礎設施的架構的呢?
一、Nervos CKB
1. 不可能三角
不可能三角是區塊鏈主網公鏈設計中,去中心化、安全和效能三者不可兼得的問題。早期圍繞以太坊的智慧合約有很多優秀的創新應用,誕生出很多優秀的去中心化遊戲、DAPP等,這些應用讓我們看到區塊鏈潛在的一個非常繁榮的生態和未來,在這當中,核心的不是用區塊鏈去支撐這些應用,而是我們想通過各種方式去解決問題,區塊鏈只是其中一種方式。在我們使用區塊鏈來解決問題時,我們發現,這一代區塊鏈開發當中遇到了很多效能瓶頸問題,不可能三角從設計層面上決定了不可能在一條主網上達到三角。
那麼我們為什麼需要區塊鏈?
我們通過區塊鏈解決問題而不是分散式資料庫來解決繁榮生態的問題是因為我們需要所有節點達成共識、為所有節點提供安全性、在信任的環境保證DAPP共識的效率,分散式資料庫不使用加密學、沒有共識演算法,不需要保證網路節點的安全性,而區塊鏈需要考慮這些問題。
我們在區塊鏈中引入共識系統就不可能同時將系統效率變得很快,看中安全性需要增加網路節點,並使他們達成共識,因為越多節點意味著越安全,但同時意為著節點同步共識的效率越低。
假設有5000個節點,不考慮額外因素,節點向外傳送最新的同步訊息,達成全域性共識至少需要n的2次方條訊息,這阻礙了共識高效快速的達成。
因此區塊鏈需要做最有價值的事,它的特點是慢、貴和安全
那麼如何將這種共識價值放大
eg:關鍵幀動畫
關鍵幀動畫核心是不停的定義關鍵幀,計算機會將變化自動完成並生成動畫,動畫中最有價值的也是關鍵幀,Layer1提供最關鍵的效能、安全性,把這個價值在Layer2放大,用這個思路去考慮Nervos 的CKB設計、底層安全(信任)和上層吞吐量(效能)
二、Layer1是如何擁抱Layer2的
Layer1設計更好支援layer2的三個目標
1. store of assets(key state)
作為Layer1關鍵的一點是使用者可以把資產安全地放到Layer1上,之後Layer1存在的資產就是一種狀態(關鍵狀態)
2. crypto court
使用者在Layer 1上儲存資產後,引入layer 2 做計算,使用者不需要頻繁和layer 1做互動,layer2不需要頻繁與layer 1互動,使用者遇到分歧通過密碼學的方式提交到layer1, 自動仲裁(key action)
3. 功能特點(layer2 friendly)
設計layer1的時候充分考慮layer2需求,在工程學上方便layer2和layer1設計互動協議,layer1設計上從工程上儘可能降低layer2介入門檻和操作成本
Nervos設計目標:CKB—A Minimal Layer1
即最小化layer1方案支援layer2
三、Layer2 的基本模式、對layer1的需求,如何優化
區塊鏈底層是區塊之間通過雜湊矩陣串起來,核心是交易設計,交易有兩種模式:
1.基於State Transaction
在交易當中傳遞的是交易狀態,狀態驗證
2.基於Event Transaction
關注記錄每一個交易當中包含的狀態的行為,每個節點參與計算,計算出最後的狀態
這兩種設計方式本身並無優劣之分,適用場景不同
比特幣是基於State Transaction、以太坊是基於Event Transaction
Nervos CKB的設計是為了更好的擁抱layer2
從真正需求來考慮,分析世界上不同的layer2 ,他們需要被怎樣的支援,現有的有三種主要的擴容方向:
1. 基於狀態通道
2. 鏈外計算plasma
3. 鏈外計算驗證trubit(進展緩慢,應用場景較窄)
狀態通道
本質是使用者在layer1主鏈上寄存一筆資產,鎖定,建立通道,和其他使用者做大規模交易轉賬,雙方覺得沒有額外的交易就敲定回主鏈進行清算。比方說在主鏈抵押100元,給每位同事發1元,發了100次,之後同事在主鏈上發起清算,這時主鏈上只能看到兩次交易,鏈下的交易是不可見的。
Plasma
本質是智慧合約的計算的擴容,通過抵押鎖定資產,並遷移到plasma鏈上,在plasma鏈上擴充套件計算,使用者完成比較複雜的交易後,任何時候想退出這條鏈,發起operation操作,要求plasma子鏈上把使用者資產鎖定,把鎖定狀態寫回主鏈。
研究後我們發現,不論是state channel或是plasma,關鍵技術都是狀態壓縮(state compressed),要把在子鏈上的大量交易變成某種狀態的變化,壓縮成開始和結束狀態,最後在放到layer1上去。state channel或是plasma遇到爭議的時候可以把狀態打包,提交密碼學的證據,通過證據發回到layer1上處理爭議,密碼學的證據也是圍繞狀態的,從這兩點來看顯而易見,layer1的設計必須以state transaction為主,而不是event transaction。
如果我們使用的是state transaction,我們需要的是off-chain的計算和on-chain的狀態,如果是state transaction,state計算完全可以發生在鏈外,鏈上關注狀態,鏈上不需要計算,對輕節點或是移動節點非常友好,on-chain state對移動裝置和邊緣裝置非常好的優化。另外,如果在layer1上使用state transaction可以把狀態的生成和狀態的驗證進行分離。使用state focus產生state狀態和state驗證的狀態是在不同階段,只有state驗證階段是在鏈上,分離對layer2方案設計師非常友好。
通過layer1、layer2設計,推匯出layer2設計需求是state,需要在layer1上支援state transaction,得到on-chain state好處,讓我們很容易實現狀態生成和分離,讓layer2的設計比較容易實現,每一步的決策引出下一步的好處,良性迴圈。
Nervos CKB驗證,即cell模型:設計時考慮到state transaction的細節,CKB設計更像是Generalization of bitcoin。
四、 如何設計VM
Layer1的虛擬機器設計,使用了RISC-V虛擬機器實現小於50條的指令。RISC-V是CPU設計專家設計的架構指令集,得到google、Oracle等公司的支援,引入完整的RISC-V指令體系,相容性非常好。使用RISC-V指令集好處是CPU設計的方法論很多問題都有成熟的方案可以做選擇,非常容易對layer2試驗計算驗證功能。VM方案是layer1驗證layer2計算很好的方案。使用RISC-V方案比較容易實現VM對layer2計算驗證的設計。
並且使用第三方服務掛在到RISC-V虛擬機器上,不需要增加額外加密指令集,簡單高效。已經可以把Secp256加密的一次計算驗證優化在30毫秒以內,生產環境可以有更高的效能。這個虛擬機器能夠對layer2在衝突的時候對layer1提交密碼學證據,並針對證據做自動仲裁,提供了非常好的方案支援,簡單而強大。
五、 CKB經濟模型設計

CKB經濟模型:在主網發行token,即CKB token,通過質押CKB TOKEN,換取Capacity,Capacity用以儲存鏈上驗證狀態的程式碼,執行程式碼耗費空間。得到儲存空間,意味著放棄CKB流動性、抵押CKB,而空間內容清零,將重新獲得CKB。在這當中,抵押的越多,放棄的越多。那麼為什麼使用空間—經濟而非計算量——經濟的經濟模型設計的原因是當區塊鏈效能提升10000倍時,CPU和頻寬都是瞬時的,一旦Capacity擴充套件性問題解決後,儲存的永續性成本將匹配使用成本。同時一方面是因為Layer2是圍繞state transaction,另一方面針對後區塊鏈時代的設計考量。
總結一下公開課的幾個要點:
1、Nervos CKB
2、layer1是如何擁抱layer2的
3、介紹layer1的設計,是為了解決目前layer2的問題
4、Layer2的基本模式、對layer1的需求,如何優化
5、如何設計VM、經濟模型
社群提問選錄:
1. 呂老師,對經濟模型很感興趣,能稍微講一下 Nervos 經濟模型是如何設計的?Nervos經濟模型設計核心是流動性質押模型,在使用網路時質押基礎token換取儲存空間,放棄流動性,意味著放棄流動性機會成本。整個layer1關注儲存或持續成本而非瞬時成本,不是以CPU和頻寬消耗計算成本。在以太坊或其他網路上,礦工費支付計算成本、瞬時成本,而沒有人去支付持久成本,在區塊鏈解決效能瓶頸後Capacity模型更加合理。
2. State focus的確很好,只做verification的確效率很高,但是不可能沒有Tradeoff吧?那麼請問下State focus的問題在哪裡呢?State focus和event focus從tradeoff角度看,關鍵是看需要什麼
狀態為中心:state transaction(不針對網路以鏈上計算和計算結果達成共識優化)
計算為中心,達成共識、交叉驗證:event transaction(簡單直接面向計算)
Layer2的核心是安全、資產,是圍繞state的共識(計算不是重點)
因此是場景的需求而非tradeoff。
3. Layer1擴容和Layer2擴容的未來發展是怎樣的呢?在現階段技術發展來看,圍繞layer1擴容的sharding面臨巨大的困難,在未來3-5年很難去落地,layer2的架構可實施來看比較1-2年會百花齊放,不同場景不同行業layer2解決方案,發展較快。
4. 呂老師認為,下一代區塊鏈的形態會是怎樣的呢?因此底層想要加密的經濟體,生態,生態中有各種各樣的應用和服務,產生價值,區塊鏈是生態的基礎設施。現在的技術,下一代的生態發展是足夠好的layer1+百花齊放的layer2。
回顧Geekhub Global Online—Layer2擴容周—巴位元加速器技術公開課,掃描下方二維碼可以進入擴容系列課學習,也可以加入Geekhub Online社群進行探討,文章、連結及下一期的直播連結均會第一時間釋出在社群中。
加入Geekhub Online社群的方式
關注【巴位元加速器8BTCBoost】微信公眾號,聊天框中回覆【GGO】加入【Geekhub Online】社群
往期課程回顧:
1. 公開課
演講者:Coogan Brennan(Consensys, Ethereum Foundation)
2. AMA
演講者:John Adler(Consensys Plasma Researcher)
3. 公開課
演講者:董沫(Celer Network創始人)
4. 公開課
演講者:呂國寧(Nervos基金會聯合創始人)
5. Panel
演講者:Celer Network創始人董沫、Nervos基金會聯合創始人呂國寧、閃電黃世亮、巴位元加速器聯合創始人胡夢迪
課程二維碼:
海報總覽: