Das eigentliche Sicherheitsmodell eines Protokolls steckt oft gar nicht in seiner Contract-Logik. Es steckt in der Antwort auf eine einfachere Frage: Wer kann die Logik ändern, und wie schnell kann er das tun?
Finden Sie heraus, ob er upgradefähig ist
Die meisten größeren Deployments verwenden einen Proxy-Contract: Die Adresse, mit der Nutzer interagieren, hält den Zustand und delegiert das Verhalten an eine separate Implementierungsadresse, die ausgetauscht werden kann. Block-Explorer erkennen das üblicherweise und zeigen den Implementierungs-Contract neben dem Proxy an.
Ist ein Contract upgradefähig, dann ist „unveränderlicher Code“ keine Eigenschaft, die er besitzt. Das ist nicht automatisch schlecht — so werden Fehler nach dem Deployment behoben —, aber es verschiebt das, worauf Sie vertrauen, vom Code zu den Personen, die ihn kontrollieren.
Bestimmen Sie den Admin und um welche Art von Instanz es sich handelt
Der Proxy hat eine Admin-Adresse mit der Befugnis zum Upgrade. Was diese Adresse ist, zählt mehr als ihr Wert:
- Ein einzelner Externally Owned Account. Ein Schlüssel, eine Person, keine zweite Freigabe. Die schwächste Anordnung, und als solche lesbar.
- Eine Multisig. Besser — aber die beiden Zahlen, auf die es ankommt, sind der Schwellenwert und die Zahl der Signierenden, und beide stehen on-chain. Drei von fünf ist nur dann sinnvoll drei von fünf, wenn die fünf Schlüssel bei verschiedenen Personen auf verschiedenen Geräten liegen, was die Chain Ihnen nicht sagen kann.
- Ein Governance-Contract hinter einem Timelock. Die stärkste der drei Varianten, weil sie eine sofortige Änderung in eine angekündigte verwandelt — sofern jemand die Warteschlange beobachtet.
Prüfen Sie die Verzögerung und ob sie umgangen werden kann
Wo ein Timelock existiert, ist seine Verzögerung aus dem Contract lesbar, ebenso die Warteschlange anstehender Aktionen. Zweierlei ist es wert, geklärt zu werden: wie lang die Verzögerung tatsächlich ist und ob ein Weg besteht, ohne sie zu handeln — eine Notfallrolle, ein Guardian oder eine separat gehaltene Pause-Funktion.
Eine Notabschaltung (circuit breaker) oder Pause-Funktion ist in der Regel gut, aber sie ist auch eine Befugnis. Wer sie aufrufen darf und was die Pause wieder aufhebt, gehört zur selben Kontrollkette.
Warum das die Frage ist, die immer wiederkehrt
Datensätze im Tracker hängen weit häufiger an der Kontrolle als an der Kryptografie. Governance, die ohne Verzögerung ausführen konnte, ist das Muster bei dem Beanstalk-Governance-Flash-Loan. Rechtmäßig gehaltener privilegierter Zugang ist das Muster bei der Munchables-Insider-Schlüsselkompromittierung — siehe auch Innentäter-Risiko.
Was Sie feststellen können und was nicht
On-chain können Sie feststellen: ob der Contract upgradefähig ist, die Implementierungsadresse, die Admin-Adresse, ob der Admin eine Multisig ist und mit welchem Schwellenwert, ob ein Timelock existiert und wie lang seine Verzögerung ist, und was derzeit in der Warteschlange steht.
Allein aus der Chain können Sie nicht feststellen, ob die Signierenden wirklich unabhängige Personen sind, wo die Schlüssel liegen oder was passiert, wenn einer verloren geht. Das sind Fragen der Offenlegung, und ein Projekt, das sie schriftlich beantwortet, sagt Ihnen etwas, das ein Projekt, das sie nicht beantwortet, Ihnen ebenfalls sagt.
Keine Beratung. Conisec berichtet ausschließlich zu Informationszwecken. Nichts in diesem Artikel ist eine Finanz-, Rechts-, Steuer- oder Sicherheitsberatung. Prüfen Sie die oben verlinkten Primärquellen, bevor Sie auf dieser Grundlage handeln.