Edit 21 Sep: report revised after the replies below, same link. §7 is rewritten since rotation doesn’t hold up as the mitigation, and the emergency count is fixed. Changes and credits are in §10.
I’ve been looking at the Security Council path from a key-exposure angle and ended up with something I’d rather have checked before I publish it as final. Draft is up here: Reacher Report #002
If parts of it are wrong or already handled, I’d like to know before rather than after.
Short version of what I found.
The treasury contracts themselves have no private key, so a key-derivation adversary can’t touch them directly. The path runs through the council. Three things there:
The twelve member addresses are the same across four multisigs on three chains — Ethereum emergency, Arbitrum One emergency, Arbitrum One proposer, Nova. That’s visible in the SecurityCouncilMemberSyncAction transactions in the L1 Timelock, nonce 18 from 6 August. One key per member, four seats.
Public keys for at least nine of those seats are recoverable from chain data already. Safe signatures ride in execTransaction calldata, and the key comes back out of the signature. Three emergency actions have executed — KelpDAO recovery in April, the L2→L1 DoS patch in May, Stylus in October 2025 — nine signatures each.
Against an ordinary attacker, 9/12 is nine different problems: different people, hardware, jurisdictions, habits, plus three org seats with their own internal controls. Against an adversary that derives keys from exposed public keys, it’s one problem run nine times. The threshold buys duration there, not independence. And because of the first point, nine derivations reach four councils, not one seat.
This is class A in our terms, not R — conditional on a machine that doesn’t exist in demonstrated form. Nothing is reachable by this path today.
The part I found more interesting than the finding: the fix already shipped. The 31 August AIP added member self-rotation to SecurityCouncilManager with a 44-day floor. Reading the change notes it looks like an ops improvement, but it’s also the mitigation here — with one condition that isn’t stated anywhere I could find. A rotated key only helps while it stays unused. Sign anything with it, on any chain, and the seat is exposed again. So the protective bit isn’t the rotation, it’s not signing afterwards.
Which raises two questions I can’t answer from outside:
Is rotation-after-emergency-action something the council would consider as practice? Emergency powers were used twice in five months, and the 44-day floor means a council can’t get back to a clean state between two uses inside that window.
And is anyone already treating fresh council keys as cold in this sense, or are they normal working keys?
Public data only, no assertion of a vulnerability in any contract, and I’m not claiming any of the structural choices here are mistakes — synced membership and a no-delay emergency path buy real things I don’t try to weigh. Corrections welcome, I’ll fold them in and credit them.
Related: the June thread on PQC patterns in Arbitrum contracts raised the general question. This is one specific path rather than a survey.