在比特币上使用可检索性证明支付存储费用

2023-09-20 13:40:21

我们为用户开发了一种为云存储付费的新方法。 与亚马逊的 S3 等传统云存储相比,用户不必信任服务器。 我们使用比特币智能合约来确保支付取决于服务器的可检索性证明 (PoR),该证明只能在数据仍然可用且需要时可以检索的情况下生成。

可检索性证明 (PoR)

许多人通过将他们的数据(如音乐、照片和文档)上传到远程服务器来外包存储,以确保可靠性和从许多设备(包括手机和笔记本电脑)轻松访问。

这些用户受其存储提供商的摆布,必须信任服务器。 如果很少访问数据,恶意服务器可能会丢弃数据以节省资源,或者掩盖数据丢失事故以保护自己的声誉。

PoR 方案是一种加密协议,允许用户或第三方(如审计员)验证服务器是否存储了他的数据。这种审计能力使用户放心,他的数据仍在存储中。 这对于像不知名的初创公司这样的存储提供商来说也可能至关重要,因为用户可能不愿意将他们的数据委托给初创公司。

使用 PoR 支付存储费用

朴素的 PoR 是用户简单地请求服务器下载所有数据并验证真实性。 然而,当存储的数据很大时,这是非常低效的。

Shacham/Waters PoR 方案¹ 是客户端和服务器之间的高效审计协议。 通过审核的服务器必须知道所有客户端数据。 它也是可公开验证的,这是我们在智能合约中验证证明时所需要的。

文件首先使用Erasure code(一种纠错码)进行编码,即使服务器丢失了文件的一小部分,也可以恢复。 编码的文件被分成n个块。 为每个块计算一个标签(也称为验证器),其中包含其元信息并且是有效验证所必需的。 块及其标签都被发送到服务器进行存储。

为了测试服务器是否还有文件,用户在挑战中随机选择一组块。 服务器收到质询后,需要发回一个响应,由用户验证。

PORs:大文件的可检索性证明

形式上,Shacham/Waters PoR 由三个步骤组成。

我们需要区块链设置中的非交互式协议,其中用户/验证者和服务器/证明者不必来回通信。在第 1 步中,我们让证明者(在本例中为服务器)自己生成挑战。 为确保公正的挑战,我们需要可公开追踪且不可控制的随机源,例如最新的 blockhash³。 在步骤 2 中,服务器根据步骤 1 中的挑战生成链下 PoR。在步骤 3 中,智能合约验证 PoR。 验证需要椭圆曲线算法线性配对,两者都已实现。

用户部署智能合约,只有在提供有效的 PoR 时才会释放资金。 服务器只有在他可以提交有效的 PoR 时才能获得报酬,只有在他仍在存储用户文件的情况下他才能生成该 PoR。

定期付款

我们可以通过在顶部添加定期付款来将一次性付款扩展为订阅,以便定期支付服务器固定金额。

支付渠道

如果用户和服务器可以定期交互,他们也可以通过开通支付通道来实现循环支付。 用户每月向服务器发出挑战。 服务器以 PoR 响应。 在验证 PoR 后,用户通过增加服务器的通道余额来发送他的每月付款。 当存储订阅到期时,任何一方都可以关闭通道。


[1] H Shacham 2008 的可检索性紧凑证明

[2] 最多丢失多少取决于纠错率。

[3] 只要付款少于区块奖励,这是安全的。

更多推荐

测试用例设计底层逻辑

【软件测试行业现状】2023年了你还敢学软件测试?未来已寄..测试人该何去何从?【自动化测试、测试开发、性能测试】测试用例是每位测试人员都绕不开的话题,也是大家习以为常的事情。几乎所有测试相关的公众号、博客、专栏,都会提及测试用例,由此可见它的重要性。但是,有许多从业者,对测试用例的设计仍然依靠经验积累,即使知道用例要

持安科技孙维伯:零信任理念下的实战攻防:ISC2023数字小镇演讲

