惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
博客园 - Franky
MyScale Blog
MyScale Blog
Jina AI
Jina AI
B
Blog
Microsoft Security Blog
Microsoft Security Blog
T
Troy Hunt's Blog
博客园_首页
T
Threatpost
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
Lohrmann on Cybersecurity
GbyAI
GbyAI
T
Tenable Blog
B
Blog RSS Feed
S
Securelist
T
Threat Research - Cisco Blogs
P
Privacy International News Feed
P
Proofpoint News Feed
T
The Exploit Database - CXSecurity.com
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
雷峰网
雷峰网
C
CXSECURITY Database RSS Feed - CXSecurity.com
罗磊的独立博客
AWS News Blog
AWS News Blog
V
V2EX
宝玉的分享
宝玉的分享
J
Java Code Geeks
小众软件
小众软件
Spread Privacy
Spread Privacy
腾讯CDC
Google Online Security Blog
Google Online Security Blog
月光博客
月光博客
V
Visual Studio Blog
The Hacker News
The Hacker News
C
CERT Recently Published Vulnerability Notes
Project Zero
Project Zero
Know Your Adversary
Know Your Adversary
T
The Blog of Author Tim Ferriss
Last Week in AI
Last Week in AI
Apple Machine Learning Research
Apple Machine Learning Research
NISL@THU
NISL@THU
C
Check Point Blog
Webroot Blog
Webroot Blog
D
DataBreaches.Net
Cloudbric
Cloudbric
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家

smallyu的博客

为什么买的加密货币一定要去中心化 RISC-V 虚拟机无法代替 EVM 虚拟机 Polkadot 的 Existential Deposit 机制错在哪里 利息,套利,交易策略,金融市场 LayerZero 从来不挑战比特币的地位 默认参数引起的以太坊节点运行错误 硬件钱包与资产安全 预测市场比币圈更赌场 为什么去中心化的跨链桥不可能实现 我对于 AI 时代的答案 不要投资任何隐私币 区块链技术世界的三大真理 以太坊 AA 钱包的致命问题是什么 基于 AI 语义执行的 MCP 区块链的设计 一个集成 Geth 和 CometBFT 的兼容层 我的加密货币定投策略(二) DeFi 基础: 理解 AMM 定价机制 Go 语言 GMP 调度器的原理是什么 Web3 项目分析计划 对 Psyche Network 项目的分析 continuation 教程: 理解 CPS 如何开发一个比特币符文(Runes)协议 比特币脚本开发教程 我从王垠的计算机科学视频班学到了什么 区块链技术面试题(2025年版) Rust 语言容易让新手困惑的一个“过度优化” Solana 智能合约开发教程 (1) 尝试开发一个最小 EVM 虚拟机 基于 ZK 的链上身份系统设计 一个 Web3 打赏系统的设计 鼓吹 Cursor 的人技术能力都差 关于 Code Review 的礼节 假如启动一个新的以太坊 PoS 网络 发行加密货币的最好方式 所有 BFT 共识的区块链都是中心化的 对 2025 年区块链行业的预测 Restaking 项目的经济难题 如何看懂任意区块链项目的技术架构 为什么不要做以太坊的二次开发 为什么不要做智能合约开发和 DeFi 开发 我的加密货币定投策略(一) PoS 类型的区块链如何处理分叉 Ethereum Casper 为什么需要 EIP-7251 区块链中的 PBFT 不需要第二次投票 开发者的思维方式 发币的核心要点 炒币投资的小 tips 为什么说 PoW 比 PoS 更加去中心化 牛市对普通人来说意味着什么 如何健康地远程工作 为什么比特币不用概率加密函数 程序员的 “服从权威” 心理 区块链技术面试题 如何区分公有链和联盟链 对 Layer 2 项目创业想法的回复 对区块链共识机制的理解 Pebbling Game 鹅卵石游戏 PDP 文件证明的局限性 不要小瞧 ChatGPT 为什么炒币不是一个好主意 一种在区块链上生成随机数的机制 为什么以太坊的私钥计算不可逆 关于以太坊的私钥碰撞 “猜均值的2/3” dApp 游戏设计 Proof of Storage/Space/Replication 的区别 对 S-PDP 文件证明的示例和解释 我的加密货币交易机器人 对区块链行业的见闻 随机确认块的共识机制 VRF + BFT 共识引起交易失败的问题 为什么要重视编程思想 对 Web 3.0 的理解 GitBook 好用吗? 一种区块链节点存储扩容的方式 一种基于“自我中心主义”的共识机制 链表常见算法题及解析 基于 Multi-Linked List 的区块链设想 理解哈希函数与序列化 联盟链比公有链差在哪儿 在 Dijkstra 算法中保存路径 为什么数字货币使用区块链是政治问题 区块链:下一代数字身份认证体系的基石 网页技术能实现 3D 建模吗? 给区块链一个定义 从 Erlang 开始了解 Actor 模型 一种侧边导航栏的交互方式 Rust 的 ownership 是什么? Haskell 中的 Monad 是什么? 浅析 Libra 背后的区块链技术 对区块链的理性认识 Rust 基础语法概述 基于 Java 的爬虫框架 WebCollector Kotlin:简化版的 Scala JavaScript 有关联数组吗? 主流编程语言的异常处理机制 Go 语言基本语法 Scala 语法基础 用 Scala 改写 Java 浅度实践 Python 获取海贼王更新信息 HTML5 音乐可视化
Proofs of Retrievability 文件证明的含义
2022-12-16 · via smallyu的博客

