# Smart Contract

Smart Contracts sind Programme, die auf einer Blockchain ausgeführt werden und es ermöglichen benutzerdefinierte Funktionalität auf einer bestehenden Blockchain, die Smart Contracts unterstützt, zu implementieren. Die Bezeichnung als "selbst-ausführende" Verträge und die Behauptung Smart Contracts könnten Verträge selbstständig durchsetzen sind sehr missverständlich, da diese selbstständige Ausführung sich auf die Blockchain auf der sie laufen beschränkt. Smart Contracts sind nicht als "Verträge" oder auch nur als ein für den normalen Endanwender verständliches Konzept zu betrachten, sondern als technischer Fachbegriff.

## Anwendungsfelder
### Tokens

Tokens repräsentieren meistens eine Kryptowährung, die nicht auf einer eigenen Blockchain basiert, sondern als Smart Contract auf einer bestehenden Blockchain implementiert wurde. Tokens können theoretisch beliebige Dinge repräsentieren, da es sich grob gesagt nur um eine Liste handelt, wer wie viele "Tokens" besitzt.
Sogenannte "ERC20-Tokens" auf der Ethereum-Blockchain sind Smart Contracts. Diese Smart Contracts "merken sich"(speichern) wer wie viele Tokens besitzt. Wenn ein Benutzer nun Tokens an einen anderen überweisen möchte, ruft dieser – in Form einer "Transaktion" die über das P2P-Netzwerk an die Miner übermittelt wird – eine Methode des Smart Contracts auf, welche zuerst prüft ob der Benutzer über ausreichend Tokens verfügt, und wenn ja die zu überwiesene Summe vom Überweisenden abzieht und beim Empfänger addiert (vereinfachte Darstellung). "ERC20" bezieht sich auf eine im ERC20-Standard (englisch) standardisierte API.

### NFTs

NFTs (Non-Fungible Tokens) sind einzigartige digitale Assets, die ebenfalls durch Smart Contracts auf einer Blockchain dargestellt werden. Sie unterscheiden sich von Tokens dadurch, dass sie nicht austauschbar sind und in der Regel digitale Kunst, Musik oder Sammlerstücke repräsentieren.

### DeFi

DeFi, kurz für Dezentrales Finanzwesen, bezieht sich auf ein Ökosystem von Finanzanwendungen, die auf Blockchain-Technologie basieren. Im Gegensatz zu traditionellen Finanzsystemen operieren DeFi-Anwendungen ohne zentrale Vermittler wie Banken. Stattdessen verwenden sie Smart Contracts, um Finanztransaktionen direkt zwischen Nutzern durchzuführen.
Ein prominentes Beispiel für DeFi ist Uniswap, ein dezentrales Handelsprotokoll, das es Benutzern ermöglicht, Kryptowährungen direkt gegeneinander zu tauschen, ohne dass eine zentrale Börse erforderlich ist. Uniswap nutzt Smart Contracts, um Liquiditätspools zu verwalten, in die Nutzer ihre Tokens einbringen können. Diese Pools werden dann verwendet, um den Austausch von Tokens zu ermöglichen.
Ein weiteres Beispiel ist Aave, eine dezentralisierte Plattform für Kreditvergabe und -aufnahme. Benutzer können auf der Plattform Kryptowährungen als Sicherheit hinterlegen und darauf basierend Kredite in anderen Kryptowährungen aufnehmen. Auch hier werden Smart Contracts verwendet, um die Konditionen und Abwicklung der Kredite zu automatisieren.

## Geschichte

