/Bitcoin

Sind Smart Contracts noch zu retten?

Klemens Kilic 27.07.2018 Lesezeit 7 Min

Sie könnten klassische Verträge, Notare und Anwälte überflüssig machen. Aber in der Vergangenheit haben sich Smart Contracts immer wieder als anfällig für Programmfehler und Schlupflöcher herausgestellt. Zum Teil mit drastischen Folgen und Verlusten von Millionenbeträgen.

Die Blockchain wird von vielen als eine Art Allheilmittel angesehen. Scheinbar jede Industrie soll nun durch die neue Technologie auf ein dezentrales Fundament gehievt werden. Denn, so die Blockchain-Enthusiasten, die Blockchain zeigt durch ihr dezentrales Netzwerk nahezu keine Angriffsfläche für Hacker. Und durch ihren Aufbau garantiere sie eine beispiellose Manipulationssicherheit.

Denn bei der Blockcahin werden Datensätze von Rechnern verifiziert und als Blöcke aneinandergesetzt. Wobei jeder Block einen Zahlenwert enthält, der aus den Inhalten des vorhergehenden Blocks berechnet wurde. Wird ein Block verändert, ändert sich sein Wert und er wird vom nachfolgenden Block delegitimiert. Aber vor allem: Alle Systemteilnehmer sind im Besitz einer Kopie der Blockchain. Ist eine nicht wie die anderen, ist klar, dass hier jemand versuchte, Schindluder zu treiben.

Jedoch taugt die Blockchain noch zu viel mehr. Spätestens seit dem Start von Ethereum dringt das einst für Bitcoin geschaffene Blockchain-Konzept auch in eine Vielzahl von anderen Bereichen vor. Vor allem dank der Smart Contracts, die Ethereum ermöglicht. Denn das ist mehr als nur die Basis der Projekt-eigenen Kryptowährung Ether. Sie ist auch eine Plattform, die Entwicklern das Erschaffen eigener Blockchain-Projekte ermöglicht, die ganz andere Ziele haben können als pure Geldtransfers.

Eigentlich simpel

Die Idee eines Smart Contract ist sogar älter als die Blochain. Erdacht hatte sie nämlich bereits 1993 der Informatiker Nick Szabo – ausgerechnet jener also, der in Verdacht steht, der Bitcoin-Vater Satoshi Nakamoto zu sein. Im Grunde sind Smart Contracts nichts weiter als kleine Programmprotokolle, die auf der Blockchain ablaufen und Verträge emulieren. Dabei folgen sie klaren Logiken und „Wenn das, dann das!“-Regeln – eigentlich. Der Vorteil? Sie laufen automatisch ab und könnten Notare und Anwälte überflüssig machen. Denn: Code ist Law!

Ein Smart Contract kann zum Beispiel für den Verkauf von Produkten genutzt werden. Möchte Fritz seine Smart Watch an Hans verkaufen, digitalisiert er sein Gut in Form einer Besitzurkunde und platziert das digitale Pendant als Smart Contract auf der Blockchain. Der Smart Contract dient dann so lange als Treuhand bis Hans die vereinbarte Summe, zum Beispiel zwei Ether, an die ausgemachte Adresse transferiert hat. Ist das Kryptogeld in Fritz’ Wallet eingegangen, wird die Besitzurkunde der Smart Watch an Hans überstellt. Ganz automatisch.

Smart Contracts können aber auch zu dezentralen Applikationen, kurz dApps, verbunden werden. Also Programme, die, wenn einmal programmiert, selbstständig ablaufen und eigentlich nicht mehr gesteuert werden müssen. Sie können die Basis komplexer Dienste darstellen. So sind zum Beispiel die Handelsplätze Etherdelta und IDEX mithilfe von Smart Contracts dezentral und nahezu vollkommen autonom aufgebaut. Alle Käufe, Verkäufe und Tauschaktionen laufen über die automatischen Verträge ab.

Das heißt auch: Wer diese Dienste nutzt, muss keine Währungen oder Token hinterlegen oder sich registrieren. Denn die Handelsplätze stellen nur die Verträge bereit aber haben sonst nichts mit den Handelspartnern zu schaffen. Ein weiterer Vorteil: Nutzer müssen nicht länger auf die Integrität der Besitzer eines Exchange oder eines anderen Service vertrauen.

Nicht wenige sind überzeugt, dass die Smart Contracts langfristig auch gesellschaftliche und kulturelle Umwerfungen einleiten könnten. Elektrofahrzeuge, die vollgeladen an der Steckdose hängen, könnten automatisch Strom an einen Versorger verkaufen, um Engpässe zu überbrücken. Bauern, Viehzüchter oder auch Bierbrauer könnten ihre Waren auf Plattformen inserieren wo sie automatisch von ebenso lokalen Märkten oder Gaststätten aufgekauft werden. Auch Darlehens- und Steuersysteme könnten über Smart Contracts abgewickelt werden.

Aber: Wenn der Code eines Smart Contracts nicht fehlerfrei ist, kann das Kryptogeld oder das Recht an einem realen Besitz trotzdem geraubt werden.

Fehlerhafte Smart Contracts

