本開始閱讀本文時,我們先了解什么是抽象性:在計算機科學中,抽象化(英語:Abstraction)是將數據與程序,以它的語義來呈現出它的外觀,但是隱藏起它的實現細節。抽象化是用來減少程序的復雜度,使得程序員可以專注在處理少數重要的部份。一個電腦系統可以分區成幾個抽象層(Abstraction layer),使得程序員可以將它們分開處理。
據稱Lightning和Plasma等第2層技術“在塊鏈的可擴展性,互操作性和功能性方面取得了巨大進步”。 但是,大多數第2層項目主要關注可擴展性,偶爾也會提到互操作性。 為什么? 這不僅僅是時間或發展階段的問題。 這實際上應該是這樣,第2層用于伸縮性而第3層用于互操作性。
擴展和互操作性是互補的,但是通過不同的協議層可以最好地解決這些問題。 為了說明這一點,我將介紹分層協議體系結構的目的以及第1,2和3層的角色。我還將解釋分離可擴展性和互操作性如何改進兩者的解決方案,其設計與互聯網本身驚人地類似。
分層協議的目的
總是有可能把多個獨立的問題凝聚成一個復雜的相互依賴的解決方案。
互聯網是分層協議架構的最佳范例,這種設計是互聯網增長和實用性的關鍵因素。 不同的功能部分被分成彼此構建的單獨協議,而不是在一個單片系統中捆綁在一起。
例如,因特網協議(IP)建立在不同的底層網絡技術或“鏈路層”協議上,例如以太網和WiFi。 由于IP被設計為單獨的層,因此它不依賴于任何特定的網絡技術,并且能夠以相同的方式在許多不同類型的有線或無線連接上工作。
分層協議體系結構提供了許多重要的好處:
互操作性-IP通過抽象出不同的網絡技術來工作。只要鏈路可以發送數據,IP就可以通過它進行通信。這意味著無論我們使用的是什么類型的底層網絡,我們都可以無縫連接。
可升級性-抽象使不同的層可以單獨進化。雖然互聯網是在20世紀70年代建立的,但事實上,IP將不同的網絡技術抽象出來,使我們能夠從撥號網絡升級到光纖和4G鏈路。更高級別的協議不需要更改,但隨著新的網絡技術的發展,我們的連接速度不斷加快。
多用途的通用基礎設施-IP也獨立于任何特定用例,這使得相同的基礎設施可用于從Web到電子郵件和IP語音(VoIP)的應用。如果互聯網是專門為文件傳輸而構建的,那么我們可能需要為每個不同的用例提供完整的獨立網絡。相反,我們有一個可用于多種類型通信的互聯網。
分層是設計互聯網或價值互聯網等系統的重要工具,但決定哪些特征適合哪些層是最難的部分。太多的層使系統過于復雜,但過多的捆綁會妨礙互操作性和可升級性。
價值互聯網的協議棧
Interledger協議棧與Internet協議套件具有直接的并行性,這主要是因為我們發現將功能劃分為類似的層有助于解決各個級別的問題。在這里,我將簡要地介紹每個層,以解釋它們的角色,并展示將第3層集中在互操作性上的好處。
第1層:分類帳
區塊鏈和其他類型的分類帳就像支撐互聯網的物理電纜。數字通信最終通過有線和無線鏈路實現,這些鏈路連接各個設備并在它們之間傳輸數據。同樣,分類賬是價值互聯網的基礎,因為它們使兩個接受同一資產的人或在同一系統中持有賬戶進行交易。
像物理電纜一樣,分類帳和區塊鏈需要在它們之上構建額外的協議,以方便數據或金錢的傳輸。對于區塊鏈,主要問題是在保持分散的同時,擴展事務吞吐量和降低延遲。
分類帳注定會成為性能瓶頸,因為它們在邏輯上是集中的。無論分類賬是以集中還是分散的方式維護,它都需要一個單一的、一致的、共享的賬戶和余額狀態,以確保資金不能“雙花”。更新大量共享狀態總是相對昂貴且緩慢。瓶頸將是分布式賬本中的共識速度,或者是集中式分類賬中單個機器的性能。提高分類帳的可伸縮性是非常有用的,但是使用第2層協議把常見和重復的事務從主分類帳中移出將增加吞吐量并更大程度地降低延遲。
第2層:局域網
用于擴展區塊鏈的第2層解決方案類似于Internet堆棧的鏈路層協議,如以太網和WiFi。該層創建雙邊鏈接或局域網(LAN)*,允許直接連接的各方或設備在底層網絡上高效通信。
區塊鏈的第2層技術旨在通過使用一種程序化托管方式在底層分類賬上實現快速,廉價,高吞吐量的交易。此類別包括支付渠道和廣義狀態渠道等雙邊技術,以及包括Lightning和Raiden,側鏈和Plasma等支付渠道網絡在內的多邊解決方案。通過允許成對或較小的賬戶持有者組進行交易而不需要每次都與主分類賬交互,這些中的每一個都能夠實現更快,更便宜的交易。
程序性托管
第2層解決方案的核心機制是程序化托管的一種形式。資產首先被放入主分類賬的持有賬戶,腳本或智能合約中。然后,兩個或更多方可以通過更新其本地狀態來執行許多快速交易以改變托管資產的分配。如果當事人想要關閉他們的分類賬關系,他們會將最終狀態呈現給主分類賬,主分類賬檢查其有效性并相應地分配托管資產。
重要的是,底層分類帳提供的功能直接決定了第2層系統可以包含的功能類型,因為分類帳在它們支持的程序化托管類型方面有所不同。
第2層解決方案必然與某些分類賬相關聯,因為它們利用底層第1層系統中的特定功能。
這就是為什么Lightning是用比特幣腳本定義的,Raiden使用特定的以太坊智能合約,Plasma實現同樣會使用明確指定的智能合約。
Lightning可以使用比特幣(如Litecoin)的特定(SegWit支持),而raiden和plasma可以與使用以太坊虛擬機(evm)的其他區塊鏈一起工作。但是,如果二層技術試圖支持具有非常不同功能集的分類賬(例如,不使用Segwit的Lightning或僅使用比特幣腳本實現的Plasma),則每種二層技術都會更糟。不過,這完全沒問題!第2層擴展解決方案可以并且應該利用基礎分類賬提供的每一種功能。
第1層和第2層之間的緊密連接正是為什么我們需要一個單獨的層來實現互操作性。真正的互操作性完全取決于抽象,并且需要最小化協議使用的功能集。互操作層期望從下面的層中獲得的功能越少,它可以連接的異構網絡就越多。由于第2層解決方案可以并且應該利用特定的第1層功能,因此我們需要一個單獨的互操作層,使用盡可能少的分類帳特定功能。
第3層:互操作性
第3層的目的是抽象出不同第1層和第2層技術之間的差異,以連接非常不同類型的網絡。這是Internet協議(IP)在Internet上的作用,也是Interedger協議(ILP)在Internet中的作用。
互聯網棧的核心協議IP,在網絡間路由數據包,同時抽象出底層電信技術之間的差異。互聯網之所以成功,正是因為它使用了如此干凈的抽象概念,能夠連接所有東西,從電話線(通過撥號)、蜂窩和衛星網絡,到專用光纖電纜-甚至信鴿。
IP需要底層網絡的唯一功能是發送數據的能力。它不依賴于任何附加功能,甚至不依賴于速度或可靠性。由于其簡單的抽象,IP能夠創建一個通用的網絡網絡,如今連接了超過一半的人口。
第2層網絡上的最小抽象
在價值互聯網中,ILP對價值進行打包,就像IP對數據進行打包一樣。它在網絡上傳輸資金包,同時提取出資產和分類帳或第2層技術之間的差異。與IP一樣,ILP的核心是網絡不可知的包和地址格式。
ILP對底層的唯一要求是能夠發送值。它不需要任何特殊的事務類型、功能或程序托管。更快、更便宜的交易可以改善用戶體驗,但即使是它們也不是嚴格要求的。
ILP的最小抽象實現了與所有類型的第1層和第2層網絡的互操作性,包括那些設計為不可互操作的網絡。迄今為止,它已被用于連接比特幣閃電網絡、雙邊以太坊支付渠道和xrp支付渠道-三個非常不同的第2層系統。正在進行連接所有其他類型的第1層和第2層系統的工作。
第4層和第5層不是本文的重點,但您可以閱讀STREAMing Money和Data Over ILP來了解STREAM,這是受QUIC啟發的推薦的第4層傳輸協議。留意第5層的未來帖子以及基于ILP和STREAM構建的特定于應用程序的協議。
結論:分離伸縮性和互操作性
可擴展性和互操作性是互補的,但它們本質上是不同類型的問題,最好由單獨的協議層來解決。Lightning和Plasma等可擴展性解決方案在充分利用其基礎分類賬提供的全部功能時效果最佳。相反,像Interledger這樣的互操作性協議需要最少的抽象,使它們能夠跨不同類型的底層網絡工作。
分離鏈路層和互操作性層的一個微妙好處是互聯網還在不斷持續發展。互聯網協議是為空間大小的計算機設計的,但它仍然適用于手機和物聯網設備。通過減少底層網絡所需的IP功能,它還允許在底層技術上進行顯著的技術突破。如果IP在開發時建立在網絡的特定特性或API之上,這是不可能的。
我們離第1層和第2層區塊鏈或分類賬系統的開發還差得遠。通過利用第3層來消除這些差異,我們可以構建更好、更多的技術無關的用戶體驗,同時考慮到未來的發展,這將使價值互聯網更快、更便宜、更高效。
后語*關于雙邊或多邊第二層解決方案是否更好,有一個有趣的開放性問題。互聯網堆棧也存在著驚人的相似之處,互聯網或者是IPv6,應該建立在雙邊鏈接上,而不是局域網上。
評論