Blockchain und Smart Contracts

Potrait von Rechtsanwalt Simon Schnetzler

Autor:     Simon Schnetzler
Datum:   26. Oktober 2017

Hinweis: Dieser Artikel wurde erstmals im Newsletter 2017/2
von Legis Rechtsanwälte AG veröffentlicht.

Zusammenfassung

Mittels einer Blockchain lassen sich Informationen wie Wertkonti in einem Register fälschungssicher festhalten. Solche Werte lassen sich auch automatisiert übertragen, z.B. auf der Bitcoin Blockchain. Smart Contracts sind keine Verträge, mit ihnen bezeichnet man verbreiteterweise den selbständigen Vollzug eines Codes wie beispielsweise eine Wertübertragung auf der Blockchain. Vom Prinzip her ist es vergleichbar mit einem Getränkeautomaten im Bahnhof. Rechtlich interessant ist hierbei die Tatsache, dass das Willensprinzip auch eine Einigung in einer nur den Vertragsparteien bekannten Sprache zulässt, in diesem Sinne wäre eine Willenseinigung auf einer Code-Ebene denkbar. Eine solche Einigung liesse sich – je nach Inhalt – dann tatsächlich als “Contract” bezeichnen.

Blockchain und insbesondere die Kryptowährung Bitcoin sind in aller Munde. Grund genug, die Grundzüge der Technologie und rechtliche Aspekte im Zusammenhang mit dieser Technologie, insbesondere mit Smart Contracts, etwas näher zu beleuchten.

Grundkonzept

Mit Blockchain wird auf ein Verfahren verwiesen, Daten aufzuzeichnen. Wie der Name sagt, werden diese Daten in Blöcken aufgezeichnet und gespeichert. Diese Daten werden sodann mittels eines kryptografischen Algorithmus (Hash-Algorithmus, bei Bitcoin mit dem SHA-256 Algorithmus) in einem sehr viel kürzeren Schlüssel abgebildet (dem sog. Hash). Es handelt sich dabei um eine Folge von 64 Zeichen aus Zahlen und Buchstaben. Ob nun ein Block ein Wort oder den gesamten Inhalt des Schweizerischen Bundesarchivs enthält, der Hash bleibt aufgrund des Algorithmus immer gleich lang. Wird allerdings nur ein Zeichen im Block geändert, verändert sich der ausgegebene Hash komplett. Mit einem Hash lässt sich der Dateninhalt somit signieren und Änderungen sind grundsätzlich (vorbehalten einer sog. Hash-Collision) nicht mehr möglich, ohne dass sich der Hash-Wert ändert.

Der Hash eines Blocks wird nun in einen neuen (nachfolgenden) Block gesetzt, und zusammen mit den neuen Daten lässt sich daraus ein neuer Hash generieren. Das lässt sich beliebig fortsetzen und neue Blöcke mit ihren Daten lassen sich jeweils mittels des vorangehenden Hashes verknüpfen. Eine Änderung der Daten in einem Block führt dazu, dass sich der Hash im nächsten Block ändert, und damit auch der Hash in allen nachfolgenden Blöcken. Die Blöcke bilden durch diese Verknüpfung eine ganze – unveränderbare – Kette, die Blockchain.

Prinzipien einer Blockchain

Die Unveränderlichkeit der Daten ist nicht das einzige Merkmal der Blockchain. Eine weitere zentrale Eigenschaft der Blockchain-Technologie ist ihre Redundanz, sie wird in diesem Zusammenhang als Distributed Ledger Technologie bezeichnet. Die Informationen einer Blockchain werden nicht an einem zentralen Ort gespeichert, sondern sind verteilt auf einer Vielzahl von Servern (sog. Nodes). Diese verfügen alle über die gleiche Kopie der gesamten Blockchain. Das macht das System ausfallsicher und resistent gegen Angriffe auf einzelne Teilnehmer.

