基本架构和安全假设
以下属性在假设所有存储纪元中有 2/3 的分片由忠实且正确遵循 Walrus 协议的存储节点操作的前提下成立。
如前所述,每个 blob 使用纠删码编码成小块,并且 blob ID 是通过加密方式派生的。对于给定的 blob ID,有一个 可用性点 (PoA) 和一个 可用性周期,可以通过 Sui 链上的事件观察到。
以下属性与 PoA 相关:
- 在 PoA 之后读取由正确用户存储的 blob ,将得到 。
- 在 PoA 之后,如果两个正确的用户执行读取并分别得到 和 。 ,那么
- 具有适当存储资源的正确用户始终可以为 blob 执行存储,并使用 blob ID 推进协议直到 PoA。
- 在 PoA 之后读取由正确用户存储的 blob ,将得到 。
一些保证属性确保 Walrus 存储节点的正确内部过程。为了定义这些属性, 不一致性证明 证明了一个 blob ID 是由错误编码 blob 的用户存储的。
- 在 PoA 之后,对于由正确用户存储的 blob ID,存储节点始终能够恢复其分片的正确切片。
- 在 PoA 之后,如果正确的存储节点无法恢复切片,它可以为该 blob ID 生成不一致性证明。
- 如果一个 blob ID 是由正确用户存储的,则无法为其得出不一致性证明。
- 正确用户对可能存在不一致性证明的 blob ID 的读取将返回
None
。
请注意,没有删除操作,PoA 之后的 blob ID 将在整个可用期内可用。
Before the PoA it is the responsibility of a client to ensure the availability of a blob and its upload to Walrus. After the PoA it is the responsibility of Walrus as a system to maintain the availability of the blob as part of its operation for the full availability period remaining. Emission of the event corresponding to the PoA for a blob ID attests its availability.