经过近3年的运行,Filecoin协议的复杂性所带来的弊端逐步显露出来,尤其是在 FEVM 上线之后,生态的发展和应用的创新收到复杂的核心协议的掣肘非常明显。Filecoin作为一个 Web3.0 世界的重要组成部分,其发展受阻,也给整个生态带来影响。为了加快Filecoin 网路的发展,同时,也为了降低生态创新的阻力,简化 Filecoin 核心协议势在必行。
Filecoin 到目前的发展迎来了转折点。这个转折点就是Filecoin的虚拟机 FEVM 的上线,以及正在开发的原生 FVM 接下来的上线。Filecoin 虚拟机的上线给大家带来了丰富的想象,因为,Filecoin不仅仅是一个存储数据的区块链网络,同时也可以进行运算,成了一条公链。从此,基于区块链的应用不再是穷内容的,也可以是富内容的了。
在 FEVM 上线之后,Filecoin网络出现了一些合约,还不错,但距离大家的期望还很远,有点温吞水,沸腾不起来,这里面有不少历史原因。其中最主要的原因在于,Filecoin在最初设计的时候,由于没有虚拟机和合约的支持,又要实现Filecoin数据存储市场的基础功能,并起到激励数据存储的作用,所有的功能只能实现在核心层。这就让Filecoin的核心层非常复杂。
我们首先要理解,在当时的情况下,这样的设计是必然的也是必须的,否则Filecoin在数据的存储的愿景的满足上就存在问题,同时,这些设计在早期,也确实起到了很好的作用,对Filecoin的早期发展起到了推波助澜的作用。
但是,当Filecoin开始建立生态,支持应用,那么,这些设计中繁杂的依赖关系,简单而固定的定义所带来的局限性,使应用发展受阻。这些复杂性体现在:
-
在核心层定义数据市场,缺乏变化和变通,使得市场对用户需求的满足的实现和改进非常缓慢;
-
协议定义交易方式和条款模版,真正的用户交易需求可能无法满足;
-
为了激励真实数据的存储,利用区块奖励来奖励被认证的数据存储,这就是 Fil+。但是,对所有认证数据采用相同的价值认定(10倍算力),实际上建立了一个劣币驱逐良币的市场;
-
Initial Pledge Collateral,Fault Slashing,Termination Fee 等于数据相关的概念放在Layer 1 协议层定义,并且许多经济数据缺乏前后的一致性,比如抵押终止费等在不同的高度可能差异非常大,给整个系统的财务计算带来很大的复杂性和风险的不确定性。
-
出块共识依赖 QAP,对协议安全带来些许的不确定性。这虽然在实际的网路中并不明显,但理论上,在某些特殊情况下,可能对协议的安全性带来伤害。
-
Filecoin 的共识机制复杂, 依赖市场模块,认证模块等,这一方面使得共识本身演进困难,另一方面,由于市场的经济模型在不同的时期差异很大, 这就导致市场的变化引起共识的不公平。
正因为这些复杂性,Filecoin 的生态发展在多个方面感受到阻力,这也是生态应用举步维艰的原因,下面举几个例子:
-
Filecoin经济模型的复杂性和风险的不确定性导致Filecoin借贷市场发展持续受阻。这个问题在 FEVM 上线之前就存在。即使是中心化的借贷平台,由于在风险的控制上非常困难,通常要求抵押 Owner 取得终止扇区的权限才可以借贷,而且由于计算的复杂性,通常借贷利率都非常高。发展到现在,能够利用普通代币持有者的借贷平台都没有发展起来,能够运营的都必须依靠 PL 和 FF 的支持;同样,去中心化的借贷平台也会因为计算的复杂性和风险的不可控也变得非常复杂;
-
同样因为财务逻辑的复杂性,以及惩罚多带来的风险成本导致尽管Filecoin从 PoS 的角度来看,年收益达到 40% 以上,但是算力增加仍然不够的原因。有一种说法是存储提供者借不到币。这是借不到币的问题吗?在一个自由市场里,只要有利可图,自然有人做,重要的原因是风险成本太高,使得投入产出比已经处于合理区间。再增加就不符合商业逻辑了;
-
由于共识依赖 built-in Market,使得灵活的市场策略难以开展,或者用户定义的市场需要依赖核心定义的市场,使得市场行为成本高企,阻碍发展;
-
Fil+ 利用区块奖励作为激励,把激励模式固化,使激励方式失去灵活性,从而其他数据服务平台也只有通过 Fil+ 来提供应用才有竞争力。这在发展过程中,Fil+ 当然可以提供支持,但是,Filecoin有 DC 全面取代 CC 的趋势。试想,当DC基本全面取代CC后,Fil+ 的激励将失去实际意义,只是增加了复杂性。
-
Filecoin 的存储证明(PoRep+PoSt)占据大量的网络资源,包括带宽、存储和计算,这让应用生态所能够拥有的带宽变得有限。为了保护 SP 的算力证明,目前还在讨论 Gas Lane,但这不能根本解决问题。解决问题的办法还是要通过子网或者是分片。目前在Layer 1 保罗万象的方式,使得子网与主网的交互也会变得非常复杂,不利于长远发展。
上述问题都是发展中的问题,这个在每一项技术的发展中都会出现,区块链的发展也是如此,只要看一看以太坊的发展历程就可以理解。Filecoin也是如此,我们必须要找出一条路径,通过渐进式地改变和优化,来逐步实现Filecoin的愿景。目前,迫在眉睫的就是排除生态发展的协议层障碍。也就是要简化 Layer 1,构建一个更好的架构。
这个架构必然是分层的。任何一个复杂的系统,都必须经过一定的抽象,设计一个合理的结构,分层并尽量模块化。这带来很多好处,分层会让每一部分的实现变得简单,并且不同的层可以单独演进,不受其他层的影响;模块化也能让生态参与更加容易,可以有不同的实现方式。类似当前的互联网,Ethernet在第二层,不用管第三层是 IP 网络还是其他类似的网络。IP网络理论上也可以嫁接在其他二层网络之上。
对Filecoin而言,我的建议是核心层尽量简化,做好几件最基础的事,比如:
-
算力共识:目前是基于存储的 EC 算法
-
虚拟机:支持图灵完备的计算,并支持存储
-
存储证明:以 Sector 为单位的存储证明,包括PoRep和PoSt。每个等尺寸的Sector可以看成同质化的空间,即 Fungible Space。并能证明其中存储的数据(Piece),数据是什么,核心层不用关心。
这就够了,因为Filecoin就是一个存储证明网络,这就像比特币是一个分布式账本,用来存储 Token 的所有权和转移记录。Filecoin底层也一样,除了对Fil的管理与BTC类似,同时还包括用来存储数据 Piece 存储人(SpId:SectorId),以及 Piece的生命周期,包括诞生,迁移和终止。
从这个角度来说,存储证明这个部分也可以迁移出去,这以后也可以尝试。具体如何做,待研究。
那么有一个问题来了,在目前这个网络现状下,如何实现这个迁移呢?实际上,有些事情已经在做。许多 FIP 和讨论都在朝着这个方向前进,只是对整体方向还有明确,比较模糊而已。同样举几个例子:
-
FIP-0033: Explicit premium for FIL+ verified deals 希望简化共识和奖励发放的方式,来使得 Market 和 Power 脱钩;
-
FIP-0034: Fix pre-commit deposit independent of sector content 简化pre-commit deposit 计算方式,为用户市场的建立扫除障碍;
-
FIP-0041: Forward Compatibility for PreCommit and ReplicaUpdate 为未来用户市场兼容,实现UnSealedSectorCID ;
-
FIP-0045: De-couple verified registry from markets 还是为用户市场做准备;
-
Discussion #442: Decoupling Storage and Deal with independent POW and POS mechanisms 简化共识,为更灵活的激励方式做准备;
-
Discussion #719: Preparing deal collateral for flexible data onboarding 准备实现更灵活的交易抵押;
-
Discussion #712: Capped Penalty for Sector Termination and Fault Slashing 降低财务风险,活跃借贷市场;
-
。。。
综合以上这些提案和讨论,在这个阶段,我们需要一个明确的指引,以及一个可以实现的路径。而且这个路径一定是走渐进式的改变的方式,每一次改变都需要兼容目前的市场实现和需求,难度不小,但是,如果实现了,对将来的发展大有裨益。
一个可以看见的方向就是,我们尽量把现有的一些 Built-in Actors 的实现上移,这些 actors 可以包括:Market,Datacap,VerifReg等,但如果要上移这些Actors,必须要做到 Built-in Actor 与他们脱钩,也就是说,不能基于它们的状态来进行计算。那么 Deal,DC,QAP等概念也需要上移,构成两个层次。Layer 1 将变得简单。由于Filecoin目前的实现中,许多部分,包括共识、存储等多个方面都与Market相关,而且 Fil+ 的实现侵入到多个 Actors 之中,这些都需要经过大量的讨论,取得共识,并寻找可实现的路径。