proof of storage

email:1650727278@qq.com 画笔

科学的本质是哲学。哲学的追求有一个极:永恒。有两个底:变和不变。这两个哲学思想,就好比九阳神功和太极剑。学会之后遇山开路,遇水化桥,千变万化无所不通。

基于存储空间的区块链的存储证明和时空证明的算法,也是基于变和不变。目前已经存在的pow 和 pos的算法确实很厉害,不过不影响我们用新的思维去考虑问题。
本文推荐的存储证明和时空证明算法具备以下特点:

  • 准确
  • 快速
  • 经济
  • 永久性不可攻破

有以下场景:

A节点有一个100M的文件file1.txt需要存储,付费给B节点,合同期为180天。A想知道B到底有没有存储这个文件,以及第180天合同到期之前,B是否一直保存了这个文件的全部内容。

方案1:

A节点在/root/dir1/路径下,存储了file1.txt.bak,B节点存储了/home/dir/file1.txt。访问文件时,A节点通过网络访问B节点/home/dir/file1.txt。为了防止B节点赖账,给一个假文件,
A节点将从B节点读取到的文件内容,拿去于A节点/root/dir1/file1.txt.bak对比,完全一致则A节点确定B确实存储了这个文件。合同期结束后,B节点将会收到A节点支付的10块钱(钱放在第三方)。

虽然解决了文件存储证明的问题,但是这种方式并不经济……

方案2:

A节点存储file1.txt.bak文件的一部分(比如每4096 byte,随机存储其中的任意位置4个字节),于是A节点上/root/dir1/file1.txt.json 文件存储的内容为:
{"node_id":"B_192.168.31.1:8000","filename":"file1.txt","contract Date of signing": "2019.8.13","contract deadline":"2020.2.13","contract price":"1.25 $","filesize":"100M","block_size":4096,"block_cnt":25600,"block_label": [{ "x":"value1"},{ "y":"value2"},{ "z":"value3"}]
}
B节点存储的文件还是/home/dir/file1.txt。由于A自始至终不将标签值告诉B节点json文件内容,B不敢给一个虚假的文件给A,否则就收不到A支付的费用。
B存储了全部100M文件,同时A只存储了100M文件里面每4096字节几个字节,由于信息不对称(A不给B提供任何访问json文件的接口)。所以这种方法是比较安全的。

方案2,解决了方案1的经济不划算问题,有一些小的隐患(A节点存储的内容太少,总有机会碰到B节点不是人为,而是磁盘分区损坏,B也不知道一块数据变了,但是整好A节点上那一个字节对上了,块里面其他地方的数据错了),不过A节点说还想再尝试一下其他的方案,A节点不想存储任何明文。

方案3:

类似于方案2,但是这次不存储任何明文了。默克尔树登场。先看下面一颗二叉树。

最底层存储文件内容的哈希,从左往右是文件的0 ~ 4k、4k ~ 8k、8k ~ 12k、12k ~ 16k的哈希,第二层深度是x5=sha256(string(sha256(block1)) + string(sha256(block2)))
x6=sha256(string(sha256(block3)) + string(sha256(block4)))
B节点存储文件/home/dir/file1.txt、/home/dir/file1.txt.merkeltree。A节点存储/root/dir1/file1.txt.merkeltree。A节点获取到B节点上某一个块时,从树叶计算到树根(方案3到树叶上一层即可),哈希值一致则ok。

方案3,可以100%的确保不被人为或意外变更,只能在A文件属主获取文件时验证,A作为客户端不可能一直在下检测文件。而区块链做随巡检,不可能每次都把文件通过网络获取过来,区块链的io是宝贵的,尽量节省。因此方案3也不是特别满意。

方案4:

正如我开篇第一句话讲的那样,技术问题本质是哲学问题,哲学为变和不变,哲学终极为永恒。哲学来源于生活,热爱生活,热爱自然完全有助于工作的提升。

蒹葭苍苍,白露为霜。所谓伊人,在水一方。溯洄从之,道阻且长。溯游从之,宛在水中央。
蒹葭萋萋,白露未晞。所谓伊人,在水之湄。溯洄从之,道阻且跻。溯游从之,宛在水中坻。