2022-12-16

PORs(Proofs of Retrievability)的论文和 PDP 在同一年 2007 年发表,论文题目是《PORs: Proofs of Retrievability for Large Files》,第一作者是 Ari Juels。

PORs 不但可以证明文件确实被保存在服务端,而且可以知道文件有没有被修改、删除,这是 PDP 不具备的能力。不过 PORs 的局限性在于,只能用于加密文件,或者说必须对文件进行加密。PORs 实现的关键在于复杂的 setup 阶段。

PORs 的思路是,客户端生成一些随机的编码记录在数组中,这些编码被称为哨兵。比如 [6, 4, 0] 是三个哨兵。

先对客户端的文件进行对称加密,而且必须使用 block cipher 的方式。在加密过程中,把哨兵加入到文件随机的位置。两个哨兵之间,可能隔着 1 个 block 或者无数个 block,哨兵的位置是随机的。

然后把加密后的文件发送到服务端保存。

客户端发起挑战的内容,就是要服务端返回,文件在随机 n 个位置上的编码。挑战中包含哨兵所在的位置。

由于文件是加密的,服务端并不能判断,挑战的位置是原始文件的数据,还是哨兵位置的数据,服务端是难以推测出哨兵位置的。

对于客户端来说,只需要验证哨兵所在位置对应的编码,就可以判断文件是否存在以及完好无损。如果文件被修改或者中间的某些数据丢失,哨兵所在位置的编码一定是大相径庭的,挑战无法完成。

Retrievability 是可检索的意思,在 PORs 中的含义是,对于客户端来说,我可以通过指定哨兵位置的方式,对文件的某个部分验证,比如想验证第 1 个哨兵到第 3 个哨兵之间的文件是否完好,或者去验证第 5 个哨兵到第 9 个哨兵之间的文件,指哪打哪。

至于说为什么一定要对文件进行加密,应该一方面 PORs 依赖于对称加密的 block cipher,另一方面,对于不加密的文件,服务端比较容易推测出哨兵的位置。所以 PORs 只能用于加密文件。

论文中还通过引入纠错码的方式,来增加文件的容错能力。在 setup 阶段,先对 block 加入纠错码,再进行对称加密。引入纠错码的好处,就是在两个哨兵之间,在一定的错误范围内,如果文件有损坏,可以去修复文件。

为什么在 PORs 的机制中,纠错码开始显得重要?因为要和 PORs 的特点 Retrievability 结合。如果文件被储存在多个服务器环境,遭到了不同程度的损坏,因为有哨兵的存在,比较容易从其他服务器中恢复文件的一部分。在这样的背景下,引入纠错码就是对文件容错能力的进一步加强了。