这篇文章主要来讲一下Filecoin协议里面的复制证明(Proof of Replication),由于协议涉及到很多概念,可能看起来有点晕乎乎的,小编尽量把复杂问题简单化 ,力求给大家做大普及IPFS知识

概念:

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

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

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下一篇论文。


本专栏的微信公众号IPFS指南(ipfs_guide),致力于IPFS的知识的普及,如果你对IFPS、Filecoin,挖矿感兴趣,敬请关注!

本专栏的文章允许转载,但请注明:原文来自于知乎专栏:IPFS指南(IPFS指南)作者:飞向未来

IPFS:Filecoin和复制证明相关推荐

  1. 怎么证明建立了存储过程_【Filecoin源码仓库全解析】第七章:了解PoRep与PoSt并参与复制证明游戏

    欢迎大家来到第七章,经过前章<[Filecoin源码仓库全解析]第六章:如何单机部署多节点集群及矿池设计思路>的介绍,我们分享了如何在单机部署多节点集群的知识以及矿池设计的一些思路. 我们 ...

  2. 【董天一】IPFSFilecoin和复制证明

    作者简介:董天一 ,IPFS/Filecoin中国区技术布道人 ,<IPFS指南>作者. 毕业于北京大学软件与微电子学院曾担任甲骨文亚洲研发中心(中国)数据库开发工程师. 资深区块链技术开 ...

  3. 什么是分布式存储?(IPFS, FileCoin, Sia, Storj Swarm)

    在Filecoin ICO后,分布式存储让我着迷了一段时间,Filecoin在Y Combinator.Naval Ravikant.Andreessen Horowitz.Union Square ...

  4. IPFS/Filecoin发展的风向标,是否能再创币圈的奇迹???!

    顺境的时候,多一份思考:逆境的时候,多一份勇气:成功的时候,多一份淡然:迷茫的时候,多一份信念.本人愿意做您投资的益友,有任何问题都可以找我,本人将竭尽全力协助! 如今,随着上市公司年报披露的结束,& ...

  5. hive币2021年预计涨到多少_星时代云播|IPFS/Filecoin的价值被严重低估, FIL能不能涨到300美金?...

    原标题:星时代云播|IPFS/Filecoin的价值被严重低估, FIL能不能涨到300美金? FIL FIL币价真的能如预期的一样,未来币价破千上万吗? Filecoin的价格是投资者担心的问题,因 ...

  6. 至联云讲解《IPFS/Filecoin上线后会涨的八大理由》

    有人说Filecoin将成为"下一代比特币",造就财富神话! 我们先不说Filecoin会不会成为下一个比特币,但是Filecoin可以说是,目前唯一一个具有真正意义上的应用落地的 ...

  7. filecoin矿机_萤火虫区块链-上海|南京|杭州|苏州萤火虫ipfs|filecoin矿机-奥古斯都分布式存储...

    奥古斯都是一家专注于IPFS星际文件系统与Filecoin分布式数据存储技术研发与推广.大数据中心建设.大数据中心管理的服务商,核心团队成员拥有超过十年的存储行业经验,为客户提供更全面.更优质.更专业 ...

  8. 至联云IPFS/Filecoin同样具有合法性

    今年5月,上海市第一中级人民法院公开宣判一起比特币涉外财产损害赔偿纠纷上诉案.二审认定比特币属于网络虚拟财产,应从法律上予以保护. 本案主审法官指出,中国人民银行等部委曾发布<关于防范比特币风险 ...

  9. NKN WEB3.0网络峰会精彩片段回顾:特邀嘉宾IPFS/Filecoin

    NKN于6月主办的Web3.0研讨会的所有与会嘉宾企业都已经成功实现了网络与区块链系统跨越式的连接解决方案,作为Web3.0未来蓝图的最重要的拼图之一,来自IPFS项目首席研究员兼Filecoin项目 ...

最新文章

  1. 【Android】SlidingMenu属性详解
  2. JS 实现图片的预加载(转载)
  3. 快速入门cocos2d-x jsbinding
  4. 转载:缓存 Cache
  5. 清晰易懂的马尔科夫链原理介绍
  6. window7下nginx配置文件详解
  7. dma接收双缓存 stm32_「STM32学习笔记」USART 新特性
  8. 华为oj题目c语言,华为OJ机试题目——24点游戏算法
  9. android 将图片路径转二进制,将图像转换为二进制图像中的android
  10. MRC522(1):卡片ID号的读写
  11. MY-SQL常用命令
  12. powerdesigner错误提示实体属性名称唯一性_SolidWorks用保存实体创建新零件与装配体...
  13. [BZOJ4897][Thu Summer Camp2016]成绩单
  14. 拓端tecdat|R语言如何和何时使用glmnet岭回归
  15. eclipse汉化-设置语言包
  16. 身份证号码15位转18位
  17. Typora安装教程
  18. 传说中的100句子记忆7000单词(51-100句)
  19. 浅析Simpson算法
  20. dynamo for Civil 3d-在横断面上生成对应桩号的平面坐标

热门文章

  1. MYSQL查询语句优化
  2. Hadoop视频教程6折 低达4.5折
  3. Eclipse设置字体大小等!
  4. getAttribute方法在IE6/7下获取href/src属性值的问题
  5. python中调用c库
  6. 详解HTTP与HTTPS
  7. C++读取txt中数据的两种方法
  8. leetcode_zigzag conversion
  9. [云炬创业管理笔记]第二章测试6
  10. [云炬创业基础笔记]第五章创业机会评估测试6