4001-388-378 market@fireflyblock.com
首页 > 新闻资讯

Filecoin挖矿分析全套 不容错过的干货

2018/11/6 21:33:10

随着协议实验室Filecoin信息的不断的发布,许多Filecoin挖矿信息浮出水面,Filecoin挖矿非常具有研究意义,为了帮助广大想参与Filecoin挖矿的矿工深入理解Filecoin挖矿的知识,整理了一些知识,供大家参考。

萤火虫矿机将从知识普及的角度,分析一些挖矿的要素和知识点,为矿工收益最大化提供参考。

一、 复制证明的原理

复制证明(PoRep)是一种新型的存储证明方案,它能够让存储矿工说服用户和其他矿工,数据已经被复制到了它的矿机上。这种方案能有效的阻止女巫攻击、外包攻击和生成攻击的存储作弊问题,以下是复制证明的简化步骤:

1.矿工创建特定的副本R

当矿工存满一个扇区(此扇区并非磁盘上的物理扇区,而是Filecoin网络定义的逻辑扇区)后,对该扇区的数据加上矿工的秘钥对,进行一种缓慢的顺序编码,形成该矿工的特定的存储副本,使每一个数据副本都不一样。密封的结果是形成一种Merkle树结构的数据副本,如下图所示。

Merkle树结构的数据副本图.jpg

Merkle树结构的数据副本图

2.矿工生成存储数据副本的证明Πpos

矿工存储数据并完成密封后,那矿工如何向一个没有中心化服务器的Filecoin网络,证明矿工确实存储了这个副本呢?星际大陆明哥觉得很难,但是协议实验室做到了。

生成证明过程中使用了零知识证明(关于零知识证明有点复杂,有兴趣的读者可以阅读相关资料)的思路,即验证者在不需要拥有任何数据的情况下相信矿工确实存储了数据副本,怎么做到的呢?

如下图中的红色线条所示,矿工根据网络中其他验证节点提出的随机挑战C,例如是要挑战位置8,那么矿工就需要计算从叶子节点D8跟根节点Root的路径,输出一个证明Πpos,返回给发起挑战的验证节点。

矿工生成存储数据副本的证明Πpos图.jpg
矿工生成存储数据副本的证明Πpos图


3. 验证节点验证存储矿工的证明

验证节点获得存储矿工的证明后,可以通过给定的信息进行验证,当验证结果等于1时,说明该矿工确实存储了特定的副本,验证过程非常快。具体验证的算法需要等官方代码公布后再进行详细解答,现有的白皮书还没有给出足够详细的描述。

二、扇区的解释

扇区(白皮书中的sector)是指存储矿工特定的存储空间,用来衡量有效存储以及提交存储证明的单位空间。当存储矿工存满(可能没存满也可以密封,但是应该会浪费部分的存储空间)一个扇区的数据后,才运行扇区密封,密封后提交复制证明,这样才会形成有效存储。

目前协议实验室对扇区可能有二种方案,一种是固定大小,例如1G;第二种是矿工指定大小,例如1G或者10G。

那么单位扇区的大小有什么用呢?根据白皮书中关于Filecoin区块链数据结构的描述,扇区ID会存储在区块链的分配表中,一个扇区大约需要消耗300字节(该数据是星际大陆与官方进行沟通所得到的数据,并未在公开资料中显示)的链上存储空间。因此可以计算,假设扇区大小为1GB,经过一段时间后,全网的有效存储达到10EB(10240PB),那么扇区在区块链上需要占用的存储空间大约为3TB左右。这还不包括订单和交易占用的区块链空间,即维护一个Filecoin全节点需要占用3TB以上的存储空间。

因此,扇区太小,会占用大量的区块空间。但是如果扇区太大,不容易密封,这会导致部分有效存储的浪费,相信协议实验室会在如何平衡扇区大小和区块链空间上做出一个非常好的决策。

三、时空证明

时空证明可以理解为持续的复制证明,即矿工必须不断的生成证明(在这,明哥姑且大胆的预测10分钟左右)并在一个提交周期内提交存储证明(大胆的预测3-5天提交一次,这样做的目的是即使短时间断网也不会影响证明的生成和提交),如果没有在提交周期内连续及时提交证明,会被系统扣除部分代币。

生成证明的过程跟复制证明非常相似,只是时空证明的输入是以上一生成的证明做为输入参数,这样能保证证明生成的连续性,详见白皮书。

四、时空证明与共识机制

区块链的共识机制是区块链项目的核心要素之一,Filecoin的共识机制依据时空证明来达成共识。这个共识机制跟POW一样简单明了,下面星际大陆明哥将举例说明:

(1) 假设全网有两个矿工:A和B,A矿工在某时刻密封了存储满数据的2个扇区,并一直提交时空证明;B矿工在这个时刻密封了存储满数据的4个扇区,并一直提交时空证明。

(2) 此时全网的有效存储为6个扇区

(3) A矿工当选领导节点的概率为2/6

(4) B矿工当选领导节点的概率为4/6

(5) 即某矿工在某一时刻当选领导节点的概率=已密封扇区容量/全网总密封扇区容量

五、矿工、矿工演员和矿机

根据Filecoin团队发布的demo显示,Filecoin挖矿细节跟BTC和ETH等数字货币有较大的区别,有矿工和矿工演员之分,那么矿工、矿工演员和矿机之间的关系是啥?星际大陆明哥的理解如下,供各位矿工参考:

1.矿工

矿工:可以理解为一个类似BTC和ETH一样的地址和秘钥对,在发布订单和成交订单时需要用到,挖矿收益也是归属矿工的地址。

2.矿工演员

矿工演员:每个矿工可以有多个矿工演员,发布订单时是以矿工演员为单位(详见星际大陆翻译的demo视频,仔细看胡安演示矿工出价部分,他复制的是矿工演员的地址),每个矿工演员也有一个地址,矿工的多个矿工演员存储可累加(明哥此为猜测)。

3.矿机

每个矿工演员对应一台物理矿机。

六、 关于filecoin矿池

根据星际大陆明哥理解,Filecoin可能无法实现像BTC和ETH那种传统意义上的虚拟矿池,原因有以下几点:

(1) 矿工在发布订单和生成证明时都需要使用秘钥对,如果矿池服务商将秘钥告诉矿工(而不像传统矿池只需要配置一个矿池地址那么简单)是非常危险的做法,当然这一点也许可以通过加密的方法来实现,具体可能性目前还无法判断。

(2) 矿工需要不断的提交存储证明,如果矿池中某些矿工无法及时提交证明,扣除的抵押由所有矿工分担,这对优质矿工非常不公平。

(3) 矿池服务商需要提供非常大的代币抵押,因为每个矿工的存储都是不断变化的,不太可能直接让矿工直接支付所有抵押费,这也是不公平的。

综上,Filecoin虚拟矿池可行性是存疑的,但是不代表不会有创新的方法,比如组建实体矿池,由矿场或矿池服务商统一管理矿机的方法,对于矿工来说,同样可以达到加入矿池的效果。