【董天一】IPFSFilecoin和复制证实

做者简介:董天一 ,IPFS/Filecoin中国区技术布道人 ,《IPFS指南》做者。

毕业于北京大学软件与微电子学院曾担任甲骨文亚洲研发中心(中国)数据库开发工程师。数据库

资深区块链技术开发者,现致力于IPFS/Filecoin在中国的技术推广IPFS的竞争对手。安全

这篇文章主要来说一下Filecoin协议里面的复制证实(Proof of Replication),因为协议涉及到不少概念,可能看起来有点晕乎乎的,小编尽可能把复杂问题简单化 ,力求给你们作大普及IPFS知识。网络

![pic1]()

概念:

  • 挑战(challenge):系统对矿工发起提问,多是一个问题或者一系列问题,矿工正确的答复,则挑战成功,不然失败
  • 证实者(prover):矿工向Filecoin系统提供有效的证实,来完成挑战(challenge)
  • 检验者(verifier):系统表明用户向矿工发起挑战(challenge),来检测是否矿工完成了数据存储任务
  • 数据(data):用户向矿工提交的须要存储或者矿工已经存储的数据
  • 证实(proof):矿工完成挑战(challenge)时候的回答

流程:系统(verifier)向矿工(prover)发起挑(challenge),矿工答复证实(proof),系统检验矿工的答复以判断矿工是否经过本次挑战(challenge)。session

Filecoin涉及到的证实概念:

  • 数据持有性证实(Provable Data Possession ,PDP):用户发送数据给矿工进行存储,矿工证实数据已经被本身存储,用户能够重复检查矿工是否还在存储本身的数据
  • 可检索证实(Proof-of-Retrievability,PoRet):和PDP过程比较相似,证实矿工存储的数据是能够用来查询的
  • 存储证实(Proof-of-Storage ,PoS):利用存储空间进行的证实。工做量证实的一种,Filecoin上一篇论文使用了这个名字,新的论文则升级为PoRep
  • 复制证实(Proof-of-Replication,PoRep):新的 PoS(Proof-of-Storage),PoRep能够保证每份数据的存储都是独立的,能够防止女巫攻击,外源攻击和生成攻击
  • 工做量证实(Proof-of-Work,PoW):证实者向检验者证实本身花费了必定的资源,PoW被用在加密货币,拜占庭共识和其余各类区块链系统。BTC使用的就是这种类型的证实,依赖巨量的哈希计算和能源消耗来创建共识和保证btc网络的安全性
  • 空间证实(Proof-of-Space,PoSpace):Filecoin提出的概念,存储量的证实,PoSpace是PoW的一种,不一样的是PoW使用的计算资源,而PoSpace使用的是存储资源
  • 时空证实(Proof-of-Spacetime,PoSt):时空证实,矿工证实本身花费了spacetime资源, 即:必定时间内的存储空间的使用,PoSt是基于PoReps实现的
  • 复制证实(Proof of Replication,PoRep):PoRep 是PoS的进化版:用来证实 数据(data)已经被矿工存储

为何要搞这么复杂?

区块链里面任何精巧的系统都须要精心设计(好比BTC),让系统可以本身一直运行下去,搞这么复杂目的不外乎下面两个:数据结构

  • 保证矿工可以老老实实的帮助用户存储数据
  • 公平的分配代币

复制证实:Proofs-of-Replication

PoRep必须可以防范如下三种常见的攻击方式:女巫攻击,外源攻击和生成攻击,他们的共同特色是攻击矿工实际存储的数据大小要比声称存储的数据小,这样攻击矿工就能得到本不应他得到的报酬。区块链

  • 女巫攻击(Sybil Attack):利用n个身份,承诺存储n份数据D,而实际上存储小于n份(好比1份),可是却提供了n份存储证实,攻击成功
  • 外部数据源攻击(Outsourcing Attack):当攻击者矿工收到检验者要求提供数据D的证实的时候,攻击者矿工从别的矿工那里生成证实,证实本身一直存储了数据D,而实际上没有存储,攻击成功
  • 生成攻击(Generation Attack):攻击者A可使用某种方式生成数据D,当检验者验证的时候,攻击者A就能够从新生成数据D来完成存储证实,攻击成功

防范生成攻击比较困难,全部的PoS协议都会遇到这样的问题,如何保证矿工真正的存储了这些数据,目前这仍是个待解决的问题,PoRep须要解决这个问题,Filecoin协议采用一种叫作 RepGame 的游戏来一块儿解决这三种攻击方式,PoRes还在此基础上引入了时限性(Time Bounded),PoRes协议的实现可能有不少种方式,无论哪一种实现方式都必须可以防止上面的三中攻击方式,而且要可以经过RepGame游戏的测试。测试

时空证实:Proofs-of-Spacetime

时空证实提出了证实链(proof-chain)的数据结构,证实链把一些的提问(challenge)和证实(proof)连接起来造成。在证实链的基础上添加上时间段,这样就获得了一段时间内的矿工存储数据的证实,这就是时空证实(Proof of Spacetime,PoSt),PoSt能够证实在该段时间内矿工存储了特定的数据,而且利用时间戳锚定这些证实链,这样即便验证者(verifier)不在线,也可以在未来去验证矿工在该段时间内生成了证实链,PoSt会被提交到链上用来产生新的Block。加密

PS: time-bounded Proof-of-Replication 和 Proofs-of-Spacetime的可实现结构目前Filecoin团队尚未给出来具体的细节,期待Filecoin下一篇论文。spa


相关文章和视频推荐

[【董天一】关于IPFS的热门问题]()设计

圆方圆学院聚集大批区块链名师,打造精品的区块链技术课程。在各大平台都长期有优质免费公开课,欢迎报名收看。

公开课地址:https://ke.qq.com/course/345101

相关文章
相关标签/搜索