时空证明是什么?Filecoin 怎么持续核对存储矿工没删数据 图 1
时空证明是什么?Filecoin 怎么持续核对存储矿工没删数据 · 图 1

从一句承诺说起

存储市场里有一个很难自证的问题:矿工说”我替你存着这份文件”,六个月后、一年后,他还存着吗?如果只能靠矿工自己声明,最理性的做法是收完钱就把硬盘拔掉。Filecoin 用一套叫时空证明(Proof of Spacetime,简称 PoSt)的机制来堵这个漏洞:链会定期抽查,矿工必须用密码学证明”在随机指定的位置,我确实能读出当初封存的那份数据”。官方协议规范把这组抽查分成两种——WinningPoSt 和 WindowPoSt——分别回答”某个时刻在不在”和”持续这段时间在不在”两个问题。本文按规范页的描述拆解这条证明链怎么运转,以及它在哪些地方留下了边界。

时空证明是什么?Filecoin 怎么持续核对存储矿工没删数据 图 2
时空证明是什么?Filecoin 怎么持续核对存储矿工没删数据 · 图 2

前提:先封存,才能证明

时空证明不是对着原始文件直接出证明的。规范描述的流程是:客户数据被装进扇区(sector),扇区经过封装(sealing)变成一份带唯一编码的副本,封出来的副本与矿工的身份绑定,别家矿工无法直接复用。规范同时说明,封装这一步计算开销很大,恰恰是这种开销构成了经济安全性:如果矿工可以每次被抽查时临时重新封装一份来交差,持续存储就没有必要了;所以协议故意让”随时重封”比”一直存着”贵得多。理解了这一点,后面两种证明的分工就清楚了——它们都在利用”重做比重存更贵”这个成本差。

WinningPoSt:出块时刻的在场证明

封存扇区与周期性审计窗示意

Filecoin 的出块由预期共识(Expected Consensus)的保密领导者选举决定。规范写明:只有当某个矿工在这一轮被抽中出块时,才会收到 WinningPoSt 挑战;矿工必须在很短的时限内——规范要求提交截止就是当前时隙结束——对随机挑中的扇区交出证明。时限故意设计得很短,短到来不及临时封装伪造,因此 WinningPoSt 保证的是”在被抽中的那个时间点,副本确实在”。错过提交没有罚没,但这一轮的出块奖励就错过了。

WindowPoSt:把时间切成窗口的持续审计

真正回答”持续在不在”的是 WindowPoSt。规范给出的结构是三层:矿工承诺的存储被划成扇区,若干扇区组成一个分区(规范当前记录的规模是一组约两千三百多个扇区同时证明),全体扇区要在一个证明周期内被轮询一遍——规范页写的当前设定是平均约 24 小时。每个分区有明确的截止日期(deadline),在截止前的挑战窗口里,链下发随机挑战,矿工必须证明整个分区仍然可访问。规范特别强调两点:其一,任何承诺存储的扇区在任意 24 小时窗口内至少会被审计一次,并且每次证明都留下公开可查的记录;其二,忘记提交 WindowPoSt 会被记为故障并触发罚没,规范还区分了”提前声明故障”和”缺席被记故障”两种情形的处理差异。换句话说,矿工面对的不是定期交作业,而是随机突袭加迟到重罚的组合。

普通用户看什么

如果你只是把 Filecoin 当作存储网络的用户,这条机制链的意义有三层。第一,链上能查到某个矿工某个分区的 WindowPoSt 提交记录,证明”存在性”是公开可核验的,不需要信任矿工的口头承诺。第二,存储协议的期限由扇区的承诺寿命约束,规范记录的扇区最长寿命设定为 18 个月,续期要重新走承诺流程——查合同状态时应以链上合约而非页面宣传为准。第三,“网络声称的总存储量”与”实际有数据在盘”之间仍隔着封装容量这类机制,规范明确允许用空扇区充容量的承诺容量概念存在,这也是审计口径争议的来源之一。

边界与易误读

两个常见误解值得点破。其一,PoSt 证明的是”你保存了当初封存的那份副本”,它不证明副本内容与客户原件逐字节永远一致到应用层语义,更不替代检索环节——证明可用与检索可得是两回事,检索性能是另一条市场化的服务维度。其二,约 24 小时的周期、分区规模这些数字是规范页当前的记载值,参数会随协议升级调整,引用时应对照规范或链上参数当前口径,而不是把某篇转述文章里的数字当长期事实。与工作量证明比算力、权益证明比资金相比,时空证明比较的是”谁真的在持续占用存储资源”,这是它存在的唯一理由。

风险提示

本文仅解释存储公链的证明机制,不构成任何投资或存储收益建议。涉及参数与罚没规则的表述以 Filecoin 官方规范与链上合约当前口径为准,协议升级可能改变设定。