废话不多讲,直入正题。在方案4的基础上,节点A存储的不是默克尔树了,存储的是随机值。是原摩尔树每一个节点,与上一个随机数的哈希值。
区块链在存储文件给B的同时,构建默克尔树文件:
{"node_id":"B_192.168.31.1:8000","filename":"file1.txt","contract Date of signing": "2019.8.13","contract deadline":"2020.2.13","contract price":"1.25 $","filesize":"100M","block_size":4096,"block_cnt":25600,"hash_hash_list":[leaf1:["random_cursor":"1","hash(hash(block)+random1)":"random1","hash(hash(block)+random2)":"random2","hash(hash(block)+random3)":"random3","hash(hash(block)+random4)":"random4","hash(hash(block)+random5)":"random5","hash(hash(block)+random6)":"random6",],leaf2:["random_cursor":"6","hash(hash(block)+random1)":"random1","hash(hash(block)+random2)":"random2","hash(hash(block)+random3)":"random3","hash(hash(block)+random4)":"random4","hash(hash(block)+random5)":"random5","hash(hash(block)+random6)":"random6",],leaf3:["random_cursor":"4","hash(hash(block)+random1)":"random1","hash(hash(block)+random2)":"random2","hash(hash(block)+random3)":"random3","hash(hash(block)+random4)":"random4","hash(hash(block)+random5)":"random5","hash(hash(block)+random6)":"random6",],    leaf4:["random_cursor":"3","hash(hash(block)+random1)":"random1","hash(hash(block)+random2)":"random2","hash(hash(block)+random3)":"random3","hash(hash(block)+random4)":"random4","hash(hash(block)+random5)":"random5","hash(hash(block)+random6)":"random6",], ]
}
随机数,是区块链调用random()产生的,写入默克尔树。默克尔树节点存储的是下一层 hash(哈希+随机数): random,一次产生6个。B节点还是存储文件。
区块链巡检文件时,给出随机数数组[random_cursor]对应的随机数给B节点,B回传对应块+区块链指定随机数的哈希值。同时随机数组random_cursor++,当区块链巡检用到第四个随机数后,发出请求让B把块数据传回来。
区块链验证通过后,利用传回来的block内容,重新生成随机数数组。

实际编码时,根据巡检力度和合同期,可将6调整为15或者其他适合值。方案4我相对于方案3比较满意,可以作为区块链存储证明和时空证明的有效方法之一。

鲁迅说只要去挤一,总能挤出水分来。那么方案4没有问题吗? 问题是有的,单节点存储文件,就有磁盘损坏,节点挂掉,下线的风险。

方案5:

将文件切片成8M一个的文件,96M大小的文件,分片成12 + n个文件,对于不同的文件提供不同收费标准(纠删比例不一样)存储方式。文件切片丢失后,或部分节点下线后,
利用纠删码最大限度的提供文件io服务 或 文件恢复服务。