Ob und wie ein neuer Block vom Netzwerk akzeptiert wird, hängt von der Art der Konsens-Findung der Server im Netzwerk ab. Beim Bitcoin-Netzwerk werden beispielsweise Vorgaben an den zu erreichenden Hash-Wert gemacht. Um diese Vorgaben zu erreichen und den erforderlichen Hash-Wert zu finden, braucht es eine hohe Rechenleistung. Wird aber ein Hash-Wert gefunden, welcher den Vorgaben genügt, ist der neue Block «signiert» und wird an die Blockchain angehängt. Eine andere Methode der Konsens-Findung ist beispielsweise, dass nur eine bestimmte Anzahl von den Netzwerkteilnehmer (z.B. gewählte Teilnehmer) neue Blöcke anhängen dürfen.

Die Blockchain-Technologie ermöglicht es zudem über den Einsatz von öffentlichen und privaten Schlüssel, Vertrauen zu schaffen. Das System der öffentlichen und privaten Schlüssel erlaubt es, einen privaten Schlüssel zweifelsfrei einem öffentlichen Schlüssel zuzuordnen. In den Netzwerken werden über dieses System Identitäten verliehen und Daten kryptographisch sicher einem Schlüsselinhaber zugeordnet.

Anwendungsmöglichkeiten

Die Eigenschaften der Blockchain machen sie wie geschaffen für die Nachführung von Registern, mit denen Wertrechte wie Geld ausgetauscht werden können. Die wohl bekannteste Anwendung ist die Kryptowährung Bitcoin. Mittlerweile gibt es über 800 Kryptowährungen. Die bekannteste Währung, Bitcoin, repräsentierte Ende Oktober 2017 einen Wert von USD 100 Mrd. Dass für solche Wertrechte Geld bezahlt wird, hängt massgeblich vom Vertrauen in den Bestand und die Funktionalität des Systems ab, welches hinter der Kryptowährung steht. Es ist vergleichbar mit dem Vertrauen in den Bestand und die Solvenz eines Staates.

Die Blockchain-Technologie lässt sich aber nicht nur für die Abbildung von Werttransaktionen in Registern (seien dies Transaktionen über Kryptowährungen oder anderen Werten wie Grundeigentum, Aktien etc.) verwenden, sondern auch für die Durchführung ganzer Programme. In diesem Zusammenhang wird häufig von Smart Contracts gesprochen.

Smart Contracts

In der Regel wird als Smart Contract ein Programm bezeichnet, welches innerhalb einer vorgegebenen Umgebung unter festgelegten Bedingungen Anweisungen erteilt, sei dies zur Übertragung von Geld oder zur Ausführung anderer Befehle, welche die Umgebung auszuführen ermöglicht. Bereits hier zeichnet sich aber ein erstes Problem ab: Eine einheitliche und allgemein anerkannte Definition gibt es soweit ersichtlich nicht. Das erschwert naturgemäss auch die Diskussion um Smart Contracts, vor allem im rechtlichen Kontext.

Der Bezug zur Blockchain-Technologie besteht bei Smart Contracts darin, dass das Programm auf der Blockchain (unveränderbar) abgebildet und ausgeführt wird, mit entsprechender Möglichkeit zum Leistungsaustausch zwischen den beteiligten Parteien. Prominentester Anwendungsfall ist das Netzwerk Etherum, welches über seine Plattform und unter Verwendung seiner eigenen Kryptowährung Ether die Ausführung von Smart Contracts ermöglicht. Die Aussichten erscheinen berauschend: Innert Sekunden werden Verträge mit absoluter Gewissheit für die Beteiligten vollzogen, Identität der Parteien und Vollzug ihrer Versprechen so sicher wie das Amen in der Kirche. Die (berechtigte) Erwartung: Transaktionskosten dürften bei Vertragsabwicklungen drastisch sinken.

