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

我们为用户开发了一种为云存储付费的新方法。 与亚马逊的 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] 只要付款少于区块奖励,这是安全的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/143463.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

C/C++学习路线总结与分享

目录 1、学习C语言 2、学习C 3、了解基础的网络知识 4、Linux相关知识 5、数据库知识 6、数据结构与算法 7、需要重点关注的编程技术 7.1、socket网络编程 7.2、多线程与多线程编程 7.3、多进程及多进程通信 7.4、动态链接库编程 7.5、数据库编程 7.6、设计模式 …

Super Marker插件——标记资源,提高效率

插件介绍: 这是一款可以给资源添加颜色或图标标记📌的插件,当资源文件比较多的时候,颜色标记可以让你一眼定位到要使用的资源,提高开发效率。 插件地址: Cocos商店:https://store.cocos.com/a…

机器学习,深度学习

一 、Numpy 1.1 安装numpy 2.2 Numpy操作数组 jupyter扩展插件(用于显示目录) 1、pip install jupyter_contrib_nbextensions -i https://pypi.tuna.tsinghua.edu.cn/simple 2、pip install jupyter_nbextensions_configurator -i https://pypi.tuna.t…

c#:System.Text.Json 的使用三(从Newtonsoft迁移)

环境: .net 6.0vs2022 系列篇: 《c#:System.Text.Json 的使用一》 《c#:System.Text.Json 的使用二》 《c#:System.Text.Json 的使用三(从Newtonsoft迁移)》 参考: 《MSDN: 从 Newt…

Kafka 常见问题

文章目录 kafka 如何确保消息的可靠性传输Kafka 高性能的体现利用Partition实现并行处理利用PageCache 如何提高 Kafka 性能调整内核参数来优化IO性能减少网络开销批处理数据压缩降低网络负载高效的序列化方式 kafka 如何确保消息的可靠性传输 消费端弄丢了数据 唯一可能导致…

python抓取网页视频

1. 喜马拉雅音频 1-1 喜马拉雅 import requests import json import time import random import hashliburl https://www.ximalaya.com/revision/play/v1/audio?id46103875&ptype1headers { user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.3…

小黑下班品尝网红团结湖四川麻辣烫,吃的特别撑,支付宝抽到3元红包,耳机找到,开始接触强化学习的leetcode之旅:LCR 188. 买卖芯片的最佳时机

小黑代码 class Solution:def bestTiming(self, prices: List[int]) -> int:# 数组长度n len(prices)if n < 2:return 0# 结果变量profit 0# 记录第i天之前的股票价格最小值min_ prices[0]for i in range(1, n):if prices[i]-min_ > profit:profit prices[i]-min…

品牌出海的关键步骤:市场定位与创新营销

现如今越来越多的企业开始将目光投向海外市场&#xff0c;寻求品牌出海的机会。品牌出海是指企业将自身品牌拓展至海外市场&#xff0c;通过进军国际市场来实现增长和发展。然而&#xff0c;面对不同的文化、市场环境和消费者需求&#xff0c;成功的品牌出海需要制定有效的策略…

手撸RPC【gw-rpc】

文章目录 基于 Netty 的简易版 RPC需求分析简易RPC框架的整体实现协议模块 &#x1f4d6;自定义协议 &#x1f195;序列化方式 &#x1f522; 服务工厂 &#x1f3ed;服务调用方 ❓前置知识——动态代理&#x1f573;️Proxy类InvocationHandler 接口 RPC服务代理类内嵌Netty客…

印章篆刻小程序商城的作用是什么

印章的需求度也有很高市场需求&#xff0c;处理办公印章外&#xff0c;还有艺术类的&#xff0c;而对爱好者来说&#xff0c;需要找到一家靠谱的品牌制作&#xff0c;包括材料、样式、内容等都有较高要求&#xff0c;线上可以接触到更多雕刻商家。 而对品牌来说&#xff0c;需…

无线振弦采集仪在岩土工程安全监测中优化成本支出

