Filecoin共识机制简析
概念解释
Pos:proof-of-storage,为存储空间提供的证明机制;
复制证明(Proof-of-Retrievability,PoRep):Filecoin挖矿的主要证明方式之一,用以证明数据被矿工独立地保存,可以防止女巫攻击、外源攻击和生成攻击;
时空证明(Proof-of-Spacetime,PoSt):证明在一段时间内,矿工自己的存储设备上实际存储了特定的数据。
PoRep和PoSt其实是Pos的两种实例,PoRep首先要求矿工对该文件进行初始化并证明矿工持有这一初始化后的文件,矿工必须在给定时间内响应,要是这一时间远短于初始化时间。
因此矿工无法证明时间内生成持有文件;PoSt证明在一段时间连续时间内拥有特殊的信息,并在自己专有的存储设备中,强调其时效性,这一证明其实相对来说相对困难,条件也是最多的。
在Filecoin网络中,最重要的协议就是复制证明和时空证明了,同时也是消耗资源最多的两个证明。他们的实现方式决定了Filecoin矿机的最优配置,同时也决定了矿工的硬件成本。
复制证明PoRep是存储证明的一种实现方式,证明者X能向检验者Y提交PoRep以证明自己确实在自己的存储设备上存放有某个数据D的备份D’证明者X受到网络委托,存储n个数据D的独立备份;当Y向X提出挑战时,X需要向Y证明的确存储了每一个D的备份D’这就是PoRep一次验证的过程。
复制证明的核心思想就是为用户数据保留备份,这样做的目的是为了防止网络攻击。要做到这些需要满足一定要求:加密时间长,解密时间短生成存储证明复杂度低。
如此设计的原因是:解密时间短不会给系统计算资源造成过大的消耗,同时考虑到每个证明时期的证明比较多,因此通过加密后的文件生成存储证明应该尽量简单快速。
复制证明PoRep是时间点证明,证明在一个时间点中矿工存储了该文件。而PoSt是时间区间证明,证明了该时间段内存储矿工实际存储了该文件。可以非常简单的解释为,如果仅仅进行一次挑战,无法证明在一段时间之内文件都存在。
其博弈策略是每间隔一定区间高度,网络机器人会随机选择检查时间点,向矿工发起挑战,每次挑战后,矿工都需要生成一段复制证明,以此来检查矿工是否存在作弊行为,如果挑战失败,矿工将要会被处罚一定的质押代币。
从以上解释中我们可以看出时空证明的机制是通过验证者Y通过向证明者X提供一段独特的数据证明,让X在一段时间内证明其存储了D的数据并备份D’.
那么复制证明和时刻证明是如何在真实的分布式网络中不依赖第三方可信机构实现运行的呢?零知识证明在其中起到了非常关键的作用。
零知识证明指的是证明者能够在不向验证者提供任何有用的信息情况下,使验证者在某个概率下相信某个论断大概率是正确的,它的发明起源于最小漏洞证明,验证者除了知道证明者能证明某一事实外,无法在得到其他任何信息。
一些匿名数字货币比如zcash就是使用零知识证明交易双方身份和交易金额匿名。
对于去中心化的Filecoin网络来说,存储证明机制中的时空证明和复制证明重中之重。合理的验证以及证明体系才能避免安全攻击,实现网络正常运转,保证节点之间的公平竞争与合作。