Filecoin的证明系统(二)

Filecoin Club 2020-05-20 11:51
在昨天的分享中,我们介绍到Filecoin项目团队的领队Juan在一次访谈中详细谈到了Filecoin证明系统的由来,认为系统所有要解决的问题归根到底就是要构建一个庞大、强壮的存储网络,并将存储费用降下来。
今天我们介绍Juan在这篇访谈中是如何论述Filecoin的证明系统的。
Filecoin的复制证明(PoRep)既是存储证明也是空间证明,这两个证明是有区别的。在Filecoin系统中,数据单元存储在扇区中。矿工将数据封装在硬盘的一个扇区,这个过程是个编码过程并要向区块链系统提交一个证明,证明数据被封装了。
数据封装、计算要提交的证明是个繁重的任务。如果矿工想伪造这个证明,必须要用到存储在硬盘上的数据进行计算。这和比特币不同,在比特币中,矿工只是利用一个随机数进行计算。
证明系统是加密协议,这个协议中有证明人也有校验人。证明人要向校验人证明他做了某种特定的工作。
典型的例子有:在比特币的PoW共识机制中,证明人消耗了工作量,产生了哈希值;在VDF(Verifiable Delay Function,可验证延迟函数)中,证明人花费了若干计算周期(Filecoin并不使用VDF)。
所有这些都是证明系统,在这些系统中要用到大量的底层加密技术。
存储证明(Proof of Storage)就是为了证明矿工已经存储了一定的数据。一个典型的例子便是:矿工能证明他有数据X,但不公布数据X的内容,或者只公布数据X所占据的存储空间的大小。
接下来还需要可获取证明(Proof of Retrievability)以证明当用户需要数据X时,是可以获取的,以防止矿工欺诈。
空间证明(Proofs of Space)是另一个证明,证明矿工消耗了自己的存储空间。如果矿工向系统承诺存储1GB数据,并产生了存储1GB数据的证明,就证明矿工确实提供了1GB的存储空间。
这里有个有趣的问题:能不能把空间证明和存储证明合并,用这种合并的证明证明矿工确实存储了数据X,而不是消耗存储空间却胡乱存储了一些数据?
合并这两个证明的难点在于创建一种能证明存储有用数据的空间证明,这就是复制证明(PoRep)的由来。
Filecoin使用了SNARKs(注:零知识证明)来打包一些输出数据量过于庞杂的复制证明。复制证明给Filecoin团队提出了各种挑战,而Filecoin团队喜欢应对这些挑战,并将这些挑战化繁为简。
SNARKs就是化繁为简的一种很好的方式,它能证明矿工的工作,同时只需要向系统提交很少的证明数据。而验证者利用SNARKs也能准确地验证矿工的工作。
在复制证明中,系统会将原始数据,比如一份32GB的数据作为输入,启动一个编码过程。这个编码过程会产生类似下图那样的多层次结构,图中每一个格子包含32字节的数据,每个32字节的数据会进行哈希运算,如下图所示:

  Filecoin的证明系统(二)


复制证明会产生DRG(Depth-Robust-Graph)图,这些图相互连接便形成了上图所示的复杂结构。
最终,这个编码过程对32GB的原始数据产生了一个被称为replica的值。这个值就是要向系统提交的证明。
矿工可以反复多次对原始数据进行这个编码过程,而每次都会产生一个不同并且是唯一的replica值。
产生这个replica值之后,系统做什么呢?明天我们继续和大家分享。
参考链接:
https://filecoin.io/blog/filecoin-proof-system/

上一篇:研究院01期|Filecoin测试网节点数据评析

下一篇:Filecoin二测时间确定,BTC减半,谁才是最终得利者?!

相关阅读:

关于我们联系我们作者投稿
Copyright © 2013 比特巴手机版
币圈人都爱上的网站,新闻行情教程人物测评资讯大全