撰文: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