AUDIT

CESS relies on the specially developed audit algorithms and reward mechanisms to ensure that storage nodes store the data honestly, objectively, and fairly. The audit algorithms include: storage challenge claim, storage proof generation, and storage proof verification.

Storage challenge claim

The chain network periodically (with random time point) selects some random proportion of storage nodes to claim a storage challenge task. According to the type of the storage node content, the challenge kind is divided into "idle data" and "customer data". The key parameter of the challenge, factors, used as inputs for the designed storage proof algorithm, may vary depending on the data type and size. The storage challenge, as a task, has a "timeout" attribute deadline, which is estimated based on the data size of each storage node being "challenged" . The baseline in the challenge claim is the block number at the time of the challenge, indicating that the storage node needs storage proof under this state.

Storage proof generation

After receiving the storage "challenge", the storage node needs to submit a "storage proof" within the specified time, otherwise it will be punished. The storage node obtains the input data of the storage proof algorithm according to the specified baseline to calculate the "storage proof". Storage nodes need to provide proofs for two types of data: proof of spatial data, which is used to prove the storage space they can provide as declared in the chain; proof of customer data, which is used to prove that it has indeed correctly stored customer data.

Storage proof verification

When the chain network receives the "storage proof" submitted by the storage node, the chain will allocate TEE miners to verify the correctness of the proof. The storage proof of CESS can be publicly verified, and any external computing resource can verify any storage proof. CESS has made a trade-off between safety and efficiency: using TEE for validation. The TEE miner is currently an important role in CESS relationship diagram and plays a crucial role in storage proof algorithms. The two output parameters in the storage proof algorithm, mu and sigma, are designed not to be stored on the chain but locally on the storage node, so that it is necessary to retrieve them from the storage node during the verification phase. This design takes into account the size of these two parameters, so to avoid large amount of on-chain data.

The results of storage proof verification will serve as the basis for rewards and punishments.

Reference: Reward&Punishment