proof/validate-forward.mjs proves the unmodified @bitcoin-kernel/kernel engine validates a real Bitmark block forward — not just structurally, but verifying signatures against resolved prevouts — with only bitmark:mainnet + unwrap.js added.
Flow: bitmarkd getblock … false (raw) → unwrap → codec.decode → resolve every prevout via bitmarkd getrawtransaction → validateBlockContext (scripts/sigs/fees/maturity/structure) → cross-check against the explorer's Mongo utxos index (values + spent heights) as the ground-truth oracle.
Verified on block 1,200,000 (X17, 3 txs): 94 prevouts resolved, all context rules pass including scripts (94 ECDSA sigs verified) — confirming Bitmark uses standard Bitcoin legacy sighash (no fork-id). Explorer agrees on 6/6 sampled prevouts (value + spent@1,200,000).
Scope: structure + scripts + UTXO. Multi-algo PoW difficulty stays external (the 8-algo wall); witness-commitment correctly skips (no segwit). Sources local bitmarkd + Mongo.
proof/validate-forward.mjsproves the unmodified @bitcoin-kernel/kernel engine validates a real Bitmark block forward — not just structurally, but verifying signatures against resolved prevouts — with onlybitmark:mainnet+unwrap.jsadded.Flow:
bitmarkd getblock … false(raw) →unwrap→codec.decode→ resolve every prevout viabitmarkd getrawtransaction→validateBlockContext(scripts/sigs/fees/maturity/structure) → cross-check against the explorer's Mongoutxosindex (values + spent heights) as the ground-truth oracle.Verified on block 1,200,000 (X17, 3 txs): 94 prevouts resolved, all context rules pass including scripts (94 ECDSA sigs verified) — confirming Bitmark uses standard Bitcoin legacy sighash (no fork-id). Explorer agrees on 6/6 sampled prevouts (value + spent@1,200,000).
Scope: structure + scripts + UTXO. Multi-algo PoW difficulty stays external (the 8-algo wall);
witness-commitmentcorrectly skips (no segwit). Sources localbitmarkd+ Mongo.