近日,在ISC2023第十一届互联网安全大会上,持安科技联合创始人孙维伯作为零信任办公安全赛道代表,亮相数字小镇New50,并发表《全方位防御:零信任理念下的实战攻防》主题演讲。以下是本次演讲实录:这几年,网络安全已经从监管合规趋向于实战化,网络诈骗、黑产越发猖獗,企业面临的安全挑战愈加严峻。在实战攻防的场景下,攻防双

Nginx 服务器 SSL 证书安装部署

操作场景本文档指导您如何在Nginx服务器中安装SSL证书。说明本文档以证书名称xxx为例。Nginx版本以nginx/1.18.0为例。当前服务器的操作系统为CentOS7,由于操作系统的版本不同,详细操作步骤略有区别。安装SSL证书前,请您在Nginx服务器上开启HTTPS默认端口443,避免证书安装后无法启用HT

2、从“键鼠套装”到“全键盘游戏化”审核

1、风行内容仓的增效之路-前言内容仓成立初期,安全审核组是规模最大的小组,占到部门人数的半壁江山,因此增效工作首先就从安全审核开始。早期安全审核每天的达标值在800条左右,每天的总审核量不到1万,距离业务部门期望的数量差距较大。我找到相关同事,讨论如何提高每天的审核产出,同事反馈说,感觉没有什么方法,部门内部已经做过测

孙宇晨出席米尔肯研究院亚洲峰会:持续推动行业破圈 亚洲将成重要加密中心

9月14日,波场TRON创始人、火币HTX全球顾问委员会成员孙宇晨受邀出席2023米尔肯研究院亚洲峰会(2023MilkenInstituteAsiaSummit),与前美国驻新加坡大使、WagarGlobalAdvisors咨询公司主席KirkWagar就加密行业未来趋势相关问题进行了深度对话。孙宇晨在对谈中表示,稳

DETR 系列 Mask Frozen-DETR: High Quality Instance Segmentation with One GPU 论文阅读笔记

DETR系列MaskFrozen-DETR:HighQualityInstanceSegmentationwithOneGPU论文阅读笔记一、Abstract二、引言三、相关工作目标检测实例分割讨论四、本文的方法4.1Baseline设置结果实验设置4.2图像特征编码器DeformableencoderblockSwi

AI实战营第二期 第九节 《底层视觉与MMEditing》——笔记10

文章目录AI实战营第二期第九节《底层视觉与MMEditing》什么是超分辨率图像分辨率的目标应用方向超分的类型单图超分的解决思路深度学习时代的超分辨率算法SRCNNFastSRCNNSRResNet感知损失VS.均方误差均方误差感知损失对抗生成网络GAN应用于超分辨率如何学习生成器网络对抗训练GAN优化目标DCGANS

基于SpringBoot+Vue的餐饮管理系统设计与实现

前言💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗👇🏻精彩专栏推荐订阅👇🏻2023-2024年最值得选的微信小程序毕业设计选题大全:100个热门选

Spring Cloud 负载平衡的意义什么?

目录一、什么是负载平衡二、为什么需要负载平衡三、SpringCloud如何实现负载平衡四、负载平衡的nginx配置一、什么是负载平衡负载平衡是指将网络流量在多个服务器之间分布,以达到提高系统性能、增强可靠性和提供更好用户体验的目的。在负载平衡的架构中,多个服务器被组织成一个集群,共同处理用户的请求。负载平衡的主要作用有

Hive的基本SQL操作(DDL篇)

目录​编辑一、数据库的基本操作1.1展示所有数据库1.2切换数据库1.3创建数据库1.4删除数据库1.5显示数据库信息1.5.1显示数据库信息1.5.2显示数据库详情二、数据库表的基本操作2.1创建表的操作2.1.1创建普通hive表(不包含行定义格式)2.1.2创建自定义行格式的hive表2.1.3创建默认分隔符的h

FPGA原理与结构(16)——时钟IP核的使用与测试

系列文章目录:FPGA原理与结构(0)——目录与传送门一、前言本文介绍xilinx的时钟IP核ClockingWizardv6.0的具体使用与测试过程,在学习一个IP核的使用之前,首先需要对于IP核的具体参数和原理有一个基本的了解,具体可以参考:FPGA原理与结构——时钟IP核原理学习https://blog.csdn

热文推荐