Kapitel 3 :Intelligenter Vertrag
Der Begriff "Smart Contract" bezieht sich auf ein Computerprogramm oder ein Transaktionsprotokoll, das dazu bestimmt ist, Ereignisse automatisch auszuführen, zu steuern oder zu dokumentieren und in Übereinstimmung mit den Bedingungen eines Vertrags oder einer Vereinbarung handelt. Die Reduzierung des Bedarfs an vertrauenswürdigen Vermittlern, der mit der Schiedsgerichtsbarkeit verbundenen Kosten und der durch Betrug verursachten Verluste sind einige der Ziele von Smart Contracts. Darüber hinaus zielen Smart Contracts darauf ab, die Anzahl der Ausnahmen zu reduzieren, die sowohl absichtlich als auch unbeabsichtigt sind. Es gibt eine weit verbreitete Assoziation zwischen Smart Contracts und Kryptowährungen. Die Smart Contracts, die von Ethereum eingeführt wurden, gelten in der Regel als wesentlicher Baustein für Anwendungen, die dezentrale Finanzen (DeFi) und nicht-fungible Token (NFT) beinhalten.
Das Bitcoin-Protokoll wird als eine schlechte Form des Smart-Contract-Konzepts beschrieben, wie es ursprünglich von Nick Szabo in dem Ethereum-Whitepaper definiert wurde, das 2014 von Vitalik Buterin verfasst wurde. Buterin präsentierte jedoch eine stärkere Version des Smart-Contract-Konzepts, die auf der Solidity-Sprache aufbaute und so konzipiert ist, dass sie vollständig ist. Seitdem haben eine Reihe verschiedener Kryptowährungen begonnen, Programmiersprachen zu ermöglichen, die es ermöglichen, ausgefeiltere Smart Contracts zwischen Parteien zu erstellen, denen nicht vertraut werden kann.
Ein Smart Contract sollte nicht mit einem Smart Legal Contract verwechselt werden, bei dem es sich um eine traditionelle, rechtlich durchsetzbare Vereinbarung handelt, die in natürlicher Sprache verfasst ist und ausgewählte Begriffe enthält, die in einem von Maschinen lesbaren Code angegeben und implementiert werden.
Nick Szabo begann 1996, den Begriff "Smart Contract" zu verwenden, um sich auf Verträge zu beziehen, die durch physisches Eigentum (wie Hardware oder Software) und nicht durch das Gesetz durchgesetzt werden. Seit diesem Jahr ist der Begriff weit verbreitet. Eine gute Veranschaulichung dieser Idee lieferte Szabo in Form von Verkaufsautomaten. Das Wort wurde erstmals 1998 verwendet, um sich auf Objekte zu beziehen, die sich in der Rechteverwaltungsdienstschicht des Systems befanden, das als The Stanford Infobus bekannt ist und auch eine Komponente des Stanford Digital Library Project war.
In den meisten Fällen begründet ein Smart Contract keine rechtlich durchsetzbare Vereinbarung, die nach dem Gesetz akzeptabel ist. Es wurden Vorschläge zur Regelung von Smart Contracts gemacht.
Smart Contracts sind keine rechtlichen Vereinbarungen, sondern Transaktionen, die automatisch von einem Computerprogramm oder einem Transaktionsprotokoll ausgeführt werden. Dazu gehören technologische Mittel zur Automatisierung von Zahlungsverantwortlichkeiten, wie z.B. die Übertragung von Kryptowährungen oder anderen Token. Smart Contracts sind nicht rechtsverbindlich. Es wurde von einigen Akademikern vorgeschlagen, dass die imperative oder deklarative Natur von Programmiersprachen einen Einfluss auf die rechtliche Legitimität von Smart Contracts haben könnte.
Seit dem Debüt der Ethereum-Blockchain im Jahr 2015 wird der Begriff "Smart Contract" verwendet, um sich auf Berechnungen zu beziehen, die auf einer Blockchain für allgemeine Zwecke durchgeführt werden. Laut dem National Institute of Standards and Technology in den Vereinigten Staaten ist ein "Smart Contract" definiert als eine "Sammlung von Code und Daten (manchmal auch als Funktionen und Zustand bezeichnet), die mithilfe von kryptografisch signierten Transaktionen im Blockchain-Netzwerk bereitgestellt werden". Der Begriff "Smart Contract" bezieht sich nach dieser Auffassung auf jede Art von Computerprogramm, das sich einer Blockchain bedient. Da seine Ausführung und definierte Auswirkungen (wie z. B. die Übertragung von Token zwischen Parteien) nicht manipuliert werden können, ohne die Blockchain selbst zu verändern, kann ein Smart Contract auch als gesichertes gespeichertes Verfahren betrachtet werden. Das liegt daran, dass ihre Ausführung und ihre Wirkung nicht verändert werden können. Nach diesem Verständnis ist die Plattform selbst für die Kontrolle und Prüfung der Vertragsdurchführung verantwortlich; Zufällige serverseitige Programme, die sich mit der Plattform verbinden, sind dafür nicht verantwortlich.
"Smart Contracts mögen zwar neu klingen, aber das Konzept ist im grundlegenden Vertragsrecht verwurzelt", heißt es in einem Bericht, der im Jahr 2018 vom US-Senat veröffentlicht wurde. Es ist gängige Praxis, insbesondere bei Auslandsgeschäften, neben dem Rechtssystem, das häufig für die Entscheidung von Handelsstreitigkeiten und die Durchsetzung von Auflagen zuständig ist, eine weitere Schiedsmöglichkeit zu haben. Bei der Verwendung von Smart Contracts ist ein Programm für die Durchsetzung des im Code enthaltenen Vertrags verantwortlich. In den Vereinigten Staaten von Amerika gehören die Bundesstaaten Arizona, Iowa, Nevada, Tennessee und Wyoming zu denen, die Gesetze zur Verwendung von Smart Contracts erlassen haben.
Nach Angaben der United Kingdom Jurisdiction Taskforce (UKJT) wurden im April 2021 die Regeln zur Beilegung digitaler Streitigkeiten (auch bekannt als Digital DR Rules) erlassen. Der Zweck dieser Regeln bestand darin, die rasche Lösung von rechtlichen Fragen zu Blockchain und Kryptowährungen im Vereinigten Königreich zu erleichtern.
Ein Smart Contract kann auf einer Blockchain auf eine Weise eingesetzt werden, die der Wertübertragung auf einer Blockchain entspricht. Dies wird erreicht, indem eine Transaktion von einer Wallet gesendet wird, die mit der Blockchain verbunden ist. Die Transaktion enthält neben einer eindeutigen Empfängeradresse den Code, der für den Smart Contract kompiliert wurde. Anschließend muss die betreffende Transaktion in einen Block integriert werden, der in die Blockchain aufgenommen wird. An dieser Stelle wird der Code des Smart Contracts ausgeführt, um den Anfangszustand des Smart Contracts festzulegen. Smart Contracts sind durch fehlertolerante Algorithmen, die auf dem byzantinischen Algorithmus basieren, vor jeglichen Versuchen geschützt, sie dezentral zu manipulieren. Es gibt keine Möglichkeit, Änderungen an einem Smart Contract vorzunehmen, nachdem er bereitgestellt wurde. Smart Contracts, die in einer Blockchain gespeichert sind, haben die Fähigkeit, beliebige Berechnungen durchzuführen und beliebige Zustände zu speichern. Durch die Verwendung von Transaktionen interagieren Endkunden mit einem Smart Contract. Ähnliche Transaktionen, bei denen ein Smart Contract verwendet wird, haben das Potenzial, weitere Smart Contracts hervorzurufen. Der Status des Smart Contracts kann sich aufgrund dieser Transaktionen ändern, und Coins können von einem Smart Contract auf einen anderen oder von einem Konto auf ein anderes übertragen werden.
Die Ethereum-Blockchain ist die am weitesten verbreitete Blockchain für den Betrieb von Smart Contracts. Auf Ethereum werden Smart Contracts oft in einer Programmiersprache namens Solidity geschrieben, die eine Turing-vollständige Sprache ist. Diese Verträge werden dann in Low-Level-Bytecode kompiliert, der es der Ethereum Virtual Machine ermöglicht, ihre Zwecke zu erfüllen. Turing-Vollständigkeit ist ein Risiko, das von Sprachen wie Vyper absichtlich vermieden wird, da es aufgrund des Halting-Problems sowie anderer Sicherheitsüberlegungen als Risiko angesehen wird. Simplicity, Scilla, Ivy und Bitcoin Script sind einige Beispiele für zusätzliche Programmiersprachen für Smart Contracts, die keine Turing-Vollständigkeit besitzen. Rekursionen und Schleifen sind Strukturen, die mit dem Halteproblem verbunden sind. Messungen, die im Jahr 2020 mit regulären Ausdrücken durchgeführt wurden, zeigten jedoch, dass nur 35,3 % der 53.757 Ethereum Smart Contracts, die zu diesem Zeitpunkt existierten, diese Konstrukte aufwiesen.
Bamboo, IELE, Simplicity, Michelson (das mit Coq bewiesen werden kann), Liquidity (das zu Michelson kompiliert wird), Scilla, DAML und Pact sind einige der Sprachen, die zur Unterstützung der formalen Verifizierung gedacht sind.
Um die Anforderungen der byzantinischen Fehlertoleranz zu erfüllen, sind die Prozesse, die auf einer Blockchain ablaufen, oft deterministisch. Auf der anderen Seite erfordert die Implementierung von Smart Contracts in der realen Welt, wie z. B. Casinos und Lotterien, die Anwendung von sicherer Zufälligkeit. Tatsächlich minimiert die Blockchain-Technologie die mit dem Betrieb einer Lotterie verbundenen Kosten, was für die Personen, die an der Lotterie teilnehmen, von Vorteil ist. Die Implementierung von Zufälligkeit in der Blockchain kann durch die Verwendung von Block-Hashes oder Zeitstempeln, Orakeln, Commitment-Schemata, speziellen Smart Contracts wie RANDAO und Quanta und Sequenzen, die aus gemischten Nash-Gleichgewichten abgeleitet sind, erreicht werden.
Unter Verwendung kryptographischer Hash-Chains und byzantinischer fehlertoleranter Replikation postulierte Szabo 1998, dass eine Smart-Contract-Infrastruktur durch replizierte Asset-Register und Vertragsausführung erreicht werden könnte. Diese Strategie würde die Ausführung von Verträgen ermöglichen. Im Jahr 2002 setzte Askemos diese Strategie um, indem es Scheme als Vertragsskriptsprache einsetzte und anschließend SQLite hinzufügte.
Der Begriff "farbige Münzen" bezieht sich auf einen Plan, der die Verwendung von Bitcoin zum Zwecke der Replikation der Registrierung von...