Round number
Which training round this block records.
A new round is committed every few seconds. Click a block to inspect it.
Real EARN rounds (S1, no attack, seed 42) from the exploratory oracle-evidence run, replayed on the EarnLedger contract on a local Hardhat chain. Hashes are the Python ledger's SHA-256 chain; the on-chain keccak block hash is shown too.
When only one or two hospitals hold a disease, the only evidence is a hospital's own past. If that record could be rewritten, an attacker would fabricate a consistent past and pass the check. The check only means something on an append-only record.
The contract rejects any trust value rising faster than the fixed step, so even whoever runs aggregation can't quietly boost a hospital.
submit T(centre 0, MEL) 0.00 → 0.30
✕ reverted: StepTooLarge(0, 0, 3000) (max step 0.10)
Tried on the real final table of all 24 runs - rejected every time.
A signed append-only log kept by a trusted third party would achieve much of this. Our answer: in a federation of competing hospitals there is no mutually trusted third party. We state this plainly rather than overclaim.
183,781
median 183,478 · max 282,365 · deploy 667,469
One transaction stores 48 trust values, 8 coverage counts and the history hash. Rounds where trust moves a lot cost more storage writes.
1.13 ms
median 0.99 · max 3.97 ms
Send to receipt on a local, instantly-mining chain. A public chain adds block time (seconds) - still small next to a training round.
Against attacks A1-A3, making the history editable (the "no ledger" ablation) changed nothing measurable: those attackers never needed to rewrite their past. The chain's other job - stopping a coordinator from boosting trust - held on every real round.
Vascular-lesion row, per round.
With the locked history, trust falls to 0.06 by round 19. With an editable history it never leaves 1.00.
Rare-disease F1 still falls from 0.555 to 0.000 - as it does under FedAvg - and trust climbs back to 1.00 by round 30. EARN's trust only removes a bonus, so the attacker keeps its normal share; and a running-average history slowly absorbs the new behaviour. The pre-registered bar (a 0.05 rare-F1 gain from the lock) was not met.