Skip to content

Plan: correct two claims in the Phase 2 reference notes - #17

Merged
EvanWinget merged 1 commit into
mainfrom
phase2-notes-fixups
Jul 29, 2026
Merged

Plan: correct two claims in the Phase 2 reference notes#17
EvanWinget merged 1 commit into
mainfrom
phase2-notes-fixups

Conversation

@EvanWinget

Copy link
Copy Markdown
Owner

What changed

Two corrections and one precision fix to the Phase 2 reference block that PR #15 added to docs/execution-plan.md, from a post-merge review Evan requested. No spec, implementation, or vector changes, and no skeleton element touched.

  1. Message-condition pricing precedent. The block said Chia's announcement pricing maps onto our SEND/RECV_MESSAGE conditions as their closest descendant. Verified against CHIP-0025 and CHIP-0049 (cited by name deliberately, no links): our messages port Chia's SEND_MESSAGE/RECEIVE_MESSAGE, the announcements' successors, and CHIP-0049's always-priced exception enumerates only the four announcement codes, so Chia's own message conditions apparently ride the general free tier. The precedent is split, and the note now says so instead of implying the announcement treatment carries over. The free tier's per-coin-spend granularity is now stated too, since the exemption multiplying across spends is the DoS-relevant part.
  2. Obligation 2 gloss. Obligation 2 commits to per-condition costing tuned against UTXO-set growth with superlinear CREATE_COIN pricing. It does not state a pricing-over-caps philosophy, so "commits us to" becomes "consistent with obligation 2's pricing approach".
  3. Decided vs open. The taproot bullet's headline asserted the condition-layer answer while deferring the question. It now reads "out of the VM (ratified), the condition-layer form open", matching the D2 record's actual scope, and "answer" becomes "candidate" in the body.

How to verify

  • git diff main~1 -- docs/execution-plan.md shows the original block plus this correction as one readable unit.
  • Obligation 2's text: docs/bitcoin-script-successor-evaluation.md section 7.
  • The D2 muladd decline: spec/VM.md section 8, D2 entry.
  • PATH=.venv/bin:$PATH ci/lint/lint.sh

Post-merge review of the notes (five reviewers, findings verified
against CHIP-0025 and CHIP-0049) surfaced two wording defects worth
correcting before Phase 2 consumes them.

First, the message-condition genealogy was wrong and pointed the
costing question at the wrong precedent. Our tx-scoped
SEND/RECV_MESSAGE conditions port Chia's SEND_MESSAGE and
RECEIVE_MESSAGE (CHIP-0025), the announcements' successors, and
CHIP-0049's always-priced exception enumerates only the four
announcement codes, leaving Chia's own message conditions on the
free tier. The note now states the split precedent explicitly
instead of implying announcement pricing carries over. The free
tier's per-coin-spend granularity is also now stated, since the
multiplication across spends is the DoS-relevant part of that
decision.

Second, obligation 2 commits to superlinear per-condition pricing,
not to a stated pricing-over-caps philosophy, so the gloss claiming
that commitment is softened to consistency. The taproot bullet's
headline now separates what is ratified (no EC arithmetic in the VM,
the D2 muladd decline) from what is open (the condition-layer form,
owed to CONDITIONS.md v0).
@EvanWinget
EvanWinget merged commit b1d2e57 into main Jul 29, 2026
2 checks passed
@EvanWinget
EvanWinget deleted the phase2-notes-fixups branch July 29, 2026 23:36
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