Was ist ein intelligenter Vertrag? Eine Anleitung für Anfänger zu Blockchain

Free Bitcoins: FreeBitcoin | BonusBitcoin

Coins Kaufen: Bitcoin.deAnycoinDirektCoinbaseCoinMama (mit Kreditkarte)Paxfull

Handelsplätze / Börsen: Bitcoin.de | KuCoinBinanceBitMexBitpandaeToro

Lending / Zinsen erhalten: Celsius NetworkCoinlend (Bot)

Cloud Mining: HashflareGenesis MiningIQ Mining


Einführung in die intelligenten Verträge von Ethereum und deren Funktionsweise

Mitverfasst von @laura_oh @nipolnipol

Bei einer kürzlich stattgefundenen Zusammenkunft wurde das Thema Blockchain ausnahmslos angesprochen. Die Menschen waren besonders an konkreten Anwendungen der Blockchain-Technologie interessiert, und eine der Teilnehmerinnen berichtete, dass sie nach Möglichkeiten suchte, das Tagging-System für Haustiere mithilfe der Blockchain zu verbessern. Als ich fragte, wie sie Blockchain anwenden wollten, antworteten sie: "Funktionieren intelligente Verträge nicht für alles?"😮

Dies ist leider nicht der Fall.

Auf meinem Heimweg wurde mir klar, dass ich einen Artikel schreiben musste, in dem es um intelligente Verträge ging. In diesem Artikel wird erläutert, was intelligente Verträge sind, wie sie funktionieren und wie sie verwendet werden können

Skripte, die Papierverträge mit Codezeilen implementieren und sicherstellen, dass die Verträge wirksam werden, wenn bestimmte Bedingungen erfüllt sind

Einige Leute denken, das Konzept der intelligenten Verträge sei zusammen mit der Blockchain aufgetaucht, aber das ist kaum wahr. Die Idee eines intelligenten Vertrags wurde 1994 von Nick Szabo, Major für Informatik / Recht, vorgeschlagen.

In seinem Artikel „Formalisieren und Sichern von Beziehungen in öffentlichen Netzwerken“ argumentierte er, dass intelligente Verträge jeden Prozess eines Vertrags mithilfe von Protokollen und Benutzeroberflächen vereinfachen. Dies bietet eine neue Methode des digitalen Vertragsabschlusses mit wesentlich mehr Funktionen als die herkömmlichen Pen & Paper-Verträge, und intelligente Verträge können die Transaktionskosten senken.

Und im Jahr 2013 hat Vitalik Buterin, Mitbegründer von Ethereum, das Whitepaper „Ethereum: Die ultimative Plattform für intelligente Verträge und dezentrale Anwendungen“ in sein Blog hochgeladen. Ab und zu führte Vitalik das Konzept der intelligenten Verträge in das Blockchain-System von Ethereum ein und implementierte es, um den weit verbreiteten Einsatz intelligenter Verträge zu ermöglichen.

Es ist interessant zu bemerken, dass Buterin im vergangenen Jahr getwittert hat, er bedauere die Verwendung des Begriffs "intelligenter Vertrag" und hätte sie stattdessen so etwas wie "persistente Skripte" nennen sollen Der Begriff „intelligenter Vertrag“ kann zu weit gefasst werden.

  • Das Konzept der Blockchain-Smart-Verträge.

In Blockchain verwendete Smart-Verträge ähneln Skripts, die herkömmliche Pen & Paper-Verträge mit Codezeilen implementieren, und führen den Vertrag aus, wenn bestimmte Bedingungen erfüllt sind.

Durch die Verwendung intelligenter Verträge können Verträge zwischen zwei völlig unbekannten Parteien geschlossen werden. Dies liegt daran, dass der Vertrag nicht wirksam wird, wenn bestimmte Bedingungen erfüllt sind. Daraus folgt, dass eines der Hauptmerkmale intelligenter Verträge darin besteht, dass sie die Unterzeichnung und Ausführung von Verträgen ohne Zwischenhändler erleichtern.

Intelligente Verträge werden auf vielen Blockchain-Plattformen implementiert, nicht nur auf Ethereum. Blockchains haben zahlreiche Zeugen und ziehen ihre Ergebnisse aus ihren vielfältigen Inputs. Dies war die ideale Umgebung, um die Idee intelligenter Verträge zu testen.

Die meisten intelligenten Verträge basieren auf Programmiersprachen. Sie können so konzipiert sein, dass sie unter bestimmten Bedingungen einen bestimmten Betrag zur Verfügung stellen, oder Kredite mit Sicherheiten zulassen, ohne über Banken zu gehen. Zusamenfassend, Smart Contracts können unter bestimmten Bedingungen bestimmte Aktionen ausführen.

