Smart Contracts: Schein oder Sein?

Was Smart Contracts sind und wo ihre Probleme liegen.
 
Programmlogik verknüpft mit Daten, die sich selbständig ausführt. Neu ist die Idee von Smart Contracts nicht. Die Grundprinzipien wurden bereits im Jahr 1994 vom Kryptologen Nick Szabo definiert. Damals fehlte allerdings noch die technische Infrastruktur. Mit Blockchain hat sich das geändert. Hingegen geht es - trotz des Ausrucks "smart" - bei solchen Verträgen mehr um Automation mit fixen Regeln als um Schlauheit.
 
Was ist ein Smart Contract?
Was ein Smart Contract ist, und was er wie macht, ist ziemlich diffus. Deshalb gibt es weder eine klare noch eine allgemein anerkannte Definition. Die Bandbreite der möglichen Einsatzbereiche reicht von der Abbildung über Überprüfung und Verhandlung von Verträgen bis zur technischen Unterstützung der Abwicklung von Verträgen. Weit gefasst handelt es sich um Computerprogramme, die direkt und automatisch unter spezifischen Umständen digital repräsentierte Gelder und andere Vermögenswerte zwischen Parteien austauschen können. Selbst die Nutzung einer Blockchain-Infrastruktur für dezentralisierte Blockchain-basierte Apps (DApps) und Dezentrale Autonome Organisationen (DAO) lässt sich über ein Vertragskonstrukt regeln. Der Programmcode ist der Vertrag. Smart Contracts können eine beliebige Zahl von Variablen, Bedingungen und Signatoren aufweisen.
 
Blockchain als Aufbewahrungs- und Ausführungsort
Theoretisch ist eine Blockchain ein sicherer Aufbewahrungs- und Ausführungsort für Verträge, da eine Blockchain nicht durch eine Einzelperson, sondern durch Mehrheitskonsensus kontrolliert wird und deshalb sicher sein soll. Die Verträge haben eine eigene Adresse auf der Blockchain und die Vertragsteilnehmer sind über ihren Private Key definiert. Die Vertragsadresse wird in den Brieftaschen (Wallets) der Beteiligten gespeichert. Die Verträge sind je nach Implementierung als Script oder als kompilierter Code auf der Blockchain abgespeichert. Kostenlos gibt es die Aufnahme eines Smart Contracts in eine Blockchain nicht, schliesslich müssen die Miner entschädigt werden. Bezahlt wird in der jeweiligen Cryptowährung. Selbst für das Entfernen eines Vertrages nach dessen Ausführung werden in der Regel Gebühren fällig.
 
Blockchains gibt es in den unterschiedlichsten Varianten, sowohl in der technischen Ausgestaltung wie auch in Bezug auf den Einsatzbereich. Auf der einen Seite gibt es unterschiedliche Anbieter mit proprietären Implementierungen und auf der anderen Seite unterschiedliche Nutzergruppen mit spezifischen Anforderungsprofilen. In vielen Bereichen braucht es personen- oder organisationsbezogene Identität statt Anonymität. Oft ist es auch vorteilhaft, wenn der Zugang zu einer Blockchain zentral kontrolliert und die Teilnahme beschränkt werden kann.
 
Für Smart Contracts ist es unerheblich, on sie auf einer öffentlichen oder einer privaten Blockchain gelagert und ausgeführt werden. Sie müssen einfach auf die Regeln und Möglichkeiten der jeweiligen Blockchain abgestimmt sein. Die Kompatibilität von Smart Contracts zwischen unterschiedlichen Implementierungen der Blockchain liegt irgendwo zwischen "limitiert" und "nicht gegeben".
 
