比特币挖矿的规则是它所采用的PoW(工作量证明)共识机制。
这个意思就是说,PoW(工作量证明)是一个规则,你们所有比特币矿工们都要按这个规则进行挖矿。
所以,旷工们的日常就是在规则下开始相互竞争,比拼算力,求解一个数学题,谁先算出来,就大喊一声:“老子算出来了!!!”,其他旷工就会停下对这道题的计算,跑过来把这账目同步到自己的账本上。
可以说,没有PoW共识机制,就没有比特币挖矿。
既然共识机制那么重要,那么,Filecoin挖矿共识机制是什么呢?
Filecoin采用了一种混合共识机制——复制证明(PoRep)和时空证明(PoSt)。
复制证明(Proof-of-Replication,PoRep):新的 PoS(Proof-of-Storage),PoRep可以保证每份数据的存储都是独立的,可以防止女巫攻击,外源攻击和生成攻击。时空证明(Proof-of-Spacetime,PoSt):时空证明,矿工证明自己花费了spacetime资源, 即:一定时间内的存储空间的使用,PoSt是基于PoReps实现的。
“复制证明”通俗地讲,存储矿工要向系统证明,我确实在自己的设备上存了这些数据,而不是谎报存储。
因为区块链经常会遭到“谎报”三大攻击:女巫攻击、外包攻击、生成攻击。
1.女巫攻击(Sybil Attack)
女巫攻击通俗讲是,旷工利用n个身份,承诺会存储n份数据。但是,实际上只存储小于n份的数据,谎报自己存储了n份数据。
2.外部数据源攻击(Outsourcing Attack)
当系统要求旷工提供证明时,旷工利用别人那里存储数据生产的证明,提交给系统。然而,实际上,他并没有存储。
3.生成攻击(Generation Attack)
使用这个攻击的矿工比较厉害,利用某种方式生成数据,当系统要求验证时,就用这个数据生成证明,完成攻击。
这三个的共同点都是矿工实际存储的数据大小要比声明存储的数据小,这样攻击矿工就能获得本不该他获得的报酬。
时空证明则是在复制证明的基础上,加上时间戳等技术,得到一个一段时间内旷工存储数据的证明。
即使用户不在线,也可以在未来的某个时候,利用时空证明去验证在该段时间内旷工存储的数据。