Smart Contract
Was ist ein Smart Contract?
Ein Smart Contract ist ein Software-Algorithmus, der entwickelt wurde, um Verträge zu erfassen und zu automatisieren, um deren Bedingungen und Konditionen zu verfolgen und durchzusetzen. Sie arbeiten mit der Blockchain-Technologie innerhalb dezentraler Systeme. Einfach ausgedrückt, ist ein Smart Contract ein Programm, das die Erfüllung der Verpflichtungen aller an der Transaktion beteiligten Parteien garantiert und alle in ihm festgelegten Vorgänge und Prozesse automatisch ausführt. So überwacht der Smart Contract selbst, ob der Teilnehmer seinen Teil der Transaktion erfüllt hat, und wenn nicht, verhängt er Strafen und sperrt den Zugriff auf Vermögenswerte. Wenn alles in Ordnung ist, bestätigt der Smart Contract die Transaktion und überträgt die darin festgelegten Ressourcen an die richtige Person, sei es Geld, Aktien oder sogar Immobilien.
Zu den wichtigsten Vorteilen von Smart Contracts gehören also:
-
Automatisierung: Es ist nicht mehr notwendig, die Erfüllung von Vereinbarungen manuell zu überwachen. Es ist auch nicht mehr nötig, Vertrauen zwischen den Teilnehmern aufzubauen, die Erfüllung von Klauseln zu kontrollieren usw. Ein Smart Contract übernimmt alle Prozesse und schaltet den Einfluss des menschlichen Faktors vollständig aus.
-
Sicherheit: Ein intelligenter Vertrag kann nach seiner Unterzeichnung nicht mehr umgeschrieben oder gelöscht werden, denn Smart Contracts funktionieren auf der Blockchain, und die Blockchain ist das manipulationssicherste Netzwerk überhaupt.
-
Transparenz: Vertragsteilnehmer können die Daten und ausführbaren Prozesse eines Smart Contracts jederzeit einsehen, und alle Informationen sind öffentlich zugänglich.
Die Verbreitung von Smart Contracts ist Vitalik Buterin zu verdanken, dem Schöpfer der Kryptowährung und Plattform Ethereum, mit deren Hilfe er diese Plattform in ein entwickeltes Ökosystem mit vielen miteinander verbundenen Projekten verwandelte. Der Begriff "Smart Contract" tauchte jedoch schon viel früher auf, nämlich 1994, als er von dem Forscher Nick Szabo geprägt wurde, der auch die Prinzipien und das Konzept ihrer Implementierung festlegte. Heute sind Kryptowährungen und Smart Contracts untrennbar miteinander verbunden, aber das gilt nicht nur für Kryptowährungen.
Wie funktionieren Smart Contracts?
Um zu verstehen, wie Smart Contracts funktionieren, müssen Sie zunächst verstehen, wie eine Blockchain funktioniert. Eine Blockchain ist ein Netzwerk, das aus einer Kette von Blöcken besteht, die aus einem einfachen Grund nicht verändert werden können: Jeder Block enthält Informationen aus dem vorherigen Block. Das heißt, wenn ein Nutzer einen der Blöcke ändert, stimmen die Informationen im anderen Block nicht mehr mit ihm überein und das System bemerkt den Fehler sofort. Und es ist technisch unmöglich, alle Blöcke zu fälschen, denn dazu müsste die gesamte Blockchain überschrieben und somit zerstört werden. Wenn das System einen Fehler (oder einen Hack) in einem der Blöcke bemerkt, wird es diesen sofort verbieten und den Block in seinen ursprünglichen Zustand zurückbringen. Dies ist genau das gleiche Prinzip, nach dem ein Smart Contract funktioniert.
Im Gegensatz zu herkömmlichen Verträgen, bei denen die Beteiligung Dritter erforderlich ist, werden bei einem Smart Contract alle Prozesse durch Softwarecodes und Algorithmen ausgeführt, so dass kein Eingreifen von außen erforderlich ist. Hier sehen Sie, wie Smart Contracts Schritt für Schritt funktionieren:
-
Identifizierung der Parteien: Jede Vertragspartei muss ihre Identität bestätigen, indem sie der Blockchain die persönlichen Daten mitteilt, die für den Abschluss des Vertrags erforderlich sind. Der Smart Contract prüft deren Authentizität und Relevanz, erfasst und speichert sie.
-
Festlegung der Bedingungen und Konditionen: Die Parteien legen ihre Verpflichtungen fest und spezifizieren Informationen wie Preis, Bedingungen, Rechte und Pflichten der einzelnen Parteien, die der Smart Contract überwachen soll.
-
Unterzeichnung des Vertrags: Jede Partei setzt eine digitale Unterschrift und gibt ihre Zustimmung zur Verarbeitung der Daten, woraufhin der Smart Contract aktiviert wird. Von diesem Moment an übernimmt er die Kontrolle über alle Verpflichtungen, wie die Übergabe des Transaktionsgegenstandes, Fristen usw.
Smart Contracts können heute in fast jedes System integriert werden, aber es gibt eine Reihe von Voraussetzungen, damit ihre Funktionen in diesem System effektiv realisiert werden können. So muss das System dem Smart Contract Folgendes zur Verfügung stellen:
-
Benutzer-Tools (z.B. Benutzerkonten);
-
zuverlässige und dezentralisierte Informationsquellen;
-
Datenbanken für die Durchführung von Transaktionen. Mit "Transaktionen" sind nicht nur Finanztransaktionen gemeint, sondern auch alle anderen Aktionen, die der Smart Contract im System durchführen muss;
-
die Fähigkeit, Verschlüsselung und Schlüssel (privat oder öffentlich) zu verwenden;
-
die Vollständigkeit des Systems nach Turing, d.h. die nachgewiesene rechnerische Funktion des Systems ohne logische Fehler.
Mit Hilfe sogenannter Orakelprogramme ist es jedoch möglich, Informationen für einen Smart Contract aus externen Quellen zu übersetzen, indem sie in ein geeignetes Format umgewandelt werden.
Wichtig: Die rechtliche Regulierung von Smart Contracts hängt von dem jeweiligen Land ab, aber in der Regel nehmen die meisten Gesetzgeber eine sehr "vorsichtige" Haltung ihnen gegenüber ein, da es keine einheitliche Auslegung und Verfahrensweise für einen Smart Contract gibt. In einigen Ländern wird ein Smart Contract beispielsweise als Software betrachtet, und jede Software hat einen Urheberrechtsinhaber. Wenn also irgendwelche Probleme auftreten, sollten sie direkt mit dem Rechteinhaber geregelt werden. Er ist auch für alle Fälle und Verstöße verantwortlich.
Arten von Smart Contracts
Ursprünglich wurden Smart Contracts nur benötigt, um alle Bedingungen Schritt für Schritt zu verfolgen und eine Stellungnahme abzugeben, ob sie erfüllt wurden oder nicht. Mit der Blockchain haben sich jedoch auch die Smart Contracts weiterentwickelt, so dass es heute mehrere Untertypen und Bereiche gibt, in die sie aufgrund von Funktionen oder anderen Prinzipien unterteilt werden. Zum Beispiel:
-
zentralisiert oder dezentralisiert;
-
vertraulich, teilweise vertraulich oder völlig offen (es geht um Anonymität)
-
automatisiert (der gesamte Smart Contract funktioniert völlig selbstständig) oder manuell (der Nutzer muss die Transaktionen noch bei jedem Schritt bestätigen)
Smart Contracts können also kombinierte Typen sein, d.h. jede dieser Eigenschaften (z.B. dezentral + vertraulich + automatisiert) kann vom Entwickler des Smart Contracts nach Belieben geändert werden.
Beispiele für Smart Contracts
Smart Contracts werden heute am häufigsten in den folgenden Bereichen eingesetzt:
Im Finanzbereich. Wir sprechen hier insbesondere von DVVs, d.h. von Digitalen Vermögensverwaltungen. Sie können verwendet werden, um Transaktionen wie Überweisungen, Kredite, Versicherungen, Wertpapierverkäufe usw. zu vereinfachen und zu beschleunigen. Sie können z.B. die Fälle regeln und verfolgen, in denen eine Person Anspruch auf Zahlungen hat, und das Risiko beim Handel an der Börse verringern, um das Auftreten von Betrug oder Fehlern zu minimieren.
Im Immobiliensektor. Smart Contracts können auch den Prozess des Kaufs oder Verkaufs einer Wohnung sowie die Vermietung automatisieren. So ist es beispielsweise möglich, den Betrag der Transaktion, die Bedingungen für die Übergabe und den Auszug der bisherigen Mieter aus dem Haus sowie die Übertragung der Eigentumsrechte festzulegen. Dank Blockchain ist es also nicht mehr nötig, sich an die Behörden zu wenden, um den Eigentümer eines Hauses zu wechseln: Ein Smart Contract schreibt den Eigentümer automatisch um, sobald alle Bedingungen erfüllt sind und überträgt die Daten an alle Systeme.
Bei der Optimierung von Lieferketten. Mit dem Smart Contract und der Blockchain wird zum Beispiel das Problem minderwertiger oder gefälschter Waren gelöst, da der Smart Contract das Verfallsdatum der Waren, Identifikationsnummern, Seriennummern usw. festhalten kann. So kann der Smart Contract selbst nachvollziehen, ob die vom Lieferanten übergebenen Produkte echt sind und ob die Liefer- und Qualitätsstandards eingehalten wurden
Im Bereich Krypto. Smart Contracts können nicht nur dazu verwendet werden, bestimmte Funktionen zu erfüllen, sondern auch, um einfache Informationen über den Besitzer von Kryptowährungen sicher zu speichern und aufzuzeichnen. Der Smart Contract für den Tether-Token (USDT) speichert beispielsweise Informationen über Token-Inhaber, einschließlich ihrer Nummer, der Adresse, an der sie sich befinden, usw. Der Smart Contract implementiert auch Überweisungen und Abhebungen dieser Token von dem Account. Das Gleiche gilt für NFTs: Smart Contracts erfassen die Eigentumsrechte und deren eventuelle Übertragung.
Smart Contracts können auch für andere Zwecke verwendet werden. Hier einige anschauliche Beispiele dafür, wie ein Smart Contract in der Praxis des täglichen Lebens aussieht:
-
Sie und Ihre Freunde schließen Wetten darauf ab, wer das nächste Fußballspiel gewinnen wird, und legen im Smart Contract die eingesetzten Beträge, Ihre Kontodaten und die Beträge fest, die an den einen oder anderen überwiesen werden. Sobald das Spiel vorbei ist, verifiziert der Blockchain-Vertrag das Ergebnis automatisch auf einer der verifizierten Websites und löst einen Mechanismus zur Überweisung von Geldern aus, je nachdem, wer gewonnen hat.
-
Sie bestellen online einen Artikel für einen hohen Geldbetrag. Dieser Betrag wird in der Blockchain festgelegt und sobald der Kurier die Ware an Sie ausliefert, Sie diese überprüfen und bestätigen, dass alles in Ordnung ist, überweist der Smart Contract automatisch den eingefrorenen Betrag auf Ihrem Konto an den Shop.
-
Sie vermieten eine Wohnung mit der Bedingung, dass die Zahlungen zwischen dem 10. und 15. eines jeden Monats auf Ihr Konto erfolgen müssen. Wenn die Mieter den festgelegten Betrag nicht innerhalb dieses Zeitraums an Sie überweisen, verschließt der Smart Contract über das Smart Home die Türen zur Wohnung und macht den Mietvertrag ungültig.
-
Mit einem Smart Contract können Sie sogar ein Testament machen. Sobald das System die Sterbeurkunde der Person erhält, die das Testament unterschrieben hat, realisiert es die notwendige Übertragung von Rechten und Ressourcen auf die genannten Personen, ohne dass Vermittler eingeschaltet werden müssen und ohne dass Papierdokumente beschafft, ausgefertigt und ausgefüllt werden müssen.
Worauf Smart Contracts geschrieben sind
Smart Contracts funktionieren auf der Grundlage von Codes wie jedes andere Programm. Gleichzeitig kann die Kodierungssprache unterschiedlich sein. So kann ein Smart Contract geschrieben werden in:
Solidity (Ethereum).
Diese Sprache wurde von Christian Reitwießner, Yoichi Hirai und Gavin Wood erfunden, die am Ethereum-System gearbeitet haben, das heute als die beliebteste Plattform zur Erstellung von Smart Contracts gilt. Sie können in andere Blockchains integriert werden, werden aber dennoch auf dem Ethereum-Netzwerk ausgeführt. Solidity zum Beispiel war die erste Sprache, die für die Erstellung von Smart Contracts verwendet wurde und ist daher auch heute noch die am besten zugängliche Sprache mit einer großen Community und moderner Unterstützung.
Zu den Vorteilen von Solidity gehört auch, dass damit alle Funktionen ohne Einschränkung berechnet werden können und dass es im Gegensatz zu Python, C++ und JavaScript keine komplexe Einarbeitung erfordert. Außerdem unterstützt Solidity die Anzeige von Daten über Hashtabellen, was doppelt praktisch ist.
C++ (EOS).
Es ist eine universelle Programmiersprache, die für alle Zwecke verwendet wird, da sie die Skalierung von Anwendungen ermöglicht und dafür sorgt, dass diese nahtlos ablaufen. Die Gemeinschaft der Sprache besteht aus mehr als 4 Millionen Entwicklern. Gleichzeitig gilt diese Sprache als schwieriger zu codieren als die vorherige. Sie ist die bevorzugte Sprache für die Erstellung von Smart Contracts auf der EOS-Blockchain.
JavaScript
Die bekannteste Programmiersprache, die seit der Web 1.0-Ära des Internets bekannt ist und aus klassischen Anwendungsprogrammen hervorgegangen ist, hat aber auch in Blockchain-Systemen ihren Platz gefunden. Da JavaScript als Einstiegssprache gilt, finden Sie heute viele fertige JavaScript-Vorlagen und -Bibliotheken im Internet, die Sie an Ihre Bedürfnisse anpassen und sofort mit jedem Ökosystem verbinden können. Aus diesem Grund werden die meisten Projekte (insbesondere Startups) zunächst mit Java entwickelt.
Yul
Dies ist eine Zwischenprogrammiersprache, die zur Kompilierung in Bytecode und zur Ausführung von Anfragen von Serversystemen verwendet wird. Der Solidity-Compiler verwendet daher Yul als Zwischensprache, die auch eigenständig verwendet werden kann. Sie eignet sich gut für ein hohes Maß an Optimierung und garantiert die Lesbarkeit, unabhängig davon, mit welchem Compiler der Code erzeugt wird. Yul ist außerdem statisch typisiert und eignet sich gut für Programmieranfänger.
Wie man einen Smart Contract erstellt
Die Entwicklung eines Smart Contracts erfolgt in mehreren Schritten:
1. Die Analyse der Ziele und Zwecke des Smart Contracts
Zuallererst müssen Sie verstehen, wofür der Smart Contract verwendet werden soll, denn davon hängt sein Algorithmus ab. Es ist wichtig, eine Abfolge von Prüfungen zu erstellen, die der Smart Contract durchführen wird. Dies ist wahrscheinlich der wichtigste Teil des Prozesses, der niemals abgekürzt oder vereinfacht werden sollte, da dies die Risiken der Interaktion erhöhen und zu Verlusten für beide Parteien führen kann. In dieser Phase sollten Sie bereits die Vertragsbedingungen, Ausführungsmethoden und andere Parameter festlegen, die Sie im Vertrag benötigen.
2. Die Wahl der richtigen Blockchain
Die Wahl der Blockchain hängt davon ab, welche Parameter Sie im vorherigen Schritt festgelegt haben und welche Programmiersprachen Sie beherrschen. Die meisten Smart Contracts werden auf der Ethereum-Blockchain erstellt, weil sie speziell für die Skalierung und Integration mit jedem Projekt und sekundären Systemen oder virtuellen Maschinen entwickelt wurde. Daher wird Ethereum in mindestens 8 von 10 Fällen zu Ihnen passen.
3. Entwickeln des Codes und Erstellen eines Smart Contracts
Nachdem Sie sich für eine Blockchain entschieden haben, können Sie direkt mit dem Schreiben des Codes beginnen. Dies geschieht mit einer der oben beschriebenen Programmiersprachen oder einer anderen, je nach Ihren Fähigkeiten und den Funktionen der Plattform.
4. Testen und Fehlersuche
Nachdem Sie den Code geschrieben haben, müssen Sie ihn auf Fehler überprüfen und diese beheben, die Algorithmen testen und sicherstellen, dass sie funktionieren. Zu diesem Zweck werden spezielle Tools und virtuelle Umgebungen verwendet, um den Smart Contract zu testen und ihn in allen Phasen des Szenarios zu analysieren.
5. Bereitstellung des Smart Contracts
Sobald der Test erfolgreich bestanden wurde, kann der Smart Contract als einsatzbereit betrachtet werden, d.h. er kann auf die gewählte Blockchain-Plattform übertragen und verwendet werden. Zu diesem Zweck wird die Adresse des Smart Contracts festgelegt, woraufhin sich jeder Teilnehmer des Blockchain-Netzwerks mit ihm verbinden und ihn für seine eigenen Zwecke nutzen kann.
Was ist ein Audit eines Smart Contracts?
Ein Smart Contract Audit ist im Wesentlichen eine Überprüfung eines Smart Contracts auf offensichtliche Softwarefehler (Codes) und Algorithmusschwachstellen. Typischerweise werden Audits vor der Implementierung eines Smart Contracts auf der Blockchain oder bei der Auswahl zwischen Smart Contracts vor dem Abschluss einer Transaktion eingesetzt, um den besten auszuwählen. Audits können also einen von drei Zwecken verfolgen:
-
Einen Smart Contract auf seine Sicherheit zu prüfen. Bei einer solchen Prüfung werden die im Vertrag verwendeten kryptografischen Methoden und Methoden zur Benutzerauthentifizierung untersucht. Dabei werden Systemschwachstellen identifiziert und analysiert, die die Vertraulichkeit der Daten gefährden oder die Integrität und Transparenz des Vertrags beeinträchtigen könnten. Als Ergebnis dieses Audits wird die Sicherheit des Vertrags verbessert.
-
Überprüfung des Smart Contract Codes. Dieses Audit ist eine formale Bewertung der Qualität des geschriebenen Codes und befasst sich nicht mit der Logik oder den Bedürfnissen des Projekts. Das Hauptziel besteht darin, den Code zu optimieren, seine Lesbarkeit und Zugänglichkeit für das Verständnis und die Implementierung zu verbessern. Ein solches Audit wird in den frühen Phasen der Vertragsentwicklung oder mehrmals, auch am Ende, durchgeführt, um den endgültigen Code zu verbessern. Es hilft auch, Risiken zu vermeiden und Systemschwachstellen rechtzeitig zu erkennen.
-
Prüfung von Wirtschaftsmodellen. Diese Prüfung zielt darauf ab, die finanziellen Aspekte des Vertrags zu analysieren, wie z.B. die Zuweisung von Werten und Ressourcen, die Stabilität und Fairness der wirtschaftlichen Struktur usw. Für diese Prüfung wird in der Regel eine Simulationsmodellierung verwendet, bei der der Smart Contract getestet und seine Leistung in der Praxis bewertet wird. Nach Abschluss der Prüfung wird ein Bericht mit Empfehlungen für Verbesserungen erstellt, um die wirtschaftliche Stabilität und Effizienz des Modells zu erreichen.
Unabhängig von der Art des Audits besteht es immer aus den folgenden Schritten:
-
Die Audit-Spezialisten (in der Regel mehrere von ihnen) führen eine erste Analyse der Smart Contracts durch.
-
Auf dieser Grundlage werden die Ergebnisse der Analyse erstellt und an das Projekt weitergeleitet, um entsprechende Korrektur-, Verbesserungs- oder Optimierungsmaßnahmen einzuleiten.
-
Das Projektteam nimmt entsprechend der festgestellten Systemmängel oder Probleme Änderungen vor.
-
Das Audit wird unter Berücksichtigung der neuen Änderungen (und ggf. noch vorhandener Fehler) erneut durchgeführt.
Daher wird ein Audit als Standardverfahren angesehen, bevor ein Smart Contract für Investitionen und den Start von DeFi verwendet wird, insbesondere wenn es sich um große Unternehmen und groß angelegte Projekte mit hohem Ressourceneinsatz handelt, die ein großes Risiko darstellen.
Lernen nach Themen
Fazit
Smart Contracts sind eine neue Generation von Verträgen, deren Bedeutung kaum überschätzt werden kann, denn sie ermöglichen, beliebige Vereinbarungen und Verträge mit minimalen Risiken abzuschließen, ohne die Beteiligung von Vermittlern und sogar von Ihnen selbst. So können Smart Contracts in Zukunft bürokratische Mechanismen und Strukturen erheblich vereinfachen, denn dank ihnen laufen alle Transaktionen, ob es sich um die Übertragung von Rechten oder Geld handelt, vollautomatisch, transparent und unabhängig ab. Das entlastet nicht nur die zuständigen Organisationen, sondern beschleunigt auch Geschäftsprozesse, Überweisungen und Transaktionen. Smart Contracts sind heute nicht mehr ausschließlich ein Tool der Kryptowährungswelt und der Meta-Universen, sondern finden Einzug in die traditionelle Wirtschaft sowie in andere Bereiche des menschlichen Lebens. Es ist nicht mehr nötig, die Interaktion zwischen den Parteien von Stufe zu Stufe manuell zu gestalten, zu prüfen, ob die Bedingungen erfüllt sind, Fristen im Auge zu behalten und sich um Sicherheitsgarantien zu kümmern. Der Smart Contract kümmert sich um all dies und, was am wichtigsten ist, er tut dies absolut kostenlos.