查看原文
其他

【官方】Filecoin当前状态和发展方向总结

声明:个人观点不代表所在机构,也不能视为“官方”意见。这篇文章是基于作者@jnthnvctr在Filecoin生态里经历的时光而提炼出来的,用于讲述Filecoin是什么及其独特之处。感谢 @duckie_han 和 @yoitsyoung 在编写这篇文章时提供的帮助。


概览


在Filecoin生态里有非常多的工作在进行。要看清楚这些工作的相互联系,可不是一件容易的事情。本文将解释Filecoin架构和其路线图的各个组件,希望能简化大家探索这个生态的过程。本文的框架如下:


  • Filecoin是什么?

  • 主要组件详解

  • 最后的思考

本文仅简单概述了Filecoin领域的主要进展,除此之外,生态里还有很多的事情在发生。希望这篇文章能为你导航,充满好奇心的读者也可以通过其中的链接获取更多信息。


Filecoin是什么?


一个简单的答案:Filecoin构建于IPFS协议之上,正催生基于数据的各种开放服务(https://youtu.be/l44z35vabvA?t=844)。


IPFS允许数据可以与特定的服务器解耦,从而降低了数据孤岛的数量。在IPFS的世界里,我们的目标是不依赖于特定的设备、云服务提供商或存储网络,就能实现永续地引用数据,并进行计算、存储和转移之类的操作。至于一些引申的话题,如内容寻址技术的强大及CID内容标识可能解锁的潜力,值得用另一篇博客文章来书写。因此,这里就不再细说。


Filecoin是在IPFS之上构建的激励网络,它能让你在开放的市场上外包与数据相关的各种服务。


如今,Filecoin主要将存储视为一种开放服务,但其愿景还包括存储、分发和转换数据的基础设施。通过这个视角看Filecoin,我们就能更清楚这个项目的前进路径,明晰正在进行的工作和取舍。


其实可以很容易将Filecoin分解成几个主要组件:


Filecoin的两次重要协议升级实现它的3个支柱功能


  • 存储市场:如今已经实现(冷存储),仍在改善中。

  • 检索市场:正在实现

  • 基于数据的计算(离线计算):正在实现

  • FVM虚拟机(可编程应用):正在实现

  • 星际共识(Interplanetary Consensus)——扩容:正在实现


主要组件详解


存储市场


存储是Filecoin经济的支柱。Filecoin的存储网络是为存储提供者设计的开放市场,他们提供的存储容量可让客户们竞价购买。如今,全球有4000多名存储提供者供应着17EiB(还在持续增长)的存储容量。


Filecoin的独特之处在于它使用了两类证明机制(都与存储空间和数据相关)来实现共识:复制证明(PoRep)和时空证明(PoST)。


  • 复制证明让存储提供者可证明其已分配了特定数量的存储空间,且一些数据的独特编码(可以是没有内容的空间,也可以是用户数据)也在该存储空间里。这证明了数据的某份特定副本正存储于网络中。

  • 时空证明能让存储提供者向网络证明某些存储空间中的数据依然完整(整个网络每24小时就会检查一次)。这证明这些数据在某段时间内正被存储(空间)。

这些证明与经济激励机制紧密相连。可靠存储数据的存储提供者会得到区块奖励,而丢失数据的则会被严重惩罚(slashing)。可以将这些激励机制理解成密码学加成的服务等级协议(SLA:https://aws.amazon.com/compute/sla/),不同之处就是它们不再依赖于存储提供者的信誉,而是使用密码学和协议来确保妥当运作。


简单说,Filecoin区块链是一个可验证的见证账本,记录了网络上的数据和存储空间的状况。


它的架构中的一些特性带来了其独特之处:

  • Filecoin存储网络(总存储容量)是17EiB,但Filecoin区块链仍然可以在家里用商品级别的设备来验证。这给了Filecoin区块链一些类似以太坊或Bitcoin的相似之处,但它还拥有将互联网级的大规模服务接入到区块链上的能力。

  • Filecoin的这个独特的能力使用了SNARKs (https://research.protocol.ai/sites/snarks/)零知识证明机制实现(而不是将数据存储在链上)。就如zk-rollups可以使用证明来主张某些批量交易的真实性,Filecoin的证明可验证链下数据的完整性。

  • Filecoin将存储提供者维护区块链共识机制的工作重用,让它也能存储数据。这样,网络上的存储提供者可以得到网络上的区块奖励和其他手续费的补贴(如发送信息的交易费)。最终,Filecoin的存储成本是非常低廉的,可以在此处(https://file.app/)查看每年每TiB容量成本。

  • 通过相关证明,Filecoin会定期检查网络上数据的完整性(整个网络每24小时就会检查一遍)。这些可验证的声明是重要的原语,能够为Filecoin带来各种独特的应用和项目。

虽然这个架构有很多优点(可扩展性和可验证性),但还是带来了额外的复杂程度——存储提供的过程参与度很高,而且数据写入网络需要时间。这样的复杂性让Filecoin在今天更适合做冷存储。现在很多人是使用某种开发者快速工具(如Estuary.tech、NFT.Storage、Web3.Storage、Chainsafe SDKs、Textile的Bidbot等)实现这个需求,它们将IPFS的热缓存与Filecoin的冷存档结合在一起。如果只使用Filecoin的话,通常是用来存储大量的存档数据。


然而,随着存储提供流程和证明机制的改进,我们可以预期看到更多热存储用例。以下是值得注意的进展:

  • ✅ SnapDeals (https://lotus.filecoin.io/storage-providers/operate/snap-deals/)——与下面的技术组合后,存储提供者可以将存储服务的流程变成流水线,将数据注入网络现有的存储能力上,从而极大减少链上处理数据的时间。

  • 🔄 封装即服务(Sealing-as-a-service:https://github.com/filecoin-project/lotus/discussions/9079)/ SNARKs 证明即服务(SNARKs-as-a-service)——让存储提供者关注在数据存储上,而将成本高的计算任务外包给专门领域的提供者市场。

  • 🔄 证明优化——硬件适配,以优化生成Filecoin证明的时间。

  • 🔄 更高效的密码学原语——减少证明生成过程的步数或降低复杂程度。

注意:这些都是与“读取”流程分开的。读取流程现在就可以通过未封装的副本实现更快的读取速度。然而Filecoin要想达到Web2互联网的程度的话,就需要下面讨论的检索市场了。


检索市场


检索市场的论点很简单:通过开放市场,在边缘端大规模缓存数据,可以解决光速问题(https://www.youtube.com/watch?v=ogOEEKWxevo&t=1005s&ab_channel=ElixirConf),实现比传统基础设施更廉价的性能表现。


这有什么依据?论据如下:

  • 内容寻址(使用内容指纹作为最佳引用方式)的魔力点在于数据是可验证的。

  • 这与一个无需许可的CDN内容加速网络契合得很好——意味着任何人都可以提供基础设施和提供内容,而终端用户也可以验证自己收到的内容就是所需要的(即便内容来自一台不被信任的计算机)。

  • 要是任何人都可以往这个无需许可的网络投入基础设施,那么由边缘缓存节点(而不是中心化节点)组成的市场就可以构建出一个CDN内容加速网络,并使用激励机制来引入硬件设备,从而实现性能和成本平衡的最优状态。


Filecoin上设计各种检索市场的方式,目标并不是指定使用特定的网络,而是让生态自己进行演化(如Magmo、Ken Labs、Myel、Filecoin Saturn等等),以解决建设检索市场相关的问题。


来源:https://www.youtube.com/watch?v=acqTSORhdoE&ab_channel=Filecoin (From April ‘22)


此视频(https://www.youtube.com/watch?v=tyXwki8cBlg&ab_channel=ProtocolLabs)很好讲解了该工作组的架构和做法。大家可以在此处(https://www.retrieval.market/)关注其进展。


注意:考虑到延迟值的要求,检索会在链下进行,但服务支付的结果可以在链上展开。


数据计算(链下计算)


数据计算是开放服务的第三个组成部分。当人们思考数据的用途时,能想到的不仅仅是存储和检索。用户还会想对数据进行转换。这些数据计算协议的目标一般是通过IPLD来执行计算。


简单说,IPLD旨在成为内容寻址系统的数据层。它可用于描述一个文件系统(如IPFS使用的UnixFS)、以太坊数据、Git data等,只要它们是由哈希链接起来的就可以了。此视频(https://youtu.be/Sgf6j_mCdjI)或许能让你了解更多。


IPLD通用性的美妙之处,在于它能成为所有类型数据的接口。通过打造与IPLD互动的计算工具,这些工具团队实现不同底层类型数据与其网络之间的兼容性时,我们就能降低其中的复杂程度。


注意:对在 IPFS / IPLD 之上构建的任何网络(如Celestia、Gala Games、Audius、Ceramic等)而言,这一点都是值得关注的。


当然,各种计算任务并不一样,不同的用例需要不同类型的计算。对某些用例来说,就需要更严格的可验证性,有些人可能需要零知识证明与结果配合在一起,来验证计算结果的正确性。对其他任务而言,有些人可能想保持数据的绝对隐私,那么他们就需要全同态加密技术了。还有一些人,可能只想在传统的云服务器上运行批量处理任务,并依靠经济抵押物或信誉担保来确保得到正确结果。



来源:https://www.youtube.com/watch?v=-d4iJm-RbyA&t=537s&ab_channel=ProtocolLabs


现在,已经有一些工作组在研究不同类型的计算任务,这包括了大规模并行计算(如Bacalhau)、能用密码学验证的计算(如Lurk)及其他各种类型的计算任务。

Filecoin有一个很有趣的特性,就是存储提供者拥有计算资源(GPUs和CPUs),来满足证明机制的需要,而这些资源与他们的数据是放置在一起的。这就是关键之处了,因为这个特性让网络可以将计算任务带往数据——而不是将数据移动到外部计算节点。考虑到数据是有引力的(https://dgtlinfra.com/what-is-data-gravity-aws-azure-cloud/),这个特性对网络支持大型数据集的计算用例是必须的。



Filecoin的架构设计,让各种计算层能够作为二次协议实施。


大家可以在此处(https://www.cod.cloud/)关注数据计算工作组。


FVM虚拟机(可编程应用)


在上面,我已经讲解了三项服务(存储、检索和计算),它们涉及到Filecoin网络上存储的数据。这些服务及其可组合性可以带来对Filecoin网络服务的需求,这些服务最终会扎根于Filecoin区块链之上,并为区块空间创造需求。


不过,应该怎样增强这些服务?这就是Filecoin的虚拟机FVM的作用了。


FVM虚拟机能对Filecoin的状态展开计算。这项服务是很重要的,因为它给这个网络提供了其他网络智能合约的能力,又有独特的优势,能够与上述的开放服务互动及触发相关服务。


通过FVM虚拟机,我们可以搭建定制的激励体系,以在网络中实现更复杂的功能:

  • DataDAOs(https://twitter.com/duckie_han/status/1570899707274362880?s=20&t=GEd2wmHS52bHzUjIydc0Dg)

  • 可检索性预言机(Retrievability Oracles:https://www.youtube.com/watch?v=ahV7mZq83SI&t=697s)

  • 永续存储合约(https://twitter.com/jnthnvctr/status/1545401176392437762) / 存储基金(storage endowments)

  • 修复赏金(Repair bounties)

  • 为存储提供者设计的低额抵押借贷市场

  • ETL管道

  • … 还有很多

Filecoin的虚拟机是一个WebAssembly (WASM)虚拟机,设计得有点像hypervisor虚拟机。FVM虚拟机的愿景是支持多种外部运行时(runtime),首先是从以太坊虚拟机(EVM)开始。这样的互操作性意味着Filecoin将支持多种虚拟机,为EVM和MoveVM等虚拟机设计的合约可以部署在同样的网络上。


通过支持多种虚拟机,Filecoin开发者可以部署来自其他生态并久经考验的合约,以在Filecoin经济中建设链上基础设施,同时让其他生态系统原生地接入Filecoin网络的服务变得更轻松。多种虚拟机的支持也能让Filecoin经济和其他一层协议经济产生更多原生交互。



请注意ipld-wasm module模块,它的通用版本将是 IPVM(可以移植回来)。来源:https://fvm.filecoin.io


FVM虚拟机是很关键的,因为它提供的表达性,能让人们从Filecoin网络上部署和触发定制数据服务(存储、检索和计算)。这个特性可以支持在Filecoin的基础原语上建立更复杂的功能,为更大范围的采用扩展边界。


注意:为了展示各种可能性,此篇推特文章(https://twitter.com/jnthnvctr/status/1545401176392437762)或许能帮助解释如何使用智能合约和FIlecoin的基础原语来搭建更复杂的功能。


更重要的是:FVM虚拟机也为这篇博客要提及的最后一个支柱功能“星际共识”创造了条件。


大家可以在此处(https://github.com/filecoin-project/ref-fvm/issues/692)关注FVM虚拟机的进展,并在此处(https://fvm.filecoin.io/)进一步查看FVM虚拟机的细节。


星际共识(扩展性)


在开始解释星际共识(interplanetary consensus)之前,有必要重申Filecoin的愿景:搭建开放数据服务(存储、检索和计算),以作为中心化云服务的可靠替代品。


为了完成这点,Filecoin需要有比现在各种区块链具有更大规模的可扩展性:



Filecoin网络的产品需求


有些人会觉得,一条区块链要针对上面这么多的属性,好像会存在冲突。确实如此。Filecoin并不想在基础的层实现这些属性,而是希望在整个网络的层面解决。


通过星际共识,网络可以快速启动递归子链(recursive subnets)。这个框架让每一个子链在安全性和可扩展性之间自行衡量(还可以递归启动自己的子链),同时仍能够在各自的母链上留下可验证的信息。


这样的设计意味着Filecoin的基础层有很高的安全性(让更多人在家里的商用硬件就能验证),同时又可以有各种原生连接的子链,各自有不同的安全性和可扩展性考量,这样就能解锁更多的用例。



此图中,最根本的是Filecoin基础层。来源:https://research.protocol.ai/blog/2022/scaling-blockchains-with-hierarchical-consensus/


星际共识的设计方式带来了一些有趣的特性:

  • 每一个子链可以启动自己的子链(递归子链)

  • 树状结构向上、向下或全范围的原生消息机制。意味着这些子链都能互相通信

  • 可在安全性和可扩展性上取舍(每个子链可以选择各自的共识模型和选择维护自己的状态树)

  • 从子链到母链有防火墙般的安全分隔保证,想象下,每一个子链就像一条有限责任的链,其最高责任就是母链注入的tokens

如果再思考一下这些问题,星际共识还让Filecoin带来了如下的特性:

  • 因为子链有不同的共识机制,星际共识让子链有可能与其他生态系统(如Cosmos 的Tendermint 子链)来进行原生通信。

  • 让子链能在可扩展性和安全性进行取舍(并允许与其他有不同取舍的子链进行通信),意味着Filecoin能有不同属性的网络区域。高性能的子链可以使用高效的本地共识机制(以实现聊天之类的应用),而将结果引入高度安全(可验证且缓慢)的Filecoin基础层来作为检查机制。

  • 在高吞吐的子链中(单个数据中心,运行着少数节点),FVM虚拟机/IPVM(https://www.youtube.com/watch?v=FhwzEKNZEIA) 的成果可简化任务周期和直接在“链上”执行计算——而原生消息机制和支付则在更安全的基础层进行。


可阅读此篇博客文章(https://research.protocol.ai/blog/2022/scaling-blockchains-with-hierarchical-consensus/)和关注ConsensusLab(https://research.protocol.ai/groups/consensuslab/)的进展了解更多。该Github讨论(https://github.com/protocol/ConsensusLab/discussions/156)对了解IPC vs 二层协议的问题也有帮助。


最后的思考


希望上面的内容能让你更清楚Filecoin是什么,以及它相较于其他协议的独特之处。Filecoin的雄心不仅是成为一个存储网络(正如特斯拉的雄心也不仅是生产小汽车)。Filecoin的目标是促成由开放服务驱动的完全去中心化网络。


与其他Web3基础设施的路径相比,Filecoin的目标不仅是提供单一的服务。与大多数一层协议相比,Filecoin的目标用例是由其网络架构提供独特支持的。这其中的精彩之处在于,Filecoin并不是在同样的用例展开竞争,而是能以其独特的优势,扩展区块链世界的实际应用范围。


如果您也对Filecoin感兴趣,欢迎了解更多内容:


  • 网站:https://filecoin.io

  • 中文社区论坛:

    https://github.com/filecoin-project/community-china/discussions

  • Slack频道:filecoin.io/slack/

  • Twitter: @Filecoin

  • 博客:https://filecoin.io/zh-cn/blog/

  • GitHub: https://github.com/filecoin-project

  • Filecoin技术文档:https://docs.filecoin.io/build/

  • Filecoin规范:

    https://spec.filecoin.io/ 

  • Filecoin区块浏览器:

    https://filscan.io/#/home

  • 关注Filecoin技术进展:https://github.com/filecoin-project

  • 加入Filecoin社区论坛:https://github.com/filecoin-project/community/discussions

  • 在主网上进行存储:

    https://docs.filecoin.io/

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存