撰文:Alfonso de la Rocha
編譯:Perry Wang

L2 能如何增強 L1?瞭解 Metis 集成 IPFS 的新探索

在區塊鏈中存儲大量數據從來都不是一個好主意。對於初學者來說,這完全是不可能的,因爲交易中可能包含的數據量是有限的。但即使可以,在成本和資源方面也會非常昂貴,因爲網絡中的每個節點都必須存儲您選擇放在鏈上的數據。此外,如果您計劃在公鏈網絡上完成所有這些工作,那麼您在鏈上存儲的所有內容對於網絡中的每個節點而言都是可見的,因此切記不要存儲敏感信息,因此可能一不小心就會暴露自己最黑暗的祕密(某種程度上類似您已經向 Facebook 披露的那種祕密)。

你可能想知道,「如果不能直接存儲在鏈上,如何實現一個需要存儲大量數據的去中心化應用 DApp?」。 幸運的是,我們已經在 Web3 生態系統中擁有像 IPFS 這樣的去中心化存儲解決方案,來幫助我們完成這個任務。

IPFS,區塊鏈中處理數據的好搭檔

IPFS 是一個分佈式系統,用於存儲和訪問文件、網站、應用和數據。 它是一個公共網絡,這意味着任何人都可以運行節點並立即開始在網絡中下載和存儲內容。IPFS 是一個內容可尋址網絡,因此存儲在網絡中的所有內容都由稱爲 Content Identifier 或 CID 的唯一標識符予以標識。某些內容的 CID 來自內容的哈希值。這意味着如果內容發生變化,其 CID 也會發生變化,因此相同內容的不同版本將具有完全不同的標識符。

要從 IPFS 網絡下載內容,我們需要定製一個請求,指定我們要下載的內容的 CID。我們的 IPFS 客戶端將利用網絡的底層協議處理其餘的工作。它將找到網絡中存儲我們正在尋找內容的節點,併爲我們下載。 「獲取」請求,我們在 IPFS 中如何調用下載操作,通常通過如下所示的鏈接指定:

/ipfs/QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/docs.html

最後,從 IPFS 網絡下載數據意味着爲我們的 IPFS 客戶端提供這些鏈接之一。如果你想了解更多關於 IPFS 的細節,你可以查看 教程 或項目的 文檔頁面

爲什麼 IPFS 區塊鏈是處理數據的最佳拍檔? 因爲 IPFS 中的內容是唯一標識的,如果內容任何部分中的數據發生變化,其 CID 也隨之變化,意味着 IPFS 網絡中的數據是不可變的。 這些 CID 有幾個字節長,可以存儲在鏈上並在智能合約中用於指向存儲在 IPFS 網絡中的數據。有了這一技術,我們不再需要在鏈上存儲大量數據。在鏈上存儲和管理的唯一內容是相應數據的 CID。如果有人需要訪問特定內容(而不僅僅是標識符),可以通過向 IPFS 網絡請求該 CID 來實現。 聽上去很酷,對吧?

但是 IPFS 背後的理論聽得已經夠多了。IPFS 和區塊鏈之間的這種集成有哪些好的用例? 區塊鏈中需要去中心化存儲的完美例子是 NFT (非同質化代幣)。

NFT 用於代表獨一無二的數字資產。當 NFT 代表可收藏的加密貓(如 CryptoKitties 中的一隻加密貓)時,NFT 的所有細節都可以直接存儲在鏈上,但當爲 NFT 鑄造的是一種數字資產,例如歌曲、 圖像或深度學習數據集時會出現怎樣的情況?我們不能直接在鏈上存儲這些東西。這就是 IPFS 和內容可尋址的去中心化存儲解決方案的優勢所在。我們可以將數字資產存儲在 IPFS 中,然後使用 CID (可能還有一些額外的元數據)來鑄造 NFT。任何人都可以在鏈上驗證所有權,並在 IPFS 網絡中訪問相關資產。您可以在 nft.storage 和下圖中看到其具體工作機制。

L2 能如何增強 L1?瞭解 Metis 集成 IPFS 的新探索

去中心化存儲作爲 L2 解決方案的首選

是否需要運營一個以太坊(自己選擇區塊鏈)節點和一個 IPFS 節點,以便在 DApp 中實現和編排這些類型的用例和交互?並非如此。有幾種替代方案:您可以將 IPFS 網關處理 IPFS 一側的工作(例如 PinataInfuraTextile),或者甚至將您所有節點的運營工作委託給他人。很清楚的是,即使是這樣的方式,您存儲資產和鑄造代幣的運營也無法原子地完成。

當我意識到一些事情時,在「去中心化存儲系統和區塊鏈平臺之間的操作原子性」(atomicity of operations between decentralized storage systems and blockchain platforms)一文中予以了闡述。 幾周前我寫了一篇文章比較了不同 Optimistic L2 解決方案之間的差異。 在那篇文章中所比較的解決方案之一是 Metis。Metis 是一種 Optimistic L2 Rollup 解決方案。這個項目引起我注意的功能之一是它們的 VM 與 IPFS 集成。據他們的白皮書顯示,Metis 的 VM 通過 IPFS 解析器支持「開箱即用」的去中心化存儲。與 IPFS 網絡進行原子交互並在鏈上進行交易的想法讓我非常感興趣。IPFS 和鏈上的原子操作對我來說似乎是不可能的事情,但這在 L2 世界中實際上是可能的。我決定深入瞭解 Metis 技術,並瞭解這種原子操作是否可以在 Metis 中實現。

