Blockchain Security — Referenz.
Bedrohungsklassen für Smart Contracts, Bridges und Konsens-Layer — wo die tatsächlichen Verluste der Branche kumulieren, und die Audit-Muster, die sie fangen.
Smart-Contract-Bedrohungsklassen
- Reentrancy. External Call vor State-Update lässt Callee in den Contract zurückrufen in einem Zustand, in dem Invarianten nicht halten. Audit-Muster: jeder External Call (
.call, ERC-20-Transfer an unbekannte Adresse,safeTransferFrommit Hooks) gefolgt von State-Mutation = Reentrancy-Kandidat. Mitigation: Checks-Effects-Interactions-Ordering, Reentrancy-Guard-Modifier, Pull-Payment statt Push. - Integer Overflow/Underflow. Solidity ≥0.8 reverted bei Overflow; Pre-0.8 nutzte SafeMath. Audit-Muster: explizite
unchecked { … }-Blöcke müssen reviewed werden. Häufiger Bug:uncheckedfür Gas-Savings in Subtraktion ohne Bounds-Check. - Access-Control. Fehlendes
onlyOwnerauf privilegierter Funktion;tx.originfür Auth (via Zwischen-Contract umgehbar); Initializer zweimal aufrufbar; Role-Renounce-Pfade, die Contract bricken. - Oracle-Manipulation. Price-Feed = on-chain DEX-Spot-Price. Angreifer flash-loaned, swapped um Preis zu bewegen, ruft Liquidation. Mitigation: TWAP über >30 Min; Chainlink-style Off-Chain-Aggregation; Circuit-Breaker auf Price-Delta.
- Time-Dependence.
block.timestampMiner-manipulierbar um ~15 Sek. Nicht für Randomness oder enge Fenster-Vergleiche nutzen. - Gas-DoS. Unbounded Loop über User-kontrolliertes Array;
sendan Adresse, die mehr als 2300 Gas verbraucht. Mitigation: Iteration paginieren; Pull-Pattern. - Front-Running / MEV. Mempool-sichtbare Transaktionen mit höherem Gas kopiert, um Wert zu extrahieren. Mitigation: Commit-Reveal, Private-Mempool (Flashbots), Batch-Auktionen.
- Signature-Replay. EIP-712-Signatur ohne chainId oder Nonce → cross-chain oder Session-Replay.
Bridge-Architektur — wo Verluste leben
- Validator-Set-Integrität. Bridge-Security == Validator-Set. Ronin (2022, $625M) kompromittierte 5/9 Validator-Keys. Wormhole (2022, $326M) — Signature-Verification-Bypass. Audit: wie wird das Validator-Set rotiert? Key-Custody (HSM, Threshold)? Slashing bei Fehlverhalten?
- Message-Replay. Withdrawal-Proof wiederverwendbar cross-chain oder zweimal auf gleicher Chain. Nomad (2022, $190M) — uninitialisierter Trusted Root, jede Message by-default valid.
- Asset-Accounting-Reconciliation. Auf Chain A gelockt, auf Chain B gemintet. Drift = Solvency-Bug. Audit: Invariante
locked == mintedin jedem Block. Off-Chain-Monitor, der bei Drift feuert. - Upgradeability. Proxy-Upgrades durch Admin = unilateraler Rug-Risk. Audit: Timelock + Multisig + On-Chain-Visibility. Upgrade-Governance gegen tatsächlichen TVL vergleichen — TVL wächst in fast allen Projekten schneller als Governance-Reife.
Konsens-Layer-Threats
- Long-Range-Angriff (PoS). Angreifer kauft alte Validator-Keys (wertlos nach Unstake), schreibt History aus Epoche um, in der er Stake hatte. Mitigation: Weak-Subjectivity-Checkpoints.
- Nothing-at-Stake. Validator votet auf jeder Fork, weil keine Kosten. Mitigation: Slashing bei konfligierenden Votes.
- MEV am Konsens. Proposer-Builder-Separation (PBS) versucht Proposer-Renten zu limitieren; Censorship und Inclusion-List-Debatten laufen.
- 51%-Angriff auf PoW. Genug Hash mieten → Reorg → Double-Spend. Auf kleinen Chains ökonomisch rational; Bitcoin-Gold, Ethereum-Classic Real-World-Beispiele.
Audit-Muster-Checkliste
- External-Calls + State-Mutations — Reentrancy-Review.
unchecked-Blöcke — Arithmetic-Review.- Jede privilegierte Funktion — Access-Control-Review (wer kann aufrufen, revokebar, transferierbar).
- Price-Input-Source — TWAP oder Single-Block? Via Flash-Loan manipulierbar?
- Loops — von Konstante oder von User-Input bounded?
- Upgrade-Pfad — Admin-, Timelock-, Multisig-Konfiguration?
- Signature-Verifikation — chainId, Nonce, EIP-712-Struktur korrekt?
- Initialisierung — Initializer One-Shot? Constructor setzt allen State? Proxy-Implementation initialisiert?
FaustregelIn Smart-Contract-Audits sind die teuersten Bugs nicht exotisch — es sind Access-Control, Oracle-Manipulation und Upgrade-Pfad-Fehler. 70% der Audit-Zeit auf die langweiligen Fragen verwenden: wer kann das aufrufen, was vertraut es, was passiert auf dem Unhappy-Path.
Verwandte Notizen in dieser Domain
Von der Referenz zum Befund