Why
A timing change is the worst kind of change, because it does not break a build — it shifts a distribution. Nothing fails to compile, no test goes red on the day the fork lands, and the symptoms arrive later as flakiness: an update that occasionally arrives a beat late, a quote that occasionally misses its window, a confirmation rule that quietly guarantees less than it did last week.
The part that actually tightens is anything with a deadline signed into it. A filler quoting against a fill deadline, an oracle heartbeat, a batch-auction window, a bundle aimed at the next slot — each loses about a sixth of its wall-clock budget while the code keeps the same number in it. That is the same seam erc-7683-settlement-security runs along and the same one the-settlement-instant depends on: a deadline is only meaningful in the unit of the thing it protects, and nobody checks which unit was used until it moves.
Why the card is cheap and keeps its value either way. The output is an inventory of places where the application makes an unstated assumption about time. If EIP-8198 never ships, the inventory is still the list of latent assumptions — and this is a codebase that will eventually run against more than one chain, where slot time is not 12 seconds and never was.
How it works
Where twelve seconds hides
| Constant | What a 10-second slot does to it | Failure shape |
|---|---|---|
| Poll interval set to one block | Each poll now spans 1.2 blocks | Occasional missed update, read as flaky UI rather than a bug |
| N-confirmation rule | Same N, about 17% less wall clock | Weaker guarantee at byte-identical code |
| Deadline in seconds | Same seconds, more blocks inside them | Nothing breaks — this is the safe bucket |
| Deadline in blocks | About 17% less time to act | Fillers and oracles miss near the edge of the window |
| Oracle heartbeat / staleness bound | Threshold now spans more blocks | Stale price accepted longer than intended |
| Cron or batch window sized in blocks | Window shrinks in wall clock | Jobs overlap under load |
The rule the table produces
Express every deadline in the unit of the thing it protects. A human or market deadline is wall-clock: a user has thirty seconds, a quote is good for two minutes. A chain-state deadline is blocks: this many confirmations, this many slots of challenge window. The defect is never the number — it is a deadline written in the other unit, and slot time changing does not create that defect, it only makes it visible.
Why it sits next to the other protocol cards
The roundup's three S-tier items change three different parts of the substrate under an application that does not change at all: 8198 changes time, 8131 and 8279 change what resources cost (l1-data-pricing-dimensions), and 8141 changes the shape of a transaction (erc-8141). None of them require an application to be rewritten, and all three change what it is quietly assuming.
Where it lands in Jayverse
- Verex: grep the settlement/CLOB path for every time-valued constant. Pull poll intervals, confirmation counts, signature deadlines, oracle heartbeats and cache TTLs out of Verex's code and mark each as wall-clock, block-derived, or coincidentally equal — only the block-derived-but-unlabeled ones are the bug.
- Verex: write every deadline in the unit of what it protects. A quote or fill deadline is wall-clock (seconds); a dispute or challenge window is block-derived (confirmations) — never mix them, since a slot-time or chain change silently tightens whichever one is mistyped.
- Devnet/Bridge: rerun the same inventory before any chain migration. Devnet targets Sepolia today and may fork or add a second chain later; the time-constant inventory this page describes is also the list of assumptions that migration would break, so build it once now.
Key expressions
| Expression | 뜻 · 쓰이는 자리 |
|---|---|
| write down | (수치·사실을) 문서로 남겨 적다 · "the constant nobody wrote down" |
| shift a distribution | 분포 자체를 슬쩍 바꿔놓다 · "it does not break a build — it shifts a distribution" |
| a beat late | 살짝(한 박자) 늦게 · "occasionally arrives a beat late" |
| signed into it | (계약·코드 안에) 못박혀 정해져 있다 · "anything with a deadline signed into it" |
| near the edge of | ~의 경계, 마감 직전에 가까이 · "miss near the edge of the window" |
| latent assumption | 겉으로 드러나지 않은 전제 · "the list of latent assumptions" |
| wall clock | 실제로 흐른 시간(체감 시간) · "about a sixth of its wall-clock budget" |
| quietly assuming | 별말 없이 당연하게 전제하다 · "quietly assuming" |
| TTL | 캐시 유효 시간(Time To Live) · 값이 만료되기까지의 설정 시간, 슬롯 시간에 암묵적으로 엮여 있을 수 있는 상수의 예. "poll intervals, confirmation counts, signature deadlines, cache TTLs" |