Metis 在他們的 VM 中包含兩種類型的存儲。常規 VM 存儲,負責存儲區塊和賬戶狀態;以及與 IPFS 集成的特殊存儲層(見下圖)。 Metis 利用 IPFS 集羣技術,IPFS 集羣節點是可以運行私有子網絡的常規 IPFS 節點,因此存儲在 IPFS 集羣中的數據不會與來自公共 IPFS 網絡的公共節點共享(這使得存儲敏感信息非常方便)。IPFS 集羣節點可以選擇將內容存儲在公共網絡中,或限制訪問其連接的子網內容。

在 Metis 上,用戶可以通過 VM 的 IPFS 解析器訪問存儲在 IPFS 中的內容。當用戶調用需要與特殊存儲層交互的方法時,VM 中的 IPFS 路由器會攔截相應的操作,並通過 IPFS 解析器將它們發送到 IPFS 網絡。IPFS 解析器充當 IPFS 客戶端,還負責加密數據和內容的最終 CID (如果信息需要保密),因此可以在鏈上提交而無需擔心隱私和安全問題。

L2 能如何增強 L1?瞭解 Metis 集成 IPFS 的新探索VM 架構 (來源:Metis 白皮書)

爲了解釋所有這些集成是如何工作的,我們舉一個例子。 想象一下,您想使用 Metis 在以太坊網絡中爲您的新歌創建 NFT。如果 負責 NFT 生成的智能合約已經部署並就位,您唯一需要擔心的是觸發正確的操作,將歌曲存儲在 IPFS 中,並鑄造 NFT。Metis VM 將負責攔截 IPFS 操作、對數據加密(如果需要),並與 IPFS 網絡交互以存儲歌曲。這一操作的結果是走到歌曲的 CID,然後在 L2 交易中使用這一 CID,將歌曲鑄造成 NFT。這個 L2 交易然後在 L1 中進行 rollup,並最終保留在以太坊網絡中。通過這種方式,Metis 節點管理所需的所有交互,在 IPFS 網絡中原子地存儲數據並將結果保存在區塊鏈中。

這種集成的另一個有趣部分是 Metis 特有的,即 DAC (去中心化自治公司)可以使用這些 IPFS 層、以去中心化的方式存儲 DAC 的敏感信息,而無需依賴中心化存儲系統。數據使用相應的 DAC 憑證方便地進行加密。更重要的是,當 DAC 首次創建時,還會創建一個新的「章程」來確定 DAC 的規則。在章程中,DAC 創建者可以包含這一 IPFS 和敏感數據存儲集成的訪問權限和操作權限。

假設一家大型零售商公司正在使用 Metis 跟蹤其使用 Metis 產品的所有生命週期:生產、分銷、再到向客戶銷售。已經有公司爲這一目的使用區塊鏈技術(家樂福、好市多、馬士基等)。參與產品生命週期的每一方都使用區塊鏈網絡中的一個智能合約。產品生命週期中的每個狀態更新都可以方便地在鏈上註冊。這些更新可以包括以下信息:供應鏈中特定實體操縱該產品的時間、方式以及供應鏈中的下一個步驟(或負責人)是什麼。今天,所有這些都可以通過任何支持運行智能合約的區塊鏈網絡來完成。不幸的是,在現實生活中,所有這些互動都受到法律合同的約束,並由「現實生活中的文件」(例如交貨單)予以認可。

讓區塊鏈網絡協調這些交互的附加價值之一是:所有實體都有一個公共信息系統來存儲所有供應鏈信息,但與區塊鏈中所執行操作相關的文檔會發生什麼呢?它們需要有存儲的其他地方,這就是像 Metis 這樣的解決方案的魅力所在。這些文檔可能包含敏感信息,或是無法在公共網絡中以明文形式存儲的內容。更重要的是,不是每個文件都能被各方訪問。

通過 Metis 對 IPFS 的集成,這一供應鏈用例中涉及的每個 DAC 都能夠執行交易,以觸發對區塊鏈中產品狀態的更新,同時將相應文檔存儲到 IPFS 網絡。如前文所述,這些文檔將使用密鑰方便地加密,這些密鑰會保障只有正確的實體纔會有對文檔的訪問權限。智能合約中的狀態更新會添加一個指向文檔 CID 的指針,以便有人想查看與產品狀態更新相關的「現實世界文檔」。在此過程中,DAC 將能夠確定哪些其他 DAC 或實體可以訪問這些文檔。利用這一方法,我們的公司就能夠共享一個與區塊鏈中狀態保持一致的公共信息系統,無需實施額外的機制,或維護一個獨立的文件存儲系統。

L2 解決的不只是擴容難題

現在每個人都清楚去中心化存儲系統對 Web3 成功的重要性,但人們在考慮 L2 解決方案時沒有意識到的是,L2 的用途實際上遠不止這些,它們不僅僅用於解決擴容問題, L2 還可以完全增強 L1,無論是在擴容方面,還是在功能方面。在本文中我們看到了一個明顯的例子(L2 集成去中心化存儲)。

去中心化應用越來越需要利用區塊鏈技術和去中心化存儲系統,用不可變的方式存儲大量數據(以 NFT 爲例),L2 解決方案可以藉此機會爲 L1 網絡增加額外的功能,就像 Metis 利用其 IPFS 集成所做到的那樣。 我迫不及待地想看看 L2 生態系統中還會帶來怎樣的驚喜。您是否知道其他具有創新 L2 想法的酷項目呢? 歡迎告訴我。

來源鏈接:adlrocha.medium.com