科普 | 如何使用分布式存储协议和星际文件系统修复损坏的NFT?

IPFS星际联盟

    
    前言
    “尽管客户购买 NFT 时认为它们是永久且不可变的所有权记录,但情况并非总是如此——许多通证构建中的根本缺陷危及资产的长期完整性。”
    这是整个生态系统的一个主要问题,有可能迅速侵蚀客户的信心——不仅在 NFT 中,而且在整个区块链技术中。为避免声誉损失,开发者社区需要主动承认并解决这些问题。
    幸运的是,理解破坏这些令牌的缺陷以及修复它们的方法相对简单。在这篇文章中,将详细说明问题是什么,以及开发人员如何在他们自己的产品中避免这些问题。
    背景:什么是 NFT?
    最近几个月,人们对用于数字资产(如图片、音乐或视频)的 NFT 产生了特别的兴趣。这里出售的核心理念是对这些资产的声明*(在某些情况下,参见脚注)——通过分布式数字共识而不是中央机构(例如,专利局)授予和验证的资产。这些声明被称为永久、不可改变和不可破解的所有权证明。
    遗憾的是,许多 NFT 购买者无法从技术上评估这种营销的真实性。关于区块链不变性的模糊理解为各种 NFT 提供了掩护,其中一些未能达到这种声誉。
    最基本的,NFT 只是存储在区块链上的所有权记录,将身份与资产相关联。明确这一点非常重要:NFT 不是资产本身——它是记录。例如,假设 Zoe Schmoe(当然发音为 Sh-mow-ee :)为一张猫图片购买了 NFT。该记录或多或少如下所示:
    Zoe Schmoe 拥有 cat.png。
    当然,这掩盖了相当多的细节。在实践中,我们面临着数字共识的问题:我们(在区块链的背景下)如何就“Zoe Schmoe”和“cat.png”所指的实体达成一致?我们可以给任何数量的东西起这些名字!
    对于佐伊本人来说,答案是比较标准的。我们可以使用公钥密码术为网络参与者生成唯一的身份,并合理地假设如果一个人拥有给定身份的相应私钥,那么他们就是创建该身份的人。该记录引用了佐伊控制的匿名身份,而不是她的名字:
    0xZ03 拥有 cat.png。
    这解决了一半的问题,但我们仍然需要一种方法来指示特定的“cat.png”。此外,我们强调资产和 NFT 是两个不同的东西,但尚未讨论资产本身。它应该住在哪里,谁应该负责它的存储?这暗示了我们需要解决两个广泛的问题来构建弹性 NFT。
    持久性问题
    如果 NFT 要保留其价值,就必须将其存储在某个地方——如果所有副本都被删除,那么就没有任何东西可拥有!这需要我们考虑许多问题,从谁应该负责存储,到所需的冗余级别、可访问性和存储数据的寿命。所有这些方面都与持久性问题有关:确保内容保持可用,以一种对我们在 Internet 上看到的典型故障很耐用的方式。今天铸造的许多 NFT 完全基于这些考虑。
    确保资产在 NFT 的整个生命周期内存储的一种方法是将资产也存储在区块链上,利用区块链是复制给每个参与者的分类账这一事实。它还通过隐式地让网络中的每个节点负责资产的维护来解决责任问题。
    不幸的是,正是因为区块链在每个网络参与者之间复制,所以在一个参与者上存储数据非常昂贵。因此,将最微不足道的数据存储在链上通常成本过高。我们需要将数据保存在其他地方——这意味着我们需要链接到它。
    寻址问题
    我们需要解决的第二个问题是寻址:我们需要一种明确识别数据内容的方法。
    我们可以这样做的一种方法是在不可变的数据存储中为其提供索引 - 例如,区块链!给定这样的存储,就给定数据在存储中的位置达成一致等同于就该数据的内容达成一致。不幸的是,正如我们刚刚在上面看到的,必须排除将我们的数据存储在区块链上。
    第二种解决方案与第一种类似:我们可能不会在内部链接到区块链,而是从外部链接到网站,使用经过时间考验的协议,如 HTTP:
    0xZ03 拥有“cat.png”,存储在 https://nft-emporium.com/cat.png。
    事实上,当今市场上的许多 NFT 都是这样做的。不幸的是,虽然乍一看这似乎是合理的,但正是这种做法损害了许多 NFT 的完整性。
    HTTP URL 有两个令人不安的特性,这些特性会影响它们作为长期数据引用的适用性。第一个问题是它们是指向数据可能随时间变化的位置的链接。因此,由基于 HTTP 预测的 NFT 创建的所有权概念非常脆弱。今天,Zoe 拥有该链接上的猫图片;明天,她拥有了 404。第二天,有人购买了 nft-emporium.com,更改了链接,现在 Zoe 拥有了一张马的照片。
    在 HTTP 之上开发 NFT 破坏了所有关于永久性和不变性的承诺。
    这导致我们对 HTTP 寻址的第二个关注点:集中控制。一个人或实体对链接背后的内容拥有完全的权力和单一的责任。这对链接的长期可行性具有非常严重的影响。
    总之,将数据存储在区块链上可以让我们对数据进行不可变的引用,但成本太高;从区块链存储数据可以避免这种成本,但传统的链接是集中的、可变的引用。这就是我们的困境:我们需要一种对链下存储的数据进行不可变引用的方法。
    修复
    幸运的是,这是我们可以毫不妥协地实现我们所追求的两个属性的问题之一:解决方案是使用称为内容地址的东西来识别和链接到资产。
    某些数据的内容地址是仅从该数据派生的链接——最基本的形式是数据的散列。我们可以将内容地址视为指纹:理想情况下,在给定内容寻址方案的上下文中,地址应该唯一标识一段数据。综合起来,这意味着内容地址是一个永远不会改变的链接,并且是一个所有各方都可以达成共识的链接:这正是我们所追求的无信任无歧义!如果我们改用这些,我们将得到接近以下的记录:
    0xZ03 拥有“cat.png”,它散列到 。
    这是一个很好的开始,但请注意,原始哈希与内容地址不同,内容地址具有可以用作链接的附加含义。您无法在浏览器中输入原始哈希值并取回文件。上面的记录允许我们验证 Zoe 拥有什么,但不允许任何人检索该数据。这并不反映当今大多数用例的现实,其中能够直接从记录访问资产是许多 NFT 的核心功能。
    解决分布式存储协议寻址问题
    必须创建额外的基础设施以启用散列 - 或任何此类地址 - 来填补链接的角色。幸运的是,我们不必从头开始创建自己的内容地址基础设施。星际文件系统 (分布式存储协议) 生态系统多年来一直在开发一种特别强大的内容地址形式——内容标识符或 CID。
    在分布式存储协议的上下文中,CID 唯一标识了一条数据。基于该原语,分布式存储协议?实现了一个全球分布式数据共享网络。网络节点可以通过其 CID 广播数据请求,并且任何拥有此文件的节点都可以为该请求提供服务。这正是我们正在寻找的——让我们调整我们的 NFT 记录以使用 CID:
    0xZ03 拥有“cat.png”,其 分布式存储协议 CID 为“bafy1”。
    现在,任何遇到该记录的人都可以看到 Zoe 拥有哪些数据,只要 分布式存储协议?网络上的某个人拥有该文件并愿意将其提供给他们!
    除了为 CID 本身奠定基础之外,分布式存储协议还拥有庞大的支持生态系统。它提供的一个主要优势是它自己的国际公认的 URI:除了广泛使用的浏览器的现有兼容层之外,这个 URI 最近开始获得本地浏览器支持。
    分布式存储协议为我们提供了不可变的、得到广泛支持的链接,其方式反映了区块链的去信任、分布式性质:它是解决我们上面确定的问题的直接解决方案。
    当我们通过使用 分布式存储协议 CID 引用资产来构建 NFT 时,我们既保留了资产的完整性,也保留了通过链下存储和链接到资产而获得的优势。
    用星际文件系统解决持久化问题
    当然,寻址只是等式的一部分:我们需要确保数据持续存储和访问的方法。分布式存储协议只能在有人存储文件的情况下检索文件!
    为了解决这个问题,我们可以求助于 分布式存储协议的姊妹项目星际文件系统。星际文件系统是一个分布式存储网络,旨在充当分布式存储协议激励层,并为希望确保 分布式存储协议?托管资产寿命的用户提供强大的付费存储解决方案。
    就像分布式存储协议?一样,星际文件系统是完全去中心化的,因此没有单点故障——这是我们对 HTTP 的主要关注之一。分布式存储协议使任何人都可以帮助保持链接活跃,但大多数人几乎没有理由(除了利他主义)这样做。相比之下,星际文件系统允许我们通过与合同相关的激励和惩罚来直接激励数据存储,为我们提供了最有力的保证,即有人有兴趣保持我们的链接。
    一个开放的、去中心化的存储生态系统有几个长期的托管优势:
    
  • 它为存储客户和供应商创造了一个具有竞争力的全球市场。
  • 数据可移植性和互操作性在设计上是必不可少的,可以防止供应商锁定。
  • 分散式网络可以横向扩展以提供额外的托管和冗余 - 特别是在偏远地区 - 比集中式存储服务更好。

    最重要的是,星际文件系统为我们提供了持续且完全透明的证据,证明数据被正确存储。这是一项真正的创新 - 传统云服务提供商不支持的一流功能。
    NFT 既是投资也是文化产物;他们链接的资产不应该仅仅因为他们的托管公司倒闭而无法解决。星际文件系统使我们能够克服面对此类突发事件的持久性问题。为了帮助每个人实现这一目标,协议实验室目前正在 nft.storage 上为 NFT 提供免费的星际文件系统支持的存储。
    结语
    今天向客户销售的许多 NFT 从根本上就被破坏了——它们嵌入了可变链接来指代他们传递所有权的资产,因此不能作为真相来源被信任。NFT 开发人员在尝试创建永恒资产时必须停止依赖集中的、可变的链接——并且为了确保这些资产仍然可以访问,他们还必须确保他们的存储在未来很长一段时间内。
    如果 NFT 的目标基于具有单点故障的技术堆栈,则无法实现它们的目标。通过分布式存储协议和星际文件系统,我们可以完全消除这种依赖关系,同时获得一个完整的附加功能生态系统,为 NFT 增加价值。
    通过统一区块链的去中心化共识、分布式存储协议的去中心化寻址和星际文件系统的去中心化存储,我们可以尽可能地实现一个真正永久的、去中心化的数字所有权通证。