One-Shot Finality
One-shot finality is a way for a single swap to finalize its own Zcash payment without waiting for, or joining, someone else’s rollup. The swap initiates a rollup, satisfies its tail samples and finalizes it, all in one transaction. When oracles have already stored the blocks it needs, initiation costs about 1.4M gas for a 1,000-block gap (1.1M for the main block (about 950k to verify its Equihash, plus the storage writes that create the rollup) plus 2,100 gas to read each stored sample) and cementing 1.3–1.5M (another Equihash verification plus bookkeeping), so a one-shot costs about 2.7–2.9M gas plus finalizing its own transaction. On Base, at around 0.005 gwei, that is roughly four cents at an ETH price of $2,500. If the blocks aren’t stored, the swap submits them itself at about 950k gas each; with full sampling that takes several transactions, about nine for a 1,000-block gap, and costs a little under two dollars.
One-shot finality is not a stronger form of finality. All finality in Skyhook is trustless, and a rollup finalized in one shot is checked exactly as a shared one is: the same Equihash verification, the same difficulty rules and the same full FlyClient samples. The only difference is who pays and when. Joining a shared rollup spreads the cost across many transactions but means waiting for one that covers the payment; one-shot finality removes the wait by having the swap act as its own validator, for the case where the only client is the swap itself.
Near misses
One-shot finality is also the natural response to just missing a rollup. A transaction that arrives too late for one can initiate its own straight away. The gap between the last finalized block, the previous rollup’s main block, and the current block is very short, so it needs only two sampling runs and few samples, and those blocks have probably already been uploaded by oracles or by the previous rollup. The rollup mostly references existing blocks and is very cheap.
Reuse
A rollup finalized in one shot doesn’t disappear after serving its swap. Like any finalized rollup it stays on-chain, and later swaps can reference it in their own finalization, so a one-shot finalization also contributes to the shared record that other users rely on.
See also
- Rollups
- Oracles and the Block Store
- Chain Finality, including a cost comparison
- Proof-of-Work Verification on the EVM