區(qū)塊鏈技術(shù)可擴(kuò)展方案分層模型區(qū)塊鏈
將區(qū)塊鏈與傳統(tǒng)互聯(lián)網(wǎng)OSI模型結(jié)合,建立區(qū)塊鏈技術(shù)可擴(kuò)展方案分層模型三個(gè)一級層級。
本報(bào)告通過對27個(gè)典型區(qū)塊鏈項(xiàng)目分析,借鑒計(jì)算機(jī)網(wǎng)絡(luò)分層管理、各層標(biāo)準(zhǔn)化設(shè)計(jì)的思想,將區(qū)塊鏈與傳統(tǒng)互聯(lián)網(wǎng)OSI模型結(jié)合,建立區(qū)塊鏈技術(shù)可擴(kuò)展方案分層模型三個(gè)一級層級:Layer 0層數(shù)據(jù)傳輸層,Layer 1層On-Chain公鏈自身(底層賬本)層和Layer 2層Off-Chain擴(kuò)展性(應(yīng)用擴(kuò)展)層。在一級層級的基礎(chǔ)上,結(jié)合區(qū)塊鏈架構(gòu)又可以進(jìn)一步分解成七個(gè)二級層級來詳細(xì)研究。
Layer 0層數(shù)據(jù)傳輸層與傳統(tǒng)OSI七層模型對應(yīng),優(yōu)化區(qū)塊鏈與傳統(tǒng)網(wǎng)絡(luò)的結(jié)合問題。區(qū)塊鏈?zhǔn)钦麄€(gè)互聯(lián)網(wǎng)協(xié)議層中的最上層,本身還是要依賴于底層的協(xié)議為它工作,雖然在比特幣P2P網(wǎng)絡(luò)設(shè)計(jì)的時(shí)候已經(jīng)考慮了節(jié)點(diǎn)之間的發(fā)現(xiàn)、節(jié)點(diǎn)連接的握手協(xié)議、節(jié)點(diǎn)間地址廣播和數(shù)據(jù)通信等,鑒于已經(jīng)有部分項(xiàng)目開始探索P2P網(wǎng)絡(luò)與傳統(tǒng)OSI模型的結(jié)合,甚至將改進(jìn)延伸到數(shù)據(jù)鏈路層,本報(bào)告傾向?qū)2P網(wǎng)絡(luò)和傳播機(jī)制并入到Layer 0層和傳統(tǒng)OSI模型一起作為一類可擴(kuò)展方案進(jìn)行研究。
Layer 1層解決底層賬本問題,主要負(fù)責(zé)安全,妥協(xié)性能,注重于記賬功能。結(jié)合區(qū)塊鏈架構(gòu),Layer 1層可以分解成四個(gè)二級層級,從網(wǎng)絡(luò)層的驗(yàn)證機(jī)制上使用諸如分片技術(shù)去改進(jìn),從數(shù)據(jù)層的數(shù)據(jù)區(qū)塊使用諸如隔離見證和鏈?zhǔn)浇Y(jié)構(gòu)上使用DAG等技術(shù)去改進(jìn),從共識(shí)層的共識(shí)機(jī)制上去改進(jìn);
Layer 2層解決廣義應(yīng)用問題,主要負(fù)責(zé)性能,妥協(xié)去中心化,注重于計(jì)算功能。結(jié)合區(qū)塊鏈架構(gòu),Layer 2層可以有兩個(gè)二級層級,從跨鏈、狀態(tài)通道等多鏈并行、鏈上鏈下結(jié)合甚至是中心化的方式來滿足性能需求,借助Layer 1層來保證安全。
通過閱讀本研究報(bào)告,讀者可以充分了解到當(dāng)前區(qū)塊鏈技術(shù)發(fā)展趨勢,尤其是可擴(kuò)展方案的基本原理、思考方向和主要技術(shù),并結(jié)合對應(yīng)的項(xiàng)目案例加深理解,提升體系分析、辨別項(xiàng)目的能力。
區(qū)塊鏈技術(shù)的本質(zhì)是一個(gè)服務(wù)于現(xiàn)實(shí)場景的底層賬本,不可盲目萬能化,Layer 1層就是作為這個(gè)底層賬本的主要載體充分服務(wù)于Layer 2層,根基于更適合的Layer 0層。
第一章 當(dāng)前區(qū)塊鏈技術(shù)主要瓶頸
1.1 區(qū)塊鏈技術(shù)發(fā)展概述
2009年1月,比特幣網(wǎng)絡(luò)正式運(yùn)行,比特幣的成名造就了區(qū)塊鏈技術(shù)。如今,從區(qū)塊鏈技術(shù)的發(fā)展上看,普遍公認(rèn)的主要有兩個(gè)階段:一是以比特幣(BTC),萊特幣(LTC)等為代表的作為支付貨幣的第一代區(qū)塊鏈;
在第一代的基礎(chǔ)上,第二代區(qū)塊鏈的發(fā)展其實(shí)有幾個(gè)方向:具備圖靈完備的智能合約功能是大家說的最多的一個(gè)方向,典型代表有以太坊(ETH)和柚子(EOS)等;隱私加密保護(hù)相對于第一代區(qū)塊鏈也是一個(gè)很重要的改進(jìn),典型代表有環(huán)簽名技術(shù)的門羅幣(XMR)和零知識(shí)證明的大零幣(ZEC)等;除此之外,一個(gè)區(qū)別傳統(tǒng)區(qū)塊鏈概念的有向無環(huán)圖DAG也是一個(gè)重大的改進(jìn)方向,典型代表如IOTA等。
而第三代區(qū)塊鏈目前并沒有普遍的共識(shí),這也是當(dāng)前區(qū)塊鏈發(fā)展的一個(gè)迷茫期,大家都在摸索中,有將DAG和跨鏈技術(shù)作為第三代的,也有將Layer理論(后文將具體介紹)作為第三代發(fā)展方向的。其中,如果將DAG作為并行于狹義區(qū)塊鏈(注:廣義區(qū)塊鏈技術(shù)是包含DAG技術(shù)的)的一種技術(shù)來看時(shí),我們也能做出另一種類比:第一代DAG項(xiàng)目和第一代狹義區(qū)塊鏈項(xiàng)目都以支付貨幣功能作為第一代,當(dāng)DAG系列出現(xiàn)支持智能合約的突破后,便可以類比于第二代狹義區(qū)塊鏈的階段。
區(qū)塊鏈技術(shù)發(fā)展階段可以用圖1來表示:
圖1 區(qū)塊鏈技術(shù)發(fā)展階段
1.2 區(qū)塊鏈的三元悖論
從比特幣問世,區(qū)塊鏈行業(yè)的發(fā)展也有10年了,之所以說到當(dāng)前處于區(qū)塊鏈發(fā)展的一個(gè)迷茫期,與區(qū)塊鏈技術(shù)突破和落地應(yīng)用緊密相關(guān)。在技術(shù)上,區(qū)塊鏈的三元悖論是最基本的法則:區(qū)塊鏈系統(tǒng)最多能在去中心化、安全性、可擴(kuò)展性三屬性中取其二;換句話說,區(qū)塊鏈系統(tǒng)在去中心化、安全性、可擴(kuò)展性三屬性必須有所取舍,劃分出優(yōu)先級,或者達(dá)到動(dòng)態(tài)最優(yōu)。
圖2 區(qū)塊鏈系統(tǒng)三元悖論
1.3 當(dāng)前區(qū)塊鏈技術(shù)主要瓶頸
理解了區(qū)塊鏈的三元悖論,就能理解為什么大家一直說區(qū)塊鏈公鏈項(xiàng)目不能滿足商業(yè)需求的論述了。當(dāng)前區(qū)塊鏈技術(shù)主要瓶頸就在于公鏈項(xiàng)目的可擴(kuò)展性有限,而可擴(kuò)展性最直接的表征一般采用TPS(Transactions Per Second)來間接描述。
TPS是一個(gè)有成熟定義的計(jì)算機(jī)術(shù)語,代表了系統(tǒng)每秒鐘能夠處理的業(yè)務(wù)數(shù)量,是衡量一個(gè)系統(tǒng)吞吐量的核心指標(biāo)。簡單地說,TPS 越高,這個(gè)系統(tǒng)的事務(wù)處理能力越強(qiáng),越不容易造成網(wǎng)絡(luò)擁堵,在高并發(fā)的業(yè)務(wù)領(lǐng)域和商業(yè)級應(yīng)用場景中有很大的優(yōu)勢。TPS 越低,意味著系統(tǒng)每秒能夠處理的事務(wù)數(shù)量越低,如果是在一個(gè)支付系統(tǒng)中,交易速度會(huì)越慢,對應(yīng)的交易成本也會(huì)越高。由于TPS 是一個(gè)量化指標(biāo),所以其計(jì)算公式是確定的,即:
TPS = 系統(tǒng)并發(fā)數(shù)/ 平均響應(yīng)時(shí)間
其中系統(tǒng)并發(fā)數(shù)指系統(tǒng)同時(shí)處理事務(wù)的最大數(shù)量,平均響應(yīng)時(shí)間為系統(tǒng)處理一個(gè)事務(wù)平均花費(fèi)的時(shí)間,所以不論是區(qū)塊鏈結(jié)構(gòu)還是傳統(tǒng)結(jié)構(gòu),系統(tǒng)的TPS 都由系統(tǒng)的并發(fā)數(shù)和平均響應(yīng)時(shí)間決定。
在區(qū)塊鏈中,TPS可以理解成每秒鐘處理的交易數(shù)。眾所周知,BTC平均每10分鐘出一個(gè)塊,每個(gè)塊大小1MB,平均每筆交易的大小為600字節(jié),那么每個(gè)塊平均能夠處理1600筆交易,即TPS=1600/(10*60)=2.67,即使是高峰數(shù)據(jù)統(tǒng)計(jì),比特幣的TPS也是個(gè)位數(shù)的,很多資料會(huì)以5~7TPS做為BTC的TPS值。
圖3 BTC每個(gè)塊的平均交易數(shù)
而ETH目前仍然是POW的挖礦方式,所以處于20~30TPS區(qū)間,即不到百位TPS檔位。熱門的EOS一直以并行百萬級宣傳,主網(wǎng)上線后,研究員們搭載的服務(wù)器測試結(jié)果并不足1000,隨著DPOS的正常運(yùn)作,最新資料顯示已經(jīng)達(dá)到3000 ,在不考慮并行的情況下,相對中心方式的EOS最終TPS應(yīng)該也是在千位檔,而并行實(shí)現(xiàn)百萬級的概念在看完本報(bào)告后相信大家會(huì)有一個(gè)新的見解。理論上,在相對同等狀態(tài)下,ETH POS sharding應(yīng)該和EOS的DPOS LMAX同處于千位檔。
看完區(qū)塊鏈項(xiàng)目的數(shù)據(jù),我們對比一下Visa的數(shù)據(jù):Visa平均處理2000TPS,每日平均峰值可以達(dá)到4000TPS,理論上最高能夠支持5.6萬TPS;而Paypal全年處理490萬筆交易,性能可達(dá)10萬TPS;淘寶2017年雙十一交易創(chuàng)峰值32.5萬TPS,支付峰值25.6萬TPS。
在傳統(tǒng)集中式系統(tǒng)中,客戶端和服務(wù)器端的角色是分離的,即用戶所在的客戶端負(fù)責(zé)發(fā)起請求,然后中心服務(wù)器負(fù)責(zé)接收、驗(yàn)證、處理等一系列工作,整個(gè)系統(tǒng)的數(shù)據(jù)儲(chǔ)存和記錄也都由中心服務(wù)器負(fù)責(zé)。所以在傳統(tǒng)的集中式系統(tǒng)中,事務(wù)處理流程很簡單,由客戶端發(fā)出請求,由服務(wù)器處理后更新數(shù)據(jù)庫,即可返回客戶端,是一種集中式數(shù)據(jù)庫系統(tǒng)。
圖4 傳統(tǒng)集中式系統(tǒng)單個(gè)事務(wù)請求的確認(rèn)流程
因此在傳統(tǒng)的集中式系統(tǒng)中,不論是系統(tǒng)的并發(fā)量還是事務(wù)的平均處理速度都和中心服務(wù)器的性能有著直接的關(guān)系。中心服務(wù)器性能越強(qiáng),內(nèi)存越大,數(shù)據(jù)庫訪問速度越快,整個(gè)系統(tǒng)的TPS 就會(huì)越高。此外,傳輸過程中帶寬的增大,客戶端和服務(wù)器端物理距離的減少也可以使得系統(tǒng)平均響應(yīng)時(shí)間減少,從而增大TPS。
而在區(qū)塊鏈分布式系統(tǒng)中沒有一個(gè)中心服務(wù)器來處理事務(wù),每個(gè)節(jié)點(diǎn)都是一個(gè)中心,所以就必須要解決數(shù)據(jù)分布式存儲(chǔ)的公平性和一致性問題。所謂公平性,就是確保每個(gè)節(jié)點(diǎn)都能擁有記賬的權(quán)利,而不會(huì)出現(xiàn)某些節(jié)點(diǎn)壟斷記賬。所謂一致性,就是每個(gè)節(jié)點(diǎn)的數(shù)據(jù)賬本保持同步更新,這就要求每一條數(shù)據(jù)都需要經(jīng)過多個(gè)節(jié)點(diǎn)甚至全網(wǎng)節(jié)點(diǎn)的驗(yàn)證和確認(rèn)。
圖5 區(qū)塊鏈的分布式
概括地說,在區(qū)塊鏈分布式系統(tǒng)中,一筆交易從發(fā)出請求到確認(rèn)需要經(jīng)歷以下步驟:
1)由節(jié)點(diǎn)發(fā)出交易請求,并且廣播至整個(gè)網(wǎng)絡(luò);
2)其他節(jié)點(diǎn)接收交易請求,并且驗(yàn)證,如果驗(yàn)證通過,則放入待記錄交易列表(交易池);
3)各個(gè)節(jié)點(diǎn)爭搶記賬權(quán)(即搶奪新的區(qū)塊),成功獲得記賬權(quán)的節(jié)點(diǎn)將待記錄的交易請求記入新的區(qū)塊中,然后將區(qū)塊廣播至整個(gè)網(wǎng)絡(luò);
4)網(wǎng)絡(luò)中其他節(jié)點(diǎn)接收區(qū)塊,并且驗(yàn)證,如果驗(yàn)證通過,則該節(jié)點(diǎn)確認(rèn)區(qū)塊的合理性,將該區(qū)塊記錄自己的數(shù)據(jù)庫;
5)當(dāng)有超過一定數(shù)量的節(jié)點(diǎn)都記錄了該區(qū)塊,表明整個(gè)區(qū)塊鏈系統(tǒng)認(rèn)可了,此時(shí)最初的交易請求才算被確認(rèn)。
在區(qū)塊鏈這種分布式系統(tǒng)中,一個(gè)事務(wù)的記賬權(quán)首先需要各個(gè)節(jié)點(diǎn)基于共識(shí)機(jī)制進(jìn)行爭搶,這就需要消耗大量時(shí)間。其次,一筆事務(wù)還需要經(jīng)過多個(gè)甚至全部節(jié)點(diǎn)的反復(fù)驗(yàn)證和確認(rèn)才能被寫入數(shù)據(jù)庫,這大大減慢了事務(wù)的處理速度。如果某個(gè)節(jié)點(diǎn)的響應(yīng)速度很慢,整個(gè)系統(tǒng)的處理速度都會(huì)被拉低。而在傳統(tǒng)集中式系統(tǒng)中,事務(wù)永遠(yuǎn)由中心服務(wù)器處理,也不需要多個(gè)節(jié)點(diǎn)的反復(fù)驗(yàn)證和確認(rèn),所以區(qū)塊鏈的TPS 相較于傳統(tǒng)集中式系統(tǒng)的TPS 普遍要低,并且我們無法單純用強(qiáng)化中心服務(wù)器性能的方式來提升整個(gè)區(qū)塊鏈的TPS。同時(shí),前文也提到淘寶雙十一TPS是有兩個(gè)數(shù)值的,一個(gè)是交易創(chuàng)建峰值,一個(gè)是支付峰值,在區(qū)塊鏈中,支付峰值才是確認(rèn)的過程,會(huì)顯得更加重要和實(shí)際,嚴(yán)格的講,區(qū)塊鏈TPS的評估應(yīng)該參考每秒確認(rèn)交易數(shù)量CTPS(Confirmed Transactions Per Second)來描述一個(gè)系統(tǒng)的真實(shí)性能,不過鑒于公開資料并不嚴(yán)格區(qū)分TPS的細(xì)分定義,也不屬于本報(bào)告的重點(diǎn),所以本報(bào)告也只采用TPS來整體描述,僅作對比參考之用。
由此可見,即使中心化的系統(tǒng)由于硬件等各種問題的制約,TPS的峰值不超過10萬級別,而正常日平均TPS也不超過1萬級別(參考Visa),作為一個(gè)底層分布式賬本的區(qū)塊鏈項(xiàng)目一味追求高TPS或者是宣傳極高TPS就值得大家仔細(xì)思考一下了。
考慮到日常應(yīng)用的需求,區(qū)塊鏈主流公鏈項(xiàng)目BTC、ETH以當(dāng)前最高1000TPS的目標(biāo)也落地困難,于是便產(chǎn)生了可擴(kuò)展性的討論。至于眾多號稱TPS破萬,甚至百萬的項(xiàng)目,在閱讀完本報(bào)告后,相信大家會(huì)有個(gè)更清晰的認(rèn)識(shí)和理解。
第二章 區(qū)塊鏈技術(shù)可擴(kuò)展方案分層模型
2.1 區(qū)塊鏈技術(shù)可擴(kuò)展方案分層模型綜述
要系統(tǒng)的考慮區(qū)塊鏈技術(shù)可擴(kuò)展方案,首先必須理解區(qū)塊鏈技術(shù)框架,如圖6所示:
圖6 典型區(qū)塊鏈架構(gòu)
當(dāng)前主流的區(qū)塊鏈架構(gòu)包含六個(gè)層級:網(wǎng)絡(luò)層、數(shù)據(jù)層、共識(shí)層、激勵(lì)層、合約層和應(yīng)用層。圖中將數(shù)據(jù)層和網(wǎng)絡(luò)層的位置進(jìn)行了對調(diào),主要用途將在下一節(jié)中詳述。
網(wǎng)絡(luò)層:區(qū)塊鏈網(wǎng)絡(luò)本質(zhì)是一個(gè)P2P(Peer-to-peer點(diǎn)對點(diǎn))的網(wǎng)絡(luò),網(wǎng)絡(luò)中的資源和服務(wù)分散在所有節(jié)點(diǎn)上,信息的傳輸和服務(wù)的實(shí)現(xiàn)都直接在節(jié)點(diǎn)之間進(jìn)行,可以無需中間環(huán)節(jié)和服務(wù)器的介入。每一個(gè)節(jié)點(diǎn)既接收信息,也產(chǎn)生信息,節(jié)點(diǎn)之間通過維護(hù)一個(gè)共同的區(qū)塊鏈來同步信息,當(dāng)一個(gè)節(jié)點(diǎn)創(chuàng)造出新的區(qū)塊后便以廣播的形式通知其他節(jié)點(diǎn),其他節(jié)點(diǎn)收到信息后對該區(qū)塊進(jìn)行驗(yàn)證,并在該區(qū)塊的基礎(chǔ)上去創(chuàng)建新的區(qū)塊,從而達(dá)到全網(wǎng)共同維護(hù)一個(gè)底層賬本的作用。所以網(wǎng)絡(luò)層會(huì)涉及到P2P網(wǎng)絡(luò),傳播機(jī)制,驗(yàn)證機(jī)制等的設(shè)計(jì),顯而易見,這些設(shè)計(jì)都能影響到區(qū)塊信息的確認(rèn)速度,網(wǎng)絡(luò)層可以作為區(qū)塊鏈技術(shù)可擴(kuò)展方案中的一個(gè)研究方向;
數(shù)據(jù)層:區(qū)塊鏈的底層數(shù)據(jù)是一個(gè)區(qū)塊 鏈表的數(shù)據(jù)結(jié)構(gòu),它包括數(shù)據(jù)區(qū)塊、鏈?zhǔn)浇Y(jié)構(gòu)、時(shí)間戳、哈希函數(shù)、Merkle樹、非對稱加密等設(shè)計(jì)。其中數(shù)據(jù)區(qū)塊、鏈?zhǔn)浇Y(jié)構(gòu)都可作為區(qū)塊鏈技術(shù)可擴(kuò)展方案對數(shù)據(jù)層研究時(shí)的改進(jìn)方向。
共識(shí)層:它是讓高度分散的節(jié)點(diǎn)對區(qū)塊數(shù)據(jù)的有效性達(dá)到快速共識(shí)的基礎(chǔ),主要的共識(shí)機(jī)制有POW(Proof Of Work工作量證明機(jī)制),POS(Proof of Stake權(quán)益證明機(jī)制),DPOS(Delegated Proof of Stake委托權(quán)益證明機(jī)制)和PBFT(Practical Byzantine Fault Tolerance實(shí)用拜占庭容錯(cuò))等,它們一直是區(qū)塊鏈技術(shù)可擴(kuò)展方案中的重頭戲。
激勵(lì)層:它是大家常說的挖礦機(jī)制,用來設(shè)計(jì)一定的經(jīng)濟(jì)激勵(lì)模型,鼓勵(lì)節(jié)點(diǎn)來參與區(qū)塊鏈的安全驗(yàn)證工作,包括發(fā)行機(jī)制,分配機(jī)制的設(shè)計(jì)等。這個(gè)層級的改進(jìn)貌似與區(qū)塊鏈可擴(kuò)展并無直接聯(lián)系。
合約層:主要是指各種腳本代碼、算法機(jī)制以及智能合約等。第一代區(qū)塊鏈嚴(yán)格講這一層是缺失的,所以它們只能進(jìn)行交易,而無法用于其他的領(lǐng)域或是進(jìn)行其他的邏輯處理,合約層的出現(xiàn),使得在其他領(lǐng)域使用區(qū)塊鏈成為了現(xiàn)實(shí),以太坊中這部分包括了EVM(以太坊虛擬機(jī))和智能合約兩部分。這個(gè)層級的改進(jìn)貌似給區(qū)塊鏈可擴(kuò)展提供了潛在的新方向,但結(jié)構(gòu)上來看貌似并無直接聯(lián)系。
應(yīng)用層:它是區(qū)塊鏈的展示層,包括各種應(yīng)用場景和案例。如以太坊使用的是truffle和web3-js.區(qū)塊鏈的應(yīng)用層可以是移動(dòng)端,web端,或是是融合進(jìn)現(xiàn)有的服務(wù)器,把當(dāng)前的業(yè)務(wù)服務(wù)器當(dāng)成應(yīng)用層。這個(gè)層級的改進(jìn)貌似也給區(qū)塊鏈可擴(kuò)展提供了潛在的新方向,但結(jié)構(gòu)上來看貌似并無直接聯(lián)系。
由此可見,單從結(jié)構(gòu)上分析,區(qū)塊鏈技術(shù)可擴(kuò)展方案可以直接從網(wǎng)絡(luò)層(P2P網(wǎng)絡(luò)、傳播機(jī)制和驗(yàn)證機(jī)制)、數(shù)據(jù)層(數(shù)據(jù)區(qū)塊和鏈?zhǔn)浇Y(jié)構(gòu))以及共識(shí)層進(jìn)行改進(jìn)達(dá)到優(yōu)化。
以太坊社區(qū)在區(qū)塊鏈可擴(kuò)展性上曾提出過Layer分層改進(jìn)的概念:Layer 1層改進(jìn)和Layer 2層改進(jìn)。Layer 1層改進(jìn)是指通過對某條公鏈本身的改進(jìn)來提升它的可擴(kuò)展性,即On-Chain鏈上改進(jìn);Layer 2層改進(jìn)是指不影響該公鏈本身,通過其他方式來實(shí)現(xiàn)可擴(kuò)展性的提升,即Off-Chain鏈下改進(jìn)(此處鏈下的含義僅僅指脫離該公鏈),如后文將會(huì)介紹的側(cè)鏈、跨鏈和狀態(tài)通道等。
在這個(gè)理解的基礎(chǔ)上,我們借鑒計(jì)算機(jī)網(wǎng)絡(luò)分層管理、各層標(biāo)準(zhǔn)化設(shè)計(jì)的思想,將區(qū)塊鏈與傳統(tǒng)互聯(lián)網(wǎng)OSI模型結(jié)合,建立區(qū)塊鏈技術(shù)可擴(kuò)展方案分層模型三個(gè)一級層級:Layer 0層數(shù)據(jù)傳輸層,Layer 1層On-Chain公鏈自身(底層賬本)層和Layer 2層Off-Chain擴(kuò)展性(應(yīng)用擴(kuò)展)層。在一級層級的基礎(chǔ)上,結(jié)合區(qū)塊鏈架構(gòu)又可以進(jìn)一步分解成七個(gè)二級層級來詳細(xì)研究,具體如圖7的劃分:
圖7 區(qū)塊鏈分層研究構(gòu)架圖
2.2 Layer 0層數(shù)據(jù)傳輸層
要理解Layer 0層,先得回顧一下開放系統(tǒng)互連參考模型OSI七層模型 (Open System Interconnect),它是國際標(biāo)準(zhǔn)組織(ISO)和國際電報(bào)電話咨詢委員會(huì)(CCITT)聯(lián)合制定的開放系統(tǒng)互連參考模型,為開放式互連信息系統(tǒng)提供了一種功能結(jié)構(gòu)的框架。它從低到高分別是:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層和應(yīng)用層。在實(shí)際使用中,由于理論研究和現(xiàn)實(shí)落地的時(shí)差,廣泛使用的是TCP/IP協(xié)議,不過兩者在本質(zhì)上是可以一一對應(yīng)的。
圖8 OSI模型、TCP/IP協(xié)議、區(qū)塊鏈分層模型對應(yīng)關(guān)系
大部分的區(qū)塊鏈項(xiàng)目所使用的底層網(wǎng)絡(luò)協(xié)議就是TCP/IP協(xié)議,少部分支持UDP協(xié)議。從協(xié)議層角度看,區(qū)塊鏈?zhǔn)腔赥CP/IP協(xié)議的,也就是在傳輸層之上,屬于最上面的應(yīng)用層。從這個(gè)角度來看,區(qū)塊鏈本身只是整個(gè)互聯(lián)網(wǎng)協(xié)議層中的最上層,它本身還是要依賴于底層的協(xié)議為它工作。對應(yīng)的接口就是區(qū)塊鏈的網(wǎng)絡(luò)層,這也是本報(bào)告將數(shù)據(jù)層和網(wǎng)絡(luò)層位置對換的主要原因,雖然在比特幣P2P網(wǎng)絡(luò)設(shè)計(jì)的時(shí)候已經(jīng)考慮了節(jié)點(diǎn)之間的發(fā)現(xiàn)、節(jié)點(diǎn)連接的握手協(xié)議、節(jié)點(diǎn)間地址廣播和數(shù)據(jù)通信等,鑒于已經(jīng)有部分項(xiàng)目開始探索P2P網(wǎng)絡(luò)與傳統(tǒng)OSI模型的結(jié)合,甚至將改進(jìn)延伸到數(shù)據(jù)鏈路層,本報(bào)告傾向?qū)2P網(wǎng)絡(luò)和傳播機(jī)制并入到Layer 0層和傳統(tǒng)OSI模型一起作為一層進(jìn)行可擴(kuò)展方案研究。
這樣,Layer 0層數(shù)據(jù)傳輸層改進(jìn)的主要思路就是通過加快全網(wǎng)節(jié)點(diǎn)之間的傳播速度來提升全網(wǎng)的確認(rèn)共識(shí),改進(jìn)主要體現(xiàn)在上圖中標(biāo)紅的傳輸層(TCP/IP)和網(wǎng)絡(luò)層(IP)上,且不論這樣的效果究竟有多大,從邏輯上這樣的一個(gè)思路是具有合理性的。具體改進(jìn)可以有:P2P網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)改進(jìn),節(jié)點(diǎn)之間的快速發(fā)現(xiàn),節(jié)點(diǎn)之間的快速廣播和通信等。
2.3 Layer 1層On-Chain公鏈自身改進(jìn)
Layer1層On-Chain公鏈自身改進(jìn)的主要思路的出發(fā)點(diǎn)是將區(qū)塊鏈技術(shù)底層賬本和上層應(yīng)用分離,底層賬本的重心放在安全性和去中心化上,在性能上有所取舍。只是將需要共識(shí)確權(quán)的數(shù)據(jù)上鏈,從而降低對TPS的需求,從目前技術(shù)發(fā)展來看,可能千位級別(1000~3000)TPS即可滿足。結(jié)合前文介紹的區(qū)塊鏈的架構(gòu)可以看出,能夠提升的地方有共識(shí)層的機(jī)制改進(jìn)和數(shù)據(jù)層的數(shù)據(jù)區(qū)塊大小調(diào)整、鏈?zhǔn)浇Y(jié)構(gòu)的優(yōu)化以及網(wǎng)絡(luò)層的驗(yàn)證機(jī)制改進(jìn)等方法。
所以,Layer 1層改進(jìn)的思路是做好一條底層賬本公鏈,將其他的事情交由Layer 2 層來互補(bǔ)處理。這里對于隱私加密技術(shù)的需求對Layer 1層會(huì)是一個(gè)不錯(cuò)的附加屬性,但不屬于可擴(kuò)展方案討論范疇,在沒有很好的處理方案前,在Layer 2層考慮也是個(gè)能接受的選擇。
圖9 Layer 1層三元優(yōu)先級
2.4 Layer 2層 Off-Chain擴(kuò)展性改進(jìn)
Layer2層Off-Chain擴(kuò)展性改進(jìn)是基于區(qū)塊鏈的底層賬本技術(shù)之上的應(yīng)用型擴(kuò)展,可以是基于區(qū)塊鏈技術(shù)的應(yīng)用,也可以是中心化的應(yīng)用結(jié)合,它的重心放在性能和安全上,對去中心化有所取舍。最終關(guān)鍵數(shù)據(jù)傳輸給Layer1層上鏈,本身利用高性能處理大量數(shù)據(jù),達(dá)到現(xiàn)實(shí)世界對性能的需求。該類型的改進(jìn)有跨鏈——基于區(qū)塊鏈技術(shù)的多鏈生態(tài)擴(kuò)展;狀態(tài)通道——鏈下數(shù)據(jù)處理來提升性能;Plasma通過一系列的智能合約,來構(gòu)建多種應(yīng)用場景達(dá)到多鏈并行的結(jié)果;Truebit一種幫助以太坊在鏈下進(jìn)行繁重或者復(fù)雜運(yùn)算的技術(shù)等。
所以,Layer 2層作為Layer 1層的互補(bǔ)來解決與現(xiàn)實(shí)世界的需求,并將必要的數(shù)據(jù)上鏈到Layer 1層。
圖10 Layer 2層三元優(yōu)先級
綜上,我們可以將區(qū)塊鏈技術(shù)可擴(kuò)展方案分層模型以及當(dāng)前比較典型的研究項(xiàng)目整理成下面一張思維導(dǎo)圖,并在下一節(jié)結(jié)合具體項(xiàng)目來闡述。
圖11 區(qū)塊鏈技術(shù)可擴(kuò)展方案分層模型下典型項(xiàng)目思維導(dǎo)圖
第三章 Layer 0層數(shù)據(jù)傳輸層可擴(kuò)展方案
3.1 中繼網(wǎng)絡(luò)(Relay Network)
比特幣設(shè)計(jì)的P2P網(wǎng)絡(luò)是個(gè)節(jié)點(diǎn)隨機(jī)連接的網(wǎng)絡(luò),交易和塊的信息傳輸都是通過這些節(jié)點(diǎn),直到全網(wǎng)所有的節(jié)點(diǎn)都收到最新的交易和塊信息。原本上,這個(gè)設(shè)計(jì)在不考慮性能需求時(shí)是非常完美的,但是隨著比特幣的關(guān)注度和使用性的提高,2014年Bitcoin Core貢獻(xiàn)者M(jìn)att Corallo提出了Bitcoin Relay Network 的創(chuàng)意,旨在解決兩個(gè)問題:
1)優(yōu)化比特幣P2P網(wǎng)絡(luò)數(shù)據(jù)和塊傳輸速度,提升比特幣整個(gè)網(wǎng)絡(luò)的安全性,降低攻擊風(fēng)險(xiǎn);
2)減少整個(gè)比特幣網(wǎng)絡(luò)的延時(shí)。
當(dāng)網(wǎng)絡(luò)存在延時(shí)時(shí),礦工往往需要10-15秒的時(shí)間才能收到新挖出來的區(qū)塊信息,以10秒為例,10分鐘挖出一個(gè)塊,相當(dāng)于丟失了1.6%潛在時(shí)間收益,在挖礦規(guī)模化時(shí)這也是不能接受的。尤其大的礦場還可以利用自己的優(yōu)勢搭建私有網(wǎng)絡(luò),利用挖礦和傳播的優(yōu)勢完全碾壓小礦場。Bitcoin Relay Network的本質(zhì)是建立網(wǎng)絡(luò)對話中樞(hub-and-spoke),它通過8個(gè)位于紐約,西雅圖,阿姆斯特丹,北京,東京,新加坡,香港和俄羅斯的新西伯利亞的服務(wù)器樞紐構(gòu)成的節(jié)點(diǎn)網(wǎng)絡(luò)來組成區(qū)塊數(shù)據(jù)傳播鐵路,礦工們通過這個(gè)鐵路快速的傳播著自己的共識(shí),然后能夠立刻開始挖新的區(qū)塊。但是,這個(gè)提議的最大問題是從某種意義上講,Corallo控制著這個(gè)網(wǎng)絡(luò),尤其是對網(wǎng)絡(luò)的維護(hù),不過這只是一個(gè)更快的選擇,傳統(tǒng)的P2P網(wǎng)絡(luò)傳播方式仍然是可以是使用的。目前該系統(tǒng)已被描述為比特幣的血管或神經(jīng)系統(tǒng)——一個(gè)在整個(gè)身體傳遞信息的關(guān)鍵組成部分。
2016年,Corallo在Bitcoin Relay Network的基礎(chǔ)上又提出快速互聯(lián)網(wǎng)比特幣傳播引擎(Fast Internet Bitcoin Relay Engine,F(xiàn)IBRE)的改進(jìn),F(xiàn)IBER是一種基于UDP (User Datagram Protocol)的中繼網(wǎng)絡(luò),可以解決TCP模式下小數(shù)據(jù)的丟包問題,提升了去中心化性,同時(shí)實(shí)現(xiàn)了壓縮數(shù)據(jù),以進(jìn)一步減少傳輸?shù)臄?shù)據(jù)量和網(wǎng)絡(luò)延遲,改善信息傳播的速度,礦工可以減少孤兒塊(orphan block)的數(shù)量,或者被網(wǎng)絡(luò)拒絕的交易區(qū)塊數(shù)量。
同樣,康奈爾大學(xué)的Soumya Basu, Ittay Eyal和Emin Gün Sirer研究了另一個(gè)中繼網(wǎng)絡(luò) Falcon Relay Network。Falcon使用“直通路由(cut-through routing)”而不是“存儲(chǔ)轉(zhuǎn)發(fā)”來減少延遲,接收到塊時(shí)僅僅初步驗(yàn)證塊的頭部信息就傳播出去,而不是等待直到接收到完整的塊。當(dāng)然,這種處理方案有個(gè)顯著的問題就是如不誠信的礦工可以傳播無效的數(shù)據(jù)浪費(fèi)競爭對手的資源,為了解決這個(gè)問題,康奈爾大學(xué)的這個(gè)團(tuán)隊(duì)得自己扮演把關(guān)者的角色,但正常情況下,它提升的速度效率會(huì)更高。
3.2 OSI模型改進(jìn)
FIBRE和Falcon是目前在比特幣中繼網(wǎng)絡(luò)(Relay Network)上落地并顯著改善的代表,在它們的基礎(chǔ)上,又有許多新的項(xiàng)目開始了自己的探索,這些探索將視角進(jìn)一步深化到傳統(tǒng)互聯(lián)網(wǎng)的架構(gòu)上,試圖從OSI模型去進(jìn)行優(yōu)化,如Blockchain Distribution Network (BDN),該思路靈感來自于Content Distribution Network (CDN),重點(diǎn)在于對于OSI第四層傳輸層的改進(jìn),也有試圖將整個(gè)OSI模型與區(qū)塊鏈結(jié)合改進(jìn)的項(xiàng)目,思路都很開放,但唯有落地才能解決問題,這里僅挑選個(gè)別項(xiàng)目作簡要的介紹用于直觀了解Layer 0層的設(shè)計(jì)思路。
3.3 Blockchain Distribution Network(BDN)
BDN是Bloxroute LABS首先提出來的概念,團(tuán)隊(duì)中有兩位創(chuàng)始人就是Falcon的發(fā)起人。項(xiàng)目的主旨思想是通過自己提供的BDN網(wǎng)絡(luò)來提升節(jié)點(diǎn)之間通訊的速度,也是從提供專屬網(wǎng)絡(luò)的角度來改善節(jié)點(diǎn)同步情況,各節(jié)點(diǎn)通過BLOXROUTE提供的對等節(jié)點(diǎn)(Peer Node)接入BDN網(wǎng)絡(luò),對等節(jié)點(diǎn)作為區(qū)塊鏈應(yīng)用程序和BDN的中間網(wǎng)關(guān),它會(huì)針對不同的區(qū)塊鏈節(jié)點(diǎn)制定專屬的接口協(xié)議,更具體的技術(shù)細(xì)節(jié)尤其是BDN網(wǎng)絡(luò)的設(shè)計(jì)思路批露較少,核心可以用白皮書中的系統(tǒng)架構(gòu)圖表示:
圖12 BLOXROUTE架構(gòu)圖
3.4 其他
Marconi協(xié)議是一個(gè)試圖增強(qiáng)乃至取代現(xiàn)有網(wǎng)絡(luò)基礎(chǔ)設(shè)施的項(xiàng)目,體系上包括網(wǎng)絡(luò)協(xié)議、區(qū)塊鏈協(xié)議、去中心化網(wǎng)絡(luò)管理等,采用向下延伸覆蓋至以太網(wǎng)的設(shè)計(jì),并且支持去中心化網(wǎng)絡(luò)堆棧,在OSI 模型第二層建立的安全通信管道提供數(shù)據(jù)包級加密。這是一個(gè)試圖在以太網(wǎng)級別上去構(gòu)建去中心化的點(diǎn)對點(diǎn)的網(wǎng)絡(luò)協(xié)議,最終是否能夠落地挑戰(zhàn)也是非常大的,白皮書中展示了其OSI模型內(nèi)的Marconi通道架構(gòu)。
圖13 OSI模型內(nèi)的Marconi管道
Toda Network也是一個(gè)定位新一代區(qū)塊鏈版“TCP/IP”協(xié)議的項(xiàng)目,愿景未來任何區(qū)塊鏈項(xiàng)目都可以在TODA上運(yùn)行,目前官網(wǎng)雖然沒有提供白皮書,但卻有十幾個(gè)區(qū)塊鏈項(xiàng)目使用了它的技術(shù)。
以上案例,僅僅用來表明在Layer 0上進(jìn)行區(qū)塊鏈可擴(kuò)展研究的一些思路和項(xiàng)目的探索。
第四章 Layer 1層On-Chain層可擴(kuò)展方案
4.1 網(wǎng)絡(luò)層改進(jìn)——分片(Sharding)
Layer 1層上網(wǎng)絡(luò)層是連接Layer 0層OSI網(wǎng)絡(luò)層的,由上節(jié)不難發(fā)現(xiàn),Layer 0層的改進(jìn)有些是貫穿Layer 1層網(wǎng)絡(luò)層的——整體改進(jìn);有些是通過增加一道協(xié)議來支持Layer 1層網(wǎng)絡(luò)層,重點(diǎn)改進(jìn)Layer 0層。除此之外,針對Layer 1層的改進(jìn)還可以從驗(yàn)證機(jī)制入手,典型代表就是分片(Sharding)技術(shù)。
分片其實(shí)是一種傳統(tǒng)數(shù)據(jù)庫的技術(shù),它以前用作將大型數(shù)據(jù)庫分成更小、更快、更容易管理的部分,以此增加數(shù)據(jù)庫的操作效率。而在區(qū)塊鏈中,分片技術(shù)的運(yùn)用會(huì)更為繁瑣,不過主要思想都是通過縮小驗(yàn)證規(guī)模和大量事務(wù)并行處理來達(dá)到性能提升的效果,主要難點(diǎn)在于各分片之間數(shù)據(jù)的一致性和分片內(nèi)部的防作惡,由于驗(yàn)證規(guī)模的大大縮小,所以BFT(Byzantine Fault Tolerance,拜占庭容錯(cuò))類共識(shí)會(huì)是分片內(nèi)主要使用的共識(shí)機(jī)制。目前主流的分片技術(shù)分為網(wǎng)絡(luò)分片、交易分片和計(jì)算(狀態(tài))分片等三個(gè)層級,其技術(shù)難度也隨之遞增,但是網(wǎng)絡(luò)分片還是最主要的。
網(wǎng)絡(luò)分片:通過利用隨機(jī)性,網(wǎng)絡(luò)可以隨機(jī)抽取節(jié)點(diǎn)形成分片,達(dá)到防止網(wǎng)絡(luò)攻擊如女巫攻擊等和惡意節(jié)點(diǎn)串謀作惡的情況,由于誠實(shí)節(jié)點(diǎn)驗(yàn)證是整個(gè)分片網(wǎng)絡(luò)的安全之本,所以網(wǎng)絡(luò)分片是其他所有分片的基礎(chǔ)。
交易分片:交易分片的思想是將交易進(jìn)行預(yù)處理,將相干的交易分配到同一個(gè)分片內(nèi)進(jìn)行驗(yàn)證,而將不相干的交易分到其他分片中驗(yàn)證,最終到達(dá)并行處理同時(shí)又防止了雙花的情況;當(dāng)然解決思路也有從增加各片之間的通訊和確認(rèn)來進(jìn)行研究的。
計(jì)算(狀態(tài))分片:計(jì)算(狀態(tài))分片是迄今為止最具挑戰(zhàn)性的分片技術(shù)提案,它主要用來并行處理智能合約的計(jì)算問題,如一些片主要用于矩陣計(jì)算,一些片主要用于排序,一些片用于最終結(jié)果聚合,每個(gè)片獨(dú)立計(jì)算自己的工作,并進(jìn)行交叉驗(yàn)證來確保最終結(jié)果的一致性,其復(fù)雜性可以想象。
在分片研究方向,可以關(guān)注以太坊的Casper,Zilliqa項(xiàng)目,Radix項(xiàng)目和Rchain等。
4.2 數(shù)據(jù)層改進(jìn)
Layer 1層上對數(shù)據(jù)層的改進(jìn)是最直接的改進(jìn)方向之一,我們分別從數(shù)據(jù)區(qū)塊,鏈?zhǔn)浇Y(jié)構(gòu)來看看技術(shù)上的研究狀況。
4.3 增加數(shù)據(jù)區(qū)塊大小
通過增加數(shù)據(jù)區(qū)塊大小來達(dá)到擴(kuò)容效果最有名的案例莫屬于BCH比特現(xiàn)金[1]了,它是比特幣于區(qū)塊高度478558的硬分叉產(chǎn)物,旨在通過將比特幣區(qū)塊的1M太小限制提升到8M(2018年5月15日提升到32M,8月份nChain提議再次提升到128M),是一種典型的鏈上擴(kuò)容方法,通過區(qū)塊容量的增加來提升交易處理能力,從而能夠保證在交易量非常大的情況下也能快速交易并保持較低的手續(xù)費(fèi)。但是,更大的區(qū)塊會(huì)造成更多孤塊產(chǎn)生的風(fēng)險(xiǎn),影響系統(tǒng)的整體性能和安全性,同時(shí)對礦工的帶寬也可能提出新的要求,造成加劇中心化的風(fēng)險(xiǎn)等。
4.4 改進(jìn)數(shù)據(jù)區(qū)塊結(jié)構(gòu)——隔離見證(SegWit)
隔離見證(SegWit)就是把比特幣腳本簽名(ScriptSig)信息從基本結(jié)構(gòu)(base block)里拿出來,放在一個(gè)新的數(shù)據(jù)結(jié)構(gòu)當(dāng)中。通過隔離見證,獨(dú)立出腳本簽名,其簽名的大小不會(huì)計(jì)算在交易區(qū)塊內(nèi),因此比特幣區(qū)塊在不改變大小的情況下可以容納更多的交易,進(jìn)而達(dá)到擴(kuò)容的效果。
4.5 改進(jìn)鏈?zhǔn)浇Y(jié)構(gòu)——DAG
傳統(tǒng)區(qū)塊鏈技術(shù)是一種鏈?zhǔn)綌?shù)據(jù)庫結(jié)構(gòu),每個(gè)區(qū)塊就像鐵鏈一樣,環(huán)環(huán)相扣,塊與塊之間是完全的串行,這樣的鏈?zhǔn)浇Y(jié)構(gòu)注定了效率的瓶頸,如下圖所示:
圖14區(qū)塊鏈的鏈?zhǔn)浇Y(jié)構(gòu)
所以,很多研究也從并行的角度去思考可擴(kuò)展方案,如典型的DAG有向無環(huán)圖技術(shù)就在一定程度上將鏈?zhǔn)浇Y(jié)構(gòu)改進(jìn)成網(wǎng)狀結(jié)構(gòu),達(dá)到并行提升效率的作用,如下圖所示:
圖15 DAG的網(wǎng)狀結(jié)構(gòu)
當(dāng)然DAG將最長鏈共識(shí)改成多條鏈互證共識(shí),它沒有區(qū)塊概念,不是把所有數(shù)據(jù)打包成區(qū)塊,再用區(qū)塊鏈接區(qū)塊,而是每個(gè)用戶都可以提交一個(gè)數(shù)據(jù)單元,這個(gè)數(shù)據(jù)單元里只有交易,數(shù)據(jù)單元間通過引用關(guān)系鏈接起來,從而形成具有半序關(guān)系的DAG。
在DAG技術(shù)的基礎(chǔ)上,很多研究開始放眼于將DAG和傳統(tǒng)區(qū)塊鏈結(jié)合的思路上去進(jìn)行并行處理,并試圖增加智能合約的功能,但是DAG最大的問題來自安全,它全網(wǎng)處于一個(gè)異步驗(yàn)證的狀態(tài),對當(dāng)前狀態(tài)的確認(rèn)是個(gè)相當(dāng)有挑戰(zhàn)的問題,所以主流DAG項(xiàng)目都借鑒了中心化的方式來協(xié)助處理。一些關(guān)于DAG的情況可以參考火幣研究院【超越白皮書3】DAG技術(shù)解析與實(shí)測 以及IOTA,Byteball,Hashgraph,Conflux的研究。本篇綱要篇發(fā)布之后,我們也會(huì)針對每一塊進(jìn)行更加具體的對比分析。
4.6 共識(shí)層改進(jìn)
Layer 1層上對共識(shí)層的改進(jìn)也是大家比較熟悉的一塊了,主要是針對共識(shí)機(jī)制的改進(jìn),從早期比特幣的POW(Proof of Work)算力挖礦工作證明的共識(shí)機(jī)制衍生出POS(Proof of Stake)擁有即挖礦的股權(quán)證明的共識(shí)機(jī)制,至今各種類型的共識(shí)機(jī)制層出不窮,主要可以分成兩大類:一類是中本聰共識(shí),如PoW,PoS,dPoW,dPoS,PoA,PoWeight,PoR,PoET,PoC/PoSpace,PoI,Ouroboros等;一類是BFT類共識(shí),如PBFT,SBFT/Chain,Ring,Zyzzyva,Zyzzva5,CheapBFT,MinBFT,OBFT等。
共識(shí)機(jī)制的改進(jìn)本質(zhì)是在保證安全的前提下,提升全網(wǎng)驗(yàn)證出塊的效率和去中心化程度的取舍來提升性能,這塊火幣研究院詳細(xì)的研究報(bào)告已經(jīng)在準(zhǔn)備中。
第五章 Layer 2層Off-Chain層可擴(kuò)展方案
5.1 跨鏈
分析完Layer 1層可擴(kuò)展方案,不難發(fā)現(xiàn),Layer 1層上能夠改進(jìn)的方向已經(jīng)很明確而且比較有限了。所以,更多的主力將區(qū)塊鏈的擴(kuò)展方案放在了Layer 2層上,跨鏈就是Layer 2層上很有前景的一個(gè)方向。
在2016年9月份,以太坊創(chuàng)始人Vitalik Buterin 為銀行聯(lián)盟鏈R3[1]寫了關(guān)于跨鏈互操作的報(bào)告提到三種跨鏈方式基本上覆蓋了當(dāng)前主流跨鏈技術(shù):公證人機(jī)制,側(cè)鏈/中繼和哈希鎖定。隨著大家對三種技術(shù)認(rèn)識(shí)的不斷深入,當(dāng)前很多跨鏈項(xiàng)目已經(jīng)采用的是混合模式,相互取長補(bǔ)短,也衍生出改進(jìn)思路,如分布式密鑰控制技術(shù)。其中公證人技術(shù)引入了可信第三方,作為跨鏈過程中的資產(chǎn)保管人,側(cè)鏈/中繼技術(shù)利用SPV證明,中繼鏈等技術(shù),實(shí)現(xiàn)了不同區(qū)塊鏈之間的可信互通,基于哈希鎖定利用了哈希原像腳本,實(shí)現(xiàn)了公平的跨鏈資產(chǎn)交換,分布式密鑰控制技術(shù)利用分布式密鑰生成算法,使得跨鏈過程中的資產(chǎn)保管人角色由全網(wǎng)節(jié)點(diǎn)承擔(dān),而不是少數(shù)第三方。通過跨鏈技術(shù),不同鏈之間可以實(shí)現(xiàn)四種場景:
1)A鏈和B鏈的資產(chǎn)交互;
2)A鏈資產(chǎn)支付和B鏈智能合約調(diào)用;
3)A鏈智能合約調(diào)用和B鏈資產(chǎn)支付;
4)A鏈智能合約和B鏈智能合約相互調(diào)用。
跨鏈技術(shù)可以關(guān)注Polkadot,Cosmos,RSK,BTC Relay的研究以及火幣研究院后續(xù)的詳細(xì)分析報(bào)告。
5.1.1 公證人機(jī)制
公證人機(jī)制(Notary schemes):中心化或多重簽名的見證人模式,見證人是鏈A的合法用戶,負(fù)責(zé)監(jiān)聽鏈B的事件和狀態(tài),進(jìn)而操作鏈A。本質(zhì)特點(diǎn)是完全不用關(guān)注所跨鏈的結(jié)構(gòu)和共識(shí)特性等。假設(shè)A和B是不能進(jìn)行互相信任的,那就引入A和B都能夠共同信任的第三方充當(dāng)公證人作為中介。這樣的話,A和B就間接可以互相信任。具有代表性的方案是Interledger,它本身不是一個(gè)賬本,不尋求任何的共識(shí)。相反它提供了一個(gè)頂層加密托管系統(tǒng)稱之為“連接者”,在這個(gè)中介機(jī)構(gòu)的幫助下,讓資金在各賬本間流動(dòng)。
5.1.2 側(cè)鏈/中繼
側(cè)鏈/中繼(Sidechains/Relays):區(qū)塊鏈系統(tǒng)本身可以讀取鏈B的事件和狀態(tài),即支
持SPV(Simple Payment Verificaiton),能夠驗(yàn)證塊上Header、merkle tree的信息。本質(zhì)特點(diǎn)是必須關(guān)注所跨鏈的結(jié)構(gòu)和共識(shí)特性等。一般來說,主鏈不知道側(cè)鏈的存在,而側(cè)鏈必須要知道主鏈的存在;雙鏈也不知道中繼的存在,而中繼必須要知道兩條鏈。
5.1.3 哈希鎖定
哈希鎖定(Hash-locking):在鏈AB間設(shè)定相互操作的觸發(fā)器,通常是個(gè)待披露明文的隨機(jī)數(shù)的hash值。本質(zhì)特點(diǎn)是HTLC(Hashed TimeLock Contract),是通過鎖定一段時(shí)間猜hash原值(preimage)來兌換支付(redeem)的機(jī)制。哈希鎖定起源于比特幣閃電網(wǎng)絡(luò),閃電網(wǎng)絡(luò)本身是一種小額的快速支付的手段,后來它的關(guān)鍵技術(shù)哈希時(shí)間鎖合約被應(yīng)用到跨鏈技術(shù)上來。雖然哈希鎖定實(shí)現(xiàn)了跨鏈資產(chǎn)的交換,但是沒有實(shí)現(xiàn)跨鏈資產(chǎn)的轉(zhuǎn)移,更不能實(shí)現(xiàn)這種跨鏈合約,所以它的應(yīng)用場景是相對比較受限的。
5.1.4分布式密鑰
分布式密鑰控制技術(shù)本質(zhì)上屬于公證人機(jī)制的升級版,采用分布式私鑰生成和控制技術(shù)來生成原鏈的鎖定賬戶,然后將相應(yīng)資產(chǎn)映射到自己的鏈上。其利用密碼學(xué)中的分布式密鑰生成算法和門限簽名技術(shù)保證了跨鏈過程中資產(chǎn)鎖定和解鎖由系統(tǒng)參與共識(shí)的所有節(jié)點(diǎn)決定并且在此過程系統(tǒng)中的任何節(jié)點(diǎn)或者少數(shù)節(jié)點(diǎn)聯(lián)合都無法擁有資產(chǎn)的使用權(quán)。大致過程可分為兩個(gè)階段:鎖定資產(chǎn)階段和解鎖資產(chǎn)階段。
5.2 狀態(tài)通道
狀態(tài)通道本質(zhì)上是通過在不同用戶之間或用戶和服務(wù)之間建立一個(gè)雙向通道,為不同實(shí)體之間提供狀態(tài)維護(hù)服務(wù)。它允許把區(qū)塊鏈上的許多操作在鏈外進(jìn)行管理,等完成鏈外操作后多方簽名確認(rèn)后,才將最終結(jié)果上鏈,所以說這是一個(gè)鏈上鏈下互通的擴(kuò)展性研究方向。鏈下支付網(wǎng)絡(luò)通過將大量交易離線處理,同時(shí)將區(qū)塊鏈作為仲裁平臺(tái),處理通道支付過程中的異常情況,如雙方對通道的狀態(tài)有分歧等,間接地提升系統(tǒng)的交易吞吐量。
雙向通道支付過程大致可分為三個(gè)階段:初始階段,用于雙方建立通道;支付階段,通道雙方完成支付,即通道狀態(tài)的更新;關(guān)閉通道階段,雙方關(guān)閉通道,贖回通道中自己的資金,在關(guān)閉通道過程中,一旦某一方作惡,即利用之前的通道狀態(tài)來謀利,將會(huì)觸發(fā)提交階段。在提交階段中,雙方提交證據(jù)交易給區(qū)塊鏈確定通道內(nèi)的真實(shí)狀態(tài)。
狀態(tài)通道的研究方向上閃電網(wǎng)絡(luò),雷電網(wǎng)絡(luò),Liquidity Network和Celer Network都是可以對比研究的。
5.2.1 閃電網(wǎng)絡(luò)
閃電網(wǎng)絡(luò)是最早通過鏈下支付通道形成支付網(wǎng)絡(luò),提升區(qū)塊鏈交易吞吐量的方案,主要針對目標(biāo)是比特幣的擴(kuò)容解決方案。它主要包含兩個(gè)協(xié)議RSMC(Recoverable Sequence Maturity Contract)和 HTLC(Hashed Timelock Contract),基本上同類型的其他相關(guān)方案都是在兩個(gè)協(xié)議上進(jìn)行修改。RSMC主要實(shí)現(xiàn)了雙人雙向的支付通道,使得通道雙方可以在交易不上鏈的情況下即時(shí)確認(rèn)交易;而HTLC如前文所述,通過時(shí)間鎖(timelock)的機(jī)制來延遲通道一方取回通道資產(chǎn)的時(shí)間,同時(shí)引入懲罰交易的概念來保證通道雙方的資產(chǎn)狀態(tài)是基于最新的交易情況,一旦某一方試圖使用之前的通道狀態(tài)來謀利,另一方可以在這段延遲時(shí)間內(nèi)(timelock)發(fā)現(xiàn),并沒收其通道內(nèi)資產(chǎn)作為懲罰。
5.2.2 雷電網(wǎng)絡(luò)
雷電網(wǎng)絡(luò)是以太坊鏈下擴(kuò)容解決方案,以閃電網(wǎng)絡(luò)技術(shù)理念為基礎(chǔ),由于以太坊實(shí)現(xiàn)了圖靈完備的腳本系統(tǒng),可以實(shí)現(xiàn)更為靈活的智能合約,因此基于以太坊模型設(shè)計(jì)的雷電網(wǎng)絡(luò)可以更多的使用智能合約來實(shí)現(xiàn)。
5.3 其他
5.3.1 TrueBit
TrueBit的思路是把智能合約的運(yùn)算外包給第三方,把復(fù)雜的計(jì)算任務(wù)放到鏈下執(zhí)行,通過經(jīng)濟(jì)激勵(lì),促使第三方之間互相監(jiān)督,從而保證計(jì)算結(jié)果的正確性,以太坊通過智能合約作為終極仲裁,獎(jiǎng)善罰惡。造假者會(huì)獲得經(jīng)濟(jì)懲罰,所以在絕大多數(shù)情況下,外包商會(huì)誠實(shí)的執(zhí)行代碼并提供正確的結(jié)果,鏈上節(jié)點(diǎn)無需完整驗(yàn)證,從而大大減輕了鏈上的計(jì)算負(fù)擔(dān),也節(jié)省了用戶的gas消耗。
不難看出,狀態(tài)通道是將交易放到鏈下進(jìn)行來增強(qiáng)擴(kuò)展性,TrueBit是將復(fù)雜的計(jì)算鏈下進(jìn)行來增強(qiáng)擴(kuò)展性。
5.3.2Plasma
Plasma的擴(kuò)展性方向是采用子鏈的模式,智能合約創(chuàng)建在以太坊主鏈之上,這些智能合約充當(dāng)Plasma子鏈的“根”,根里包含了子鏈的基本狀態(tài)交易規(guī)則,記錄了子鏈狀態(tài)的哈希值,并且讓用戶在以太坊主鏈和子鏈之間轉(zhuǎn)移資產(chǎn)。子鏈負(fù)責(zé)處理各自數(shù)據(jù)和業(yè)務(wù),擁有自己的共識(shí)算法,且獨(dú)立于以太坊主鏈,正常運(yùn)作時(shí),區(qū)塊制造者們會(huì)定期地向主鏈提交驗(yàn)證,實(shí)質(zhì)就是證明子鏈當(dāng)前的狀態(tài)是有效的,符合共識(shí)機(jī)制的要求,子鏈與主鏈的驗(yàn)證交互只是最終需要驗(yàn)證的數(shù)據(jù),其他過程均由子鏈自己處理,子鏈還可以生成鏈上鏈的結(jié)構(gòu),對每個(gè)層級Plasma要解決兩個(gè)最重要的事情,一是子鏈的反欺詐,另一個(gè)是資金的進(jìn)入與退出。
圖16 Plasma原理圖
值得注意的是,因?yàn)橐蕴怀鰜淼臅r(shí)間太早了,所以諸如雷電網(wǎng)絡(luò)、TrueBit和Plasma對以太坊擴(kuò)展思路只能是適應(yīng)以太坊既有的設(shè)計(jì),而針對其他新出來的區(qū)塊鏈項(xiàng)目,是可以借鑒這些思路在設(shè)計(jì)上就直接實(shí)現(xiàn)擴(kuò)展的,我們將在下一章節(jié)進(jìn)行描述。
第六章 總結(jié)
通過對Layer 0,Layer 1和Layer 2一層層可擴(kuò)展方案的分析和典型項(xiàng)目原理描述,不難發(fā)現(xiàn),區(qū)塊鏈技術(shù)可擴(kuò)展方案分層模型基本可以按照圖7、圖8和圖11的架構(gòu)來分部考慮。
如果我們跳出可擴(kuò)展方案的框架去思考這個(gè)三個(gè)層級:Layer 0層解決的是區(qū)塊鏈與傳統(tǒng)網(wǎng)絡(luò)的結(jié)合問題;Layer 1層解決的是底層賬本問題,也可以理解成一直說的公鏈問題;Layer 2層解決的才是擴(kuò)展性延伸和鏈上鏈下打通的問題,也可以理解成廣義的應(yīng)用問題。從分層的角度去設(shè)計(jì)一個(gè)區(qū)塊鏈項(xiàng)目,可以有效的規(guī)避區(qū)塊鏈的三元悖論問題:Layer 1層主要負(fù)責(zé)安全,妥協(xié)性能,注重于記賬功能;Layer 2層主要負(fù)責(zé)性能,妥協(xié)去中心化,注重于計(jì)算功能,Layer 1層底層設(shè)計(jì)時(shí)就充分考慮好Layer 2層的交互問題,這種架構(gòu)設(shè)計(jì)等于將前文介紹的以太坊和plasma進(jìn)行重新設(shè)計(jì),從底層設(shè)計(jì)就提供一致性和可交互性。
圖17 Layer 1層和Layer 2層的互補(bǔ)
這里還需要強(qiáng)調(diào)一下隱私加密技術(shù)的需求對Layer 1層會(huì)是一個(gè)很不錯(cuò)的功能,也是值得底層賬本好好研究的方向,在沒有很好的處理方案前,在Layer 2層考慮也是個(gè)能接受的選擇。
目前,明確提出上述Layer 1層和Layer 2層分層設(shè)計(jì)的項(xiàng)目有兩個(gè):Cardano和Nervos。
Cardano的兩層為:
1)Settlement Layer清算層(Layer 1層):Cardano的代幣ADA在該層流動(dòng),是Cardano整個(gè)系統(tǒng)的基礎(chǔ);
2)Computation Layer 計(jì)算層(Layer 2層):Cardano將在該層提供智能合約,身份認(rèn)證,消息通信等等功能,以方便開發(fā)者在此開發(fā)程序。
Nervos的兩層為:
1)Common Knowledge Layer共識(shí)層(Layer 1層):CKB(Common Knowledge Base)只關(guān)心全球共識(shí)和安全,它是整個(gè)網(wǎng)絡(luò)的安全基石,為Layer 2層服務(wù);
2)Generation Layer拓展層(Layer 2層): 訴求是快和安全,同時(shí)CKB也可以支持其他的Layer 2,比如狀態(tài)通道,類似Plasma風(fēng)格的Layer ,Truebit等。
而完整從Layer 0,Layer 1和Layer 2三層統(tǒng)一布局的項(xiàng)目目前也有一個(gè)PlatOn,不過這些項(xiàng)目基本都在早期階段,僅作研究探討之用。
圖18 Layer 三層架構(gòu)構(gòu)想
看到這里,大家應(yīng)該理解號稱TPS破萬,十萬,甚至百萬的項(xiàng)目是如何實(shí)現(xiàn)的了,基本上都是Layer 1層和Layer 2層組合實(shí)現(xiàn)的方式,如母子鏈,多鏈并行的模式,或者是直接犧牲去中心化來實(shí)現(xiàn),Vitalik也提到借助Sharding和Plasma能將以太坊實(shí)現(xiàn)百萬TPS,也有部分極客在中心化的模式下將以太坊實(shí)現(xiàn)150萬TPS的測試,所以我們應(yīng)該更加理性的去認(rèn)識(shí)以高TPS作為主打亮點(diǎn)的項(xiàng)目。正如前文所述,從當(dāng)前技術(shù)發(fā)展來看,Layer 1層最樂觀的可能落地的最大TPS在千位級別(1000~3000),進(jìn)一步擴(kuò)展的空間就交由Layer 2層去創(chuàng)造了。
西方的項(xiàng)目喜歡聚焦到每一個(gè)點(diǎn)去解決問題,而東方的項(xiàng)目則喜歡大一統(tǒng)巨無霸。無論哪種風(fēng)格,如果從設(shè)計(jì)之初就采用辨證統(tǒng)一的視角去全盤規(guī)劃,需要統(tǒng)一的共識(shí)和標(biāo)準(zhǔn),區(qū)塊鏈技術(shù)的本質(zhì)只是一個(gè)底層賬本,它是服務(wù)于現(xiàn)實(shí)場景的,而不是現(xiàn)實(shí)場景都往區(qū)塊鏈上蹭熱度,淪為資本游戲,期待能夠看到公認(rèn)的第三代區(qū)塊鏈技術(shù)。
1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會(huì)明確標(biāo)注作者和來源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請轉(zhuǎn)載時(shí)務(wù)必注明文章作者和"來源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會(huì)經(jīng)TMT觀察網(wǎng)編輯修改或補(bǔ)充。