摘要:秘猿科技區(qū)塊鏈小課堂第期的技術(shù)目標是設(shè)計一個分層的加密經(jīng)濟網(wǎng)絡(luò)。換句話說,從分層的角度來看,現(xiàn)有的區(qū)塊鏈設(shè)計方式都是過時的。
從分層的角度來看,現(xiàn)有的區(qū)塊鏈在設(shè)計時考慮的是特定的功能(例如支付,或者是運行 DApp),并希望在運行一段時間后,讓上層協(xié)議來適應(yīng)自己。然而區(qū)塊鏈并不天然是 Layer 1,Layer 1 是需要設(shè)計的。在分層的大框架下,上層協(xié)議和分層網(wǎng)絡(luò)分別有著怎樣的需求?Layer 1 和 Layer 2 應(yīng)該分別對應(yīng)著怎樣的角色,承擔怎樣的職能?Layer 1 應(yīng)該做什么?Nervos 架構(gòu)師 Jan 給出了他的答案。
秘猿科技區(qū)塊鏈小課堂第 13 期
Nervos Network 的技術(shù)目標是設(shè)計一個分層的加密經(jīng)濟網(wǎng)絡(luò)。這樣一個出發(fā)點帶來的是一個與眾不同的設(shè)計思路,我們自己把它稱為「Nervos Approach」:
如果我們認為分層是未來的發(fā)展方向,我們應(yīng)該從一開始就考慮到上層協(xié)議和分層網(wǎng)絡(luò)的需求,在分層的大框架下設(shè)計區(qū)塊鏈協(xié)議。
換句話說,從分層的角度來看,現(xiàn)有的區(qū)塊鏈設(shè)計方式都是過時的?,F(xiàn)有的區(qū)塊鏈在設(shè)計時考慮的是特定的功能(例如支付,或者是運行 DApp),并希望在運行一段時間后,讓上層協(xié)議來適應(yīng)自己。然而如果我們閱讀互聯(lián)網(wǎng)的歷史就知道,今天互聯(lián)網(wǎng)的協(xié)議分層不是這樣打補丁打出來的,相反是在吸收過去經(jīng)驗之后基于分層的思路重新設(shè)計出來的[1](是的,互聯(lián)網(wǎng)協(xié)議也是分層的,我們說的 TCP/IP 實際上是兩個協(xié)議的名字)。Nervos Approach 是向互聯(lián)網(wǎng)學習的產(chǎn)物。
這是為什么區(qū)塊鏈并不天然是 Layer 1,Layer 1 是需要設(shè)計的。這也是為什么我們選擇設(shè)計 CKB 這樣一個新的區(qū)塊鏈協(xié)議的原因。
Layer 1 vs. Layer 2要弄清 Layer 1 應(yīng)該做什么,首先要弄清楚它和上層協(xié)議的區(qū)別。Layer 2 起源于我們發(fā)現(xiàn)公有鏈(這里指 Permissionless Blockchain)的性能不足,很難擴容到滿足整個加密經(jīng)濟體需求的水平,同時我們又非常迷戀公有鏈提供的可用性和極大的服務(wù)范圍,因此慢慢演化出了一系列可以由區(qū)塊鏈來保證安全的 Layer 2 協(xié)議,例如支付通道(Payment Channel),Plasma,etc.
這些協(xié)議的共同特點是犧牲共識范圍來換取性能。公有鏈最讓人驚艷的地方是通過開放網(wǎng)絡(luò),提供不間斷的覆蓋全球的服務(wù),這意味著全球共識,也意味著性能低下。解決這個問題的最好方式是將大部分交易轉(zhuǎn)移到共識范圍更小,但是性能更好的上層協(xié)議中,并且保證上層協(xié)議的參與者總是可以在不滿意的時候退回到區(qū)塊鏈上來解決問題[2],代價僅僅是一些時間成本。
因此作為 Layer 1 的區(qū)塊鏈,關(guān)注點顯然不應(yīng)該是性能,因為 Layer 2 會承擔這個職責。Layer 1 是保障上層協(xié)議參與者的最后防線,它的關(guān)注點應(yīng)該是安全和去中心化(安全和去中心化是兩個東西,有時間再展開)。如果我們觀察 Layer 2 協(xié)議與 Layer 1 交互的模式,我們還會發(fā)現(xiàn),Layer 1 負責的是狀態(tài)共識(存儲),Layer 2 負責的是狀態(tài)生成(計算)。
計算與狀態(tài)程序員的世界中有一個流傳甚廣的公式:程序 = 算法 + 數(shù)據(jù)結(jié)構(gòu)[3]。這個等式指出了程序設(shè)計的兩個核心關(guān)注點,計算(算法,即計算的步驟)與數(shù)據(jù)(計算的對象)。而數(shù)據(jù)又可以分為兩種,程序輸入(外部數(shù)據(jù))和狀態(tài)(內(nèi)部數(shù)據(jù))。
計算機科學中的「狀態(tài)」一詞可以理解為程序在運行時,某個特定時刻可訪問的一切數(shù)據(jù)。程序中有變量,變量通常代表著內(nèi)存中的一個可以存放數(shù)據(jù)的位置,這個位置的內(nèi)容就是程序的狀態(tài)。一段程序的輸出完全取決于它的輸入和其開始執(zhí)行時的狀態(tài)。計算(CPU)、輸入/輸出(IO)與狀態(tài)(內(nèi)存)構(gòu)成了完整的馮諾依曼體系[4],今天最流行的計算架構(gòu)。
以支付通道為例在支付通道中,Layer 2 的共識范圍縮小到兩人之間,這是最小范圍的共識。參與通道的兩人進行的操作如下:
向 Layer 1 發(fā)送交易建立通道,鎖定特定的狀態(tài),鎖定的狀態(tài)只有用 Alice 和 Bob 雙方的簽名才能更新
例如,Alice 鎖定 1 BTC,Bob 鎖定 1 BTC,我們用(1, 1)表示在 Layer 1 鎖定的狀態(tài)
雙方通過鏈外的網(wǎng)絡(luò)連接(Layer 2),產(chǎn)生并交換新的狀態(tài),各自簽名
Alice → Bob 0.5 BTC,Alice/Bob 在本地保存的新狀態(tài)為(0.5, 1.5)
Bob → Alice 0.1 BTC, Alice/Bob在本地保存的新狀態(tài)為(0.6, 1.4)
…
最后一次交換后,Alice/Bob 在本地保存的新狀態(tài)為(0.2, 1.8),而且雙方都對該狀態(tài)進行了簽名
向 Layer 1 發(fā)送最終的狀態(tài),Layer 1 驗證最終提交的狀態(tài)有 Alice/Bob 雙方的簽名,更新鎖定的狀態(tài)為(0.2, 1.8)并解鎖
從這個例子我們很容易看到,在整個過程中,我們通常討論的計算分成了兩個部分進行:新狀態(tài)的生成,新狀態(tài)的驗證。前者發(fā)生在 Layer 2,而后者發(fā)生在 Layer 1。如果我們觀察其他的 Layer 2 協(xié)議,例如 Plasma 或者是 TrueBit,很容易得到類似的結(jié)論。正因為 Layer 1 會驗證 Layer 2 產(chǎn)生的狀態(tài),我們才能夠做到通過 Layer 1 保證 Layer 2 的安全,因為 Layer 2 的用戶在遇到問題時,總是可以請求 Layer 1 來做某種形式的驗證(這是為什么 Layer 1 可以看作是「Crypto Court」,因為它是一個能識別密碼學證明的「法院」)。
因此在分層架構(gòu)下,Layer 1 的關(guān)注點應(yīng)該是狀態(tài)的驗證(和存儲),Layer 2 的關(guān)注點應(yīng)該是狀態(tài)的生成。通過將狀態(tài)的生成轉(zhuǎn)移到 Layer 2,將生成和驗證分離,我們的分層網(wǎng)絡(luò)兼顧了性能(Layer 2)、安全和去中心化(Layer 1)。
任何程序都有計算和狀態(tài),區(qū)塊鏈上運行的程序(DApp)自然也不例外,在分層架構(gòu)上構(gòu)建應(yīng)用時,需要考慮在哪里產(chǎn)生狀態(tài),在哪里驗證狀態(tài),在哪里保存狀態(tài)。由于狀態(tài)的生成和驗證分離,狀態(tài)生成的方法可以和驗證解耦,狀態(tài)生成不必被 Layer 1 的編程模型綁定,具有更大的自由度。只要能通過 Layer 1 驗證,狀態(tài)的生成甚至可以是中心化的(事實上大部分 Plasma 協(xié)議中只有一個 Operator?。?。
Layer 1 應(yīng)該做什么我們在說「計算」的時候,實際上說的是「狀態(tài)生成」。在一般的計算模型里面,不存在信任和安全問題(我的 CPU 不會用假的結(jié)果騙我),所以生成就好,不考慮驗證;但是在區(qū)塊鏈網(wǎng)絡(luò)里面,我們不僅需要生成,還需要驗證。Layer 1 的關(guān)注點應(yīng)該是狀態(tài)的驗證和存儲,而不是狀態(tài)生成(希望你沒有被繞暈……)。
由此我們終于可以推出 Layer 1 應(yīng)該做什么:
需要一個安全的共識協(xié)議,范圍越大越好?;?PoW 的 Nakamoto Consensus 正是這樣一個協(xié)議,這是唯一一個在現(xiàn)實環(huán)境中經(jīng)過驗證的全球共識。
需要可編程能力,以支持各種狀態(tài)驗證邏輯,這意味著我們需要一個強大的編程模型(狀態(tài)模型+虛擬機)。
需要能夠理解各種密碼學證明,因為區(qū)塊鏈協(xié)議是基于密碼學構(gòu)建的,Layer 1 與 Layer 2 之間傳遞的證明是密碼學證明。
需要管理好狀態(tài),因為經(jīng)過驗證的狀態(tài)會留在 Layer 1 上。這意味著我們需要一個關(guān)注狀態(tài)的經(jīng)濟模型。
[1]https://en.wikipedia.org/wiki...
[2]https://en.wikipedia.org/wiki...
[3]https://en.wikipedia.org/wiki...
[4]https://en.wikipedia.org/wiki...
Nervos Network 由 Nervos 基金會推動,通過分層設(shè)計,兼顧性能、安全以及去中心化的特性,滿足多樣化的商業(yè)場景需求,為未來加密經(jīng)濟提供基礎(chǔ)設(shè)施。
關(guān)于 CKBNervos Common Knowledge Base(CKB)是一個無需許可鏈,它是 Nervos Network 的基礎(chǔ)層,并在設(shè)計上提出了一些理念:
CKB 共識協(xié)議 NC-MAX 使用兩階段提交節(jié)約帶寬,并根據(jù)網(wǎng)絡(luò)情況調(diào)整自身參數(shù),提升了 Nakamoto Consensus 的可擴展性
CKB 虛擬機采用底層 CPU 指令集架構(gòu) RISC-V 開發(fā),提供更高的開發(fā)彈性與運行的穩(wěn)定性
CKB Cell Model 是比特幣 UTXO 模型的通用化,能夠驗證和存儲任何類型的數(shù)據(jù)
CKB 經(jīng)濟模型用貨幣政策限制狀態(tài)存儲的增長,并實現(xiàn)智能合約平臺的價值存儲功能
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/24730.html
摘要:對于什么是區(qū)塊鏈,每個人都有自己的看法。不是將區(qū)塊鏈技術(shù)神化,就是一味的宣傳區(qū)塊鏈無用論。如果網(wǎng)絡(luò)是一輛汽車,區(qū)塊鏈就是發(fā)動機。沒有流動性就不是資產(chǎn)那么區(qū)塊鏈首先將會顛覆游戲行業(yè)。 對于什么是區(qū)塊鏈,每個人都有自己的看法。但是,如何通俗易懂的理清楚、說明白區(qū)塊鏈到底是什么?真正能夠做什么?恐怕少之又少。不是將區(qū)塊鏈技術(shù)神化,就是一味的宣傳區(qū)塊鏈無用論。秘猿科技從事區(qū)塊鏈基礎(chǔ)技術(shù)與工具研...
摘要:在年,我們正式作為公鏈的實現(xiàn)者,開啟了加密經(jīng)濟生態(tài)的構(gòu)造中。來保證安全和去中心化,絕對可靠可信它能做到全球共識,并作為加密法院,通過智能合約設(shè)計的規(guī)則進行仲裁,以經(jīng)濟激勵的形式將信任傳遞到上。 在 2016 年秘猿科技成立之初,我們就認為共識是分層的,最下面最基礎(chǔ)、最昂貴、最慢的,是全世界范圍的共識。但是我們一層一層往上看的話,共識范圍會越來越小,那么上面共識范圍更小的地方,是不是要用...
摘要:會議中,來自全國各地的近千名區(qū)塊鏈愛好者齊聚一堂,共同探討最新的區(qū)塊鏈技術(shù)發(fā)展。呂國寧在開放日活動中,做了下一代區(qū)塊鏈底層基礎(chǔ)設(shè)施的主題分享。區(qū)塊鏈的核心價值是什么我們認為,區(qū)塊鏈的核心價值是提供信任。 showImg(https://segmentfault.com/img/bVbsM64?w=1080&h=720); 5 月 16 日,由杭州市金融辦指導,巴比特主辦的 2019 杭...
摘要:張韌的論文被頂級安全會議接收這是安全頂會上第一篇來自中國大陸區(qū)塊鏈團隊的論文,來自研究員張韌發(fā)表的。感謝韓國小伙伴的熱情,期待后續(xù)更多更深入的交流。 showImg(https://segmentfault.com/img/bVbpMG9?w=1080&h=460); 3 月9 日凌晨 Nervos 聯(lián)合創(chuàng)始人及研究員 Kevin Wang 在 GitHub 上提交了 CKB 經(jīng)濟模型...
摘要:因為安全擴展性去中心化這個不可能三角問題的存在,在不犧牲安全和去中心化的前提下,要在上解決擴展性問題幾乎是不可能完成的任務(wù),因此我們只能繞道而行,選擇分層方案。 在上一篇《小白都能看懂的 Cell 模型》中,我們用大白話簡單介紹了 Cell 模型。在這篇文章中,我們將會從「驗證模型」和「狀態(tài)存儲」兩個方面來介紹 Cell 模型——一個適合分層架構(gòu)的區(qū)塊鏈設(shè)計 秘猿科技區(qū)塊鏈小課堂第 2...
閱讀 844·2019-08-30 15:55
閱讀 1419·2019-08-30 13:55
閱讀 1995·2019-08-29 17:13
閱讀 2849·2019-08-29 15:42
閱讀 1338·2019-08-26 14:04
閱讀 1027·2019-08-26 13:31
閱讀 3279·2019-08-26 11:34
閱讀 840·2019-08-23 18:25