Skip to content

πŸ»β€β„οΈ Propter polar bear: canonical rollup protocol - #1

Open
iChristwin wants to merge 2 commits into
mainfrom
propter-polar-bear
Open

iChristwin wants to merge 2 commits into
mainfrom
propter-polar-bear

Conversation

@iChristwin

@iChristwin iChristwin commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

πŸ»β€β„οΈ This makes packed, proven meter state the Rollup protocol: contracts read current account/nonce words and full public keys directly, while commits carry sparse absolute replacements rather than complete code snapshots.

  • Use four-byte slot IDs and 36-byte update records, with matching 100-byte proof records.
  • Preserve four uint40 Wh accounts / uint24 nonces per word and M3ter-owner key authority.
  • Use one write loop with atomic rollback on static proof-verification failure; emit the exact update bytes.
  • Order the contract/interface by visibility and mutability; use M3ter, id and slot consistently.
  • Keep one main README, remove obsolete source/tests/dependencies, and provide reproducible transaction-gas benchmarks.

Validation: 22 Solidity tests passed, including 1,024 packing-fuzz cases and 16,384 invariant updates. The Rust-generated statement matches Solidity. Local Osaka transactions measured 7,690,146 gas for 512 reused slots with a mock verifier, a 6,682-gas increase from three-byte IDs. Mock ceilings are 1,117 reused / 521 fresh slots (ordinary values); production batches use lower budgeted limits.

Deployment requires replacing the verifier, program-key and M3ter TODO constants and using the matching prover release. This replaces the storage layout and does not migrate existing deployed state. Benchmark verifiers are mocks, not production proof verification.

Companion PR: M3tering/Prover#13

Co-authored with @iChristwin πŸ»β€β„οΈ

Use four-byte slots, authenticated packed meter state, and a clean documented implementation.

Co-authored-by: I. Christwin <52095470+iChristwin@users.noreply.github.com>
Keep account, nonce, and words as the read interface. Update packing coverage and README.

Validation: 22 Solidity tests pass under the CI profile, including 16,384 invariant calls.

Co-authored-by: I. Christwin <52095470+iChristwin@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants