Immer noch ist Blockchain in aller Munde. Jeder meint, alles damit zu tun, Start-Ups wie Konzerne sind nicht mehr zu halten. Es wird daher Zeit, auch mal eine Gegenposition aufzuschreiben. Die ausschlaggebende Motivation hierzu kam durch einen Beitrag im IT-Finanzmagazin, dass Banken (also überspitzt ausgerechnet die, mit den zentralistischen Mainframes und Paper-Trail IT) jetzt den Mittelstand zu Blockchain hin beraten sollen. Aber der Gedanke für einen Text ist schon älter.
Das Positive vorweg:
Blockchain ist eine wunderbare Lösung, für ein Problem, für das wir lange keine Lösung hatte. Auch wenn es am Ende nur die Kombination bestehender Technologien war, so ist doch wie so oft das Ganze mehr als die Summe der Teile. Bitcoin, als prominenteste Implementierung ist ein unglaubliches Projekt. Ich selber war 2013 dabei und habe auf dem Höhepunkt verkauft. Das machte den Start von bobbie.de deutlich einfacher. Ich kann also nicht klagen. Noch ein Aspekt von Bitcoin kann kaum überbewertet werden: Die Marktkapitalisierung von 200 Mrd. Dollar hat das Thema allgemein bekannt gemacht. Was teuer ist, ist auch wichtig. Darum kann man nun irgendwo Blockchain drauf schreiben, und schon steigen die Chance, dass das Projekt ernst genommen wird. Ich glaube, dass ist einer der wahren Gründe dafür, dass es so viele Projekte gibt, die in der Anbahnungsphase von Blockchain und Co reden. Wer will einem verübeln, wenn dann 2 Jahre nach der ersten PowerPoint-Anbahnung eine “günstigere Lösung” ohne Blockchain gefunden wird.
Nun zur eigentlichen These: Kaum jemand braucht Blockchain.
Der Grund ist ganz simpel: Das Problem, was Blockchain löst, und was lange als nicht lösbar galt, hat fast niemand. Ja, wenn man eine dezentrale, internationale und unabhängige Währung bauen will, dann braucht man genau sowas wie Blockchain. Sonst eher nicht. Warum ist das so?
Blockchain hat ein paar Eigenschaften, die toll sind, aber teuer erkauft werden müssen. Ganz fundamental ist das Fehlen einer Zentralen Instanz. Dies erzeugt die wesentlichen Vor- aber auch Nachteile. Es gibt niemanden, der die volle Kontrolle hat. Das ermöglicht dann Vertrauen in das ganze System, ohne einem Einzelnen zu trauen.
Geradezu ein demokratisches System zum Erzeugen von Vertrauen. Allerdings hat dieses, genau wie eine Demokratie, durchaus ein paar Nachteile. Allen voran bei jeder Blockchain Lösung die Wahlen, der Konsens-Algorithmus. Sie sind unglaublich teuer. Und das müssen Sie auch sein. Weil man niemandem vertraut, entsteht das Vertrauen dadurch, dass es (zu) teuer sein muss, die Wahl zu fälschen. Das wird erreicht, indem der Vorgang an sich teuer ist. Bei Bitcoin in Stromkosten & IT-Invest, zum Beispiel. Das heißt, je teurer die verwalteten Güter, desto teurer muss auch dieser Prozess sein, damit er nicht von einem böswilligen übernommen werden kann. Etliche Kryptowährungen sind an dem Problem schon gescheitert: Jemand hat genug Geld drauf geworfen um dann stehlen zu können. Es ist ein fundamentales Problem, für das noch keine Lösung in Sicht ist. Auch alternativen wie Proof of Stake helfen nicht, so lange es ein Verhältnis gibt zwischen dem Geld was der Böse reinstecken muss vs. einem potentiellen Return gibt, welches unangenehm wächst. PoS würde nur gehen, wenn der Stake nicht negativ kontrolliert werden kann. Und Kontrolle meint hier auch die nicht technische Kontrolle. Hier unterscheidet sich die digitale Welt übrigens ganz drastisch von der analogen: Wenn ein nennenswerter Haufen Gold größer wird, wird es im Verhältnis immer billiger, ihn zu beschützen. Der Grund ist offensichtlich: Man kann nicht einfach 500 LKW Ladungen Gold unbeobachtet durch die Gegend fahren. So ergeht es allem physischem Wert. Mehr ist billiger zu beschützen. Das gilt für die digitale Welt gerade nicht. Wenn ich 51% kontrolliere, kann ich den Konsens zu meinem (falschen) Gunsten beeinflussen. Die 51% kosten im Zweifel genau 51-mal so viel wie 1%.
Außerdem braucht jedes Verfahren, das als verteilter Algorithmus läuft, relativ lange. Solch komplexe erst recht. Die meisten Krypto-Währungs-Implementierungen brauchen Minuten um eine Transaktion zu bestätigen, wenige schaffen es in Sekunden. Zentrale Systeme sind hier also ganz leicht 2 Größenordnungen schneller. Das mag für manche Anwendungen egal sein. Für viele ist es das nicht.
Ein weiterer Effekt der fehlenden zentralen Instanz ist die Schwierigkeit, Fehler zu korrigieren. In den meisten Systemen gibt es dafür Strukturen. In der IT ist es der Administrator. In der Wirtschaft der Richter. In jedem Fall sind Sie zur Stelle, wenn etwas nicht nach Plan gelaufen ist. Sie sind Netz und doppelter Boden, aber mit der relevanten Eigenschaft der Intelligenz. Computer können keine Intelligenz haben (Künstliche Intelligenz meint heute regelmäßig etwas ganz anderes). Damit kann der Richter verstehen, was ein Vertrag meinte, nicht notwendigerweise was er sagte, und entsprechend entscheiden. Ein Computer kann das nicht, und wird das nie können – das bewies Alan Turing bereits 1937. Damit haben wir innerhalb solcher Systeme keine Lösung für Ausnahmen. Das mag manchmal erträglich sein, insbesondere bei sehr trivialen Fragestellungen. Wer aber anfangen will, entweder komplexe Datenströme oder aber gar Verträge (“Smart Contracts”) über Blockchain zu lösen, hat noch nie mit Administratoren und Juristen gesprochen. Es ist einfach nicht denkbar, dass ein System immer funktioniert. Auch jeder Entwickler weiß, dass Code Bugs enthält, Anforderungen unvollständig sind und Sonderfälle übersehen worden sind. Dafür braucht es immer eine Lösung. Diese Lösung muss durchsetzbar sein, auch gegen den Willen eines unbeabsichtigt Bevorteilten Teilnehmers.
Viele weichen nun einfach das Konzept auf, und sagen: Ja, das kann man dann ja wie bisher halten, machen halt die Admins zusammen, oder ein Gericht. Klar. Kann man machen. Aber dann kauft man sich die Schmerzen eines verteilten, manipulationssicheren Konsensystems ein (Komplexität, (Energie-)Kosten, Langsamkeit), ohne den fundamentalen Vorteil zu haben. An der Stelle ist dann eine stink normale Datenbank zentrale, die im Zweifel an alle Partner digitale signiert gebackuped wird haushoch überlegen. Sie ist in einer Stunde aufgesetzt, kostet im Betrieb nichts und hat auch noch 20 Jahre Entwicklungs- und damit Bugfixzeit hinter sich. So ein ewiges Logfile beschreibt Lutz Donnerhacke schon 1996. Auch das ist relativ unveränderlich.
Überhaupt ist die Unveränderlichkeit bei Blockchain nicht gegeben. Sie ist es nur so lange, wie nicht jemand die Chain neu schreiben kann. Das zu verhindern benötigt 2 Dinge. Den oben beschriebenen Konsensalgorithmus mit seinen immanenten Nachteilen und eine verteilte Haltung aller Daten:
Verteilte Datenhaltung: Speicherverbrauch mal N?
Typischerweise hält jeder Knoten einer Blockchain alle Daten. Das ist notwendige Konsequenz aus dem Zero Trust, aber natürlich auch die ineffizienteste Datenhaltung die man sich denken kann. Varianten bauen verschiedene Trust Level ein, um das zu umgehen. Wer es braucht, hat auf jeden Fall ein Problem sollte er nennenswerte Datenmengen verwalten. Zentrale Systeme, ggf. mit Caches, haben das Problem nicht und skalieren daher viel einfacher. Es ist eben nur ganz selten ein Vorteil: Wenn ich niemandem traue.
Das große Ganze: Komplexität
Blockchain-Implementierungen, schlimmer noch solche mit Smart Contracts sind Komplexitätsmonster. Aktuell sind viele System schon nicht integriert, weil die Leute keinen XML Export vernünftig hinkriegen. Juristische Verträge haben Fehler, weswegen sie geändert werden und Gerichte sie interpretieren müssen. Eine Blockchain Lösung zur Systemintegration, am besten noch mit Smart Contracts, deckt gleich drei Felder der Informatik ab, die typischerweise bei einem Systemarchitekten Alarmglocken läuten lassen. Ich wage zu behaupten, dass von den Leuten die das allerorten empfehlen keine 5% dabei sind, die schonmal auch nur eines der drei Felder in den Griff bekommen haben:
- Verteilte Systeme mit verteiltem Status. Diese sind eine Größenordnung komplexer zu entwickeln und zu betreuen als nicht verteilte. Allem Cloud Hype zum Trotz.
- Kryptographie. Wenn man sich anschaut, wie sich Projekte wie OpenSSL schwertun, wie TLS regelmäßig bricht, oder wenn man einfach mal einen Blick in den Code wirft, kriegt man ein Gefühl davon, wie schwer das eigentlich ist.
- “Fehlerfreier Code” ist unglaublich selten, aufwendig und teuer. Wer mal nicht trivialen Code formal beweisen musste, hat ein Gefühl. Und das schließt die Fehler in den Anforderungen nicht mal mit ein.
Da helfen auch keine (halb fertigen) Implementierungen oder Frameworks. Zero Trust in die Teilnehmer bedingt 100% Trust ins System. So bescheuert kann man eigentlich nicht sein.
Abschließend:
Die eigentliche Frage ist doch: Wo bitte vertraut man sich denn gar nicht? Mir sind solche Geschäfts- oder Systembeziehungen in der westlichen Welt noch nicht untergekommen. Die Perversion entsteht natürlich, wenn im eingangs beschriebenen Artikel gerade Banken Beratung zu sowas anbieten. Sorry, aber ist deren Geschäftsmodell und wesentliche Existenzberechtigung nicht gerade, dass man Ihnen vertraut?