Leider sind die Smart-Verträge von Ethereum nicht mit herkömmlichen Programmiersprachen kompatibel. Stattdessen können Smart-Contract-spezifische Sprachen wie Solidität und Vyper kann verwendet werden, um eine logische Vertragsfunktion zu definieren. Ein Compiler konvertiert dann diese logische Vertragsfunktion in Byte-Codes und verteilt sie auf Blockchains.

Im Einzelnen funktionieren die intelligenten Verträge von Ethereum wie folgt:

  • Was Sie mit Smart Contracts implementieren möchten, wird von Solidity implementiert.

Wenn eine logische Vertragsfunktion in Bytecode konvertiert wird, überträgt sie auch das sogenannte Application Binary Interface (ABI). Ein Interessent, der den Vertrag nutzen möchte, interagiert nicht direkt mit dem Computer. Da sie über Ein- / Ausgabegeräte wie Tastaturen, Mäuse und Monitore interagieren, müssen sie über benutzerfreundliche Schnittstellen verfügen. Mit dieser ABI wird das Erstellen dieser benutzerfreundlichen Schnittstelle einfacher.

Für die Interaktion mit Smart Contract steht die Web3.js-Bibliothek zur Verfügung, mit deren Hilfe Smart Contract-Funktionen in Webbrowsern verwendet werden können. Wenn man diese Funktionen in Python verwenden möchte, gibt es auch Web3.py, und für mobile Umgebungen kann man Swift- und Kotlin-Implementierungen verwenden.

Der Smart-Vertrag selbst ist identisch mit einer Klasse im Singleton-Format. Der folgende Smart-Vertrag ist ein einfacher Auktionsvertrag, der im offiziellen Solidity-Dokument verfügbar ist. Wir sehen, dass es den Klassen, die wir in OOP-Programmiersprachen wie JAVA gesehen haben, sehr ähnlich ist.

1) Konstruktor
Funktion: Sie legt die Gebotszeit und den Begünstigten fest.

Wir werden uns den Code auf Blockebene ansehen. Die Zeilen 17 bis 23 definieren den Konstruktor. Der Parameter _biddingTime legt fest, wie lange die Auktion geöffnet sein soll, und _beneficiary legt den Begünstigten fest, sobald die Auktion beendet ist.

2) Gebot ()
Funktion: Mit der ETH an der Auktion teilnehmen.

Um an der Auktion teilzunehmen, müssen wir jetzt die Gebotsfunktion ausführen und gleichzeitig den Äther senden. Die Zeilen 25 bis 42 enthalten eine Überprüfung, ob die aktuelle Zeit innerhalb der Auktionszeit liegt, und eine Überprüfung, ob der übertragene Ether das höchste Gebot ist.

Das herkömmliche Datenbanksystem nennt eine Gruppe von Abfragen eine Transaktion; Eine Kommunikationseinheit in Blockchain-Interaktionen wird auch als Transaktion bezeichnet. Die Merkmale sind vollständig identisch, und die Datenbank gibt Änderungen erst wieder, wenn die Transaktion vollständig ausgeführt wurde. Wenn eine der Abfragen der Transaktion fehlschlägt, schlägt die gesamte Transaktion fehl und alle Zwischenschritte werden zurückgesetzt.

Wie aus den internen logischen Anweisungen hervorgeht, wird die gesamte Transaktion als Fehlschlag gewertet, wenn die require () – Anweisung nicht erfüllt ist.! Wenn die Transaktion erfolgreich ist, wird der zuvor höchste Bieter im Map-Datentyp pendingReturns und der höchste gespeichert Das Gebot wird auf die Person festgelegt, die die Transaktion gesendet hat.

3) auctionEnd ()
Funktion: Beendet die Auktion nach Ablauf der Frist und liefert die ETH an den Begünstigten.

Nehmen wir an, dass nach dieser Zeit niemand mehr zusätzliche Gebote abgibt. Dann ruft jemand die Funktion auctionEnd () auf, die durch die Zeilen 57 bis 65 definiert ist. Der vordefinierte Begünstigte erhält die höchste Ether-Einzahlung und der Vertrag wird gekündigt.

4) zurückziehen ()
Funktion: Nicht Höchstbietende können ihre ETH zurückziehen.

Danach rufen Nichthöchstbieter die durch die Zeilen 44 ~ 55 definierte Funktiondraw () auf. Es gibt keine separate Zeitprüfung, so lange der Vertrag gültig ist, können jederzeit Abhebungen vorgenommen werden.