Aus rechtlicher Sicht stellt sich aber vorerst die Frage, inwiefern ein solches Programm die Qualifikationsmerkmale eines Vertrages haben soll. Was verbreitet als Smart Contract beschrieben wird, entpuppt sich bei näherer Betrachtung häufig als einzelner Aspekt eines Vertrages, als eine Kombination von Bedingungen, als eine Vollzugsmodalität oder als schlichten Vollzug eines Vertrages. In seiner vorgegebenen Umgebung ist ein Programm natürlich auch in der Lage, vertragstypische Leistungen wie die Durchführung einer Zahlung oder andere Verfügungshandlungen (Änderungen in Eigentumsregistern, Öffnen eines elektronischen Schlosses etc.) vorzunehmen.

Das alles macht den Smart Contract aber noch nicht zu einem Vertrag. Ein Vertrag zeichnet sich bekanntlich durch die Einigung zweier Parteien über den relevanten Inhalt aus. In dieser Einigung liegt das Wesensmerkmal jedes Vertrages. Der Inhalt der Willensäusserung wäre dann allerdings in einem für den gewöhnlichen Erdenbürger unlesbaren Code versteckt. Man mag nun einwenden, dies sei einerlei, Juristendeutsch sei auch unverständlich. Auch wenn daran im Kern wohl etwas Wahres liegt, der Schritt zum Code als Sprache ist für die Partei aber ungleich grösser.

Eine zentrale Frage ist, wie und ob sich die Parteien auf Ebene des Codes einigen können. Eine Lösung könnte vorerst darin liegen, einzelne (programmierte) Bereiche in der “klaren” Sprache zu garantieren, womit die Einigung aber wieder auf die Ebene der klaren Sprache verschoben und damit doch kein “Smart Contract” abgeschlossen würde im Sinne einer Einigung einzig auf der Programm-Ebene. Damit ergäbe sich dann auch der Inhalt der Willenserklärung nicht aus dem Code selbst, sondern aus der klaren Sprache, was dem Konzept eines «reinen» Smart Contracts widersprechen würde. Sollte der Code von den Parteien aber einmal als massgebende Sprache akzeptiert werden, würde dann dieses Medium als vereinbarte, wenn auch untypische Sprache, in Anwendung der Willenstheorie nach Art. 18 OR den Willen der Parteien repräsentieren. Eine Einigung auf der Programm-Ebene wäre demnach grundsätzlich möglich.

Diskussionspunkte

Neben systeminhärenten Risiken (einem sog. 51% Angriff innerhalb der Blockchain oder einer Hash Collision) sind auch Fehler, Unzulänglichkeiten oder bewusste Verfälschungen auf der Programm-Ebene denkbar. Bei der Umsetzung des Konzepts von Smart Contracts stellen sodann unbestimmte Rechtsbegriffe eine besondere Herausforderung dar. Solche Begriffe erhalten ihren Gehalt regelmässig im konkreten Umfeld. Bei Gewährleistungen oder Schlechterfüllungen wird auf den konkreten Fall abgestellt, wobei regelmässig eine Vielzahl der dafür nötigen Informationen ausserhalb der Smart Contract Umgebung liegen dürften. Dies mit einem fertigen Code zu antizipieren und abzubilden ist ausserordentlich schwierig. Die Verbindung zur “chaotischen” Aussenwelt müsste auch ein Smart Contract herstellen, will er in solche Bereiche des täglichen Lebens vorstossen.

Ausblick

Die zentrale Herausforderung eines jeden Vertrages, und dazu zählen auch Smart Contracts in Perfektion, wird auch in Zukunft darin bestehen, die Realität mit dem Vertragswerk zu verbinden und stimmig zu machen. Eine Person mag eine ganz bestimmte Vorstellung davon haben, wie sie etwas geregelt haben will. Diese Vorstellung umzusetzen, den Konsens divergierender Interessen zu finden, das ist die grosse Herausforderung des Verfassers eines Vertrages, mag er Jurist oder Entwickler sein. Trotzdem wird mit zunehmender Implementation von Programmen in Vertragsverhältnissen eine weitere Beschleunigung zu erwarten sein.

In diesem Sinne: Please fasten your seatbelts, we are expecting turbulence.

Verfasser: Simon Schnetzler

Vielen Dank an Ivo Graber (grabersoftware.ch) für den technischen Support und die Durchsicht.