igneum/site/partials/terms.html
igneum-labs a7779ba615 Reference apps, Review B F04: a recovery lock is never presented as a final lock
The light service maps the node's lockKind (igneum_getFinalityCheckpoints, 2.0.2 line) to lock_state beside every certificate
it answers with; core.js reads it as one step on /light and /receipt, refuses an unknown kind and a receipt that claims final
under a reported recovery lock; the pages print "recovery lock, not final" on the result, the receipt file carries lock_state,
the one-file verifier prints it; the shared terms block defines the recovery lock; /oracle says recovery locks are not accepted
by the Sepolia verifiers (two-thirds rule only, so every stored root passed the final rule). Node and browser negative cases
added. On a node before the field nothing changes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-08 18:58:50 +00:00

11 lines
2.1 KiB
HTML

<section class="terms" aria-labelledby="terms-head">
<h2 id="terms-head">Four words, used exactly</h2>
<div class="kv">
<div class="k">Included</div><div>The transaction is in a block's body: its hash is a leaf under the block header's <code>hash_merkle_root</code>. Proves the block carries it, nothing about what it did.</div>
<div class="k">Executed</div><div>A node ran it at a chain block and reports a result (status, gas, logs). On these pages an execution result is reported by the node, not authenticated, unless the page says it is.</div>
<div class="k">Proven</div><div>An aggregator's segment record, carried in a block's coinbase and signed with its vote key, commits to the state root after that chain block; nodes check the statement against their own execution before paying it. The SP1 proof behind the statement is verified by nodes, not in the browser or on Sepolia.</div>
<div class="k">Finalised</div><div>A certified checkpoint has the block in its past: an aggregate BLS signature by voters holding two thirds of active weight and at least 17/30 of total weight over the checkpoint, checked here against the voter table the node supplies.</div>
<div class="k">Recovery lock</div><div>Not a fifth state and never shown as finalised. After a full weight window with no lock, the finality rule accepts a checkpoint signed by more than half of the anchored weight (the recovery rule, Review B F04). The node reports each lock's kind beside its checkpoint (<code>lockKind</code>: final or recovery); the certificate bytes carry none, so the kind is the node's report. These pages print a recovery lock as <b>recovery lock, not final</b> on the result, in the receipt file (<code>lock_state</code>) and in the one-file verifier, and refuse a receipt that claims final under a reported recovery lock. On a node before the field nothing is shown. Devnet 3 and the 2.0 devnet, no value.</div>
</div>
<p class="note">The same four definitions sit on <a href="/light">/light</a>, <a href="/receipt">/receipt</a> and <a href="/oracle">/oracle</a> (one source: <code>site/partials/terms.html</code>). The devnet, no value.</p>
</section>