MAINNETBETA

makerdao.com

4.8MODERATEmedium
6 sectionsrun #1
Findings1 critical13 high16 medium
DEPGOVTKNAUDCTR
Last analyzed 16d ago runs

Summary

Sky Protocol (formerly MakerDAO) is a battle-tested CDP stablecoin system with roughly $5.8B in Ethereum collateral and ~$12.3B in combined DAI/USDS supply across seven chains. It has operated for nine years without a confirmed direct smart-contract hack, backed by a $10M Immunefi bounty and extensive audits, but the 2024 Endgame rebrand added cross-chain bridges, Allocator credit lines, and modular agent upgrades that expand the attack surface. Primary concerns are stablecoin backing opacity (~57% of supply minted via governance credit lines rather than hard-locked vaults), nine unverified core contracts, single-path Chronicle oracles, and SKY-weighted governance without an institutional multisig. Overall risk is moderate at 4.8/10.

Trust Assumptions

Users trust that Chronicle oracle feeds and 1-hour OSM delays will remain accurate under market stress, that Allocator credit lines to Spark, Bloom, and OBEX will not produce unrecoverable bad debt, and that SKY holders voting through the Chief contract will act in the protocol's interest during the 48-hour timelock window before executive spells execute. Bridged USDS holders additionally trust SkyLink OP Stack escrows and LayerZero peer configuration on Solana, all controlled by the same governance-controlled Pause Proxy rather than any single-key admin.

What Could Go Wrong

A Chronicle oracle failure or manipulation during extreme volatility could trigger mass liquidations or leave positions undercollateralized, echoing the $8.3M Black Thursday losses in 2020. A compromised or rushed governance spell could upgrade the UUPS USDS proxy, reconfigure LayerZero bridge peers, or expand Allocator debt ceilings—minting unbacked stablecoins before the community can react within the 48-hour delay. Allocator-heavy backing (~$7.4B via credit lines) has not been stress-tested at current scale; a Spark or sub-protocol default could force MKR/SKY debt auctions and destabilize the peg.

Recommendation

Sky Protocol is suitable for considered capital allocation given its operational history, timelocked governance, and deep audit program, but investors should treat headline stablecoin supply as distinct from immediately liquidatable CDP collateral. Monitor Allocator debt utilization, Chronicle oracle migrations, and any executive spells touching USDS upgrades or bridge configuration. Reduce exposure if unverified contracts remain unaudited, SKY voting concentration increases beyond current ~30% in Chief, or bridged USDS supply grows faster than verified escrow backing on L2s and Solana.

Key Findings (30)

critical
USDS proxy contract unverified on Etherscanverification
high
MKR governance token contract unverifiedverification
high
MCD_END shutdown module unverifiedverification
high
MCD_VOW surplus/deficit module unverifiedverification
high
Arbitrum L1 Escrow unverifiedverification
high
Base bridged sUSDS token unverifiedverification
high
Historical Chief Governance Vulnerability (2019)incident
high
Stablecoin supply exceeds visible CDP collateralbacking
high
SKY governance concentration in Chief voting contractconcentration
high
Single Oracle Path Per Collateral (No Fallback)oracle
high
Historical Oracle/Liquidation Cascade (Black Thursday)oracle
high
Nine pipeline contracts unverified on block explorersaudit-gap
high
Black Thursday liquidation and oracle failure (Mar 2020)incident
high
Critical DSChief governance vulnerability (May 2019)incident
medium
Three additional unverified governance/bridge contractsverification
medium
USDS UUPS upgradeable stablecoinupgradability
medium
Multiple ERC1967 upgradeable bridge proxiesupgradability
medium
LayerZero OFT privileged bridge configurationbridge
medium
DSPause timelock governance with delegatecall executiongovernance
medium
Endgame StarGuard agent upgrade pathgovernance
medium
Optimism Gov Relay lacks Pause Proxy wardaccess-control
medium
48-Hour DSPause Timelock on Core Upgradestimelock
medium
No Multisig—Single Token-Plurality Controlcentralization
medium
Endgame StarGuard Parallel Upgrade Patharchitecture
medium
L1 Pause Proxy Controls L2 Governance Relayscross_chain
medium
Unverified Governance-Adjacent Contractsverification
medium
MKR→SKY migration incomplete with escalating 4% penaltymigration
medium
SKY reward emissions shifted from mint to treasury but remain substantialemission
medium
Dual stablecoin architecture and cross-chain supply fragmentationpeg
medium
Allocator debt ceiling expansion increases mint-without-collateral capacityincentives

Analysis Sections

Sky Protocol uses SKY-weighted executive spell voting via Chief (0x929d9a) with a 48-hour DSPause timelock before MCD_PAUSE_PROXY (0xbe8e3e) executes upgrades. On-chain: pause owner is zero, authority is Chief; current hat is spell 0x0ae3371e…; gov token is SKY. No multisig—token holders control all upgrades. Endgame StarGuard/SubProxy adds 7-day-delayed subDAO paths also warded by the pause proxy. L2 SkyLink governance relays (Base/Arb/Opt) are pause-proxy-controlled on L1; LayerZero OFT owner is pause proxy. Several bridge/agent contracts remain unverified, expanding governance surface.

Findings (8)

highHistorical Chief Governance Vulnerability (2019)

OpenZeppelin disclosed a critical DSChief flaw in May 2019 that could have permanently locked ~$100M MKR in the voting contract. Patched before exploitation. Demonstrates governance contracts are high-value targets; current Chief is a rewritten Solidity 0.8.21 implementation but remains the sole authority gate for DSPause.