Haben Sie diese Zeile in jeder Funktion bemerkt? Dies nennt man ein Ereignis; Es dient dazu, ein Protokoll für jede Funktion zu hinterlassen und sicherzustellen, dass sie ordnungsgemäß ausgeführt wurde. Es gibt eine Quittung als Ergebnis einer Transaktion zurück, die das Ereignis enthält. Wenn die Transaktion fehlgeschlagen wäre, würde kein Ereignis aufgezeichnet.

Wenn Sie sich eine aktualisierte Version dieses Smart-Vertrags ansehen möchten, besuchen Sie möglicherweise https://solidity.readthedocs.io/de/latest/solidity-by-example.html#id2. 😉

Bevor wir uns ansehen, warum wir diese intelligenten Verträge benötigen, fassen wir kurz die Merkmale intelligenter Verträge zusammen. Aus technologischer Sicht weisen intelligente Verträge die folgenden Merkmale auf.

1) Jeder kann die Verträge verteilen.
2) Jeder kann die Verträge überprüfen – nicht nur der Eigentümer.
3) Die Ausführung des Codes kann automatisiert werden.
4) Es ist schwierig zu fälschen / zu verändern.

Dies bedeutet, dass intelligente Verträge am besten für Situationen geeignet sind, in denen Transparenz ein Thema ist, Vermittler zuvor erforderlich waren und Transaktionskosten anfallen. Mit Etherscan oder Decentralized Metadata and Source Code Repository kann jeder alle Verträge anzeigen, die verteilt wurden.

Darüber hinaus sind intelligente Verträge wirksame Werkzeuge zum Aufbau vertrauenswürdiger Netzwerke in der Blockchain. Wenn Alice am letzten Tag eines jeden Monats 50 US-Dollar senden muss, kann dieser Vertrag ausgeführt werden, ohne dass Banken oder andere zertifizierte Dritte hinzugezogen werden.

Das Aufkommen von Ethereum hat dazu geführt, dass intelligente Verträge auf unterschiedliche Weise eingesetzt werden.

  • Erstes Münzangebot (ICO)

Ein beispielhafter Fall ist ICO, wo intelligente Verträge verwendet wurden, um Token zu erstellen und ihre anfänglichen Münzenangebote auszuführen. Die meisten dieser Token folgen einem ERC-20-Protokoll, das im EIP (Ethereum Improvement Proposal) 20 vorgeschlagen wurde, und definieren die Standards für einen Smart Contract vom Typ Token. Diese EIP definiert die ERC-20-Token-Standards (für Qualitäten wie Token-Transfer, Austausch und Autorisierung), denen sie folgen müssen. Nebenbei bemerkt steht ERC für Ethereum Request for Comment.

* EIP (Ethereum Improvement Proposal) Ethereum ist ein dezentrales Netzwerk, dh jeder kann mit neuen Ideen zur Verbesserung des Ethereum-Netzwerks durch EIP beitragen.

Der Grund, warum Token-Verkäufe mit intelligenten Verträgen getätigt wurden, besteht darin, dass die in den intelligenten Verträgen enthaltenen Informationen im Blockchain-Netzwerk mit vollständiger Transparenz angezeigt werden, um ihre Glaubwürdigkeit sicherzustellen. Won-Kyung Ryu, der Direktor von Airbloc, hatte einen Token-Verkauf durchgeführt und kommentierte dies in unserem Interview wie folgt:

"Ich denke, dass die Verwendung intelligenter Verträge die Glaubwürdigkeit von Token-Verkäufen für die Teilnehmer erheblich verbessert, da wir den Fortschritt des Verkaufs, die Anzahl der ausgegebenen und verkauften Token auf transparente Weise anzeigen können."

Wenn wir Spielgegenstände mit intelligenten Verträgen implementieren und das Eigentum der Benutzer nachweisen können, werden Gegenstandstransaktionen so einfach wie Kryptowährungstransaktionen. Dadurch ist keine separate Handelsplattform mehr erforderlich, und Artikel können direkt im Handelssystem zu gewünschten Preisen gehandelt werden. In diesem Fall muss jeder Smart-Vertrag einem bestimmten Element zugeordnet werden, und es wird wichtig, dass der Vertrag diskret und nicht teilbar ist (wie es der Fall ist, wenn 1 ETH in 0,5ETH usw. unterteilt werden kann). Standards, die diesen Bedarf berücksichtigen, sind ERC-721 und ERC-1155. Bei Artikeln, die mit diesem Protokoll entworfen wurden, liegt das Eigentum bei der Person anstelle des Entwicklers und kann mit oder ohne Zustimmung des Entwicklers gehandelt werden. Dieses Merkmal wäre auch nützlich, um den Besitz eines Finanzprodukts unter Verwendung dieser NFTs (Non-Fungible Tokens) nachzuweisen.

