Was ist das Double Spending Problem?

Das Double Spending / Doppelte Ausgeben Problem ist schnell erklärt. In einer Blockchain müssen alle Ledger’s, also Hauptbücher mit den getätigten Transaktionen, auf dem neuesten Stand sein.

Als Beispiel nehmen wir ein Distributed Ledger Netz, welches Immobilien verwaltet. Wir haben 100 Teilnehmer im Netz, welche alle ihren Ledger aktuell halten. Ist alles aktuell, ist das Netz konsistent.

Wenn nun Person A sein Haus verkauft, kann es je nach System eine Weile dauern, bis diese Information zu allen 100 Teilnehmern durchgedrungen ist.

Person A entscheidet sich nun, sein Haus namens Antoinette an Person B zu verkaufen. Nehmen wir an, es dauert 5 Minuten, bis alle Ledger die Information des Hauskaufs erhalten.

Kurz darauf entscheidet sich Person A dazu, das gleiche Haus Antoinette an Person C zu verkaufen.

Da noch nicht alle Ledger wissen, dass Antoinette nun Person B und nicht mehr Person A gehört, ist es durchaus in Ordnung, wenn einige Ledger akzeptieren, dass Person C dieses Haus kauft. Die Transaktion wird akzeptiert.

Natürlich wird es aber ein Problem, wenn schlussendlich beide Transaktionen in einem Ledger bekannt sind und Antoinette nun in einem Ledger bereits Person C gehört, die eintreffende Transaktion aber das Haus von Person A nach Person B transferrieren will.

Person A hat das System ausgetrickst und sein Haus zweimal verkauft – und so zu einem inkonsistenten Zustand geführt.

Diese Situation nennt man das Double Spending Problem.

Was ist die dritte Blockchain Welle?

Durch die Berühmtheit von Bitcoin ist auch das Thema Blockchain immer prägnanter geworden. Blockchain erlaubt uns die Verschiebung von Werten/Geld ohne einen Mittelsmann wie etwa eine Bank (siehe auch
Blockchain Einführung ). Der Transfer von Geld von einem Bankkonto zu einem anderen in einem anderen Land kann heutzutage bis zu fünf Mittelmänner involvieren, alle mit ihrer eigenen Verarbeitungszeit und Gebühren. Als Erweiterung der Blockchain kamen Smart Contract, welche es erlauben, komplexe Business Logik in diesen Transaktionen zu verwenden.

Mittlerweile sind wir bei der dritten Welle der Blockchain angekommen. Aber was ist die dritte Welle und was waren die zwei Wellen zuvor?

Einer der wichtigsten Vorteile von Blockchain ist dabei die tatsache, dass verhindert wird, dass die gleichen 10 Euros zweimal ausgegeben werden – das sogenannte Double Spending kann damit verhindert werden. (Siehe auch Was ist das Double Spending Problem? )

Viele Industrien sind bereits in vollen Zügen herauszufinden, wie sie von der Blockchain Technologie profitieren können. Denn wenn es soweit ist (was man nicht mit Sicherheit sagen kann) will niemand enden wie damals Nokia, die gedacht hat, dass Apple ja nur eine kleine Firma ist und ihnen niemals den Rang abkaufen wird.

Der Einfachheit halber werde ich im Folgenden nicht von Asset oder Wert oder Entities oder sonstwas reden. Stattdessen gehe ich davon aus, dass Person A Geld an Person B senden will.

Ich werde versuchen, in naher Zukunft den angeschnittenen Themen eine eigene Seite zu spendieren und diese im Detail zu erklären.

Die erste Blockchain Welle

Wie funktioniert Bitcoin?

Bitcoin hat eine Sammlung von Technologien zusammengebracht, damit verschiedene Partien Werte mittels einer digitalen Währung austauschen können. Diese digitale Währung wird auch Crypto Currency genannt, da sie eine enge Verbindung zu Kryptografie hat.

Bei Bitcoin tragen verschiedene Elemente dazu bei, dass Personen Geld austauschen können.

Ein sogenannter Distributed Ledger beziehungsweise Verteiltes Hauptbuch speichert alle Transaktionen und hält diese synchron in allen Kopien/Nodes/Knoten. Heisst auf Deutsch: Alle Transaktionen werden in einem Ledger / Hauptbuch (Buchhaltung lässt grüssen) niedergeschrieben. Von diesem Hauptbuch gibt es nun eine Kopie pro Knoten, und Knoten gibt es Tausende.