区块链存储证明和时空证明相关推荐

  1. YottaChain芝麻云服务器打造的区块链存储公链

    泛圈科技推出的YottaChain芝麻云节点服务器,是由中国十大青年科学家王东临带队打造的YottaChain存储公链. 在Yottachain存储设备的选择上,Yottachain项目团队从全国众多 ...

  2. 当SDS遇见BlockChain 之二:区块链存储为什么势在必行?(SDS的新赛道 - 暗流涌动的区块链存储)...

    这篇文章是我的原创文章,里面的观点有些是基于之前的认知,有些是根据公开的报告上的数字进行的逻辑推理.可能不够准确,欢迎大家留言.私信,或者在微信群里进行讨论.我也希望借此机会通过朋友们的反馈,来进一步 ...

  3. IPFS与区块链的关系 - BlockChain Storage 区块链存储 (2)

    经<IPFS原理与实践>主要作者董天一.戴嘉乐,以及华章出版社孙海亮老师的授权,在微信公众号"乐生活与爱IT"首发. 上一篇是<什么是IPFS - BlockCh ...

  4. 为什么叫区块链存储?兼谈IPFSFilecoin, Chia

    什么是区块链存储?可以从两个方面来理解: 1.为区块链应用提供数据服务的存储,包括了公链存储.联盟链存储. 在区块链存储还没有完善之前,私有云存储.公有云存储会在过渡期内,为区块链应用提供数据服务,但 ...

  5. 基于区块链的去中心化存储(区块链存储)的工作流程

    引入 个人电脑上存储有限,而且如果硬盘损坏数据丢失的话,也不容易恢复.因此很多人愿意把数据上传到云盘里,也就是云存储.但是云存储是服务提供商控制的,比如阿里云,百度云等,我们称为中心化的存储 ,人们对 ...

  6. 泛圈科技:Yottachain将开启区块链存储新时代

    11月5日,"2019第三届深圳区块链与分布式存储大会暨展览会"于4日在深圳隆重开幕后持续进行中.此次大会是由深圳市人民政府主办.深圳市金融办承办的金融行业盛会-- "2 ...

  7. Yottachain泛圈芝麻云服务器专业级区块链存储技术万众瞩目

    2019年5月份,由珠海市泛圈网络科技有限公司在与YottaChain联合主办的珠海站超级节点大会上,正式发布了自主研发的专注于加密数据存储YottaChain的专业服务器"芝麻云节点&qu ...

  8. Yottachain区块链存储泛圈科技芝麻云节点服务器共同肩负数据存储生态

    Yottachain区块链存储泛圈科技芝麻云节点服务器共同肩负数据存储生态 YottaChain自2018年8月创建起,就在全球范围内开展生态布局.截止目前,YottaChain已有21个全球主超级节 ...

  9. 区块链存储进入Gartner技术成熟度曲线 | Gartner发布2019年十大战略性技术趋势

    [编者Peter Ye按] 本篇文章讲述了两件不同的事情. 一. 2018年7月25日,Gartner发布的<Hype Cycle for Blockchain Technologies, 20 ...

最新文章

  1. C++中的类属(泛型)机制——模板
  2. Android stadio 关联源码
  3. 网站排名不稳定要从多方面进行分析
  4. matlab optimization terminated,求助Optimization terminated. 的问题
  5. 根据经纬度计算范围_地理计算专题(上)
  6. php bin2hex(),PHP bin2hex() 函数 pack() 函数
  7. Facebook哭晕在厕所,调查显示用VR体验社交的用户仅为19%
  8. php中在网页中显示图片代码,用PHP将网页上的Canvas图像保存到服务器上的方法
  9. linux清除硬盘,linux下清除硬盘的几种方法
  10. Android组件化demo实现以及遇坑分享
  11. 主题:web.config中AppSettings和ConnectionStrings的区别
  12. Cgroup框架分析
  13. 树莓派教程 : 树莓派各版本引脚定义
  14. android 滚动条 惯性,Android ScrollView取消惯性滚动的方法
  15. turicreate 视频_iOS 推出的turiCreate功能(一) 图片识别
  16. 在Windows10系统中同步Internet 时间
  17. 求最小公倍数c语言最简公式,C语言求最小公倍数和最大公约数三种算法(经典)...
  18. Cocos2d之Box2d基础知识
  19. 百度经纬度和google经纬度转换测试
  20. php集成Stripe支付,海外支付stripe对接支付

热门文章

  1. Swift - QQ讨论组头像的实现 (多人聊天的组合头像)
  2. 淘宝兼职刷信誉之骗局解密
  3. oracle文件存储方式,oracle文件存储介质介绍
  4. 全城热8|造节营销,平安信用卡何以“出圈”
  5. android 电子菜谱,电子菜谱 E-menu(单机版)
  6. gMIS吉密斯十年执念:Lower Costs较低成本Better Productivity较高效率
  7. Excel中OFFSET函数(一)——“实现矩阵转置”
  8. 船载雷达天线滑环的使用
  9. wifi 联想小新_联想小新连不上无线网
  10. 新晋总监生存指南三——OKR实践