0xMiden / 0xMiden/protocol

BlockProof serialization is a silent no-op (TODO placeholder)

Open
#3,140 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
132
Forks
167
Avg merge
1d 23h
Merged PRs (30d)
110

Description

`crates/miden-protocol/src/block/block_proof.rs:28-37`

`BlockProof::write_into` is a no-op:

```rust
impl Serializable for BlockProof {
fn write_into(&self, _target: &mut W) {
// TODO: Implement serialization
}
}
```

And `read_from` returns an empty struct:

```rust
impl Deserializable for BlockProof {
fn read_from(_source: &mut R) -> Result {
// TODO: Implement deserialization
Ok(Self {})
}
}
```

If a `BlockProof` is ever serialized or deserialized in production code, it will silently produce corrupt data — the bytes won't represent the actual proof, and deserialization will always return an empty `BlockProof` regardless of input.

The `BlockProof` struct has no fields currently (block_proof.rs:24-26), so serialization is technically lossless, but once fields are added (which the TODO implies is planned), the empty serialization becomes a data corruption bug. Adding a panic or compile-time assertion would prevent silent data loss when fields are added.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.