Weiter zum Hauptinhalt
Change page

Smart Contract-Bibliotheken

Seite zuletzt aktualisiert: 21. August 2025

Sie müssen in Ihrem Projekt nicht jeden Smart Contract von Grund auf neu erstellen. Es gibt viele Open-Source-Smart-Contract-Bibliotheken, die wiederverwendbare Bausteine für Ihr Projekt bereitstellen. Damit müssen Sie das Rad nicht neu erfinden.

Voraussetzungen

Bevor wir in die Smart-Contract-Bibliothek einsteigen, ist es ratsam, sich mit den Grundlagen der Smart-Contract-Struktur vertraut zu machen. Schaue bei der Anatomie von Smart Contracts vorbei, falls du das noch nicht getan hast.

Was steckt in einer Bibliothek?

Normalerweise finden Sie zwei Arten von Erstellungsblöcken in einer Smart Contract Bibliothek: wiederverwendbare Verhaltensweisen, die Sie Ihren Verträgen hinzufügen können, und die Implementierungen verschiedener Standards.

Verhaltensweisen

Wenn du Smart Contracts schreibst, ist die Wahrscheinlichkeit groß, dass du immer wieder ähnliche Muster schreibst, wie z. B. die Zuweisung einer Admin-Adresse zur Durchführung geschützter Operationen in einem Vertrag oder das Hinzufügen einer Notfall-Pause-Schaltfläche für den Fall eines unerwarteten Problems.

Bibliotheken für Smart Contracts bieten in der Regel wiederverwendbare Implementierungen dieser Verhaltensweisen als Bibliotheken (opens in a new tab) oder über Vererbung (opens in a new tab) in Solidity.

Als Beispiel folgt eine vereinfachte Version des Ownable-Vertrags (opens in a new tab) aus der OpenZeppelin Contracts-Bibliothek (opens in a new tab), der eine Adresse als Eigentümer eines Vertrags festlegt und einen Modifikator zur Verfügung stellt, um den Zugriff auf eine Methode nur auf diesen Eigentümer zu beschränken.

1contract Ownable {
2 address public owner;
3
4 constructor() internal {
5 owner = msg.sender;
6 }
7
8 modifier onlyOwner() {
9 require(owner == msg.sender, "Ownable: caller is not the owner");
10 _;
11 }
12}
Alles anzeigen

Um einen solchen Baustein in Ihrem Vertrag zu verwenden, müssen Sie ihn zuerst importieren und dann in Ihren eigenen Verträgen erweitern. Dadurch kannst du den vom Basisvertrag Ownable bereitgestellten Modifikator verwenden, um deine eigenen Funktionen zu sichern.

1import ".../Ownable.sol"; // Path to the imported library
2
3contract MyContract is Ownable {
4 // The following function can only be called by the owner
5 function secured() onlyOwner public {
6 msg.sender.transfer(1 ether);
7 }
8}

Ein weiteres beliebtes Beispiel ist SafeMath (opens in a new tab) oder DsMath (opens in a new tab). Das sind Bibliotheken (im Gegensatz zu Basisverträgen), die arithmetische Funktionen mit Überlaufprüfungen bereitstellen, die von der Sprache nicht bereitgestellt werden. Es empfiehlt sich, eine dieser Bibliotheken anstelle von nativen arithmetischen Operationen zu verwenden, um Ihren Vertrag vor Überläufen zu schützen, die katastrophale Folgen haben können!

Standards

Um die Komponierbarkeit und Interoperabilität zu erleichtern, hat die Ethereum-Community mehrere Standards in Form von ERCs definiert. Mehr darüber erfährst du im Abschnitt Standards.

Wenn Sie einen ERC in Ihre Verträge aufnehmen, sollten Sie nach Standardimplementierungen suchen, anstatt Ihre eigenen einzuführen. Viele Smart-Contract-Bibliotheken enthalten Implementierungen für die gängigsten ERCs. Zum Beispiel ist der allgegenwärtige Standard für fungible ERC20-Token in HQ20 (opens in a new tab), DappSys (opens in a new tab) und OpenZeppelin (opens in a new tab) zu finden. Darüber hinaus bieten einige ERCs auch kanonische Implementierungen als Teil des ERC selbst.