Ethereum ist die beliebteste Plattform für die Entwicklung von Smart Contracts. Wenngleich ihre Blockchain selbst als sehr sicher gilt, hat eine Gruppe von Wissenschaftlern im März dieses Jahres eine ganze Menge von Programmfehlern in Smart Contracts ausgemacht, die auf dem Ethereum-Protokoll entwickelt wurden. Von fast einer Million untersuchten digitalen Verträgen waren der Studie zufolge 3 Prozent fehlerhaft. Wenn man sich vergegenwärtigt, dass von deren Sicherheit zuweilen Kryptogeld im Wert von mehreren Millionen Euro abhängt, ist das ein schockierendes Ergebnis.

2016 machten sich Hacker einen Programmfehler einer auf Ethereum basierenden dApp, der Decentralized Autonomous Organization (DAO), zunutze. Die hätte ein staatenloser Investmentfond ohne Angestellte oder Gründer sein sollen – eine Idee, die bis heute spannende Fragen zulässt. Insgesamt 120 Millionen US-Dollar hatte ein Crowdfunding an Startkapital gebracht. Aber der Code des Contracts war anfällig. Durch eine geschickte Attacke konnten Hacker beispielsweise eine Auszahlungsanweisung in eine Schleife laufen lassen, die sie 30 Mal mehr Geld abheben ließ, als sie eigentlich durften. Dadurch erbeuteten sie Ether im Wert von 42 Millionen Euro. Es war das Todesurteil für das Projekt.

Ein Jahr später führte ein weiterer Programmfehler der Wallet Parity, ein Aufbewahrungsort für digitales Geld, dazu, dass 126 Millionen Euro unzugänglich gemacht wurden. Ein Nutzer hatte – angeblich ohne Absicht – die Kontrolle über Konten erlangt und, als er das rückgängig machen wollte, diese aus Versehen gesperrt. Oder anders gesagt: Fehlerhafte Smart Contracts können katastrophale Folgen haben.

Ein weiteres Problem ist, dass Smart Contracts nur sehr schwer abgeändert werden können. Die Gefahr, dass man mit der Änderung eines Smart Contracts auch die damit verknüpften Informationen löscht, ist einfach zu hoch. Das wissen die Entwickler von Ethereum auch. Nicht umsonst weißen sie drauf hin, dass Ethereum-Programme „neu und in hohem Maße experimentell“ sind. Benutzung auf eigene Gefahr!

Lösungsansätze

Sind Smart Contracts also der falsche Weg? Sollte die Blockchain-Technologie auf ein dezentralisiertes Geldsystem wie Bitcoin beschränkt bleiben? Nicht notwendigerweise. Denn viele Entwickler von dApps wissen um die Gefahr von Programmfehlern in Smart Contracts und engagieren Hacker-Initiativen, die ihre Smart Contracts auf Bugs absuchen, bevor diese veröffentlicht werden. Der dezentrale Exchange DEx.top zum Beispiel hat zur Überprüfung der Sicherheit gleich drei Initiativen angeheuert: HackerOne, ChainSecurity und Sentinel Protocol. Oberdrein hat dann noch die Eidgenössische Technische Hochschule Zürich die Börse auf ihre Sicherheit gecheckt.

Solche professionellen Überprüfungen dauern lange und sind teuer. Gerade für kleinere Blockchain-Projekte fällt diese Möglichkeit daher weg. Mit zur Zeit mehr als einer Million Smart Contracts auf der Ethereum Blockchain kann die manuelle Prüfung keine Dauerlösung sein.

Richard Ma, Chef des Projektes Quantstamp, und sein Team entwickeln daher gerade ein System zur automatisierten Sicherheitsüberprüfung von Smart Contracts. Wie es funktioniert? Ein Entwickler schickt den Code seines Smart Contracts zur Überprüfung ein. Ein Testsystem nutzt den Vertrag und Algorithmen werden eingesetzt, um dabei potentielle Logik- und Regelfehler und Hintertüren ausfindig zu machen. Das alles erfolgt vollautomatisch. Wobei ebenso auch noch menschliche Experten ein Auge darauf haben sollen. Bereits im Augst soll Quantstamp starten, das zunächst für Smart Contracts der Ethereum-Plattform aber langfristig auch für Alternativen wie NEO oder Cardano funktioniere soll.

Aber ob das Konzept in der Praxis so von Erfolg gekrönt sein wird, wie Quantstamp verspricht, ist zumindest fraglich. Sicher: Quantstamp mag erkennen können, ob ein Programmfehler vorliegt. Und ein Mensch mag das Verständnis für Intention und Fehlschlüsse zuliefern. Aber selbst dann besteht weiterhin eine hohe Unberechenbarkeit. Dennoch: Ein Schritt in die richtige Richtung! Denn Smart Contracts werden ein Teil zukünftiger Ökonomien und Wirtschaftskreisläufe werden und ihre Sicherheit und Nachvollziehbarkeit muss gewährleistet sein – und das vollautomatisch. Sind Smart Contracts also noch zu retten? Vielleicht. Zur Zeit sind sie aber ebenso revolutionär wie riskant.