Smart Contracts

Smart Contracts sind “schlaue Verträge”. Wie bei herkömmlichen Verträgen einigen sich zwei (oder mehr) Parteien auf eine Leistung, Güter oder Geld. Mithilfe der Blockchain können Verträge ohne Mittelsmann vertrauenslos - die beiden Parteien müssen sich nicht vertrauen - geschlossen werden.

Was sind Smart Contracts?

Ein "schlauer Vertrag" ist wie ein kleines Programm oder eine Excel-Formel welche auf der Blockchain gespeichert und ausgeführt werden kann. Der Smart Contract beinhaltet eine oder mehrere Bedingungen, welche durch ein bestimmtes Ereignis ausgelöst werden. Durch den Einsatz eines Smart Contract wird die Notwendigkeit eines Dritten - der Vertrauen erzeugt (z.B. Bank, Notar) - obsolet.


Smart Contracts sind vergleichbar mit “Wenn-Dann-Funktionen” in Excel:

“Wenn Ereignis X eintrifft, dann zahle Y an Z aus”

Die Anwendungsbereiche reichen von Sportwetten, über Finanz- und Versicherungsleistungen und Car-Sharing bis hin zu Grundbucheintragen beim Immobilienerwerb. Prinzipiell kann die Technologie überall verwendet werden wo ein Mittelsmann ausgeschaltete werden kann/soll. Oftmals entsteht hierbei ein sogenanntes Oracle-Problem. Die Blockchain kann sich auf keine Vertrauensperson (z.B. Bank oder Notar) berufen. Daher stellt sich die Frage welche Quelle glaubwürdige Daten - beispielsweise das Gewinnerteam bei Sportwetten - bereitstellt. Aufgrund einer bösartigen Quelle, könnten sich Betrüger bereichern. Mehr zum Oracle-Problem - sowie deren Lösungsansätze - findest du hier.


Beispiele

Für die kommenden Beispiele habe ich die Bedingungen in eine Wenn-Dann-Formel integriert. Ähnlich dieser Funktionsweise funktioniert auch der Smart Contract - auch wenn dieser in einer anderen Programmiersprache gecodet wird.


Versicherungsbranche

=wenn("Alter des Versicherungsnehmers">67;"Auszahlung private Lebensversicherung")

Sobald der Versicherungsnehmer das 67. Lebensjahr vollendet hat (Alter > 67), wird die Lebensversicherung ausbezahlt. Zuvor kann die monatliche Sparrate zudem "auf" den Smart Contract einbezahlt werden.


Energieversorgung

=wenn(Abnahme>1 kWh;0,001ETH)

Die private Photovoltaikanlage verkauft automatisiert den überschüssigen Strom an einen Nachbarn. Sobald dieser mehr als eine Kilowattstunde Strom erhält, bezahlt der Smart Contract automatisch 0,001 Ether an den Inhaber der PV-Anlage. Der Abnehmer der Energie kann zuvor seine Wallet wie ein Prepaid-Guthaben auffüllen.


Sportwetten

=wenn("Gewinner"="Team 1";"Auszahlung Einsatz" x 2,5)

Smart Contracts sind prädestiniert für Sportwetten. Der Wetteinsatz wird auf den Smart Contract einbezahlt mit dem Vermerk "Gewinner Team 1". Sollte Team 1 tatsächlich siegreich sein, wird das einbezahlte Guthaben - abzüglich einer kleinen Gas Fee - multipliziert mit der Wettquote (hier 2,5) ausbezahlt.


Internet of Things

Dieses Beispiel ist ein klein wenig komplexer - durch eine zweite Bedingung welche erfüllt sein muss. Daher spielen wir diesen Smart Contract in der Praxis Schritt für Schritt durch.

=wenn(und("Zahlungseingang"=”ja”;"NFC-Tag"="XYZ");"Schloss öffnen"

Anwendung kann dieser Fall beispielweise beim Car-Sharing oder bei der Buchung eines Hotelzimmers finden. Wir beziehen uns auf Variante 1. Der Kunde läuft zu einem Car-Sharing Auto auf welchem ein QR-Code angebracht ist - Alternativ wäre auch ein NFC-Tag möglich. Der Kunde scannt den QR-Code ein. Dieser hat die Wallet-Adresse des Smart Contracts hinterlegt. An diese Adresse transferiert der Kunde einen festgelegten Betrag. Dies kann ein kleiner Betrag sein für das bloße entsperren des Wagen oder ein größerer Betrag wird überwiesen welcher direkt eine Kaution enthält. Sobald die Zahlung im Smart Contract hinterlegt ist wird eine Schleife von Bedingungen ausgeführt.