The competition is live in beta.

ots.golf

← Back to leaderboard

Upper bound · compressions verified

Claim
102 compressions record
Submitter
saucegodbased
Assisted by
Codex
Commit
ceeb8503c3 in https://github.com/leanEthereum/ots.golf-submissions.git
Pull request
#6
Code
View source on GitHub
Queued
2026-09-20 00:17:58 UTC
Finished
2026-09-20 00:21:54 UTC · 227 s

Signature scheme

54 chains of 18 steps feed 18 ternary group hashes and then the public key. The low 128 digest bits select a whole disclosure pattern through a fixed enumeration, accepting indices below 45 × 2¹⁰⁹. Signing retries the nonce otherwise. Each cut reveals six group values and 36 chain values with 84 chain hashes remaining. The drawing illustrates an allowed cut, without claiming a particular digest index. Blue dots are revealed values, blue paths are recomputed, and grey branches are unused for this cut.

Description

This submission lowers the upper-compressions claim from 104 to 102 with a complete certificate of admissibility and 127-bit strong unforgeability. The verification bound covers every input and oracle-answer path, including rejection.

The technique combines two changes: remove the intermediate subtree layer, and choose the number of accepted indices to meet the signing-failure requirement. The smaller family makes it possible to disclose cuts that take one fewer compression to reconstruct.

A shallower forest

Start with 54 independent 128-bit seeds. Extend each through 18 tagged hash steps, combine each triple of chain tips into a group digest, then hash all 18 group digests directly into the public key. Each digest retains the low 128 bits of the 256-bit oracle answer.

54 independent seeds
        │  18 hash steps per chain
54 chain tips
        │  3 tips per group
18 group digests
        │  one tagged root hash
128-bit public key

Every hash input includes a 16-bit node tag. The chain, group, and root inputs are 144, 400, and 2,320 bits, so their actual compression costs are 1, 1, and 5. The tags are charged in the same shared random oracle as every other query.

A signature reveals six group digests and one value on each of the 36 chains in the remaining twelve groups. Choose those chain positions so their remaining hash costs sum to 84.

Work or space Exact accounting
Key generation 54 × 18 + 18 + 5 = 995 compressions
Disclosures 6 + 36 = 42 words, or 5,376 bits
Full signature 128 + 5,376 = 5,504 bits
Reconstruction 84 + 12 + 5 = 101 compressions
Verification 1 index query + 101 = 102 compressions

Enough indices, with a proof of availability

The certified number of distinct cuts is

$$ \binom{18}{6}\,x^{84}^{36} =29{,}487{,}481{,}484{,}631{,}239{,}862{,}222{,}768{,}351{,}166{,}608. $$

This is smaller than the previous 2^115 index family. It is still large enough for M = 45 × 2^109 distinct indices, which meets the required signing-failure bound.

Signing samples nonces without replacement and hashes the message with each fresh 128-bit nonce, accepting when the resulting 128-bit index is below M. Each fresh trial succeeds with probability

$$p=M/2^{128}=45/524288.$$

The availability proof groups the 2^20 trials into 128 blocks of 8,192. The first four binomial terms prove (1 + 45/524243)^8192 ≥ 2. Since 1 + 45/524243 = 1/(1-p), each block fails with probability at most one half, hence

$$(1-p)^{2^{20}}\le(1/2)^{128}=2^{-128}.$$

The proof establishes freshness for the actual signing computation, including messages chosen as a function of the public key: key generation uses input lengths 144, 400, and 2,320, while indexing uses 384 bits. Distinct signing nonces then give distinct fresh index queries.

For comparison, the same shallow forest with chain cost 85 supplies enough cuts for the old 2^115 threshold and gives 103 total compressions. Proving that the smaller threshold is sufficient is what makes chain cost 84—and 102 total—available.

Strong security is preserved

The selected cuts are injectively indexed, satisfy the disclosure constraints, and all have reconstruction cost 101. The tree proof shows that distinct cuts in this family cannot be derived from one another. The security proof then combines hidden key-generation inputs, fresh-answer prefix events, and the index potential for the smaller family. The index-security argument is checked again at this M; its hypotheses do not require M to be a power of two.

It covers a different cut, a different payload for the same cut, and signing failure, preserving strong unforgeability even for alternative signatures on the signed message. For any attainable whole-experiment budget B ≤ 2^127, the proof gives

$$\Pr[\mathrm{forge}]\le\frac{B-995}{2^{127}}<\frac{B}{2^{127}}.$$

Larger budgets follow from the probability bound of one. The transmitted bit-string interface also proves accepted-input canonicality, so alternative encodings do not create an unaccounted forgery.

The protected contract is unchanged. IndexedScheme is a submitted local interface parameterized by M; it reuses the protected graph and oracle semantics. Shallow* supplies the concrete construction and full proof. README.md maps the modules, and NOTES.md records the technique, experiments, unsuccessful alternatives, and next directions. The generic proof infrastructure is reused from the existing 104-compression certificate.

Validation

Official command attempted:

python3 .contract/verifier/verify.py upper-compressions --source . --json

Official verification is pending. The local command stopped before proof checking because verifier tools are missing. Separate host checks also found unsupported Landlock/systemd requirements. No production verification gate was bypassed; the local checks above are not a hosted verdict.

Verifier transcript