openzeppelin: Ein leistungsstarkes Instrument, um die Sicherheit von Ethereum -Smart Contracts zu gewährleisten
Kernpunkte
Ethereum muss auf allen Knoten im Netzwerk repliziert werden, sodass sein Computing teuer und ineffizient ist (tatsächlich besagt der GitHub -Entwickler -Dokumentation von Ethereum, dass wir nicht erwarten sollten, dass Ethereum 1999 im Jahr 1999 überschreitet. Mobiltelefon).
Daher ist die Sicherheit der Ethereum Virtual Machine (EVM), d. H. Die Sicherheit von intelligenten Verträgen, die auf der Ethereum -Blockchain eingesetzt werden, von entscheidender Bedeutung. Alle Fehler können tatsächliche wirtschaftliche Verluste verursachen - ob es durch schlechte Vertragscodes oder -verluste verursacht wird, die durch Hacker verursacht werden, die Vertragsanfälligkeiten wie den berüchtigten Dao -Hack ausnutzen, der zur Trennung der Gemeinschaft führte und die klassische Ethereum -Blockchain hervorbrachte.
Die Vollständigkeit und eine Reihe anderer Designentscheidungen machen Ethereum leistungsfähiger und komplexer, zahlen aber auch den Preis. Der Reichtum von Ethereum macht es anfälliger für Fehler und Hacking.Was schlimmer ist, dass in Sethereum eingesetzte intelligente Verträge nicht geändert werden können. Blockchain ist eine unveränderliche Datenstruktur.
In diesem Artikel wird die Sicherheit von intelligenten Verträgen und das Ökosystem von Tools und Bibliotheken untersucht, die uns helfen, sichere intelligente Verträge zu schreiben.
Schauen wir uns einige erstaunliche Tool -Upgrades an, die wir sofort verwenden können, um die besten Praktiken der Soliditätsumgebung zu nutzen.
AIDS
Openzeppelin ist zum Branchenstandard für wiederverwendbare und sichere Open -Source -Soliditätscode (MIT) geworden, der problemlos mit Trüffel bereitgestellt wird. Es besteht aus intelligenten Verträgen, die in unseren Verträgen, die nach der Installation von NPM installiert wurden, einfach importieren und verwendet werden können.
TRUFFS -Framework veröffentlicht ein Tutorial zur Verwendung von Openzeppelin mit Trüffel und Ganache.
Diese Verträge sollen importiert werden, und ihre Methoden sollen auch bei Bedarf abgedeckt werden. Die Datei selbst sollte nicht geändert werden.
Die Openzeppelin -Bibliothek enthält eine Reihe von Verträgen für die Veröffentlichung von Token auf der Ethereum -Plattform - für ERC20 -Token, darunter basicoken -Verträge, Burnabletokens, CapeTTokens (mintable Token mit festen Kappen), Mintabletokens, PausableLetokens (Token -Transfers können aufgestellt werden). Es gibt auch Tokenvesting (ein Vertrag, der seinen Token -Saldo nach und nach wie ein typischer Ausübungsplan mit Klippenperioden und Ausübungsperioden freigeben kann) und so weiter.
Es gibt auch einige Verträge für ERC721 -Token (oder unersetzliche einzigartige Token der Typ -Kryptokittien).
enthält auch den ERC827 -Token -Vertrag, mit dem beim Handel mit Token Daten gesendet werden.
Es gibt auch einige Crowdfunding -Verträge - Verträge für erste Token -Angebote. Diese Verträge können Einkäufe aufzeichnen, Token an Käufer liefern/ausstellen. Es gibt auch einige Funktionen für die Überprüfung und Verarbeitung von Token -Einkäufen.
endgültiger Vertrag ermöglicht es, eine bestimmte Logik nach dem Verkauf auszuführen. Nach der Verbreitung ermöglicht es, die Abhebungen bis zum Ablauf des Crowdfunding zu erfrieren. RefundableCrowdsale ist eine Verlängerung des Crowdsale -Vertrags, der Finanzierungsziele hinzufügt, und die Möglichkeit, dass Benutzer eine Rückerstattung erhalten, wenn das Ziel nicht erreicht wird.
Der zerstörbare Vertrag kann vom Eigentümer zerstört werden und alle Mittel werden an den Eigentümer gesendet. Es gibt auch einige Verträge, um die Verlust der Unteraufträge zu erreichen.
Openzeppelin bietet viele AIDS und Versorgungsunternehmen für ICO-zum Beispiel einen Vertrag, mit dem ERC20-Token anstelle von ETH an eine ICO-Adresse gesendet werden können. Ein vererbbarer Vertrag ermöglicht die Übertragung von Eigentum an einen anderen Eigentümer unter bestimmten Umständen. Der eigene Vertrag hat eine Eigentümeradresse und bietet grundlegende Autorisierung/Autorisierung und Eigentümerübertragung.
RBAC-Verträge bieten ein rollenbasiertes Dienstprogramm zur Zugriffskontrolle. Wir können unterschiedlichen Adressen unterschiedliche Rollen zuweisen, und es gibt keine Begrenzung für die Anzahl der Rollen.
Zeppelin bietet auch ein Beispiel für das Crowdfunding -Startup -TRUFF -Projekt, das nicht geprüft wurde. Daher ist es am besten, es als Grundierung für die Verwendung von Openzeppelin zu verwenden. Es macht es einfach, Crowdfunding und Token schnell zu beginnen.
Zeppelinos ist eine Open Source, eine dezentrale Tool- und Serviceplattform, die auf EVM basiert, um intelligente Vertragsanwendungen sicher zu entwickeln und zu verwalten.
In der Tat ist dies die Middleware -Ebene über EVM, die einen Schritt weiter als das aktuelle Openzeppelin -Framework geht. Zeppelin -Lösungen verspricht hier, dass Entwickler die Variabilität ihres bereitgestellten Codes über den Upgrade -Modus auswählen können. Diejenigen, die intelligente Verträge für EVMs schreiben, wissen, dass ein Problem/eine Beschränkung die Unveränderlichkeit von Einsatzverträgen ist: Sobald Sie die Blockchain eingeben, kann der Vertrag nicht geändert werden. Das ist einer der Gründe, warum das Versprechen von Zeppelinos so attraktiv ist.
Um den Vertrag zu "aktualisieren", müssen bisher zwei Verträge eingesetzt werden - einer als Proxy mit einer Schnittstelle und die andere als Implementierung. Die Funktion des Proxy wird aufgerufen und die Anfrage an die Implementierung weitergeleitet. Wenn Änderungen erforderlich sind, wechseln Sie die Implementierung im Proxy (Neupositionierung einer anderen Implementierung und die Option, die ursprüngliche Implementierung mit der Selbstmordfunktion auszuschalten), und die neue Implementierung wird nahtlos aktiviert.
Wir freuen uns auf die zukünftige Einführung von Zeppelinos durch die Gemeinschaft. Zeppelin Solutions hat einige nicht triviale Teilnehmer wie OpenBazaar, District0x, Storj.io erwähnt und verwenden Zeppelinos.
TRUFFS -Framework ist die Entwicklungsumgebung, das Testrahmen und die Asset -Pipeline von Ethereum. Es ist das vollständigste Werkzeugsatz und der am häufigsten verwendete Werkzeugsatz unter Ethereum -Entwicklern. Das TRUFFL-Ökosystem umfasst viele Trüffelboxen-Boiler, die Front-End-JavaScript-Code, Soliditätsverträge und Workflow-Dienstprogramme wie Boilerplate-Webpackprojekte mit ihren Toolsets wie Migration, Testen, Erstellen von Pipelines und mehr enthalten. Trüffelboxen können einen kompletten Starter Dapp enthalten.
Einige offiziell unterstützte Boxen umfassen:
Community-geschaffene Boxen bringen auch Kesselplatten in den Integrationsvertrag für mobile Anwendungen/Status IM oder bieten Angular und Vue.js Boilerplate usw. bereit, usw.
Diese Boxen sind in TRUFFLE integriert, sodass wir sie starten können, indem wir Befehle wie TRUFFE UNBOX React ausführen. Dadurch wird das Box reagiert und die Abhängigkeiten lokal installiert.
tokenmarketLaut dem ICO -Repository von
Tokenmarket in GitHub besteht ein der Konstruktionsziele/-prinzipien darin, bestehende Openzeppelin -Verträge zu verwenden oder zu erstellen und es als Goldstandard für Soliditätsverträge zu nennen. Daher basiert der größte Teil der ICO-Code-Basis von Tokenmarket auf Openzeppelins Codebasis und baut dann weiter darauf auf (indem er objektorientiert erbt).
tokenmarket regelmäßig (Versuch), mit seiner vorgelagerten Code -Basis Openzeppelin synchron zu bleiben. Es fügt jedoch auch mehr Inhalte hinzu, wie z. B.
EVM ist vervollständigt, sodass alle diese verschiedenen Verträge trotz des Code-Code-Codes im Repository, über den wir hier diskutieren, nicht einmal die vollständige Funktionalität entziehen können. Wenn das System (Ethereum) überleben kann und weiterhin wettbewerbsfähig ist und es genügend Personen im Netzwerk gibt, können wir eine höhere Vielseitigkeit der Probleme erwarten, die diese Blockchain -Verträge zu lösen versuchen.
Consensys Ventures ist ein Schweizer Risikokapitalunternehmen, das sich als Risikokapitalunternehmen im dezentralen Raum positioniert - insbesondere im Ethereum -Raum. Zusätzlich zu den anderen Ressourcen, die sie für geschützte Unternehmen zur Verfügung stellen, haben sie eine kurze Zusammenstellung von Best Practices von Ethereum Smart Contract erstellt. Dies ist zwar kein streng Code, aber es enthält immer noch viele Beispiele für die Vor- und Nachteile des Soliditätscode.
Es konzentriert sich auf die besten Sicherheitspraktiken von Solidity Smart Contracts.
Die vollständige Liste der Themen liegt außerhalb des Rahmens dieses Artikels, da die Ressource sehr umfassend ist und sogar eine Lese-Away-Erinnerung an Smart Contract-Entwickler, die Sie beim Schreiben von Software für EVMs berücksichtigen können. Dies gilt insbesondere dann, wenn jemand ein Programm von Grund auf neu schreibt (nicht auf fertige und bewährte Code wie Openzeppelin).
Einige Artikel beinhalten externe Anrufe, die Änderungen nach externen Aufrufen vermeiden, Fehler in externen Aufrufen behandeln, das Ziehen priorisieren, anstatt nach externen Aufrufen zu drängen, die Kompromisse zwischen abstrakten Verträgen und Schnittstellen zu verstehen und nicht davon auszugehen, dass Verträge Null verwendet werden Bilanzierung, Unterscheidung zwischen Funktionen und Ereignissen, Überlegungen zur Erbschaft, Warnungen vor Zeitstempelabhängigkeiten und Spielbarkeit solcher Strukturen (z. B. mit Blöcken) - und vielen anderen solchen Tricks mit vielen Code -Beispielen.
Anschließend sind tokenspezifische Warnungen, Warnungen im Zusammenhang mit Token -Standards, Software -Engineering -Techniken, Sicherheitstools - für statische Analysen, Tests, Codeprüfer usw.
Sie listeten auch bekannte Angriffe auf, einschließlich derjenigen, die externe Code und Verträge anrufen, Funktionen, die in diesem Fall wiederholt aufgerufen werden können, Wiedereintrittsprobleme, Kreuzfunktionsbedingungen, bei denen sie eine Reihe von Problemen analysierten, einige dieser Probleme manifestieren sich im Dao Hacking Vorfall.
Sie erwähnten ferner Transaktionssortierabhängigkeiten, Zeitstempelabhängigkeiten, ganzzahlige Überlauf und Unterströmung, verschiedene Arten von DOS-Angriffsmöglichkeiten/Punkten, z. veraltete Angriffe. Lesen Sie unbedingt ihre Dokumentation.
In dieser Einführung in das Ökosystem stellen wir einige der verfügbaren Ressourcen für intelligente Verträge ein, die auf virtuellen Ethereum -Maschinen gut geschrieben sind, die für die Produktion verwendet werden können. Dies beinhaltet die Wiederverwendung von geprüften und verifizierten Code (Openzeppelin behauptet, dass mehr als 4 Milliarden US-Dollar in Kryptowährung ausgeführt wird) und das Erlernen des Schreibens Ihrer eigenen sicheren, produktionsbereiten Software.
Wir sind uns sehr sicher, dass diese Liste nicht vollständig ist. Haben wir etwas erwähnenswert verpasst? Bitte sagen Sie es uns!
Openzeppelin ist eine Bibliothek für die sichere Entwicklung intelligenter Vertragsentwicklung. Es bietet Implementierungen von Standards wie ERC20 und ERC721, die Sie so einsetzen können, oder skalieren Sie Ihre Anforderungen sowie Soliditätskomponenten für den Bau von kundenspezifischen Verträgen und komplexeren dezentralen Systemen. Openzeppelin hilft, Blockchain-Projekte vor gemeinsamen Bedrohungen zu schützen, indem er getestete und mit Community-additierte Code bereitgestellt wird.
Openzeppelin stellt die Sicherheit von intelligenten Verträgen sicher, indem sie eine getestete, wiederverwendbare und sichere Codebasis bereitstellt. Die Openzeppelin Contracts -Bibliothek ist die am häufigsten verwendete Lösung bei der Entwicklung von Ethereum -Smart Contracts. Es ist eine sichere und zuverlässige Code -Ressource aus, die Entwickler wiederverwenden können, wodurch der Umfang potenzieller Schwachstellen in einem einzigen intelligenten Vertrag verringert wird.
Openzeppelin bietet Upgrade -Plugins, mit denen Sie intelligente Verträge aktualisieren können. Diese Plugins bieten eine einfache und sichere Möglichkeit, intelligente Verträge im Laufe der Zeit zu verbessern, um neue Funktionen hinzuzufügen oder Fehler zu beheben. Diese Plugins sind so konzipiert, dass sie mit Trüffel- und Hardhat -Entwicklungsumgebungen arbeiten.
Trüffel ist die Entwicklungsumgebung, das Testrahmen und die Asset -Pipeline von Ethereum. Es spielt eine entscheidende Rolle in Openzeppelin, indem es eine Testumgebung für intelligente Verträge bereitstellt. Die Tools -Suite von TRUFFL hilft Entwicklern dabei, in einer einheitliche Umgebung intelligente Verträge zu erstellen, zu kompilieren, zu entfernen und zu testen.
Um Openzeppelin mit Trüffel zu verwenden, müssen Sie beide in Ihrem Projekt installieren. Sobald die Installation abgeschlossen ist, können Sie den Openzeppelin -Vertrag in Ihren eigenen Vertrag importieren und nach Ihren Anforderungen erweitern. Trüffel wird verwendet, um Ihren Vertrag zu kompilieren und bereitzustellen.
Openzeppelin bietet einen Eckpfeiler für Stabilität und Sicherheit für Ihr Soliditätsprojekt. Es bietet eine getestete, wiederverwendbare und sichere Codebasis, mit der Sie Ihre Projekte vor gemeinsamen Bedrohungen schützen können. Es bietet auch Tools zum Upgrade intelligente Verträge, sodass Sie neue Funktionen hinzufügen oder Fehler im Laufe der Zeit beheben können.
Die Openzeppelin -Community begrüßt den Beitrag der Entwickler. Sie können einen Beitrag leisten, indem Sie Fehler melden, neue Funktionen vorschlagen oder Code schreiben. Alle Beiträge werden von der Community geprüft und helfen, die Sicherheit und Funktionalität von Openzeppelin zu verbessern.
Während Openzeppelin hauptsächlich für die Verwendung in Ethereum konzipiert ist, können viele seiner Prinzipien und Bibliotheken auf andere Blockchain -Projekte angewendet werden. Spezifische Implementierungsdetails können jedoch je nach der von Ihnen verwendeten Blockchain -Plattform variieren.
Openzeppelin bietet Implementierungen der ERC20- und ERC721 -Standards, die Sie so bereitstellen können, oder skalieren Sie Ihre Anforderungen. Diese Implementierungen sind sicher und zuverlässig und werden getestet und mit der Gemeinschaft geprüft.
Während Openzeppelin eine beliebte Wahl für die Soliditätsentwicklung ist, sind andere Bibliotheken und Frameworks verfügbar. Dazu gehören Trüffel, Hardhat und Ether.js. Jeder hat seine eigenen Stärken und Schwächen, und die beste Wahl hängt von Ihren spezifischen Bedürfnissen und Vorlieben ab.
Das obige ist der detaillierte Inhalt vonQualitätsdscheidungscode mit Openzeppelin und Freunden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!