
為了更深入地探討那些重要且硬核的技術與思想難題,鏈捕手(ID:iqklbs)將邀請公鏈、交易所等一系列領域中具有相當建樹的企業家、學者、技術大牛等,分享他們在自己專業領域經過大量實踐的行業判斷與思考,以幫助各位讀者進一步加深對區塊鏈的理解。
經鏈捕手(ID:iqklbs)從Talk論壇轉載,Nervos首席架構師Jan撰寫了本文,他所在的Nervos Network,是一個專門為Layer 2 打造的Layer 1底層公鏈,致力于為未來加密經濟構建基礎設施。相信Jan精彩的分享,應該能給你帶來啟發。
作者/Jan
未經授權,謝絕轉載
01
Layer 1應該關注狀態
如果我們認為區塊鏈分層是未來的發展方向,我們應該從一開始就考慮到上層協議和分層網絡的需求,在分層的大框架下去設計區塊鏈協議。
換句話說,從分層的角度來看,現有的區塊鏈設計方式都是過時的?,F有的區塊鏈在設計時考慮的是特定的功能(例如支付,或者是運行DApp),并希望在運行一段時間后讓上層協議來適應自己。然而如果我們閱讀互聯網的歷史就知道,今天互聯網的協議分層不是這樣打補丁打出來的,相反是在吸收過去經驗之后。這是為什么區塊鏈并不天然是Layer 1,Layer 1是需要設計的。
要弄清Layer 1應該關注什么,先要弄清楚它和上層協議的區別。Layer 2起源與我們發現公有鏈(這里指permissionless blockchain)的性能不足,很難擴容到滿足整個加密經濟體需求的水平,同時我們又非常迷戀公有鏈提供的可用性和極大的服務范圍,因此慢慢演化出了一系列可以由區塊鏈來保證安全的Layer 2協議,例如支付通道(payment channel)、 plasma,etc.
這些協議的共同特點是犧牲共識范圍來換取性能。公有鏈最讓人驚艷的地方是通過開放網絡提供不間斷的覆蓋全球的服務,這意味著全球共識,也意味著性能底下。
解決這個問題的最好方式是將大部分交易轉移到共識范圍更小但是性能更好的上層協議中,并且保證上層協議的參與者總是可以在不滿意的時候退回到區塊鏈上來解決問題,代價僅僅是一些時間成本。
因此作為Layer 1的區塊鏈,關注點顯然不應該是性能,因為Layer 2會承擔這個職責。Layer 1是保障上層協議參與者的最后防線,它的關注點應該是安全和去中心化。如果我們觀察Layer 2協議與Layer 1交互的模式,我們還會發現,Layer 1負責的是狀態共識(存儲),Layer 2負責的是狀態生成(計算)。
02
狀態是什么
如果Layer 1的關注點應該是狀態而不是計算 , 在設計Layer1區塊鏈的時候,我們就需要先理解什么是區塊鏈的狀態。理解了狀態是什么,我們才能理解狀態爆炸是什么。
區塊鏈網絡中的每一個全節點,在網絡中運行一段時間之后都會在本地存儲上留下一些數據,我們可以按照歷史和現在把它們分為兩類:
歷史:區塊數據和交易數據都是歷史,歷史是從Genesis到達當前狀態的路徑。
狀態(即現在):節點在處理完從Genesis到當前高度的所有區塊和交易后形成的最終結果。狀態隨著區塊的增加一直處于變化之中,交易是造成變化的原因。
共識協議的作用是通過一系列的消息交換,保證每一個節點看到的當前狀態是相同的,而實現這個目標的方式是保證每一個節點看到的歷史是相同的。只要歷史相同(即所有交易的排序相同),處理交易的方式相同(把交易放在相同的確定性虛擬機里面執行),最后看到的當前狀態就是相同的。當我們說「區塊鏈具有不可篡改性」的時候,指的是區塊鏈歷史不可篡改,相反狀態是一直在變化的。
有趣的是,不同的區塊鏈保存歷史和狀態的方式不同的,其中的差異使得不同的區塊鏈形成了各自的特點。由于這篇文章討論的話題是狀態,而影響狀態的歷史數據主要是交易(而不是區塊頭),接下來的討論歷史的時候會側重交易,忽略區塊頭。
此文由 中國比特幣官網 編輯,未經允許不得轉載?。?a href="http://www.huohuxiazai.com/">首頁 > 比特幣行情 » 區塊鏈的狀態爆炸困境 |硬核系列