Skip to content

test: add attestation proof order rejection fixture#761

Open
latifkasuli wants to merge 1 commit into
leanEthereum:mainfrom
latifkasuli:devnet5-blackbox-proof-tests
Open

test: add attestation proof order rejection fixture#761
latifkasuli wants to merge 1 commit into
leanEthereum:mainfrom
latifkasuli:devnet5-blackbox-proof-tests

Conversation

@latifkasuli
Copy link
Copy Markdown
Contributor

@latifkasuli latifkasuli commented May 22, 2026

Summary

  • Add a verify_signatures tamper case that swaps the first two body attestations and re-signs only the proposer.
  • Add an Lstar fixture vector that rejects a block whose body attestation order no longer matches the merged Type-2 proof component order.

Why

This pins the block-level proof ordering invariant without adding runtime/debug machinery: the proposer signature remains valid for the received block, while the attestation proof components are deliberately paired with the wrong body messages.

Validation

  • uv run --group lint ruff check --no-fix --show-fixes
  • uv run --group lint ruff format --check
  • uv run --group lint ty check
  • codespell via codespell_lib entrypoint, because this checkout's console-script shebang is stale
  • uv run --group docs python -m mdformat --check docs/
  • uv lock --check
  • uv run --group test python -m pytest tests -n auto --maxprocesses=10 --durations=10 --dist=worksteal
  • uv run --group test fill --fork=Lstar --clean --output /tmp/leanspec-full-consensus-fill tests/consensus -q

@latifkasuli
Copy link
Copy Markdown
Contributor Author

CI note: the only failing check is Tests - Python 3.12 on macos-latest.

It failed before tests ran while building lean-multisig-py, due to DNS resolution for crates.io:

Could not resolve host: static.crates.io
failed to download https://static.crates.io/crates/itoa/1.0.18/download

All other checks are green, including fixture fill, interop, coverage, lint/format, and the Python 3.12/3.13/3.14 test jobs on the other runners. I do not have repository permissions to rerun the failed job, so this needs a maintainer rerun.

@latifkasuli latifkasuli marked this pull request as ready for review May 23, 2026 17:44
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.

1 participant