Filecoin出块原理解析

想要了解Filecoin出块原理,首先要熟悉其共识机制(区块链的核心),Filecoin常被提及的两个证明机制是复制证明和时空证明,不过它所包含的证明机制并不只有两个,我们首先来看看主要包括哪些。

Filecoin建立在空间证明制(Proof of Space)的改进之上。这与股权证明制(Proof of Stake)有关,因为股权不是仅作为持有的通证,而是以证明存储的形式确定矿工开采区块的可能性。通俗来说,PoS代表有效存储空间,即存储能力。

预期共识(Expected Consensus)是Filecoin区块链的主要出块共识,是一种概率拜占庭容错共识机制,它的目标是使得矿工出块的权益,与自己对存储的贡献成正比。也就是说,矿机(矿池)被使用的有效存储空间,在整个网络中的总使用空间中所占比例,就是此矿机(矿池)能够出块的概率。

其他主要证明方式还包括:

复制证明 Proof-of-Replication,PoRep

PoRep是PoS的进阶版,可以证明矿工已将数据(data)存储,并保证每份数据存储的独立性,同时防止女巫攻击、外源攻击和生成攻击。复制证明避免让矿工可以透过不同方法让自身存储数据小于承诺存储数据,以获得额外报酬。

时空证明 Proof-of-Spacetime,PoSt

矿工证明自己花费了Spacetime资源,即一定时间内的存储空间的使用,PoSt是基于复制证明实现的。即使验证者不在线,也能够在未来去验证矿工在该段时间内生成了证明链,有效防止临时生成数据攻击。

数据持有性证明Provable-Data-Possession,PDP

矿工完成了用户存储数据的订单后,为了证明数据已经被自己存储,用户可以多次验证矿工是否将其数据保持存储的状态。

可检索证明 Proof-of-Retrievability,PoRet

与PDP类似,证明矿工存储的数据是可以用来查询的。

总结:在预期共识中,矿工赢得选举的可能性跟矿工当前的存储能力成正比,而存储能力则由复制证明和时空证明来衡量。

再用一张图来详解这几个证明机制之间的关系。

对Filecoin共识机制有了大体了解之后,我们循序渐进,来看看Filecoin的出块流程,包含3个阶段:

阶段一 密封

矿工会先获取存储订单,把数据切成256KB的小块,用特定算法(Stacked DRG)进行密封生成副本。

这个过程最耗时, 数据越多, 时间越长。初期, 大家硬盘都是空的, 就比谁存储速度更快, 即"密封速度", 这会涉及软件算法的优化、CPU、内存、以及硬盘的读写能力。这个过程会让硬盘几周内就被写满。

阶段二 复制证明

接下来就是生成"复制证明zksnark"的过程,用特定算法对存储数据生成一个"零知识证明", 以验证密封的数据来源于客户的源数据, 需要在指定时间内(30秒)完成, 并广播到全网,让别人确认该出块的有效, 然后上链。

这个过程要用到GPU加速, 如果30秒内完不成, 将得不到块奖励。

阶段三 Sector(扇区)证明

矿工会将客户提供的数据存放于网络中,这个区域称为扇区Sector。每个扇区会包含存储文件内容及承诺存储时长,确保客户在约定存储时长中,可以自由运用自身存储的数据。矿工添加一个扇区至 Filecoin 网络时,需要质押一笔锁定币(自身持有的 FIL 通证以及部分区块奖励)。

链上的miner智能合约会验证提交的证明是否正确,这可以达到毫秒级处理速度。

以上是完整Filecoin出块流程基本介绍,矿工在赢得区块奖励后,仍然需要持续证明存储的数据没有丢失,因此就到了最后一环时空证明。

时空证明:矿工必须每1小时左右,提交一次复制证明,证明数据还在。链上也会在每个出块时间随机发出挑战challenge,来验证数据是否存在。如果失败,则被扣除抵押币。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。