In den 1970er- bis 1980er-Jahren wurde der Terminus „Agoric Computing“ geprägt, um die Abbildung von Marktmechanismen wie Auktionen und Ressourcenmanagement in Software abzubilden. Inzwischen hat die Public-Key-Kryptografie die Möglichkeiten hierzu revolutioniert.
Der Begriff „Smart Contract“ wurde etwa 1993 durch den Informatiker Nick Szabo geprägt, um die Verbindung von hochentwickeltem Vertragsrecht und verwandten Disziplinen mit dem Design von E-commerce-Protokollen zu betonen. Szabo, der von Forschern wie David Chaum inspiriert wurde, erwartete, dass Spezifikationen auf Basis klarer Logik, Verifikation auf Basis kryptographischer Protokolle und andere digitale Sicherheitsmechanismen eine wesentliche Verbesserung gegenüber dem traditionellen Vertragsrecht bringen könnten, sogar für einige traditionelle Anwendungsbereiche.
Die meisten der oben zitierten Beispiele haben sich jedoch vermutlich unabhängig voneinander und von den oben genannten Entwicklungslinien entwickelt, und in der Tat sehen einige Befürworter Smart Contracts als notwendige Weiterentwicklung vieler unabhängiger Bemühungen, um Transaktionen in verschiedenen Industrien auf Basis digitaler Technologien zu verbessern. Verschiedene formale Sprachen wurden entwickelt oder vorgeschlagen, um Vertragsklauseln in Software abzubilden. Das IEEE hat dazu bereits zwei Workshops über Electronic Contracting abgehalten, die diese Bemühungen unterstützen.
Seit 2015 experimentierte UBS mit Smart Bonds, die als „Bonds“ eine Bitcoin-Blockchain verwenden und in der Zahlungsströme hypothetisch vollständig automatisiert werden könnten, wodurch ein selbstzahlendes Instrument geschaffen würde. Im Jahr 2018 beauftragte die Weltbank die Commonwealth Bank of Australia mit der Herstellung des ersten blockchain-basierten Bonds der Welt.

## Gefahren im Umgang

Der Umgang mit Smart Contracts kann ohne relativ weitreichendes Verständnis der zugrunde liegenden Technik(oder fehlerhaftem Verständnis der Sicherheitsversprechen von Smart Contracts und/oder Blockchains) zum Verlust der sich in dem eigenen Wallet befindlichen Werte führen.
In der Regel interagiert der Endbenutzer über eine dApp mit einem oder mehreren Smart Contracts. Diese dApp kann i. d. R. als Benutzeroberfläche für den Smart Contract angesehen werden. Möchte der Nutzer eine Handlung mit der dApp durchführen die Zugriff auf das eigene Wallet benötigt, generiert die dApp eine "Transaktion" die, wenn sie vom Inhaber des Wallets kryptographisch Signiert wird, an das p2p-Netzwerk der Blockchain übermittelt und in die Blockchain verewigt werden kann. Oftmals ist die dApp als normale Website im Internet aufrufbar, um über sie mit dem eigenen Wallet Handlungen auf der Blockchain durchzuführen, muss der Benutzer allerdings ein spezielles Add-on wie z. B. MetaMask installieren.
In der Regel wird die Benutzeroberfläche von einer zentralen Instanz kontrolliert und aktualisiert. Sollte eine Aktualisierung bösartig sein, kann sie Transaktionen generieren, die andere Handlungen auf der Blockchain durchführen als der Benutzer glaubt.
Da der Code der Smart Contracts an sich für den Laien nicht zu verstehen ist, gibt es keine inhärente Garantie dafür, das der Smart Contract tut was er angeblich tun soll. Wenn der Code des Smart Contracts unveränderlich ist, kann er allerdings durch dritte überprüft werden. Die Unveränderlichkeit ist in der Praxis, auch auf Blockchains auf denen Smart Contracts grundsätzlich unveränderlich sind, nicht immer wirklich gegeben(Stichwort "upgradable proxy").
Es gibt keine Garantie dafür das ein Smart Contract, der eine bestimmte API implementiert, auch die Vorgaben für die Funktionsweise der API auch einhält. Es ist also z. B. möglich ein Token zu implementieren das den Anschein erweckt ein normales ERC20-Token zu sein, aber wenn die Methode zur Überweisung aufgerufen wird, statt eine Überweisung durchzuführen alle Werte die das aufrufende Wallet besitzt zu stehlen, nicht nur Einheiten des Tokens selbst, sondern auch alle anderen Werte.

## Smart Contracts in der populären Kultur

Der Science-Fiction-Roman Permanence (2002) von Karl Schroeder beschreibt eine „Rechteökonomie“, in der alle physischen Objekte mit „Nano-Tag“ versehen sind. Diese Tags enthalten die vertraglichen Regelungen und setzen sie auch durch, so dass sich z. B. eine Militärmission im All laufend über ihr „Cost-Benefit-Verhältnis“ rechtfertigen muss, ansonsten wird das Raumschiff gestoppt.