在過去的幾年里,人們對區塊鏈技術的興趣急劇上升。因此,大量的時間和金錢被用于創建“殺手區塊鏈”或“殺手DApp”。事實上,IDC預計2019年全球區塊鏈消費將超過29億美元!不幸的是,這些區塊鏈項目都是在真空中構建的。開發團隊一直在使用他們自己的共識算法、他們自己的驗證器池和他們自己的自定義應用程序創建他們自己的協議。這種豎井式的方法不利于區塊鏈的安全性、效率和用戶體驗(我的意思是誰想為每個應用程序管理單獨的代幣??)顯然,是時候開始集成我們的區塊鏈基礎設施并構建一個連接的、可伸縮的基礎設施了。幸運的是,在這方面已經取得了一些重大進展,這就是本文的全部內容。就讓我們一探究竟吧!
當我第一次開始學習區塊鏈互操作性時,我有四個核心問題:
1. 系統的互操性作到底意味著什么?
2. 在早期互聯網的構建過程中,互操作性是一個問題嗎?如果是,解決方案是什么?
3. 集成區塊鏈基礎設施的真正好處是什么?
4. 到目前為止,針對區塊鏈互操作性提出了哪些解決方案,誰在構建這些解決方案?
這些問題提供了對該主題的強大基礎理解,所以我決定將它們作為本文的大綱。像往常一樣,你可以自由地跳過,閱讀你最感興趣的部分!
1. 互操作性到底意味著什么?
讓我們從基礎開始:互操作這個術語實際上是什么意思?根據Search Microservices的說法,互操作性只是指“不同系統、設備、應用程序或產品以協調的方式連接和通信的能力,而無需最終用戶的努力”。
對于軟件來說,互操作性是指能夠自由交換數據、共享文件和使用相同協議的應用程序。對于電信來說,互操作性指的是能夠無縫地將信息從一個供應商傳遞到另一個供應商的網絡。您可能已經推斷出,加密互操作性意味著信息可以自由地從一個區塊鏈網絡傳遞到下一個。這種集成將允許區塊鏈用戶跨鏈交換值和任意數據。
這個定義的后半部分同樣重要。區塊鏈互操作性不應該要求終端用戶做任何額外的工作。這意味著用戶不必為每個跨鏈交易使用交易所,也不必為每個代幣維護單獨的錢包,等等。相反,應該從一個入口點連接和訪問所有內容。事實上,在一個理想的世界中,單個區塊鏈網絡的復雜性將被抽象出來,最終用戶將簡單地訪問“區塊鏈”,就像我們目前訪問“互聯網”的方式一樣。實現這種程度對于區塊鏈的采用將是一個巨大的步驟,并且只有在我們擁有一個連接的區塊鏈生態系統時才有可能實現。但我有點超前了。我們將很快討論集成區塊鏈網絡的好處。不過,在此之前,讓我們先來了解一下這個問題的歷史背景。
2. 互操作性和早期互聯網
馬克·吐溫曾說過一句臭名昭著的話:“歷史不會重演,但它經常相似。”不管他是否真的這么說過,這個表達都非常適用于區塊鏈技術,因為早期的互聯網和我們當前區塊鏈基礎設施的發展有很多相似之處。最直接的相似之處之一是互操作性的概念。因此,我認為強調互操作性對互聯網的采用和可擴展性的影響是很有趣的。
互聯網的誕生(1963-1974)
讓我們從頭開始。互聯網最初是由美國國防部資助的一項實驗。1963年,國防部高級研究計劃局(ARPA)信息處理技術辦公室(“IPTO”)第一任主任J.C.R. Licklider首次提出了這個概念。Licklider支持這樣的想法,即我們可以創建一個由相互連接的計算機組成的“星系間網絡”。不幸的是,這一理論花了幾年時間才付諸實踐。這發生在1967年,當時拉里·羅伯茨發表了現在被稱為阿帕網的最初設計。
在首次出版兩年后,ARPA在四個學術機構安裝并連接了第一個網絡節點:加州大學洛杉磯分校、加州大學圣巴巴拉分校、斯坦福大學和猶他大學。當時,網絡的功能仍然非常有限(僅限于發送消息、發送文件和打印到遠程打印機)。雖然這種有限的功能在一定程度上阻礙了該網絡的早期發展,但更多的研究機構慢慢加入進來。到1971年底,阿帕網已從4個節點發展到15個節點。到1973年底,這一數字增至35人,到1976年底增至63人。
隨著阿帕網在20世紀70年代中期的不斷擴展,研究人員在最終決定網絡控制協議之前,對各種網絡協議進行了實驗。大約在同一時間,一些機構開始創建自己獨特的網絡。值得注意的是,密歇根大學創建了“功績網絡”,法國政府資助了“基克拉迪斯網絡”,杜克大學的兩名學生創建了Usenet。顯然,計算機網絡開始吸引學術界和政府機構的大量興趣。唯一的問題是每個網絡都被限制在網絡內部通信。這意味著,對于使用密歇根大學功績網絡的人來說,無法通過加州大學洛杉磯分校的ARPANET與他們的同行進行溝通。這個問題嚴重限制了早期互聯網的覆蓋面和實用性。聽起來熟悉嗎?
那么解決方案是什么呢?為了實現擁有無所不在的計算機網絡的目標,很明顯,要么現有的網絡必須“獲勝”,要么這些孤立的網絡需要一種相互通信的方式。1974年,文頓?瑟夫(Vinton Cerf)和羅伯特?卡恩(Robert Kahn)證明,后者將是最務實的選擇。
TCP改變了互聯網(1974-1983)
1974年,文頓·瑟夫(Vinton Cerf)和羅伯特·卡恩(Robert Kahn)發表了一篇開創性的論文,題為《分組網絡互連協議》(a Protocol for Packet Network Intercommunication)。在這本書中,他們首先詳細介紹了連接不同網絡所面臨的挑戰。這些挑戰本質上歸結為這樣一個事實:每個網絡都有自己的一套規則來標識節點和傳輸數據。更具體地說,每個網絡都有唯一的地址、不同的最大數據傳輸大小、不同的故障檢測程序等等。同樣,這聽起來與連接我們現有的區塊鏈基礎設施(即每個區塊鏈網絡都有自己獨特的共識機制、最大塊大小等)所面臨的挑戰非常相似。
更重要的是,Cerf和Kahn的論文針對這些互操作性挑戰提出了一個解決方案。這個解決方案是一個全新的網絡協議,稱為傳輸控制協議(簡稱TCP)。TCP由以下核心組件組成:
· 網關: 為了使數據從網絡A傳遞到網絡B,需要重新格式化數據以滿足網絡B的標準。網關被設計用來處理這個重新格式化的過程。此外,他們還負責分解超過下一個網絡最小大小要求的數據包(我知道這很令人興奮!)
· 排序: 如上所述,TCP被設計為一個“包交換協議”。這意味著協議將數據分解成一組更小的數據包,然后在網絡上路由這些數據包。為了有效地做到這一點,接收計算機需要能夠按照正確的順序重新包裝它們。TCP通過在每個傳出數據包的頭部添加一個序列號來處理這個過程。然后,接收方計算機上的TCP協議可以使用這些序列號將數據包恢復到正確的順序。
· 尋址:TCP還負責跨網絡(或多個網絡)路由此數據。為了做到這一點,它需要知道將數據發送到哪里。為此,TCP為每個網絡和網絡上的每個節點分配了一個惟一的ID。然后,它使用這些標識符在網絡上路由信息。
幾年后,這個排序/路由功能被分成兩個獨特的協議。TCP仍然負責分解/重新排序數據包,而新創建的互聯網協議(“IP”)負責將數據路由到整個網絡(因此我們使用“IP地址”來區分每個互聯網連接的設備)。這就是現在所知的TCP / IP協議套件,它是我們整個互聯網基礎設施的骨干!
這里重要的是,通過標準化數據傳輸方法并使用網關作為網絡之間的橋梁,TCP能夠連接對數據傳輸有不同需求的豎井網絡。
指數級增長(1984 -現在)
在看到協議的潛力后,ARPANET決定將其底層協議從NCP切換到TCP。這一轉變發生在1983年1月1日(這一天現在被親切地稱為“國旗日”)。從左邊的圖表中可以看出,國旗日代表了互聯網連接設備發展的轉折點。
這種加速增長可以歸因于幾個方面。TCP / IP發布幾年后,美國國家科學基金會(NSF)使用協議套件構建了NSFNET,該網絡在當時發展成為最健壯的計算機網絡。此外,全球各地的研究機構開始使用該協議來建立自己的聯網計算機網絡。隨著更多地理區域的聯網,互聯網的實用性呈指數級增長,最終推動了對這項技術的更多關注和資金投入。TCP使這種良性循環成為可能,這就是我們今天享受互聯網無處不在的原因。
3.區塊鏈互操作性的好處
還記得我說過,在互聯網的歷史上有一個節點,實際上有兩個選擇:(1)一個網絡“勝出”,(2)我們連接現有的網絡?區塊鏈技術目前也處于同樣的岔路口,這一次,答案似乎有些顯而易見。盡管比特幣的極大化主義者言辭激烈,但值得懷疑的是,是否會有一條“萬能”鏈,能夠針對每一個可能的用例進行優化,并成為整個區塊鏈基礎設施的支柱。因此,合乎邏輯的下一步必須是將它們連接起來。但是這樣做的實際好處是什么呢?
一般來說,互操作性有兩個核心好處:它改進了用戶體驗并支持網絡專門化。讓我們更深入地研究這些概念。
可用性
這一點很明顯。互操作性的目的是允許用戶無縫地將信息從一個區塊鏈傳遞到另一個區塊鏈。這通常可以分為兩類:價值交換和任意數據交換。價值交換是指用戶不依賴于集中的代幣交換而直接將ETH交換給BTC的能力。通過啟用不可信的對等價值交換,互操作性將大大減少費用負擔、等待時間和交易復雜性。
第二類是任意數據交換,指的是“區塊鏈到區塊鏈的API調用”。該功能將允許開發人員編寫跨鏈智能合約。這樣做將使智能合約能夠啟動鏈間代幣傳輸、創建表示其他區塊鏈代幣或真實世界資產的合成資產、與構建在其他區塊鏈網絡上的應用程序通信,等等。這種程度的鏈間通信將顯著改進UX,因為用戶將不再負責自己傳輸或重新創建這些信息。
網絡專門化
互操作性的第二個好處是網絡專門化。這個不太直觀,我再講一些背景知識。
目前,如果開發人員想要構建分散的應用程序,他們有兩種選擇:(1)他們可以從頭創建特定于應用程序的區塊鏈,(2)他們可以在現有的區塊鏈網絡上構建。從頭開始構建區塊鏈是一項艱巨的任務,因為它需要從頭開始編寫所有代碼,并引導一個由礦工、用戶等組成的社區。即使這樣,新應用程序也無法與區塊鏈生態系統的其他部分通信。當然,大多數開發人員選擇選項2,并在現有的基于虛擬機(“基于vm”)的區塊鏈(如Ethereum)上構建應用程序。這樣做,他們就不需要構建自己的區塊鏈,并且可以與構建在相同平臺上的其他應用程序進行“現成的”互操作性。
不幸的是,盡管基于vm的區塊鏈可以處理一系列令人印象深刻的功能,但它們有幾個重要的限制:(i)它們具有更大的攻擊面,這降低了網絡安全性;(ii)它們的伸縮性不是很好;最后一個限制可能是最重要的。雖然以太坊和其他類似平臺已經被構建來適應廣泛的用例,但是它們實際上并沒有針對任何特定的用例進行優化,這意味著開發人員必須使他們的應用程序適應平臺的任何瓶頸、限制和治理結構。在某些情況下,這可能類似于將諺語中的方釘裝進圓孔中。
那么解決方案是什么呢?你現在可能已經猜到了。解決方案是簡化創建特定于應用程序的區塊鏈網絡的過程,并支持它們之間的互操作性(我們將在下一節中討論Polkadot是如何做到這一點的)。這將帶來三個重要的好處:
· 自定義: 可以完全定制特定于應用程序的區塊鏈。這意味著開發人員可以選擇編碼語言、協商一致機制、權限設置、編程功能等等。這將允許開發團隊為他們獨特的用例優化網絡的安全性、私密性、效率、靈活性和復雜性。這將增強構建在其上的應用程序的性能和功能。
· 可擴展性: 承載多個應用程序的大型基于vm的智能合約平臺存在“交易沖突”的風險。這是一種描述同一代幣可能同時在多個交易中使用風險的奇特方法。為了降低這種風險,智能合約平臺按順序執行交易,而不是同時執行所有交易。然而,如果每個應用程序都構建在特定于應用程序的獨特區塊鏈上,而不是單一的智能合約平臺上,交易就可以同時執行。當您在整個區塊鏈生態系統中考慮這個示例時,您可以開始想象特定于應用程序的體系結構將會多么高效/可擴展。
· 安全性: 當從頭創建一個新的網絡時,吸引最優數量的驗證節點可能是一個挑戰。如果驗證節點的數量不夠理想,則網絡安全級別也不夠理想。實現區塊鏈互操作性的一種方法是使用一個中繼鏈體系結構來集中網絡安全功能(我們將在下面的中繼一節中對此進行更詳細的討論)。使用這個模型,每個連接到中繼鏈的區塊鏈都可以共享一組驗證器。這顯著增加了為每個單獨的區塊鏈網絡供電的驗證節點的數量,并使驗證過程更加有效。
令人興奮的是,幾個團隊已經在嘗試創建這個相互連接的基礎設施層方面取得了很大的進展。這就是我們將在本文的最后一節中深入探討的內容。
4. 互操作性的當前狀態
既然我們已經很好地理解了互操作性的好處,讓我們繼續討論最后一個問題:已經提出了哪些解決方案來連接我們的區塊鏈基礎設施, 以及誰在構建它們?在過去的幾年里,不同的團隊從不同的角度攻擊互操作性。在此期間,有三種潛在的解決方案脫穎而出:原子互換、公證計劃和中繼鏈。
原子交換(也稱為哈希時間戳)
原子交換使用一種稱為哈希時間戳的技術來支持直接的對等代幣交換。原子交換是我們三個解決方案中最基本的一個。簡單地說,原子交換允許您直接與另一個人交換代幣,而不需要信任的第三方。換句話說,如果Alice想用5個BTC交換Bob的100個LTC,他們可以使用原子交換來執行對等轉移,而不會有任何對手方的風險。
那么它到底是如何工作的呢?它使用一種稱為哈希時間戳的技術。我們把它分解一下。在哈希時間戳中,每個參與者將各自的代幣鎖在一個智能合約中。如果雙方同意對方已經向智能合約發送了適當的金額,則代幣將被分發給雙方。但是,如果任何一方不同意智能合約中鎖定的金額,那么智能合約將過期,雙方都不會收到代幣。
為了獲得更多的粒度,讓我們回到前面的示例。為了讓Alice和Bob使用原子交換將5個BTC交換為100個LTC,他們將執行以下步驟。首先,Alice會選擇一個大的隨機數(我們稱之為“q”)并對其進行哈希。然后她會創建一個智能合約,說她將發送5個BTC給Bob,并用q的哈希鎖定該智能合約。如果Bob查看智能合約并同意Alice鎖定了適當的數量,他將創建第二個智能合約,聲明他將發送Alice 100 LTC并使用相同的哈希鎖定它。最后,如果Alice同意Bob也鎖定了適當的數量,她將使用q解鎖100個LTC,這樣Bob就會知道q的值并使用它解鎖他的5個BTC。當然,總有一方不履行協議的可能。如果發生這種情況,那么合約將過期,交易也不會發生。
原子掉期已經變得非常流行,現在在一些最著名的交易所 (“DEX’s”)上使用,包括0x、Lightning Labs和Komodo。使用原子交換可以減少鏈間交易的費用負擔,并避免與交換相關的一些安全問題。盡管如此,原子交換也有一些缺點。最重要的是,它們速度很慢,只能用相同的哈希算法在鏈之間進行交換,而且目前只能用于支持基本智能合約的區塊鏈。
公證計劃(即單向及雙向掛鉤)
實現互操作性的第二種方法稱為“公證計劃”。從技術角度來看,公證員制度是最簡單的解決方案(至少根據Vitalik的觀點)。這種方法依賴于一組受信任的驗證節點(稱為“公證人”)來驗證跨鏈的交易。從本質上講,公證人向一個區塊鏈提供了一個保證,即某個事件發生在一個單獨的區塊鏈上。例如,它們可以用來檢查一定數量的代幣被鎖定在區塊鏈A上,以便可以在區塊鏈B上綜合創建它們。
公證人制度的一種常見類型稱為聯邦掛鉤旁證(我們將其簡稱為“FPS”)。FPS本質上使用多簽名錢包在區塊鏈之間創建單向和雙向掛鉤。這聽起來可能有點混亂,讓我們回到之前的例子。如果Alice想用FPS把她的5個BTC換成100個LTC,她可以把她的5個BTC發送到一個由公證員聯合會控制的多簽名地址。然后,這組公證人負責批準交易。一旦獲得批準,就可以在litecoin區塊鏈上綜合創建資產,供Alice使用。相反,Alice (或任何與她交換萊特幣的人)可以銷毀這些合成幣。如果發生這種情況,那么公證人將把之前鎖在多sig錢包中的5個BTC發送給毀滅者。這種創建和銷毀合成大筆的能力開啟了一系列新功能,包括代幣化鏈外資產的能力、創建穩定值代幣的能力,當然還有代幣互操作性。
那么,目前哪些項目使用公證人制度呢?最有信譽的將是內部分類和流動。
· Interledger是Ripple實驗室創建的一種協議。它主要模仿TCP / IP,并使用一個“連接器”網絡來促進互操作性。它目前正在運行,已經有一些公司在它的基礎上建設,包括 Coil, StrataLabs, Kava,等。
· Liquid是一個與貨幣掛鉤的聯邦側鏈,它建立在比特幣網絡之上,以促進快速的鏈間轉賬和對現實世界資產(如法定貨幣)的代幣化。隨著35個項目(主要是交易所、交易部門和金融機構)的建立,Liquid”開始獲得一些吸引力。此外,Liquid預計將在近期完成幾項值得注意的集成,包括與Tether和BitMEX的集成。
當然,如果我不討論公證制度的弊端,那就是我的失職。這里的核心缺點是這個過程并不是完全不可靠的。當然,您不需要依賴集中式交換。然而,本質上您只是用一組公證人的信任替換了集中實體中的信任。如果超過要求的公證人比例是惡意的,那么整個系統仍然可能受到危害。
中繼鏈
我們需要討論的最后一種互操作性技術稱為中繼鏈。在我看來,這是迄今為止最令人興奮的解決方案。顧名思義,中繼器用于簡單地將信息從一個區塊鏈“傳遞”到下一個區塊鏈。在公證方案上使用中繼的優點是,它完全消除了對一組可信中介的需要。
那么它到底是如何工作的呢?基本上, 中繼器是一個智能合約區塊鏈(我們稱之為區塊鏈),作為光客戶機在一個單獨的區塊鏈(我們稱之為區塊鏈B)為背景,光客戶機是一個連接到一個完整的智能合約區塊鏈網絡節點。因此,通過充當區塊鏈B上的輕客戶機,中繼器能夠理解事件變化并將信息傳遞給區塊鏈A。
那么目前誰在使用這種接力技術呢?最有名的項目可能是BTC Relay。BTC Relay是一個基于以太的智能合約,它連接到比特幣區塊鏈上的一個完整節點,以提取和存儲BTC塊頭。它宣稱的目標是使用這些塊頭在以太坊上構建一個迷你版的比特幣區塊鏈。這種特殊的中繼技術的唯一缺點是它僅限于單向互操作性(即BTC中繼只能將BTC信息拉到ETH區塊鏈上,反之亦然)。
中繼鏈使用“hub=and-spoke”體系結構:中繼鏈是作為每個成員鏈上的輕客戶機的“hub”。幸運的是,可以克服這個限制,創建一個支持雙向互操作性的中繼體系結構!這就是所謂的“中繼鏈”。從本質上說,中繼鏈是一個惟一的區塊鏈網絡,它充當所有連接到它的區塊鏈網絡上的輕客戶機(我們將把這些稱為“成員鏈”)。中繼鏈有效地成為將所有成員鏈連接在一起的中心集線器,促進了值和任意數據的交換。
那么誰在建造這些中繼鏈呢?目前,Polkadot 和 Cosmos是這一領域的領先者。這些項目都專注于開發它們的核心中繼鏈基礎設施,以及一個健壯的軟件開發人員工具包(“SDK”),它簡化了創建和連接新成員鏈的過程。正如我們在前一節中討論的,這種方法的好處是(i)簡化了創建定制的、特定于應用程序的區塊鏈的過程,(ii)提高了總體可擴展性,因為交易可以同時執行而不是按照順序執行。
有趣的是,雖然這兩個項目都使用了中繼鏈架構,但它們都采用了非常不同的方法。
· Polkadot: Polkadot正在設計它的中繼鏈來處理建立在它之上的任何成員鏈的一致性和網絡功能。這意味著所有的Polkadot成員鏈將共享一組公共的驗證器。因此,這些成員鏈將從強大的安全性中獲益,并且不需要引導自己的驗證節點集。然而,該模型的缺點是成員鏈對狀態更改沒有最終發言權。相反,該電源駐留在中繼鏈的驗證器中。
· Cosmos: Cosmos正在采取一種不同的方法。它的中繼鏈僅用于在成員鏈之間中繼數據。這意味著每個成員鏈負責引導自己的驗證器社區并運行自己的協商共識機制。這種方法的好處是,成員鏈可以在很大程度上控制哪些驗證器保護其區塊鏈。此外,成員鏈將對任何狀態更改擁有最終發言權。
如果您正在尋找關于這些解決方案之間差異的更多信息,我強烈建議您閱讀本文。重要的是,這兩個項目都處于區塊鏈互操作性的最前沿,并且很可能對它們自己獨特類型的區塊鏈項目/開發人員具有吸引力。
最后,如果我不簡要地提到中繼鏈體系結構的缺點,那就不完整。中繼鏈面臨的主要挑戰是,它們不容易與現有的區塊鏈網絡(如以太坊和比特幣)互操作。雖然這些項目都很清楚這一點,但它們可能無法在短時間內確定優先級。
結論
以上就是我關于互操作性文章的全部內容,希望您能從中獲益!我知道有大量的信息需要處理,但我的結論是:
1. 從可用性的角度來看,互操作性是至關重要的,如果我們想要實現主流的區塊鏈采用,就必須優先考慮互操作性。
2. 在這方面有令人印象深刻的勢頭。雖然我們目前的解決方案沒有一個是完美的,但我們應該期望在未來幾年看到快速的改進,這將導致一個連接更緊密、可伸縮的區塊鏈基礎設施。
評論
查看更多