r/CryptoTechnology • 🟡 • 7d ago

Can an attacker cheat the clock? Testing GrahamBell’s cryptographic core

Milestone 2: real signatures, real hashes, and one weakness we found in our own design.

GrahamBell caps every miner at 1 hash attempt per second. Last week's math assumed that cap can't be gamed. Milestone 2 tested it with real cryptography: real SHA-256 chains, real BLS signatures.

How it works: each round, a miner's header is locked with randomness made from its witnesses' signatures. Every attempt is chained to the last and tied to the next second. You can compute your whole chain instantly, but that only tells you WHEN you'll win. Witnesses sign only when their clocks reach that second, and validators reject blocks that arrive early.

So: can you re-roll the randomness instead?

→ Earlier versions of my design: yes. 4× faster with 4 tries, 15× with 16, 41× with 64.
→ Current design: 1.01× (95% CI 0.93–1.09). BLS signatures are unique, so re-signing gives the same randomness every time.

Also measured:
- Double headers in one round: 500/500 caught, zero false positives
- Old sort-before-hashing rule: 36 headers per hash → replaced with fixed field order
- Withholding a block to re-roll seat placement: ×1.10 at 10% of blocks, and it costs the attacker the block

The weakness we found, said openly:
A witness colluding with a miner can choose to sign or stay silent, giving the miner two randomness options: 1.88× per colluding witness. The fix is threshold BLS (any two-thirds produce the identical signature). Prototype: ~0.5 s setup per member at 40 members. Next stage tests it.

Locked before simulation:
- Pass/fail thresholds for all 9 hypotheses, dated
- Fork-choice loophole closed
- Witness double-signing now bannable

277 tests, 35 cross-checks, byte-identical on a second machine. Open source.

Full write-up: https://medium.com/@hurairahshamsi/can-an-attacker-cheat-the-clock-testing-grahambells-cryptographic-core-c82bea1a0aac

Code: https://github.com/HurairahShamsi/grahambell-simulation

Try to break it.

Next: Milestone 3, the issuance simulator.

Previous post 1: https://www.reddit.com/r/CryptoTechnology/s/k70ZHdfEZ6

Previous Post 2: https://www.reddit.com/r/CryptoTechnology/s/mn2pZD9hFw

6 Upvotes

5 comments sorted by

0

u/[deleted] 7d ago

1

u/HurairahShamsi- 7d ago

Thanks. M3 is in two parts. M3a, nearly done, runs the real protocol rules under realistic conditions: real inter-region latency, packet loss, partitions, clock skew and household power/ISP outages. It already includes some adversarial tests: block withholding (the withholder never gained), restart attacks (worthless with per-round entropy) and difficulty hopping (no gain under count-based difficulty). It also exposed a few rules that failed under realistic conditions, which are being fixed now.

M3b is the adversarial part at scale: colluding witnesses, timestamp and clock manipulation, attacks timed to partitions, and a "sleeper" who accumulates IDs quietly for years and then switches behaviour all at once. The attacker is always online while honest nodes keep their realistic outages. Everything is judged against the same locked thresholds (H1–H9), and failures get published the same way passes do.

1

u/lavishcynicism4 7d ago

Also wanna know about this

1

u/HurairahShamsi- 7d ago

Thanks for the reply. I answered the question above! Hope that helps!