Observation Commitment Protocol (OCP) v1.0.0

Observation Commitment Protocol (OCP) — Break This

I’ve implemented a minimal version of the Observation Commitment Protocol (OCP) and would like to invite adversarial testing.

Live Implementation

Repository


What the system does

At its core:

File → Hash → Ethereum → Proof → Verify anywhere

More concretely:

  1. A file is hashed locally → H = hash(observation)
  2. H is committed on-chain (calldata / event)
  3. A proof is formed: (observation, H, tx_ref)
  4. Anyone can verify:
    • recompute H
    • resolve tx_ref
    • check H ∈ R(tx)

The Challenge

Take a valid (file, proof) pair and:

Modify the file in any way — even a single byte — and attempt to produce a proof that still verifies under the same assumptions.

If you can produce:

observation* ≠ observation
Verify(P*, L, hash, R) = 1

then the system is broken.


What would count as a break?

  • A modified file that still verifies against the original proof
  • A forged proof that passes verification without the original commitment
  • Any ambiguity in extraction rule R(tx) that allows false positives
  • Any mismatch between on-chain data and verification logic

What this is NOT testing

  • Identity / authorship
  • Data availability
  • Off-chain storage assumptions

This is strictly testing the minimal invariant:

A specific digest is bound to the ledger and cannot be altered without detection.


Why I’m posting this

This pattern (hash → inclusion → verification) appears everywhere in Ethereum, but is rarely isolated and tested as a standalone primitive.

This implementation is an attempt to make that primitive explicit — and falsifiable.


Ask

If you can break it, I want to understand how.

If you think this is trivial or already well-covered, I’d also appreciate pointers to existing abstractions that fully capture this pattern.