IPFS核心:为什么需要复制证明和时空证明?

2020-08-07 16:14:44

那么IPFS为什么需要复制证明和时空证明呢?这就要从整个IPFS的工作流程说起。

  IPFS是一项伟大的技术,它将在未来颠覆HTTP通信协议,构建更加安全、高效、的网络传输及存储系统。在对IPFS学习的过程中,我们了解到,复制证明和时空证明这两个术语是IPFS系统的核心,也是IPFS系统中挖矿的关键点。


IPFS


  那么IPFS为什么需要复制证明和时空证明呢?这就要从整个IPFS的工作流程说起。当用户向IPFS系统提出一个请求要下载某个文件时,系统要完成客户的请求必须办到两件事:

  1要保证系统确实存储了用户需要的文件

  2要保证客户要求的文件一直存储在系统中

  由于系统中提供服务的是矿工,所以实际上这就是要求矿工必须做到上面两件事。系统为了保证矿工做到上面两件事,就会向矿工不断地发起挑战,这个挑战就是要求矿工提供一系列证明。


  最简单的证明是“空间证明(Proof of Space,简称PoSpace)“,证明系统确实有相应的空间能够存储客户的数据。

  但是仅仅有空间证明还不够,系统还需要证明这些空间里确实存储了用户所需要的数据。这是为了防止作恶节点随意将一些无意义的信息存储在空间中骗取系统奖励。

  当用户提出下载文件的请求时,系统还要能向客户提交这个存储数据的证明。这个证明就是“数据持有性证明(Provable Data PoSsession,简称PDP)“。

  除了提供这个证明外,系统还要提供一个证明,告诉用户,他所需要的文件是可以被检索和查询的,否则用户需要的数据无法被检索,则系统存储了数据也没用。这个证明被称为是“可检索证明(Proof of Retrievability,简称PoRet)“。


复制证明时空证明


  说到这里,我们要讲解一下系统中作恶节点可能使用的用来骗取系统奖励的招数:

  第一个招数就是女巫攻击。

  在IPFS中,一个文件是要保存多个备份的,而这多个备份每一个都会保存在不同的节点上,也就是每个节点都要保存一个备份。

  所谓的女巫攻击就是一个坏节点假冒成多个节点在系统中运作,但是这多个节点中除了这个坏节点自身存储了一份数据以外,其它假冒的节点并没有存储相应的数据备份,但系统误以为那些假冒的节点也存储了相应的数据备份而照样给他们奖励。


  第二个招数就是外源攻击。

  所谓的外源攻击就是当用户发起下载文件的请求时,系统中某些节点根本就没有存储相关的数据或者存储数据时间不够长等却想骗取系统的奖励,于是向某些外部资源发出请求给出一份所谓的证明,骗取系统的奖励。

  为了应付这两种欺骗行为,IPFS系统在“数据持有性证明“和”可检索证明“上加上了更加严格的要求,要求每一个节点必须提供证明,证明自己单独存储了用户所需要的数据。

  这就是”复制证明(Proof of Replication,简称PoRep)“,有了这个证明做强制要求,女巫攻击中假冒的节点也必须提供自己的证明,否则它也无法骗取奖励。

  除了“复制证明“,系统还加上了更严格的时间需要,也就是不仅要求节点拿出了空间存储数据,还要保证在一定时间内一直都存储了这个数据。


  这个证明就是”时空证明(Proof of Spacetime,简称PoSt)“,有了这个证明做强制要求,节点即便临时拿到外源提供的证明,也无法保证在一段时间内这个证明都存储了用户的数据。

  从这个过程,我们可以看出,整个系统中,从“空间证明“,到”数据持有性证明“,”可检索证明“,到”复制证明“,”时空证明“这是个层层递进,越来越严格的要求。

  通过要求的一步步严格,使得系统能够防范各种攻击和欺诈,得以良性运行。在这个层层递进的证明系统中,”复制证明“和”时空证明“就是最关键的两个因素也是最强大的两个证明


最新推荐