Neben Fundraising- und Game-Objekten werden Smart Contracts in verschiedenen Bereichen eingesetzt, beispielsweise in der dezentralen Finanzierung (De-Fi), in Geldbörsen, bei dezentralen Börseninstitutionen usw.

Trotzdem lösen intelligente Verträge die Grenzen herkömmlicher Verträge nicht perfekt.

Intelligente Verträge können keine Informationen außerhalb der Blockchain selbst abrufen. Mit anderen Worten, es können Probleme auftreten, wenn bestimmte Informationen bei der Überprüfung der Einhaltung der Bedingungen für intelligente Verträge erforderlich sind. Nehmen wir zum Beispiel an, wir haben einen Vertrag, der besagt: "Wenn der Preis der ETH über 1.000 USD steigt, liefert A 1 ETH an B." Hier funktioniert der intelligente Vertrag nur, wenn Informationen darüber vorliegen, ob der Preis von Ethereum über 1.000 USD liegt oder nicht. Daher kann der Vertrag nur ausgeführt werden, wenn die genauen Ethereum-Preisdaten des Kryptowährungsaustauschs abgerufen werden, die außerhalb der Blockchain liegen.

Hier ist der Haken: Während des Abrufvorgangs werden möglicherweise die falschen Daten abgerufen oder die Daten wurden absichtlich geändert. Mit anderen Worten, es müssen bestimmte Informationen zu einem bestimmten Zustand abgerufen werden. Wenn diese Informationen von Dritten abhängen, führt dies zwangsläufig zu einem Glaubwürdigkeitsproblem. Um dieses inhärente Problem zu beheben, bemühen sich viele Startups, genaue Informationen bereitzustellen, die zum Generieren und Ausführen intelligenter Verträge erforderlich sind.

Eine weitere inhärente Einschränkung von Smart-Verträgen besteht darin, dass sie nach der Verteilung nicht mehr bearbeitet werden können. Auf der einen Seite ist es diese Starrheit, die die Glaubwürdigkeit intelligenter Verträge stärkt, auf der anderen Seite kann dies zu einer potenziellen Schwäche werden, die ausgenutzt werden kann. Es hat Fälle gegeben, in denen Smart-Verträge aufgrund dieser Eigenschaft gehackt wurden oder dauerhaft funktionsunfähig wurden, wobei SmartMesh der bekannteste Fall ist. Der vom SmartMesh-Team verteilte Smart-Vertrag enthielt eine Sicherheitslücke, mit der der Hacker zusätzliche Token ausstellte / verkaufte. Es gab auch einen Fall, in dem die Sicherheitslücke dazu führte, dass 513.774.16ETH, das in Brieftaschen enthalten war, dauerhaft nicht mehr herausgenommen werden konnte.

Intelligente Verträge beziehen sich direkt auf digitale Assets. Daher ist die Sicherheit bei der Entwicklung intelligenter Verträge von größter Bedeutung. In der Blockchain-Branche ist es zum Standard geworden, vor der Verteilung ein Sicherheitsaudit durchzuführen. Wir werden uns in zukünftigen Artikeln genauer ansehen, wie Sicherheitsüberprüfungen durchgeführt werden.

Dieser Artikel befasste sich mit intelligenten Verträgen als einer wirksamen Methode, um viele der inhärenten Beschränkungen des konventionellen Vertragssystems zu lösen, und dass sie in verschiedenen Bereichen eingesetzt werden. Wir haben auch festgestellt, dass Smart-Verträge nicht gelöst werden können jeden Problem mit dem Vertragssystem.

Das Interessante an intelligenten Verträgen ist, dass sie sich kontinuierlich verbessern, da sich auch die Entwicklungsumgebungen innerhalb der Entwicklergemeinde der Blockchain verbessern. Wir hoffen, dass dieser Artikel denjenigen dient, die sich für Blockchain- und Smart-Verträge interessiert haben. Bei Fragen und / oder Rückmeldungen wenden Sie sich bitte an audit@haechi.io.

Danke fürs Lesen. 🙆🏻‍♂️

Free Bitcoins: FreeBitcoin | BonusBitcoin

Coins Kaufen: Bitcoin.deAnycoinDirektCoinbaseCoinMama (mit Kreditkarte)Paxfull

Handelsplätze / Börsen: Bitcoin.de | KuCoinBinanceBitMexBitpandaeToro

Lending / Zinsen erhalten: Celsius NetworkCoinlend (Bot)

Cloud Mining: HashflareGenesis MiningIQ Mining

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close