Coin Brief ENDE

Check earlier, pay less: four chains remove a cost that was paid again and again

Four technical changes from this week's development work on four different chains have nothing in common at first sight. Read side by side, they share a design idea: find the place where a cost is paid repeatedly, and move the work to where it can be paid once — or not at all.

XRP Ledger: reject before the ledger. In rippled, an EscrowFinish with a malformed condition used to pass the early checks and fail during application with tecCRYPTOCONDITION_ERROR — so it was written into the ledger and the submitter paid a fee for a transaction that could never succeed. PR 8523 moves the check into preflight, matching what EscrowCreate has always done: the transaction now fails with temMALFORMED, never reaches the ledger and costs nothing. Gated on the fixCleanup3_5_0 amendment.

Ethereum: fix the state once instead of checking it forever. EIP-8253 targets a leftover from before Spurious Dragon: accounts with empty code, zero nonce and non-empty storage. The alternative fix would be to check for empty storage at every contract creation — a runtime check and, for some clients, an extra disk read paid on every CREATE for the rest of the chain's life. The EIP instead bumps the nonce of the 28 known Mainnet accounts once, at a fork, so an existing check already rejects them.

Solana: let the JIT do what the bytecode cannot. SIMD-0645 proposes sol_multi3, a static call that a Solana VM can lower to native 128-bit multiplication. The cost being removed is the long instruction sequence every program pays to multiply wide integers in BPF; the prototype shows about 75% fewer compute units on a 10,000-multiplication benchmark.

Check earlier, pay less: four chains remove a cost that was paid again and again
Check earlier, pay less: four chains remove a cost that was paid again and again — Coin Brief

Bitcoin Core: stop waiting for nothing. PR 36440 changes the functional tests so the P2P helper wakes when a message arrives instead of polling every 50 ms, and lets tests that benefit from it use noban_tx_relay. Accumulated test time fell by 17.5% on the author's machine; one test went from 57.9 to 6.2 seconds. The cost here is developer and CI time, paid on every pull request.

The common pattern. In each case the expensive version was not wrong — the transaction did fail, the storage check would work, the BPF sequence computes the right answer, the tests passed. It was simply paid in the wrong place, by the wrong party, too often. For anyone reviewing protocol changes, that is a useful question to ask of any proposal: who pays this cost, how often, and could it be paid once instead?

What none of them changes. The escrow fix waits for an amendment vote, EIP-8253 and SIMD-0645 are drafts, and the Bitcoin change touches only tests. These are directions, not shipped behaviour — but they show where developers on four networks are spending their attention.

Sources: XRPLF/rippled PR 8523 — https://github.com/XRPLF/rippled/pull/8523 ; ethereum/EIPs PR 12495 (EIP-8253) — https://github.com/ethereum/EIPs/pull/12495 ; SIMD-0645 — https://github.com/solana-foundation/solana-improvement-documents/pull/645 ; Bitcoin Core PR 36440 — https://github.com/bitcoin/bitcoin/pull/36440