Die Knoten werden dabei von sogenannten Teilnehmern / Participants erstellt und verwaltet.

Wer mit dem Begriff Hauptbuch nichts anfangen kann stellt sich technisch einfach eine Datenbank vor.

Jeder Teilnehmer kennt dabei die Regeln, wie Transaktionen im Hauptbuch abgespeichert werden und hält sich daran.

Einmal geschriebene Einträge im Hauptbuch können nachträglich nicht mehr verändert werden und sind sogenannt immutable, also unveränderlich (Allein dieser Punkt wirft bereits Fragen auf, aber dazu später mehr).

Ein gemeinsamer Konsensus bei allen Teilnehmern darüber, wie das Hauptbuch schlussendlich gespeichert wird. Technisch wird dies als konsistent bezeichnet.

Ich werde im folgenden je nach Begriff das englische Wort verwenden, wenn ich denke, dass es Sinn macht.

Distributed Ledger Technology = DLT

DLT ist die moderne Beschreibung für Bitcoin oder Blockchain. Im Bitcoin Netzwerk hat jeder Teilnehmer eine Kopie des Hauptbuchs. In diesem Hauptbuch werden alle Transaktionen des Bitcoin Netzwerks gespeichert. Die Transaktionen in diesem Bitcoin Hauptbuch wurden dabei mit der entsprechenden Währung getätigt, in diesem Fall also Bitcoins.

Alle Transaktionen im Hauptbuch sind verknüpft mit den vergangenen Transaktionen und bilden so eine Kette von Blöcken aka Blockchain. Als Output bezeichnet an dann den aktuellen Stand des Hauptbuchs. In Bitcoin wird die Verknüpfung mittels einer Technologie namens UTXO = unspent transaction output gemacht. So wird sichergestellt, dass jeder Teilnehmer nicht nur den aktuellen Stand des Hauptbuchs sieht, sondern auch die offenen transaktionen, die zum zukünftigen validierten Stand führen.

Transaktionen per Scripting

Eine Transaktion ist die Verschiebung von Geld von einer Person zur anderen. Dabei ist es wichtig, dass sich beide Personen über die Details wie den Geldbetrag einig sind. Oder dass es sich tatsächlich um Person A und Person B handelt. Bitcoin macht dies durch eine einfache Scriptingsprache möglich.

Das Verhindern von Double Spending

Die grösste Herausforderung beim Austausch von Geld ohne einen Mittelsmann ist das Double Spending, bei dem dasselbe Geld für mehrere Zahlungen verwendet wird. In der Realität ist dies nicht möglich, da man für einen Starbucks Kaffee nur einmal zuviel Geld bezahlt und die 10 Euros dann weg sind. Digital kann dies durchaus geschehen.

Bitcoin verhinder das Double Spending mit einem Mechanismus, indem jeder Teilnehmer eine Kopie des Hauptbuchs besitzt und alle Teilnehmer zu einer Übereinstimmung kommen, wie das Hauptbuch momentan aussieht. Dies wird durch das schürfen oder mining möglich.

Lasst uns Gold schürfen!

Mining funktioniert folgendermassen: Wenn zu tätigende Transaktionen anstehen, werden diese den Minern (quasi Bergarbeiter) übermittelt. Miner sind Leute, die vom Blockchain Hype profitieren wollen und sich alle Grafikkarten unter den Nagel gerissen haben (da diese besonders schnell rechnen können), um eben damit zu schürfen.

