摘要:在年,我們正式作為公鏈的實現(xiàn)者,開啟了加密經(jīng)濟生態(tài)的構(gòu)造中。來保證安全和去中心化,絕對可靠可信它能做到全球共識,并作為加密法院,通過智能合約設(shè)計的規(guī)則進行仲裁,以經(jīng)濟激勵的形式將信任傳遞到上。
在 2016 年秘猿科技成立之初,我們就認為共識是分層的,最下面最基礎(chǔ)、最昂貴、最慢的,是全世界范圍的共識。但是我們一層一層往上看的話,共識范圍會越來越小,那么上面共識范圍更小的地方,是不是要用區(qū)塊鏈或者用什么區(qū)塊鏈都是我們可以探討的地方。所以,在 2016 年我們都覺得許可鏈和公有鏈都是非常有前景的,并且開創(chuàng)性的提出了公有許可鏈的概念。在 2018 年,我們正式作為 Nervos 公鏈的實現(xiàn)者,開啟了加密經(jīng)濟生態(tài)的構(gòu)造中。在秘猿小課堂第 13 期中,我們?yōu)榇蠹医馕隽?Nervos 加密經(jīng)濟中,底層公鏈 CKB 的所需要承擔(dān)的職能。在這一期中,我們將會來談?wù)?layer2 應(yīng)該做什么?
秘猿科技區(qū)塊鏈小課堂第 14 期
2016 年 1 月,距離比特幣創(chuàng)世區(qū)塊誕生 7 年之后,一篇名為《The Bitcoin Lightning Network:Scalable Off-Chain Instant Payment》的白皮書發(fā)布,這是第二層擴容方案(Layer 2 Scaling Solutions,簡稱 Layer 2)的開端;
到 2018 年的年末,光是技術(shù)類型就已經(jīng)有狀態(tài)通道、Plasma、Truebit 等各類 Layer 2 方案,出現(xiàn)了 Celer Network、AlphaWallet、Raiden Network、Alacris 等等一眾新星,在時間和資源都極度稀缺的情況下根據(jù)自己發(fā)現(xiàn)的需求,針對不同的場景給出自己的解決方案,準備迎接未來加密經(jīng)濟應(yīng)用的爆發(fā)。
公鏈,不能治百病區(qū)塊鏈帶來了強大的去中心化應(yīng)用生態(tài),無數(shù)人對它寄以厚望,希望區(qū)塊鏈能夠打破金融孤島。2017 年上百個公鏈項目展開角逐,但到了 2019 年,大規(guī)模應(yīng)用落地仍舊困難:區(qū)塊鏈發(fā)展受到 Vitalik 提出的不可能三角的瓶頸性限制——也就是區(qū)塊鏈系統(tǒng)設(shè)計無法同時兼顧可擴展性、去中心化和安全性,三者只取其二。
這個瓶頸是否屬實?是否公鏈的性能真的那么低?以太坊、比特幣確實可以將 TPS 做的很大,讓每個節(jié)點處理更多的交易。甚至有人將它做簡單的參數(shù)修改,就能作為一個吞吐量非常高的聯(lián)盟鏈方案。但這個方案真的非常天真:TPS 提高帶來的問題就是,由于帶寬的限制,一般的節(jié)點甚至連同步數(shù)據(jù)都難以做到,更別說參與出塊,隨后小節(jié)點就被淘汰。這樣損失的是去中心化:公鏈作為開放的協(xié)議,因為性能的需求實際上為大部分節(jié)點設(shè)置了不可進入的門檻,那如何做到開放?
去中心化只是一個手段,我們需要的實際上是公共可驗證:一個沒有足夠多、足夠分散的驗證者(也就是節(jié)點)的區(qū)塊鏈網(wǎng)絡(luò)是難以構(gòu)造信任的——這個網(wǎng)絡(luò)可以少數(shù)人輕易被控制,我如何保證我的資產(chǎn)安全?
那么是否能夠在保有去中心化和安全性的前提下,去追求更高數(shù)量級的吞吐量?
有人嘗試新的區(qū)塊鏈協(xié)議去打破不可能三角:一些團隊開始研究 DAG,來取代「區(qū)塊+鏈」的數(shù)據(jù)結(jié)構(gòu)來做到上萬甚至更高的 TPS。但是基于看似無序?qū)崉t有序的圖做交易順序的判斷是非常難,交易順序難判斷,如何避免雙花?因此很多 DAG 項目引入相對中心化的方案,比如 IOTA 采用一個中心化的 Check Point,ByteBall 采用見證人機制,本質(zhì)上都不是共識,而是中心化的方式——而這顯然不能解決問題。
如圖Byteball 的 DAG 數(shù)據(jù)結(jié)構(gòu),在 Byteball 中交易會根據(jù)交易距離創(chuàng)世塊的距離,再根據(jù)一種見證等級進行排序
是否能夠用分片技術(shù),將網(wǎng)絡(luò)分為不同的片區(qū),處理各自的交易,來將性能十倍、百倍的提升?但實際上,分片技術(shù)在計算層面、存儲層面、網(wǎng)絡(luò)層面、共識層面都有問題需要解決,并且不同層面的分片問題聯(lián)系起來又會有新的問題出現(xiàn)。這些問題解決之后,還有跨片區(qū)交易問題,如著名的「Train & Hotel Problem」。
主要是跨 Shard 交易比較復(fù)雜」,原來在以太坊 Research 團隊研究 Sharding ,現(xiàn)在是 Nervos 首席架構(gòu)師的 Jan 曾說到。
這是一個很讓人失望的結(jié)果,但我們必須知道,一切事物都有自己的邊界,我們應(yīng)該理解,公鏈不應(yīng)該做所有的事情,它應(yīng)該做它該做的事情:
它應(yīng)是以最高效率達成全球共識的工具,能夠以最低的成本來構(gòu)建信任;但我們不得不承認的是,它可能是最貴、最低效的數(shù)據(jù)庫。
作為共識的工具、信任的引擎,它不該放棄去中心化和安全性對可擴展性做妥協(xié)。那如此低的 TPS,該如何利用?我們是否能夠?qū)⒋罅康墓ぷ鞣诺芥溝氯ソ鉀Q,僅僅將最重要的數(shù)據(jù)提交到區(qū)塊鏈上,讓所有人都能夠驗證這些工作都是準確可靠的?
社會的發(fā)展帶來的是更精細的分工,區(qū)塊鏈的技術(shù)發(fā)展也如是——分層,本質(zhì)上就是一種分工。公鏈不能做所有的事情,那么就讓它來做它擅長的東西。由此,也就是第二層擴容方案的思路,我們稱為「 Layer 2」,是構(gòu)建在底層區(qū)塊鏈(Layer 1)之上的基礎(chǔ)架構(gòu),為豐富的區(qū)塊鏈應(yīng)用提供更好的可擴展性、隱私性和可用性。
Layer 1 來保證安全和去中心化,絕對可靠、可信;它能做到全球共識,并作為「加密法院」,通過智能合約設(shè)計的規(guī)則進行仲裁,以經(jīng)濟激勵的形式將信任傳遞到 Layer 2 上。而 Layer 2 追求極致的性能,它只能做到局部共識,但是能夠滿足各類商業(yè)場景的需求。
Nervos 從一開始就決定做一個支持 Layer 2 的 Layer 1,我們著眼于安全和去中心化,為上層生態(tài)傳遞信任。今天我們能夠說,我們預(yù)測的、百花齊放的 Layer 2 已經(jīng)到來。
Why Layer 2 ?試圖用一層區(qū)塊鏈方案解決所有問題的人,往往沒有思考過一個很重要的問題:公鏈雖能夠達成全球共識,公共可驗證,但是否所有的信息都需要讓所有人驗證、知道?我們之間的日常交易是否需要讓全世界的人審核?
如果我不做違法的事情,當然不會介意,但是這顯然沒有必要。我們只需要將最關(guān)鍵的信息讓所有人驗證、獲取保障就夠了。而 Layer 2 恰好就能滿足這樣的需求:我們將大量工作放到鏈下(Off Chain),僅將最重要的內(nèi)容提交 Layer 1 鏈上(On Chain)進行驗證,并且 Layer 1 能夠保證 Layer 2 的安全。
因此,我們提出最核心的兩個觀點:
1)不是所有的東西都需要全球共識;
2)公鏈就該做它應(yīng)該做的事情,其他的事情完全可以鏈下完成。
那什么樣的方案能夠被稱為 Layer 2?
1)首先,應(yīng)用的主要工作都是在鏈下;
2)其次,僅用 Layer 1 作為安全的錨點,保證鏈下環(huán)境的安全;
3)最后,和 Layer 1 盡量保有同樣的風(fēng)險模型(很遺憾,跨鏈和側(cè)鏈方案并不符合這一條,因為它們將資產(chǎn)在一條鏈上鎖定在另一條鏈上釋放,資產(chǎn)進入了另一個安全性完全不同的環(huán)境)。
顯然,這里 Layer 1 和 Layer 2 的安全等級是不一樣的:
Layer 1 的安全性是由去中心化(Decentralized)保證,這意味一組無中心的節(jié)點取代了可信第三方的角色。在這里:1.被接受的交易就會按照規(guī)定執(zhí)行;2.交易次序是確定的;3.雙花是禁止的。
但是 Layer 2 的安全等級遠小于此,它的安全性需要通過 Layer 1 來保證,因此只需要達到「去信任」(Trustless):不保證交易在 Layer 2 上一定能夠執(zhí)行,但是能夠保證若交易不被執(zhí)行能夠有一種方式讓資產(chǎn)安全地從 Layer 2 撤回。
在下面的內(nèi)容里,我們就為大家一一解釋不同的 Layer 2 方案:狀態(tài)通道、Plasma 和鏈下計算。
狀態(tài)通道(State Channel)我們常會面臨的一個場景是,我們會和某一個人或者某幾個人反復(fù)交互。比如家門口的咖啡廳,每天都去喝一杯咖啡并且用比特幣支付,但是每次交易手續(xù)費就高的可怕,于是可以用支付通道技術(shù),雙方客戶端之間建立一條通道,之后交易都在通道內(nèi)部進行,最后到比特幣區(qū)塊鏈上做結(jié)算,如此只有在通道關(guān)閉和打開的時候需要手續(xù)費,這是第一個狀態(tài)通道技術(shù):Lightning Network 最初設(shè)計的場景。
本質(zhì)上,狀態(tài)通道是一個智能合約機制:區(qū)塊鏈上的智能合約就像一個機器人,雙方在通道中運行應(yīng)用,最后將結(jié)果提交到機器人手里它會按照規(guī)則進行結(jié)算。
在狀態(tài)通道中運行應(yīng)用,會有如下的步驟:
1)參與狀態(tài)通道的各方在區(qū)塊鏈上部署智能合約,這個合約包含一個多重簽名合約(僅在有各個參與方簽名的情況下才能解鎖),并存入一定的資金,一部分作為初始狀態(tài),一部分作為資產(chǎn)抵押防止作惡,通道開啟。之后所有的行為都會在鏈下執(zhí)行直到通道關(guān)閉;
2)應(yīng)用會在各方客戶端本地運行,每運行一步,雙方在本地構(gòu)建交易并簽名,通過點對點網(wǎng)絡(luò)或者簡單的八卦協(xié)議的方式將交易發(fā)送給其他參與方并得到各方簽名形成新的狀態(tài)。新的狀態(tài)更新包含:各方的最新狀態(tài)(一般是狀態(tài)的 Hash),各方的簽名以及該狀態(tài)的版本序號。同時各方保存運行過程中的每一次狀態(tài)和簽名;
3)應(yīng)用結(jié)束,一方提交最終狀態(tài)到區(qū)塊鏈上的智能合約,并有一段時間的爭議期。各方認為沒有問題,爭議期之后狀態(tài)確認,狀態(tài)通道關(guān)閉并根據(jù)最終狀態(tài)在區(qū)塊鏈上進行資產(chǎn)的結(jié)算。
原本在區(qū)塊鏈中需要確認的「每一步」,變?yōu)橹恍枰_認「結(jié)果」。需要注意的是,狀態(tài)通道中并沒有一個第三方運行節(jié)點,接受交易、打包出塊來提供服務(wù)。應(yīng)用在本地執(zhí)行,狀態(tài)更新通過點對點網(wǎng)絡(luò)傳播,不需要共識機制,非常高效。
于是狀態(tài)通道會有非常多的優(yōu)勢,首先就是即時確定性(Instant finality),只要各方簽名通過狀態(tài)更新,狀態(tài)就被「確認」,而不需要如區(qū)塊鏈上等待區(qū)塊確認;其次,狀態(tài)更新在鏈下,點對點通信能夠保證隱私,僅最終狀態(tài)會提交到區(qū)塊鏈上;最后是低手續(xù)費,狀態(tài)通道是事務(wù)性的,只在通道打開和關(guān)閉的時候需要區(qū)塊鏈上結(jié)算清算的手續(xù)費,而其他時間,不管雙方在通道內(nèi)如何更新都是免費的。
那么狀態(tài)通道是否安全呢?狀態(tài)通道的安全性是由區(qū)塊鏈上的智能合約來保證的。很可能出現(xiàn)的兩類攻擊模型:
1)狀態(tài)通道中有一個非常樂觀的前提,那就是用戶保持在線,確保狀態(tài)的更新。若用戶掉線,參與通道的另一方能夠通過提交舊的、對自己有利的狀態(tài)到區(qū)塊鏈上結(jié)算進行攻擊。
爭議期的設(shè)計就是為了防止這個情況發(fā)生:在爭議期內(nèi),用戶可以提交最新的狀態(tài)。由于每一次狀態(tài)更新都有各方簽名并帶有版本序號,因此只要提交最新版本序號的狀態(tài)到區(qū)塊鏈上就能夠證明提交舊狀態(tài)的作惡,并將懲罰作惡者。
如果用戶在爭議期無法上線呢?不同項目給出了不同方案,如 Lightning Network 中的 Watch Tower 和 PISA 中的 Custodians,這些角色有經(jīng)濟激勵來揭發(fā)提交錯誤狀態(tài)的攻擊者;Celer Network 的狀態(tài)守護者網(wǎng)絡(luò)幫助用戶在下線的時候提交新的狀態(tài)。
2)若出現(xiàn)一方不合作的情況,比如他輸了游戲,不對自己認輸?shù)臓顟B(tài)簽名。這時另一方能夠?qū)顟B(tài)的證明提交到區(qū)塊鏈上,區(qū)塊鏈將整個過程重新運行,得到結(jié)果。如果的確出現(xiàn)作惡的情況,作惡的一方會受到懲罰并承擔(dān)應(yīng)用在區(qū)塊鏈上運行的成本。
此外在狀態(tài)通道中還有很多的概念,如支付通道、廣義狀態(tài)通道等。支付通道是最簡單的狀態(tài)通道,它的狀態(tài)就是數(shù)字——在這個時刻,各方手里有多少 Token。而狀態(tài)通道中的狀態(tài)更加豐富,可以是如 Celer Network 的五子棋游戲中雙方下棋的落子情況,也可以是海戰(zhàn)游戲中各方戰(zhàn)艦的受損情況……
而廣義狀態(tài)通道是另一個概念。一般情況下,一個狀態(tài)通道只能處理一類應(yīng)用,因為在區(qū)塊鏈上的智能合約只能處理某一類應(yīng)用的執(zhí)行和驗證。
在廣義狀態(tài)通道中制定了一系列的「標準」(如圖其實是合約的功能 Functions),在該標準下的應(yīng)用能夠在由同一個狀態(tài)通道合約執(zhí)行,由此廣義狀態(tài)通道能夠允許用戶在不關(guān)閉通道的情況下運行多種應(yīng)用。
舉例來說,你可以在廣義狀態(tài)通道中先運行五子棋游戲,之后進行支付,然后打一輪撲克牌。其中運行的應(yīng)用的狀態(tài)更新都基于同一個標準,在區(qū)塊鏈上的合約都能夠處理。
圖中 V1、V2、V3 分別是不同的通道,但是在鏈上只需一個合約
狀態(tài)通道技術(shù)給了我們一個非常美好的愿景,它犧牲流動性(在合約中抵押資產(chǎn))來換取無手續(xù)費和即時確定性,但是它僅僅適用于計算量很小、并且各方需要來回交互的應(yīng)用,并且由于狀態(tài)通道每一步都需要用戶一致同意,就需要在通道開啟的時候明確各位參與者,并且中途難以加入/退出,這讓狀態(tài)通道僅僅能夠成為鏈下交易的擴容。
在采訪 IC 3 成員、倫敦皇家學(xué)院副教授 Patrick McCorry 的時候,我問他:
你覺得狀態(tài)通道的第一個殺手級應(yīng)用會出現(xiàn)在哪里?
I would say Payment.I don"t really see state channels as a scaling solution per se, but as a technique to run existing smart contracts/apps for free.They won"t work for a whole host of applications, but they"ll truly excel for where they do work.
我覺得是支付。我并不認為狀態(tài)通道本質(zhì)上是一個擴容方案,它僅僅是能夠免費運行現(xiàn)有合約、應(yīng)用的技術(shù)而已。它并不能為所有應(yīng)用起作用,但是對于它能做的方面它會非常出色。
Plasma提到 Plasma 首先要提到側(cè)鏈的概念。側(cè)鏈(Sidechain)是非常有效的擴容方案,但是側(cè)鏈的問題在于,我們將資產(chǎn)映射到側(cè)鏈之后,在側(cè)鏈上運行交易我們需要信任側(cè)鏈的驗證者(Validator 也就是出塊節(jié)點)——一旦側(cè)鏈上節(jié)點作惡,我們將沒有辦法保護資產(chǎn)的安全性。因此嚴格來說,側(cè)鏈并不是一種 Layer 2 方案,因為它的安全性并不是由 Layer 1 保障的。
那么能否將側(cè)鏈「Layer 2 化」呢?
回到我們之前定義的 Layer 2 的安全等級:去信任(Trustless)——我們不能保證交易在 Layer 2 上一定能夠執(zhí)行,但是能夠保證若交易不被執(zhí)行能夠有一種方式讓資產(chǎn)安全地從 Layer 2 撤回。
側(cè)鏈 + 資產(chǎn)能夠安全撤回的機制 = Plasma
2017 年 8 月發(fā)布的 Plasma 白皮書,由 Vitalik 和 Lightning Network 的 Joseph Poon 發(fā)表。
Plasma 是一系列在根鏈(Root Chain,在 Plasma 最初設(shè)計中它是一個樹狀結(jié)構(gòu),因此將 Layer 1 稱為根鏈比較形象)上運行的智能合約,并且區(qū)別于狀態(tài)通道,Plasma Chain 中能夠運行智能合約——如果說狀態(tài)通道是對交易吞吐量的擴容,那么它是對計算能力的擴容。
在鏈下會有驗證者運行一條 Plasma 鏈,用戶可以將自己的資產(chǎn)鎖定在根鏈的合約中映射到 Plasma 鏈上得到更好的用戶體驗。根鏈上的合約要求 Plasma 鏈將每一個區(qū)塊的 Merkle Root 提交到根鏈上作為「欺詐證明」(Fraud Proof),只有提交證明的 Plasma 區(qū)塊才是被確認的。
所有 Plasma 上的用戶能夠用自己保存的 Merkle Proof 來驗證這個 Merkle Root 保證子鏈運行的安全性,必要的時候可以通過向合約證明自己的資產(chǎn)來快速退出。Plasma 鏈能夠發(fā)行自己的代幣,以此激勵這條鏈的驗證者保證它的運行,一旦出現(xiàn)仲裁并被證明作惡,Plasma 鏈驗證者在根鏈合約中的保證金會被扣除。
根鏈上的合約就像機器人:它要求 Plasma 提交每個區(qū)塊的證明(Merkle Root 的形式),并且在用戶提交自己的資產(chǎn)證明的時候能夠運行起來幫助用戶將資產(chǎn)從 Plasma 中撤回根鏈。
最初的 Plasma 設(shè)計是樹狀的、鏈中鏈的結(jié)構(gòu),在根鏈上建立合約運行開設(shè) Plasma 鏈,在 Plasma 鏈之上還能通過智能合約的形式建立新的 Plasma 鏈,此時在根鏈上開設(shè)的 Plasma 鏈稱為父鏈(Parent Blockchain),其上的 Plasma 鏈稱為子鏈(Child Blockchain),能夠有更好的性能但是安全性會更弱。
Plasma 這樣的設(shè)計非常像現(xiàn)實中的法院:如果說根鏈(也就是公鏈)是最高法院,那么 Parent Blockchain 就像是省級法院,Child Blockchain 是地方法院一樣,來保障基于這條區(qū)塊鏈開設(shè)的 Plasma 區(qū)塊鏈的安全性。欺詐證明從子鏈向下遞交最后到根鏈上。
Plasma 的樹狀結(jié)構(gòu)
用戶需要從 Plasma 撤回資產(chǎn),提交相關(guān)證明到上一層(根鏈/父鏈)的合約中進行請求,之后會有一段時間的爭議期,主要爭議兩個內(nèi)容:1、是否該筆資產(chǎn)已經(jīng)被花費或者撤回;2、是否該證明是來自最新的狀態(tài),而不是舊的狀態(tài)。爭議期之后,資產(chǎn)會根據(jù) UTXO/account (具體關(guān)系到 Plasma 實現(xiàn)的時候資產(chǎn)的表達形式)的新舊,優(yōu)先從舊的開始撤回。
這是最初版本的 Plasma 設(shè)計,鏈中鏈的樹狀結(jié)構(gòu)是非常抽象的,并且實現(xiàn)非常復(fù)雜,于是很快 Vitalik 提出了 Minimal Viable Plasma,也就是 Plasma MVP,MVP 的設(shè)計初衷是用簡單的機制設(shè)計來提供 Plasma 設(shè)計中的基本安全特性。
因此在 Plasma MVP 的設(shè)計中并不是「鏈中鏈」的形式而是一位驗證者運營一條鏈的形式,每次產(chǎn)生區(qū)塊都是在數(shù)據(jù)庫中加入一組數(shù)據(jù),并且將 Merkle Root 提交到根鏈(提交之后 Plasma MVP 區(qū)塊才是確認)。在 Plasma MVP 中資產(chǎn)用 UTXO 的形式表達,并且它不能運行智能合約,僅僅作為資產(chǎn)交易,并且 TPS 在數(shù)千左右(預(yù)計 3000-5000)。
在資產(chǎn)安全性方面,Plasma MVP 設(shè)計了如下的資產(chǎn)撤回方案。在 MVP 中每一個 UTXO 根據(jù)區(qū)塊號、區(qū)塊內(nèi)交易號和交易內(nèi)輸出號都有一個優(yōu)先級,越是舊的 UTXO(說明長時間沒有人對這個 UTXO 進行操作)會優(yōu)先退出。此時若有人能夠在資產(chǎn)撤回的爭議期證明這個 UTXO 在之后的交易中被改變,該次撤回會被證偽。
另一個設(shè)計是 Plasma Cash,在 Plasma Cash 中每一個 Token 有自己對應(yīng)的一個 Id,就好像 Non-fungiabe Token 一樣,交易保存在稀疏默克爾樹中,每一個葉子就是對應(yīng)一個 Token,每一個區(qū)塊都是一「棵」樹,若本區(qū)塊中某個 Token 沒有轉(zhuǎn)移,那么用空值表示。
由此,用戶只需要追蹤屬于自己的 Token ,證明交易變得非常迅速。并且,作惡者需要一個個竊取 Token,作惡成本高,更加安全。
可以看到,雖然一開始 Plasma 設(shè)計是為了以太坊計算能力的擴容,但是目前實現(xiàn)的方案僅僅涉及到資產(chǎn)的轉(zhuǎn)移:僅僅是很簡單的 UTXO(如 Plasma MVP)或者 NFT(如 Plasma Cash),卻并不能運行智能合約,不能如 Vitalik 最早想做的那樣:為以太坊做計算能力的擴容。
這里確實是遇到了瓶頸性問題,主要在于:為什么資產(chǎn)從 Plasma 上退出那么難?
如果在 Plasma 上構(gòu)建智能合約,如 ERC 20 的資產(chǎn)。實際上資產(chǎn)并不是在用戶的賬戶里,Token 的狀態(tài)是存儲在合約中的,通過指針的形式指向賬戶,用戶才能在錢包里看到自己 ERC 20 的資產(chǎn)。每次 ERC 20 Token 的轉(zhuǎn)賬實際上是調(diào)用相關(guān)合約改變合約里 Token 存儲的狀態(tài)。
那在 Plasma 中,一個合約中包含所有用戶的資產(chǎn),這些資產(chǎn)是否能一起退出?誰有權(quán)利讓所有人資產(chǎn)一起退出?
每個人都是能夠修改合約的整體狀態(tài),那么如何保證撤回時的爭議期其他人修改狀態(tài),然后提交新的狀態(tài)證明駁回這次撤回?
并且,合約運行完全在 Plasma 上,主鏈如何確認結(jié)果是正確的?(在以太坊上,這里涉及到 EVM in EVM 的問題,在以太坊虛擬機上驗證 Plasma 上的 EVM 狀態(tài)非常困難),目前可能還沒有很好的方案。
Plasma 和 State Channel 的區(qū)別
狀態(tài)通道(State Channel) 和 Plasma 的最大區(qū)別在于,狀態(tài)通道中沒有第三方驗證者的角色,它的狀態(tài)更新是基于各方達成一致共識的前提下的,而 Plasma 中則有驗證者的角色。
在狀態(tài)通道中一旦各方同意簽名狀態(tài)就能立即確認,在區(qū)塊鏈的基礎(chǔ)設(shè)施中僅狀態(tài)通道能夠做到即時確定性。Plasma 中用戶還是需要等待區(qū)塊確認(驗證者需要提交 Merkle Root 到根鏈)才能確保自己交易的安全性。
鏈下計算
交易能夠在 Plasma 和狀態(tài)通道中快速運作,但是還有一類問題困擾以太坊,那就是大量的計算。在以太坊中設(shè)置了 800 萬 Gas Limit,并以以太幣作為度量,就是對「計算」這個稀缺資源的限制,運行合約進行計算價格十分高昂并且有區(qū)塊大小的限制。Plasma 中也存在一樣的問題。
那能否將計算任務(wù)放到鏈下處理并且保證安全性?
Truebit 和 TEE(Trust Execution Environment,可信執(zhí)行環(huán)境)就是為解決鏈下計算問題出現(xiàn)的。要注意的是,鏈下計算并不提高吞吐量,僅僅是將復(fù)雜任務(wù)放到鏈下處理,再將結(jié)果返回到鏈上。
Truebit 也是鏈上的智能合約,它的運行邏輯本質(zhì)上是一種計算外包,用經(jīng)濟激勵的形式來保證計算的安全。用戶向服務(wù)提供者描述計算任務(wù),并約定給予獎勵,服務(wù)提供者將運算結(jié)果交給用戶來提交到主鏈的合約作為結(jié)果。網(wǎng)絡(luò)中會有很多挑戰(zhàn)者,他們會檢查服務(wù)提供者的結(jié)果,若發(fā)現(xiàn)問題,則做進一步對比,將不一致的代碼行放到區(qū)塊鏈上的智能合約上進行驗證,驗證成功能夠有經(jīng)濟激勵。這就是 Truebit 提出的「驗證游戲」。
TEE 可信執(zhí)行環(huán)境一般是硬件設(shè)備,可以處理交易的驗證,如 ARM 生產(chǎn)的、處理指紋的 TrustZone,Intel 的 SGX。銀行卡的芯片就是在 TEE 中運行。TEE 的硬件就是一種黑盒子,計算(一般是安全性要求比較高的計算)會在黑盒子里運行,然后返回結(jié)果,沒人能夠知道如何運行但是能夠知道結(jié)果是正確的,它能夠非常好的保護隱私。
但是它的安全性也非常明顯,計算會引入不可預(yù)知的風(fēng)險,并且安全性依賴于制造的廠商:如果一個黑盒子被攻破,那么所有同批次生產(chǎn)的都能夠被攻破。
總結(jié)在整個市場進入寒冬的 2018 年,我們反而看到了無數(shù) Layer 2 團隊開始出現(xiàn),特別是狀態(tài)通道,已經(jīng)出現(xiàn)了數(shù)十個團隊,針對不同場景、不同需求給出自己的解決方案。
圖片來自 CoinFund
而 Plasma 也出現(xiàn)不同的解決方案,在 Ethresearch 上我們能夠看到一張 Plasma 的「世界版圖」:
圖片來自 Ethresearch
鏈下計算,除了 Truebit 以外,Oasis Labs、TEEX、Stark、Transmute 等一眾團隊展開研究。
的確,如果一個由 Layer 1 保證去中心化和安全的智能合約來設(shè)定規(guī)則,一個 32 字節(jié)的 Merkle Root 哈希值或是最終狀態(tài)的提交就能保證資產(chǎn)的安全,為什么所有應(yīng)用要直接放在操作昂貴、資源稀缺的公鏈上?
Layer 1 保障安全性和去中心化,Layer 2 來滿足性能的需求,Layer 1 為 Layer 2 傳遞信任,這是未來加密經(jīng)濟的基礎(chǔ)設(shè)施。
從 2017 年的混亂,到 2018 下半年的冷清,分層設(shè)計的項目不斷出現(xiàn),Ethereum 也在周報中將 Layer 1 和 Layer 2 分開呈現(xiàn),這幾乎已經(jīng)是被業(yè)界廣泛認可的技術(shù)方向,終于,我們在混沌中找到了方向。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/24729.html
摘要:秘猿科技區(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ò)分別有著怎樣的需求?...
摘要:會議中,來自全國各地的近千名區(qū)塊鏈愛好者齊聚一堂,共同探討最新的區(qū)塊鏈技術(shù)發(fā)展。呂國寧在開放日活動中,做了下一代區(qū)塊鏈底層基礎(chǔ)設(shè)施的主題分享。區(qū)塊鏈的核心價值是什么我們認為,區(qū)塊鏈的核心價值是提供信任。 showImg(https://segmentfault.com/img/bVbsM64?w=1080&h=720); 5 月 16 日,由杭州市金融辦指導(dǎo),巴比特主辦的 2019 杭...
摘要:正因為會驗證產(chǎn)生的狀態(tài),我們才能夠做到通過保證的安全,因為的用戶在遇到問題時,總是可以請求來做某種形式的驗證這是為什么可以看作是,因為它是一個能識別密碼學(xué)證明的法院。 showImg(https://segmentfault.com/img/bVbsffs?w=1200&h=500); Nervos Approach Nervos Network 的技術(shù)目標是設(shè)計一個分層的加密經(jīng)濟網(wǎng)絡(luò)...
摘要:本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接深入理解一框架原文已更新,請讀者前往原文閱讀這一系列文章將圍繞以太坊的二層擴容框架,介紹其基本運行原理,具體操作細節(jié),安全性討論以及未來研究方向等。因此,理解是一套框架是理解的關(guān)鍵。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:深入理解Plasma(一)Plasma 框架原文已更新,請讀者前往原文閱讀 這一系列文章將圍繞以太坊的二層擴容框架,介紹其基本運行...
摘要:自我保障協(xié)議與加密經(jīng)濟加密經(jīng)濟是區(qū)塊鏈發(fā)展多年以后形成的全新經(jīng)濟體。根證書頒發(fā)機構(gòu)為互聯(lián)網(wǎng)創(chuàng)造信任,它們是整個互聯(lián)網(wǎng)信任體系的引擎。的信任引擎區(qū)塊鏈是創(chuàng)造信任的機器,是一個不依賴任何第三方的由算法和經(jīng)濟激勵維護的的網(wǎng)絡(luò)。 在上一篇中,我們暢想了區(qū)塊鏈的未來。秘猿科技在行業(yè)內(nèi)有著豐富的工程實踐經(jīng)驗,在多年的實踐中,我們不禁思考:區(qū)塊鏈技術(shù)到底能用來干什么?區(qū)塊鏈是要像以太坊一樣成為世界計...
閱讀 2928·2021-10-14 09:43
閱讀 2866·2021-10-14 09:42
閱讀 4639·2021-09-22 15:56
閱讀 2355·2019-08-30 10:49
閱讀 1587·2019-08-26 13:34
閱讀 2369·2019-08-26 10:35
閱讀 590·2019-08-23 17:57
閱讀 2022·2019-08-23 17:15