OpenZeppelinCritical flaw in DSChief could permanently lock MKR voting contract
medium48-Hour DSPause Timelock on Core Upgrades

All core protocol changes flow through DSPause (MCD_PAUSE 0xbe2864) with a verified 172800-second (48h) delay between plot and exec. Admin parameter changes (setDelay, setOwner, setAuthority) require the wait modifier—only callable from DSPauseProxy after a delayed plan, preventing instant config changes. DSPause owner is 0x0; authority is Chief, so only the active hat spell can plot plans.

on-chain RPCDSPause: delay=172800, owner=0x0, authority=0x929d9a1435662357f54adcf64dcee4d6b867a6f9, proxy=0xbe8e3e3618f7474f8cb1d074a26affef007e98fb
contract sourceDSPause.plot requires eta >= now + delay; setDelay uses wait modifier
mediumNo Multisig—Single Token-Plurality Control

Protocol has no Gnosis Safe or institutional multisig governing core contracts. MCD_PAUSE_PROXY holds ward on Vat, SKY, L2 governance relays, StarGuards, SubProxies, escrows, and LayerZero OFT. Executive control depends on SKY voting concentration; a coalition holding plurality can pass spells and lift new hats within a 10-block cooldown after approvals threshold is met.

on-chain RPCVat wards[MCD_PAUSE_PROXY]=1; SKY wards[MCD_PAUSE_PROXY]=1; LZ_USDS owner()=MCD_PAUSE_PROXY
on-chain RPCChief hat approvals ≈ 6.52e27 SKY (~6.5M SKY if 18 decimals)
mediumEndgame StarGuard Parallel Upgrade Path

Spark and Grove agents use StarGuard (maxDelay=604800s / 7 days) + SubProxy delegatecall execution, separate from the main DSPause spell path. StarGuards and SubProxies are warded by MCD_PAUSE_PROXY; StarGuardJob (keeper-automated exec) is also pause-proxy-warded. This modularizes subDAO upgrades but increases governance/upgrade surface and operational complexity.

on-chain RPCSpark_StarGuard maxDelay=604800, subProxy=0x3300f198988e4c9c63f75df86de36421f06af8c4, wards[MCD_PAUSE_PROXY]=1
contract sourceStarGuard.plot is auth-gated; exec() delegatecalls via SubProxy with codehash verification
mediumL1 Pause Proxy Controls L2 Governance Relays

SkyLink L2 configuration is governed from Ethereum: L1GovernanceRelay contracts on Base, Arbitrum, and Optimism all have wards[MCD_PAUSE_PROXY]=1, relaying messages to L2 governance relays via OP Stack cross-domain messenger. L1 escrows (Base/Arb/Opt/Unichain) are also pause-proxy-warded. This centralizes cross-chain admin under the same 48h timelock path but creates dependency on L1 governance latency and relay correctness.

on-chain RPCBase/Arb/Opt L1GovernanceRelay wards[MCD_PAUSE_PROXY]=1; Base_Escrow wards[MCD_PAUSE_PROXY]=1
contract sourceL1GovernanceRelay.relay() is auth-gated, sends cross-domain message to L2GovernanceRelay
mediumUnverified Governance-Adjacent Contracts

Several governance-adjacent contracts lack verified source: MCD_SPBEAM (0x36b072), Grove StarGuard (0xfc51ca), Optimism L1 Gov Relay (0x09b354), Arbitrum Escrow (0xa10c7c), and multiple proxy implementations. Unverified contracts cannot be fully audited and may conceal divergent admin logic from the verified pause-proxy model.

contract verification status9/39 contracts unverified including MCD_SPBEAM, Grove StarGuard, Optimism Gov Relay
lowMature Public Governance Process

Protocol has years of on-chain executive votes, public spell review on GitHub (sky-ecosystem/executive-votes), $10M Immunefi bounty, and multiple third-party audits including Endgame toolkit. Maker Foundation dissolved 2021; no residual foundation admin keys identified on core pause system.

discoveryImmunefi max $10M bounty; ChainSecurity/Cantina Endgame audits; executive-votes repo
on-chain RPCDSPause owner=0x0 — no deployer EOA retained as direct owner
infoSKY Token-Weighted Executive Spell Voting

Governance follows MakerDAO's Chief model: SKY holders lock tokens, vote on executive spell slates, and lift() promotes a spell to hat when it exceeds current approvals. Only the hat address can authorize DSPause plot/exec. Chief is live (live=1), uses SKY (0x56072c95…) as gov token (MKR successor), maxYays=5, launchThreshold=2.4B SKY, liftCooldown=10 blocks.

on-chain RPCChief(0x929d9a): live=1, GOV()=0x56072c95faa701256059aa122697b133aded9279, hat=0x0ae3371e9c4e37515259d124c685fe6722c5e253, liftCooldown=10
contract sourceChief.canCall: ok = live == 1 && caller == hat

Governance Checklist

Multisig (not EOA)Token-weighted Chief; no institutional multisig on core contracts
Timelock on upgrades48h DSPause delay (172800s) verified on-chain
On-chain governanceSKY executive spell voting via Chief; hat authorizes DSPause
Owner renounced on pauseDSPause owner=0x0; authority=Chief only
Cross-chain governance unifiedL1 pause proxy wards L2 gov relays and escrows (Base/Arb/Opt verified)
All contracts verified9 contracts unverified including Grove StarGuard and MCD_SPBEAM

On-Chain Governance Parameters

DSPause Delay
172800seconds (48h)
StarGuard Max Delay
604800seconds (7d)
Chief Lift Cooldown
10blocks
Chief Max Yays
5count
Gov Token
0SKY (0x56072c95faa701256059aa122697b133aded9279)