Die Miner probieren nun, den nächstmöglichen Block in der Blockchain zu errechnen. Dies kann man als Lösen eines kryptografischen Rätsels betrachten, bei dem der Computer Unmengen von Rechnungen löst, bis eine gewisse Bedingung erfüllt ist. Das können alle Miner dieser Welt gleichzeitig machen, denn das Lösen dieses Rätsels benötigt eine gewisse Zeit und unglaublich viel Computerleistung (siehe https://www.bitcoinnews.ch/6809/bitcoin-verbraucht-strom-viel-strom/).

Sobals ein Miner das Rätsel gelöst hat veröffentlichen diese den neu gefundenen Block zusammen mit der Lösung des Rätsels. Die anderen Miner prüfen und akzeptieren diese Lösung und fügen dann die Transaktionen dem Hauptbuch hinzu. Der neue Block wird dabei mit dem Ende der Blockchain verknüpft.

Die Blöcke werden mit sogenannten Hashes verknüpft. Sie möchten wissen, was ein Hash ist? Einfach eine eindeutige Aneinanderreihung von Zahlen und Buchstaben, etwa so: 7ae26e64679abdftguife1e9b93a9e85

Da alle Blöcke einer Blockchain verknüpft sind ist es auch möglich, sich zum allerersten Block zu hangeln.

Wie gesagt braucht das Schürfen enorme Rechenpower (und auch sehr viel Energie). Für ihre Mühen werden die Miner mit Bitcoins belohnt – zumal dieser Vorgang ja notwendig ist, damit die Blockchain funktioniert.

Die zweite Blockchain Welle

Die Möglichkeit, mittels Bitcoin Geld ohne einen Mittelsmann zu transferieren, ist natürlich sagenhaft! Viele Firmen arbeiten genau als dieser Mittelsmann für grundsätzlich einfache Transaktionen wie das Verschieben von Geld von A nach B und können so horrende Zinsen verlangen. Durch einen Distributed Ledger ist das nicht mehr nötig.

Bitcoin hat aber auch einige Nachteile. Den enormen Energieverbrauch beim Schürfen von neuen Blöcken zum Beispiel. Oder dass mehr als nur „simples Geld“ ausgetauscht werden kann – also mehr als nur eine Zahl. In den Geschäfter arbeitet man meistens mit komplexen Objekten wie zum Beispiel einer Hypothek, bei der man mehr Attribute kennen muss als nur eine Zahl wie Startdatum, Enddatum, Halter der Hypothek, Zinssatz etc.

In Java ausgedrückt: Man will nicht nur einen Integer transferieren, sondern ein ganzes Objekt.

Aus diesem Nachteil ist eine neue Welle entstanden. Zu dieser Welle gehören etwa Ethereum oder IBM’s Fabric.

Die wichtigste Annforderung war dabei die Unterstützung komplexer Businesslogik. Dazu kommt oftmals noch die Notwendigkeit, dass das auszutauschende Objekt auf einer gesetzlichen Grundlage aufbauen und dies irgendwie abbilden muss.

Smart Contracts

Die zweite Welle von Blockchain Technologien baut mit Smart Contracts / Intelligente Verträge auf den Bitcoin Erungenschaften auf. Mit Smart Contracts ist es möglich, komplexe Logik in einer Transaktion zu verwenden.

In vielen Geschäftsfeldern wird der Vertrag als Grundlage einer Transaktion angesehen. So ist auch der Austausch von Geld ein Übereinkunft oder ein Vertrag zwischen A und B.

Eine wichtige Eigenschaft von Smart Contracts ist der Determinismus. Das bedeutet einfach, dass wenn man einen Algorithmus anschmeisst, dieser bei gleichem Input immer das selbe Resultat ausgibt. Ein Algorithmus, der „2 + 2 = 4“ berechnet, ist deterministisch. Ein Namensgenerator für Mädchen ist es nicht.

Die dritte Blockchain Welle

Auch wenn man mit der zweiten Welle nun komplexe Transaktionen ausführen kann hat auch sie ihre Herausforderungen.

Ein wichtiger Punkt ist die Privatsphäre. Wenn Person A Geld an Person B schickt, sollten nur A und B die genauen Details dieser Transaktion kennen. Wenn die Transaktion aber für alle einsehbar in jedem Hauptbuch gespeichert ist, ist dies nicht gegeben.

Ein weitere Kritikpunkt ist der Zeitpunkt, wann ein Block von den Minern als final angesehen wird. Wenn ein Miner ein Rätsel gelöst hat und den gefundenen Block veröffentlicht gibt es die Möglichkeit, dass dieser Block abgelehnt wird. Wenn eine Geschäftstransaktion über Blockchain ausgeführt werden soll, muss man sicher gehen können, dass diese auch ausgeführt wird. Ich möchte meinen Lohn nämlich jeden Monat erhalten und nicht zufälligerweise 😉

Ein weiterer wichtiger Punkt ist die Identität der beiden Personen. Person A oder Person B müssen als juristische Person erkannt und behandelt werden können.

Und schlussendlich noch die Skalierbarkeit. Wenn ein Bankprozess, wie etwa der Bezug von Bargeld von einem Bankautomaten, tatsächlich in der Blockchain gespeichert werden soll, werden das Milliarden von Transaktionen. Soviele Blöcke können die Miner gar nicht schürfen, zumal es auch eine Obergrenze für die Anzahl der zu schürfenden Blöcken gibt.

Ein Beispiel für eine Blockchain der dritten Welle ist Corda.

Der Weg der Blockchain in das Daily Business

Soweit mal die Grundlagen zum Stand der Blockchain per Anfang 2019. Es ist wirklich interessant, wie rasant sich das Thema entwickelt. Verschiedene Partien arbeiten hart daran, Geschäftsfelder für Blockchain zu finden.

Viele Personen belächeln Blockchain als Hype, der bald wieder zu Ende sein wird. Meiner Meinung nach wird sich die Blockchain weiterentwickeln und vielleicht nicht jeden der heutigen Geschäftsprozess ablösen, aber doch einen wichtigen Platz für gewisse Anwendungsfälle erhalten.

Lasst uns sehen, wohin der Blockchain Zug uns führen wird – Und lasst uns auch sicherstellen, dass wir diesen Zug nicht verpassen!

Blockchain Einführung

Seit dem Jahre 1981 suchen gescheite Leute Lösungen, um das Internet sicher zu machen und die Privatsphäre jedes Einzelnen zu schützen. Wie auch immer man den Prozess gestaltete, immer war eine Drittpartei involviert. Hat man mit einer Kreditkarte bezahlt, weiss etwa das Kreditkartenunternehmen genau, was man wo gekauft hat. Im Jahre 1993 gab es eine brilliante Erfindung des Mathematikers David Chaum namens „eCash“, welches perfekt dafür geeignet war, virtuelles Geld durch das Internet zu schicken. Das Problem war, dass im Jahre 1993 noch niemand an Sicherheit interessiert war, so dass die Chaum’s Firma im Jahre 1998 bankrott ging.

Im Jahr 2008 ist die globale Finanzindustrie im Zuge der Subprime Krise gecrasht. Zu dieser Zeit wurde ein neues Protokoll vorgestellt, welche eine Punkt-zu-Punkt Verbindung für eine elektronische Zahlung zulassen soll: Bitcoin.

Bitcoin ist eine sogenannte Crypto-Währung/Cryptocurrency oder auch digitale Währung. Der Unterschied zu einer normalen Währung ist, dass diese Währung von keinem Land kontrolliert wird.

Das Bitcoin-Protokoll definiert Regeln, welche die Integrität von ausgetauschten Daten sicherstellt, ohne über eine Drittpartei gehen zu müssen.

Viele sind der Meinung, dass Bitcoin und das darunterliegende Blockchain Protokoll die nächste grosse Revolution nach dem Internet ist. Sicher ist, dass es so etwas noch niemals zuvor gab: Transaktionen, die einander vertrauen und zwei Parteien verbinden, welche sich durch das System authentifizieren und angetrieben werden von reinem Eigeninteresse – statt riesigen Firmen, die auf reinen Profit aus sind.

Wobei die grossen Firmen natürlich auch nicht dumm sind. Viele haben bereits angefangen, Forschungsteams auf Bitcoin und Blockchain anzusetzen. Wenn es wirklich die Zukunft ist, müssen Firmen bereit sein, auf den fahrenden Zug aufzuspringen, um nicht mit heruntergelassenen Hosen dazustehen.

Blockchain ist also das Protokoll hinter Bitcoin. Blockchain ist die Grundlage eines Netzwerks einer wachsenden Anzahl von globalen Zweigstellen/Hauptbüchern (namens „blockchains“) – wobei die Bitcoin Blockchain die grösste davon ist. Der Begriff „Hauptbuch“ kommt dabei aus der Buchhaltung. Mit dem Hauptbuch bezeichnet man alle Konten, mit denen eine Firma ihre Geschäftsfälle bearbeitet (Aktiv-/Passivkonten).

Die Idee von Blockchain ist also simpel: Jeder kann Geld direkt und sicher an eine Person senden, ohne durch eine Bank oder eine Kreditkartenfirma zu gehen.

Ich werde, sobald es mir die Zeit erlaubt, tiefer in das Thema eintauchen und entsprechende Blogeinträge dazu schreiben, da mich das Thema enorm interessiert.