无线振弦采集仪在岩土工程安全监测中优化成本支出 随着城市的快速发展以及建筑业的不断壮大&#xff0c;岩土工程的安全监测变得越来越重要。在岩土工程中&#xff0c;振弦是一种重要的监测手段&#xff0c;可以有效地评估土体的力学性质和变形情况。因此&#xff0c;无线振弦…

基于ModebusRTU通信采集温度湿度项目案例

目录 一、模拟温湿度模拟 【1.1】温湿度仪表参数 【1.1】使用电脑模拟传感器 【1.2】使用Codesys软件模拟传感器 二、自定义控件UI设计 【2.1】自定义控件温度湿度柱状设计 ​编辑 【2.1.1】设置温度湿度柱状实际显示【属性】 【2.1.2】设置温度湿度柱状的背景颜色【属…

MacOS上的Pip和Python升级指南

在MacOS系统上&#xff0c;保持Pip和Python版本的最新状态对于顺利进行Python开发至关重要。通过升级Pip和Python&#xff0c;你可以享受到最新的功能、修复的bug以及提升的开发效率。本文将为你提供在MacOS上升级Pip和Python的详细指南&#xff0c;助你打造更强大的开发环境。…

基于jenkins+k8s实现devops

1、背景 由于jenkins运行在k8s上能够更好的利用动态agent进行构建。所以写了个部署教程&#xff0c;亲测无坑 2、部署 1、创建ns kubectl create namespace devops 2、kubectl apply -f jenkins.yml apiVersion: v1 kind: ServiceAccount metadata:name: jenkinsnamespace…

一键生成,轻松制作个性化瓜分红包活动二维码

在如今竞争激烈的市场中&#xff0c;营销活动成为各个品牌推广的重要手段。而在朋友圈这个信息交流的平台上&#xff0c;如何引起用户的关注和参与&#xff0c;成为了每个营销人员的关注焦点。而打造一个引爆朋友圈的瓜分红包活动&#xff0c;无疑是一种非常有效的方法。接下来…

【C++杂货店】类和对象(上)

【C杂货店】类和对象&#xff08;上&#xff09; 一、面向过程和面向对象初步认识二、类的引入三、类的定义四、类的访问限定符及封装4.1 访问限定符4.2 封装 五、类的作用域六、类的实例化七、类对象模型7.1 类对象的存储规则7.2 例题7.3结构体内存对齐规则 八、this指针8.2 t…

版本控制系统:Perforce Helix Core -2023

Perforce Helix Core是领先的版本控制系统&#xff0c;适用于需要加速大规模创新的团队。存储并跟踪您所有数字资产的更改&#xff0c;从源代码到二进制再到IP。连接您的团队&#xff0c;让他们更快地行动&#xff0c;更好地构建。 通过 Perforce 版本控制加速创新 Perforce H…

Zabbix介绍与安装

目录 一、概述 二、zabbix的主要功能 三、zabbix监控原理 四、Zabbix 监控模式 五、zabbix的架构 server-client server-proxy-client master-node-client 六、zabbix的安装 安装zabbix服务端 安装zabbix客户端 测试zabbix 1、在 Web 页面中添加 agent 主机点击左…

opencv英文识别tesseract-orc安装

文章目录 一、安装并保存所在路径二、配置环境变量1、打开高级设置2、配置环境变量三、修改tesseract.py文件中的路径,否则运行报错1、进入python所在的文件夹,找到Lib,site-packages2、搜索pytesseract3、打开py文件修改路径一、安装并保存所在路径 特别注意路径名中不能有…

软件工程第三周

可行性研究 续 表达工作量的方式 LOC估算&#xff1a;Line of Code 估算公式S(Sopt4SmSpess)/6 FP&#xff1a;功能点 1. LOC (Line of Code) 估算 定义&#xff1a;LOC是指一个软件项目中的代码行数。 2. FP (Function Points) 估算 定义&#xff1a;FP是基于软件的功能性和…