如何理解Filecoin的复制证明和时空证明
Filecoin是一个分布式存储网络,作为数据存储网络,最重要的是数据的安全性和稳定性。为了确保数据的稳定和安全性,协议实验室采用复制证明和时空证明来解决这一问题。
整个挖矿过程中,首先由矿工抢单,将需要存储的文件下载完成后密封保存文件,向Filecoin第一次提交复制的文件证明和时空证明。并向Filecoin网络提交投票,只有投到自己才能出块。如果本轮没中,后续仍可以继续提交时空证明获取出块权。
提高自己的有效存储获得更多的出块权,即帮助客户保存文件,提升全网算力占比,即提高自己全网有效存储占比。
想要获取出块权,必须有存储数据、提交了复制证明和时空证明三个步骤才可以获得参与出块权,但并不意味着获取了出块权。而只有获取出块权才能获取出块奖励。所以那些算力排名靠前的节点,但却没有出块奖励的现象。
在Filecoin网络中,复制证明和时空证明是非常必要的,复制证明的目的是为了想系统证明矿工确实存储了用户所需的数据。矿工只有将数据封存在扇区中的生成复制证明并压缩上链才能获得有效算力。
时空证明则是向系统证明矿工不仅存储了用户的数据,而且在该时间段内一直存储了用户的数据。该证明是连续不断的,时空证明是向矿工发出加密挑战的过程,而且矿工必须在严格时间内完成挑战,否则会受到Filecoin的惩罚。
在Filecoin网络中,时空证明采用WindowPoSt审核机制,矿工必须为每个扇区提交时空证明,,这需要随时访问每个受挑战的扇区,并将零知识证明压缩的证据作为消息以块形式发布到区块链。因此,在每个24小时内至少对矿工创建承诺容量的扇区进行一次检查,并保留一份永久的、可验证的记录,以证明每个存储矿工的持续承诺。
此外,Filecoin项目还采用了Expected Consensus预期共识机制。最新机制是每一轮选举出5名矿工创建新的区块,矿工被选中的概率与其有效存储成比例,然后根据矿工的贡献获得奖励。
时空证明和复制证明对整个Filecoin网络是非常重要的。两套机制确保了矿工在特定的时间段内有效存储了用户的数据,确保了整个网络有效、有序运行。
Filecoin是一个基于区块链技术的分布式存储网络,它采用了一种名为“Proof of Replication”(复制证明)和“Proof of Spacetime”(时空证明)的机制来保证存储数据的安全性和可靠性。
复制证明是指,Filecoin网络将数据副本复制到多个存储节点中,并通过密封和验证等技术保证每个副本的唯一性和完整性。当客户端上传数据时,Filecoin会将数据分割成多个文件块,并将每个文件块副本存储到不同的存储节点中。存储节点必须在一定的时间内将数据块密封,并提交证明证明其已经复制了数据,这个过程需要消耗大量的存储和计算资源。Filecoin网络会不断监测每个存储节点的存储情况,以保证数据的可靠性和安全性。
时空证明是指,Filecoin网络将存储空间和时间作为节点参与网络的证明。存储节点必须向网络证明它们实际上存储了客户端上传的数据,并在一定时间内保持存储。为了证明这一点,存储节点必须提交存储证明和时空证明。存储证明是节点证明其已经复制了数据,并将其存储到了可靠的位置,时空证明则是节点证明它已经在一段时间内持续存储了数据,同时还需提供相关的时间戳信息。这些证明可以有效地保证存储节点的可靠性和数据的安全性。
综上所述,Filecoin的复制证明和时空证明机制可以有效地保证数据的安全性和可靠性,并鼓励存储节点积极参与网络,同时也为数据上传者提供了可信的存储服务。
Filecoin项目主要有三个组成部分:1、去中心化存储网络DSN;2、复制证明PoRep;3、构建两个可验证市场——存储市场和检索市场。本篇文章主要为大家科普Filecoin协议里面的复制证明(Proof of Replication)。
在Filecoin协议中,存储服务商要让客户相信,他们所付费的数据已经被存储,存储服务商主要通过生成“复制证明”(PoRep)和“时空证明”(PoST),给区块链网络或者客户来验证存储的真实性。我们说的复制证明和时空证明,就是来实现这一验证功能的基础算法。
● 复制证明的原理
复制证明(PoRep),证明数据的一个单独的拷贝已经在一个特定的扇区内创建成功。复制证明由封印(Seal)操作完成,封印操作创建一份数据的拷贝,并产生相应的复制证明。这是一种新型的存储证明方案,它能够让存储矿工说服用户和其他矿工,表明数据已经被复制到了它的矿机上。
复制证明也是一种交互式协议。当证明人P:(a)承诺存储某数据D的n个不同的副本(独立物理副本),然后(b)通过响应协议来说服验证者V,表明P确实已经存储了每个副本,这是复制证明的简化步骤。
复制证明原理
复制证明必须能够防范以下三种常见的攻击方式:女巫攻击,外源攻击和生成攻击,他们的共同特点是攻击矿工实际存储的数据大小要比声称存储的数据小,这样攻击矿工就能获得本不该他获得的报酬。
女巫攻击(Sybil Attack):利用n个身份,承诺存储n份数据D,而实际上存储小于n份(比如1份),但是却提供了n份存储证明,攻击成功。
外部数据源攻击(Outsourcing Attack):当攻击者矿工收到检验者要求提供数据D的证明的时候,攻击者矿工从别的矿工那里生成证明,证明自己一直存储了数据D,而实际上没有存储,攻击成功。
生成攻击(Generation Attack):攻击者A可以使用某种方式生成数据D,当检验者验证的时候,攻击者A就可以重新生成数据D来完成存储证明,攻击成功。
Filecoin
Filecoin协议采用一种叫做 RepGame 的游戏来一起解决这三种攻击方式,PoRes还在此基础上引入了时限性(Time Bounded),复制证明PoRes协议的实现可能有很多种方式,不管哪种实现方式都必须能够防止上面的三中攻击方式,并且要能够通过RepGame游戏的测试。
● 时空证明的原理
如何确保矿工能够老老实实的在一定时间内真实存储数据呢?那么就需要时空证明来配合了。它证明一定数量的已封印的扇区,在一定的时间范围内存在于指定的存储空间之中 ——而不是证明者临时生成的数据(这被视为攻击)。
时空证明可以理解为持续的复制证明,即矿工必须不断的生成证明,并在一个提交周期内提交存储证明,如果存储服务商没有在提交周期内连续及时提交证明,会被系统扣除部分代币。
证明
生成时空证明的过程跟复制证明非常相似,只是时空证明的输入是以上一生成的证明做为输入参数,这样能保证证明生成的连续性,PoSt可以证明在该段时间内矿工存储了特定的数据,并且利用时间戳锚定这些证明链,这样即使验证者(verifier)不在线,也能够在将来去验证矿工在该段时间内生成了证明链,PoSt会被提交到链上用来产生新的区块。
复制证明的原理
复制证明(PoRep),证明数据的一个单独的拷贝已经在一个特定的扇区内创建成功。复制证明由封印(Seal)操作完成,封印操作创建一份数据的拷贝,并产生相应的复制证明。这是一种新型的存储证明方案,它能够让存储矿工说服用户和其他矿工,表明数据已经被复制到了它的矿机上。
时空证明的原理
如何确保矿工能够老老实实的在一定时间内真实存储数据呢?那么就需要时空证明来配合了。它证明一定数量的已封印的扇区,在一定的时间范围内存在于指定的存储空间之中 ——而不是证明者临时生成的数据(这被视为攻击)。
时空证明可以理解为持续的复制证明,即矿工必须不断的生成证明,并在一个提交周期内提交存储证明,如果存储服务商没有在提交周期内连续及时提交证明,会被系统扣除部分代币。
简单理解的话就跟我们农村做是记账一样,张三什么时候,上了几天工,请了几天假,这个是时间证明,复制证明呢就是一个工程,是张三一个人做的,还是几个人做的,有哪些人看到了,都记录下来,以后爆块的时候,怕争不清,是你得就是你得