基于BSV的存储证明
场景假设
Alice希望把自己的一个文件存储起来,Bob可以提供存储服务。所以Alice把文件给了Bob,但Alice并不信任Bob真的在帮她存储文件,所以Alice需要让Bob定期证明他正在保存完整的文件。只要Bob证明了他正在存储完整文件,那么Alice就会给Bob一些存储奖励。为了降低成本,Alice和Bob都不希望这个证明过程传输完整的文件。
解决方案
核心方案
Alice为了让Bob证明他存储了完整的文件,她需要给Bob提出一个问题,这个问题只有拥有完整文件才可以解答出来。所以上述场景的核心方案就是问题的构造:
- Alice生成一个随机key
- Alice使用HMAC算法计算HMAC(dataToBeSaved, key),并记录自己的计算结果,这个结果的数据量非常小,只有几十个字节。
- Alice把key告诉Bob,请Bob也进行同样的运算
- 如果Bob跟Alice的计算结果一样,那么说明Bob保存了完整的文件
Alice可以用BSV脚本描述这个问题:
OP_HASH160 <SHA256(HMAC(dataToBeSaved, key))> OP_EQUALVERIFY OP_RETURN <key>
OP_RETURN <key>
是Alice为了把计算HMAC的key暴露给Bob- 如果Bob有dataToBeSaved,那么他可以用key计算出HMAC(dataToBeSaved, key),把结算结果作为解锁信息,就可以让上述脚本执行成功。
完整过程
- Alice提前准备好一系列的随机key
- 对每个key都进行HMAC运算HMAC(dataToBeSaved, key),并保存key与运算结果
- Alice把待保存文件发给Bob
- Alice定期创建一个tx发给Bob,选择其中一个key生成output脚本(每个key只能用一次)
- Bob收到tx后,通过key和已保存的文件计算HMAC(dataToBeSaved, key)转走tx里的币,并以此证明他保存了完整文件。
引申
这里只是提到了一个非常简单的概念方案,用于启发读者灵感。真实的应用要比这个概念方案复杂得多,比如:
- Alice有很多文件要陆续存储和删除
- 如何方便地存储key和HMAC计算结果
- 引入多个存储服务商进行竞争
基于BSV的存储证明相关推荐
- 基于存储证明(Proof of storage)的Permacoin挖矿原理解析
过去的一周让人感觉五味杂陈,心力交瘁,工作非常忙,非常累,非常没有进展,时而芳香,时而谢特,本想着这周末什么也不干撸点没意义的事情度日呢,然而还是觉得把意义拆散来的可靠些.所以依旧很早爬起来总结一下过 ...
- JavaScript系列-----对象基于哈希存储(Key,Value之Key篇) (1)
1.Hash表的结构 首先,允许我们花一点时间来简单介绍hash表. 1.什么是hash表 hash表是一种二维结构,管理着一对对<Key,Value>这样的键值对,Hash表的结构如下图 ...
- 区块链存储证明和时空证明
proof of storage email:1650727278@qq.com 画笔 科学的本质是哲学.哲学的追求有一个极:永恒.有两个底:变和不变.这两个哲学思想,就好比九阳神功和太极剑.学会之后 ...
- BigData之MongoDB:MongoDB基于分布式文件存储数据库的简介、下载、案例应用之详细攻略
BigData之MongoDB:MongoDB基于分布式文件存储数据库的简介.下载.案例应用之详细攻略 目录 MongoDB的简介 1.MongoDB的主要功能特性 2.对MongoDB进行增删改查( ...
- MongoDB 一个基于分布式文件存储的数据库
简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. 特点 它的特点是高性能.易部署.易使用,存储数据非常方便.主要功能特性有: ...
- 基于SSD的存储IO优化解决方案
2019独角兽企业重金招聘Python工程师标准>>> 基于SSD的存储IO优化解决方案 我们一起走过的10年,还是曾经的硬盘,一成不变的开机速度,让人无法忍受的操作体验.I/O瓶颈 ...
- 基于 MinIO 对象存储框架的短视频点播平台设计
作者 | 中国农业银行 艾明浩 李云婷 出品 | CSDN(ID:CSDNnews) 短视频平台简介 以短视频点播为代表的流媒体技术应用在移动互联网时代实现了快速扩张.在互联网内容趋于多元化的今天,短 ...
- ceph查看卷_基于CEPH后端存储搭建Harbor
上一篇文章基于NFS后端存储搭建Harbor ,这一节来聊聊K8s与CEPH的对接以及基于CEPH Harbor的构建. 因为资源的问题,测试环境仍然是K8s的ALL-IN-ONE环境,CEPH集群通 ...
- 02_Pulsar的集群架构、架构基本介绍、Pulsar提供的组件介绍、Brokers介绍、Zookeeper的元数据存储、基于bookKeeper持久化存储、Pulsar代理
1.2. Apache Pulsar的集群架构 1.2.1.架构基本介绍 1.2.2.Apache Pulsar提供的组件介绍 1.2.2.1.Brokers介绍 1.2.2.2.Zookeeper的 ...
最新文章
- LSGO软件技术团队招新
- HDU 5385 The path(贪心、构造、最短路径树)
- 一篇文章,带你读懂人脸识别技术
- spark Bisecting k-means(二分K均值算法)
- 阿里的STORM——JSTORM
- 【渝粤教育】电大中专中药制剂学 (2)作业 题库
- day03:关于惯性导航工具箱的学习与使用:use of the progen
- clickhouse 的mysql表引擎
- jQuery Mobile中固定工具栏header、footer的data-*选项
- 樱花漫地集于我心,蝶舞纷飞祈愿相随---总结 适者:survival of the fittest 适者:survival of the fittest...
- Wine——在Linux上运行Windows软件
- 唯唯码 - ios/android的app下载地址合并为一个二维码
- C语言实战--解二元一次方程
- linux 设置unix格式化,linux格式化
- python解决八数码问题_A*算法实践——八数码问题
- MacOS为什么无法删除ABC或日语输入法
- RTD-Net:Relaxed Transformer Decoders for Direct Action Proposal Generation 论文阅读笔记
- 一篇基金研报--《外包服务:后安迪-比尔时代IT产业的大餐》
- 如何在WIN10/SERVER2016上安装MSSQL2000数据库
- java大文件md5快速计算_java 计算文件MD5值 大文件
热门文章
- 国培-甘肃定西市新任职校长培训班莅临湖南省智慧教育装备展示体验中心参观学习
- 天津商业大学java实验_天津商业大学生物技术与食品科学学院
- 有没有好的RFID仓库管理解决方案?RFID仓库管理系统就在新导智能
- 百度地图得引用 循环打印坐标
- “你说我是错的,那你最好证明你是对的”
- [转]ISO 4217 货币及基金代码
- harmonyos手机发布,HarmonyOS要来了!华为EMUI已改名 6月2日正式发布
- rsync+inotfy实时同步
- 加工中心G76,G87,G83,G84数控代码讲解
- 又一年秋。。。。。。