目前的Filecoin网络是一个可通过验证存储并访问NFT、公共数据集、web3和Metaverse资产的强大网络。你可以将其视为web3的I/O层,然而这只是冰山一角。将通用的智能合约编程功能引入Filecoin网络,可以释放出网络更多的价值和潜力。将计算层架构在存储层之上也为跨链提供了无需信任的互操作性和集成。
智能合约(在Filecoin亦被称为actors)可以提供智能和动态的存储解决方案,而使用现有的web2技术则很难实现。例子包括:
对存储在Filecoin中的数据进行去中心化计算 (在数据所存储的空间直接进行计算而无需转移数据)
对众筹的数据集进行保存(每个人对重要的社会性数据进行存储,例如犯罪统计或环境变暖的数据)
更智能的存储市场(例如:按时间、复制级别或区域可用性对存储进行动态定价)
跨时代存储和永久托管 (例如:存储几代人都会流传使用的数据)
创立Data DAO和数据集的通证化(例如:为数据存储的通证化建立经济模型,并组建DAO对其进行计算和协调)
NFT的本地存储(例如:将NFT的内容与跟踪其内容的注册表共存)
时间锁定的数据检索(例如:仅当公司公开结果时才解锁此数据集)
抵押贷款(例如:向存储供应商提供贷款,如接受特定客户的FIL+交易,在特定时间点进行交易)
等等。
智能合约还可以让开发人员建立跨梁桥实现互操作性 - 共享流动性和为部署在其他链上的dapp(例如:Ethereum, Near, Solana, Flow等)与Filecoin网络进行集成,提供存储功能。
目前,Filecoin平台是数据存储和检索的中心。我们认为这两个特性使Filecoin网络成为了协议的Layer 0。
尽管系统设计简洁明了,但不能满足那些试图通过可编程智能合约来构建更复杂的应用程序和解决方案的开发者的需求。
Layer 0之上的Layer 1,则实现智能合约的可编程性。目前,Filecoin网络的逻辑是编死在系统定义的合约中。这意味着用户自定义的智能合约只能通过其他可以被编程的区块链协议,例如Ethereum和Solana (通过类似Textile Bridges的解决方案)进行部署。Filecoin虚拟机则能够实现原生的用户自定义智能合约。
最早的技术讨论在Filecoin Improvement Proposal 113推出以后的2021年6月开始。受到通过虚拟机监视器来建立多虚拟机设计的启发,Filecoin虚拟机(FVM)的目标是成为一个多语言虚拟机。当时也考虑了许多方法,其中包括EVM as-is, LLVM-IR, eBPF, Secure EcmaScrip等等。
FVM原生的运行时(Runtime)是WASM。我们认为WASM是未来非常有前景的编程语言。这使得用任何编程语言编写的原生智能合约都可以编译成WASM(尽管并非所有语言都适用,但参考的SDK是用Rust编程的)。可以让web2的开发者能够更快地进入web3世界并达到与前者同样的开发水平,并避免特定编程语言的学习曲线。
此外,我们正在添加对模拟外部运行时的支持,第一个是以太坊虚拟机(EVM)。主要原因在于Filecoin的开发者社区要求FVM支持EVM/Solidity,对源代码进行最小甚至是零更改。
随着时间推移,我们看到以太坊社区建立了大量有用的,且最重要的是经审计的,高强度测试使用过的智能合约,例如ERC-20代币、NFT、DAO、flashloan等。如能将这些合约在Filecoin网络上进行重复使用,将推动各种创新且可组合方案的快速启动。另外,让Solidity开发者通过桥和预言机进行跨链作为解决方案可以增加共同价值和效用。
还需要提到一点的是,EVM兼容性针对的是字节码层,因此可以在Filecoin环境中充分利用成熟以太坊工具,如Truffle, Remix,Hardhat, VSCode插件等等。除了部署现有的智能合约外,开发者还可以以Solidity编写新的只能合约来进行快速启动,或者在需要性能优化的情况下使用原生的智能合约来进行升级。
Filecoin网络除了现有存储能力外,还将通过FVM获得计算能力。我们设想在Filecoin网络上运行两种计算:基于状态的链上计算和基于数据的链下计算。FVM将成为构建这两方面的关键模块。
我们很高兴在Filecoin中看到的项目包括:
通过汇集个人和组织的资源,人们将能够通过激励对共享/公益数据集进行保存、管理、扩充和处理。Data DAO以通证和NFT为单位对服务进行计价,并交易这些通证以请求服务、授予访问权限等。
根据用户定义的规则,自动化机器人程序将以一定的激励机制确保Filecoin网络中的数据达到一定的复制级别。
基于拍卖、奖金或其他工具,存储市场可以为数据提供纠错码,以确保数据在中断时的可恢复性。它们还可以实现自动重试交易,以确保数据交付。
向供应商提供的无需信任或特定目标的抵押贷款,例如,贷款资金只能用于接受特定客户的FIL+交易。
在大规模计算中的有一个很大问题在于每项操作增加了数据传输的成本和延迟。通过将计算任务交给提供数据托管的存储提供商并奖励协调节点来制定整个Filecoin网络的执行计划,可以实现高效的执行并行任务,计算结果存储回Filecoin网络,下游计算执行。
此外,将会是第一次Filecoin网络的L2解决方案能够通过FVM将其状态提交到L1,从而实现更安全、更可被追踪的覆盖网络。我们特别希望在Filecoin上看到一些L2解决方案运行,包括内容交付网络(CDN)、声誉系统和支付渠道网络。
Phase 0 : 通过功能发布控制或者以分叉参考实现(Lotus)的方式, 使不可编程的FVM以金丝雀启动形式上线主网,只会运行系统的智能合约。与现有协议兼容且不需要协议升级。这一阶段预计在2021年Q4上线。
Phase 1 : 分叉协议以为用户可编程性之上做一些准备性的改变,其中包括Gas计划和架构的调整。在这一阶段的终期,100%的网络将会运行FVM-支持的系统智能合约。这一阶段预计在2022年Q1上线。
Phase 2 : 原生及外部的EVM将实现用户可编程性。这一阶段预计在2022年Q2上线。
Phase 3 : 重新设计系统的智能合约并对协议进行深度改造以便开发的。这一阶段预计在2022年Q2上线。
如果您有兴趣帮助FVM的开发,或者想了解更多关于该项目的信息,请关注filecoin项目/FVM项目GitHub repo和filecoin Slack上的#FVM频道。