"Orakel" zum Einbinden externer Quellen und Destinationen
Die Ausführung von Smart Contracts hängt vom Eintreffen der variablen Komponenten ab, die in den Bedingungen für die Ausführung festgelegt sind. Das kann z.B. das Eintreffen einer Zahlung oder das Erreichen eines Fälligkeitsdatums sein. Meist handelt es sich aber bei den Variablen um eines oder mehrere externe Ereignisse. Die Verbindung zur Aussenwelt erfolgt über sogenannte "Orakel". Mittels eines Orakel für eingehende Daten können Datenfeeds über ausserhalb der Blockchain anfallende Ereignisse abgerufen und berücksichtigt werden. Mittels eines Orakels für ausgehende Daten können wiederum Anweisungen an Systeme gegeben werden, die sich ausserhalb der Blockchain befinden werden. Beispiele dafür sind Zahlungsanweisungen in lokaler Währung über traditionelle Kanäle und Instruktionen an interne IT-Systeme. Orakel speichern und filtern diese Daten vor der Weitergabe an den Smart Contract und bei der Übernahme von einem Smart Contract.
 
Herausforderungen für die Anwendung
Die Verbreitung von Smart Contracts ist von der Automation der Interaktionen zwischen Personen (natürliche und juristische) über eine für Mehrparteieninteraktion ausgelegte Blockchain abhängig. Das wiederum bedingt eine weitverbreitete Kompetenz zur Entwicklung und zum Einsatz von Smart Contracts.
 
Spezifikations- und Programmierfehler können schwere Folgen haben. Da ein Smart Contract nicht verändert werden kann, sind solche Fehler gleich persistent wie die Blockchain. Sind grosse Beträge im Spiel, so kann das - wie kürzlich bei "The DAO" geschehen schnell zu Millionenverlusten führen.
 
Sicherheitsprobleme
IT-Sicherheit ist eine Umgebungs- und Implementierungsfrage. Während die meisten Blockchain-Implementierungen selbst in Bezug auf das Netzwerk als relativ sicher gelten, sind Sicherheitsprobleme bei den Frameworks und den Applikationen weder unbekannt noch aussergewöhnlich. Schliesslich handelt es sich meist noch um Beta-Software. Gleiches gilt für die Zugangsgeräte, auf denen sich die Wallets befinden. Die Wallets gewähren Zugang zu den eigenen Vermögenswerten und Verträgen und sind deshalb kritisch. Erfolgreiche Phishing-Attacken können zu einem Verlust der digitalen Vermögenswerte führen.
 
Zu den Sicherheitsrisiken der Umgebung kommen noch die Risiken der Smart Contract-Implementierung hinzu. Fehler in der Implementierung können zu Vermögensverlusten führen. Orakel stellen zusätzlich Verbindungen nach aussen her und bieten somit einen zusätzlichen Angriffsvektor, über den allfällige Schwachstellen ausgenutzt werden können.
 
Rechtliche Grundprobleme
Smart Contracts leben in einer virtuellen Welt und bestehen aus Software. Zugriff haben sie ohne Orakel nur auf Daten und Vermögenswerte, die sich auf der selben Blockchain befinden. Die Durchsetzbarkeit ist deshalb nur innerhalb der von den Parteien gemeinsam genutzten Blockchain möglich.
 
Eine Blockchain kann länderübergreifend sein. Es ist noch unklar wie die Rechtswahl (die Wahl des materiell anwendbaren Landesgesetzes) unter einem Smart Contract ausfallen kann. Ist die Teilnahme an einer Blockchain nicht von vornherein spezifischen Rahmenbedingungen unterstellt, welche eine Rechtswahl beinhalten, so bleibt die Rechtszuständigkeit unklar und müsste im Smart Contract geregelt sein, der aber in einer rechtszuständigkeitslosen virtuellen Welt ausgeführt wird. Dies ist insbesondere auch kritisch in regulierten Bereichen, denn da können sich plötzlich mehrere Regulatoren als zuständig erachten.
 
Smart Contracts stecken noch in den Kinderschuhen und sind erst in wenigen Bereichen vernünftig einsetzbar. Richtig ausgereift werden sie wohl erst in 10 Jahren sein. Aber richtig "smart" sind sie auch dann nicht. (Christoph Jaggi)