Kernpunkte
- OpenZeppelin Contracts liefert wiederverwendbare Solidity-Komponenten.
- Versionen, Berechtigungen und Komposition müssen weiterhin geprüft werden.
- Upgrades erfordern die Prüfung von Initializern, Autorisierung und Storage.
Was ist OpenZeppelin?
OpenZeppelin Contracts ist eine Bibliothek von Solidity-Komponenten für Token-Standards, Berechtigungen, Governance und weitere Patterns. Sie ermöglicht die Wiederverwendung dokumentierter Implementierungen, statt jede Primitive von Grund auf neu zu schreiben. Das Unternehmen OpenZeppelin und seine Dienstleistungen sind vom Umfang der Open-Source-Bibliothek zu unterscheiden.
Ihr Einsatz hilft, die Prüfung auf Komposition, Konfiguration und eigene Logik zu konzentrieren. Er bedeutet nicht, dass der resultierende Contract auditiert wurde oder dass alle Versionen dieselben Eigenschaften haben. Die konkrete Version und ihre Sicherheitshinweise gehören zum Inventar des Projekts.
So funktioniert es
Die Komponenten werden importiert und über Solidity-Mechanismen kombiniert. Jede Erweiterung bringt Regeln und Interaktionen mit, die verstanden werden müssen: Eine Pausierung, eine Mint-Berechtigung und eine Transferfreigabe sind nicht gleichwertig. Das Team legt fest, wer welche Funktion verwaltet und wie diese Befugnisse übertragen oder entzogen werden.
Für Proxies gibt es angepasste Contracts und Upgrade-Werkzeuge. Initializer, die Autorisierung des Upgrades und die Storage-Kompatibilität müssen geprüft werden. Ein Upgrade, das das Zustandsschema ohne Beachtung seiner Einschränkungen verändert, kann ein Deployment beschädigen, auch wenn der Code fehlerfrei kompiliert.
Was OpenZeppelin leistet
Ein Token kann kontrollierte Ausgabe, Pausierung und differenzierte Berechtigungen kombinieren. Die Tests prüfen sowohl zulässige Aktionen als auch Versuche von Nutzern ohne Rolle und Wechsel der Administratoren. Geprüft werden auch Erweiterungen von Standardfunktionen, damit sie in Wallets oder integrierenden Contracts kein unerwartetes Verhalten auslösen.
Bei einem Upgrade-Prozess wird die vorherige Implementierung aufbewahrt, der Storage verglichen und es werden Operationen mit repräsentativem Zustand simuliert. Die Übergabe dokumentiert, wer die Änderung ausführen darf und welche Prüfungen danach erfolgen. Ein Timelock oder eine Multisig liefern Verwaltungsregeln, die ebenfalls konfiguriert und gepflegt werden müssen.
Grenzen und Auswahlkriterien
Das Erben eines Contracts aus der Bibliothek löst weder alle ökonomischen Regeln noch die Pflichten des Produkts. ERC-3643 etwa ist ein Standard, dessen Referenzimplementierung getrennt von OpenZeppelin Contracts verteilt wird. Die Verwendung kompatibler Komponenten belegt für sich genommen keine Compliance einer Emission.
Die MIT-Lizenz erlaubt die kommerzielle Nutzung unter ihren Bedingungen, einschließlich der Beibehaltung der geltenden Hinweise. Für die Wartung werden Versionen fixiert, inkompatible Änderungen geprüft und die Auswirkungen jedes Updates kontrolliert. Audits und Tests werden nach ihrem Umfang beschrieben, ohne eine bekannte Abhängigkeit als Garantie für Unverwundbarkeit darzustellen.
Auch bekannt als
- OZ
- OpenZeppelin Contracts
- @openzeppelin/contracts