Es ist erwähnenswert, dass einige ERCs nicht eigenständig sind, sondern Ergänzungen zu anderen ERCs sind. Zum Beispiel fügt ERC2612 (opens in a new tab) eine Erweiterung zu ERC20 hinzu, um dessen Benutzerfreundlichkeit zu verbessern.

So fügst du eine Bibliothek hinzu

Beziehen Sie sich immer auf die Dokumentation der Bibliothek, die Sie einbinden, um genaue Anweisungen zur Einbindung in Ihr Projekt zu bekommen. Mehrere Solidity-Bibliotheken für Verträge werden mit npm gepackt, so dass du sie einfach mit npm install installieren kannst. Die meisten Tools zum Kompilieren von Verträgen suchen in deinen node_modules nach Bibliotheken für Smart Contracts, sodass du Folgendes tun kannst:

1// Dadurch wird die @openzeppelin/contracts-Bibliothek von Ihren node_modules geladen
2import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
3
4contract MyNFT is ERC721 {
5 constructor() ERC721("MyNFT", "MNFT") public { }
6}

Unabhängig von der Methode, die du verwendest, solltest du beim Einbinden einer Bibliothek immer die Sprachversion im Auge behalten. Sie können beispielsweise keine Bibliothek für Solidity 0.6 verwenden, wenn Sie Ihre Verträge in Solidity 0.5 schreiben.

Wann verwenden

Wenn Sie eine Smart-Contract-Bibliothek für Ihr Projekt nutzen, bietet das gleich mehrere Vorteile. In erster Linie sparen Sie Zeit, denn die Bibliothek stellt fertige Bausteine zur Verfügung stellt, die Sie einfach in Ihr System integrieren können, anstatt sie selbst schreiben zu müssen.

Sicherheit ist ein großes Plus. Auch Open-Source-Smart-Contract-Bibliotheken werden oft intensiv untersucht. Da viele Projekte von der Bibliothek abhängen, besteht ein starker Anreiz vonseiten der Communty, sie ständig zu überprüfen. Fehler finden sich viel häufiger im Anwendungscode als in wiederverwendbaren Vertragsbibliotheken. Einige Bibliotheken werden für zusätzliche Sicherheit auch externen Audits (opens in a new tab) unterzogen.

Die Verwendung von Smart-Contract-Bibliotheken birgt jedoch das Risiko, dass Sie Code in Ihr Projekt integreiren, mit dem Sie nicht vertraut sind. Es ist verlockend, einen Vertrag zu importieren und direkt in Ihr Projekt aufzunehmen, doch ohne ein gutes Verständnis dessen, was dieser Vertrag bewirkt, können Sie aufgrund eines unerwarteten Verhaltens versehentlich ein Problem in Ihrem System einführen. Lesen Sie immer die Dokumentation des Codes, den Sie importieren, und überprüfen Sie dann den Code selbst, bevor Sie ihn in Ihr Projekt aufnehmen.

Schließlich sollten Sie bei der Entscheidung, ob Sie eine Bibliothek integrieren möchten, ihren Gesamtnutzen berücksichtigen. Eine weit verbreitete Version hat den Vorteil, dass sie eine größere Community hat und Fehler schneller erkannt werden. Beim Erstellen von Smart Contracts sollte Sicherheit sollte Ihr Hauptaugenmerk sein.

OpenZeppelin Contracts – Die beliebteste Bibliothek für die sichere Entwicklung von Smart Contracts.

DappSys – Sichere, einfache und flexible Bausteine für Smart Contracts.

HQ20 – Ein Solidity-Projekt mit Verträgen, Bibliotheken und Beispielen, die dir helfen, voll funktionsfähige, verteilte Anwendungen für die reale Welt zu erstellen.

thirdweb Solidity SDK – Bietet die Tools, die zum effizienten Erstellen von benutzerdefinierten Smart Contracts erforderlich sind.

Weiterführende Lektüre

Sie kennen Community-Resourcen die Ihnen geholfen haben? Bearbeiten Sie diese Seite und fügen Sie sie hinzu!

War dieser Artikel hilfreich?