Stash: Ein Transaktionsserver, der kein Vertrauen benötigt?
Stash aus Texas degradiert den Server zum Notar. Die Kombination aus Bitcoin und Open Transactions soll beliebig viele Transaktionen ermöglichen, ohne dass der Nutzer jemandem vertrauen muss. Ist die Lösung des Blocksize-Problems damit in Sichtweite?
„Das Kernproblem konventioneller Währungen ist das Vertrauen, das nötig ist, damit sie funktionieren,“ schrieb Satoshi Nakamoto Anfang 2009, als er den Bitcoin im P2P-Forum vorstellte. Der entscheidende Punkt der Kryptowährung ist nicht, dass Transaktionen schnell oder günstig oder anonym sind. Das ist ein Nebeneffekt. Der eine, der alles entscheidende Punkt ist: man kann Geld versenden, ohne jemandem vertrauen zu müssen. Keiner Bank, keinem Zahlungsdienstleister, keinem Briefträger, keinem Kurier. Niemandem.
Diese Innovation ist epochal, weil sie die seit Jahrtausenden üblichen Mittelsmänner eliminiert, hat allerdings ihren Preis: Transaktionen sind sicher, zum Teil aber langsam und, vor allem: nicht beliebig skalierbar. Denn im dezentralen Bitcoin-Netzwerk speichert jeder Knoten die ganze Datenbank mit allen vorherigen Transaktionen. Wenn diese zu groß wird, bringt das die Knoten an die Grenze ihrer Leistungsfähigkeit.
Viele Nutzer sind daher gezwungen, Transaktionsserver zu benutzen, die eine größere Menge von Transaktionen in ihren eigenen Datenbanken schneller vornehmen: Börsen, Dienstleister für Offchain-Transaktionen und mehr. Damit jedoch kehrt das Vertrauen durch die Hintertüre wieder ein – und mit ihm der Bruch des Vertrauens. Das augenfälligste aber längst nicht einzige Beispiel ist MtGox, die einst größte Bitcoin-Börse der Welt, die mit Bitcoins im Wert von mehreren hundert Millionen Euro in den Abgrund gerauscht ist. Was tun, damit sich das nicht wieder und wieder wiederholt?
“Alles geringe wird nicht mehr akzeptabel sein.”
Ideal wäre ein Modell, dass so skalierbar ist wie ein Transaktionsserver – aber ebenso wenig auf Vertrauen angewiesen wie der Bitcoin. Wäre das möglich? Ja, meint Chris Odom. Der Texaner hat das Whitepaper von Open Transaction geschrieben und im schweizerischen Zug Monetas mitbegründet. Während sich Monetas unter dem bleibenden Geschäftsführer Johann Gevers derzeit anschickt, ein grenzübergreifendes Transaktionssystem nach Afrika zu bringen, hat Odom in Texas mit Cliff Baltzley, dem Gründer von Hushmail, Stash ins Leben gerufen: die erste Plattform, die das Open Transactions Protokoll anwendet. Sie verspricht, die Skalierbarkeit eines Transaktionsservers mit der einen wesentlichen Eigenschaft des Bitcoins in Einklang zu bringen.
Stash macht, so die Webseite, Vertrauen unnötig und eliminiert Fälschungen und Betrug. „In der neuen Normalität wird alles geringere inakzeptabel sein,“ so der Slogan. Stash soll beliebig skalierbar und betrugssicher sein, zahlreiche Finanzinstrumente ermöglichen, jede gewünschte Währung fassen und Transaktionen in Echtzeit bestätigen. „Wir erwarten, dass unsere Software einen neuen Konkurrenzdruck ausübt, weil es die Ökonomie verändert. Kunden werden es bevorzugen, einen Service zu benutzen, dem man nicht vertrauen muss, und die Versicherungskosten werden wegen der geringeren Haftbarkeit sinken,“ so Baltzley in einer Pressemitteilung. Stash werde den End-Usern eine beispiellose finanzielle Autonomie geben.
Stash ist vor gut einer Woche „live“ gegangen, bietet aber noch keine kommerziellen Wallets an. Man ist derzeit noch in der Beta-Phase, möchte aber, so Cliff Baltzley, im vierten Quartal kommerzielle Produkte anbieten. Mit mehreren Firmen sei man bereits in Gesprächen, könne aber noch keine Namen nennen. Schließlich soll es jedem möglich sein, Stash für die eigene, serverinterne Abwicklung von Transaktionen zu nutzen.
“Echtes Vertrauen” ist Vertrauen durch einen kryptographischen Beweis
Wie aber soll Stash funktionieren? Wie soll es möglich sein, einen Transaktionsserver zu bauen, dem man nicht vertrauen muss und der für eine Vielzahl von Finanzinstrumenten genutzt werden kann? Ist das nicht ein Widerspruch in sich? Die Antwort liegt in der Kombination der Bitcoin-Blockchain und dem Open Transactions Protokoll.
Um all das zu erklären, muss man ein wenig ausholen. Da Stash eine Lösung für harte Probleme der Finanz-Kryptographie verspricht, müssen wir über Kryptographie reden und riskieren, dass wir unser Gehirn ein wenig verknoten. Ich versuche dennoch, es so einfach wie möglich zu halten. Wer es genauer wissen möchte oder meiner Laienperspektive nicht vertraut, dem sei das Open Transaction Whitepaper ans Herz gelegt.
Open Transaction möchte einen Transaktionsserver aufbauen. Das ist ein Server, der Transaktionen bestätigt. Dabei soll das übliche „Vertrauen durch Autorität“, also das Vertrauen in einen Dritten, der als vertrauenswürdig zu gelten hat, durch „echtes Vertrauen“ ersetzt werden. Mit „echtem Vertrauen“ meint Open Transactions Vertrauen durch einen kryptographischen Beweis.
Dazu degradiert Open Transactions den Server zu einem Notar. Während bei einer Bank beispielsweise der Nutzer nur die Anweisung gibt, dass die Bank eine Transaktion ausführt, soll der Nutzer bei Open Transactions seine Transaktion selbst durch einen kryptographischen Schlüssel signieren. Der Transaktionsserver kann danach nur noch feststellen, ob die Transaktion legitim ist. Er selbst kann keine Transaktionen signieren und damit ausführen. Er kann sie nur bestätigen.
Damit kommt dem Server eine ähnliche Rolle zu wie dem Miner beim Bitcoin. Wie der Bitcoin-User der einzige ist, der den privaten Schlüssel für eine Adresse hat und das Guthaben auf dieser bewegen kann, ist der Nutzer bei Stash der einzige, der ein sogenanntes Receipt signieren kann. „Receipt“ ist der von Open Transaction gewählte Begriff, was etwas ähnliches wie Beleg, Kassenzettel oder Zahlungsschein bedeutet. Nur der Nutzer, der den privaten Schlüssel hat, kann ein Receipt signieren. Mehr über die privaten Schlüssel und die Adressen erfahrt ihr übrigens in diesem Artikel über die Kryptographie des Bitcoins.
Viele Arten von Transaktionen – von Cash zu Smart Contracts
Der Nutzer von Stash signiert also das Receipt, dass er beispielsweise 1,5 Bitcoin an Tobias schickt, und sendet dieses dann an einen Server. Der prüft, ob Signatur und Kontostand korrekt sind, und hängt es an eine Receipt-Chain an. Das ist eine auf dem Server befindliche Liste mit den vergangenen Receipts. Sie sind alle kryptographisch so weiterverarbeitet, dass jeder Knoten im Netzwerk die Ketten aller anderen prüfen kann.
Der Server hat somit keinen Zugriff auf die Kontostände der Nutzer. Dies ist schon mal ein großer Fortschritt gegenüber den herkömmlichen Zahlungssystemen. Um allerdings zu verhindern, dass ein Server beispielsweise Transaktionen blockiert, sieht Open Transactions ein Netzwerk bzw. einen Pool von Servern vor, die sich und die Receipt-Chains gegenseitig in Echtzeit prüfen.
Um noch ein wenig ins Detail zu gehen: Die Nutzer müssen von den Servern Transaktionsnummern beantragen, die nur einmal gültig sind. Beim Beantragen muss der Nutzer seinen korrekten Kontostand bestätigen lassen. Wenn der Nutzer dann eine Transaktion beantragt, prüft der Server auch, ob die Nummer und der Kontostand korrekt sind. Indem man mehrere Nummern kombiniert, lassen sich zahlreiche Arten von Transaktionen bilden: Neben der herkömmlichen Banküberweisung zählt das Whitepaper noch Bargeld auf, also eine Überweisung, die den Sender geheimhält, Schecks, Gutscheine, Zahlungsaufforderungen, Marktangebote und Smart Contracts.
Open Transactions löst mehrere Probleme: Die Server können Transaktionen nicht manipulieren und die Nutzer haben die volle Kontrolle über ihr Guthaben. Ein Problem bleibt jedoch bestehen: Wenn sich ein Server und ein Nutzer zusammenschließen, können sie Zahlungsanweisungen fälschen.
Zerfetzte Schlüssel im Pool
Das Whitepaper nennt mehrere Lösungen für dieses Problem. Durchweg zufriedenstellend ist allerdings nur die Lösung, die Stash nun auch anwendet: die Guthaben existieren als Bitcoins, wodurch jeder Pool prüfen kann, ob es sie in der Blockchain wirklich gibt.
Wenn ein Nutzer Geld (Bitcoins) bei Stash einzahlt, werden die Bitcoins auf einer sogenannten Multi-Sig-Adresse gespeichert. Multi-Sig bedeutet, dass der Schlüssel, mit dem man eine Transaktion signieren muss, in mehrere Teile zerlegt wird und man eine bestimmte Anzahl dieser Schlüsselbruchteile benötigt, um die Transaktion später zu signieren. Beispielsweise wird der Schlüssel in drei Teile gebrochen, von denen zwei nötig sind, um eine Transaktion auszuführen. Möglich sind beliebig viele Kombinationen, weshalb Multi-Sig gewöhnlich als „M von N“ beschrieben wird. M von N Schlüsselteile sind notwendig, um eine Transaktion zu signieren: 2 von 2, 2 von 3, 4 von 5, 8 von 10.
Bei Stash werden diese Schlüsselbruchteile in Multi-Voting-Pools gespeichert. Das sind Pools von Servern, von denen jeder einen Bruchteil des Schlüssels bekommt. Wenn also der User die Bitcoins in Stash einzahlt, gibt er zwar den privaten Schlüssel und damit die Kontrolle der Bitcoins ab – aber es gibt keine einzelne Partei, die Zugriff darauf hat. Nur ein Konsortium von Transaktionsservern, die sich gegenseitig kontrollieren, kann die Bitcoins wieder vom Stash-Netzwerk in die Bitcoin-Blockchain entlassen.
„Das bedeutet, dass einzelne Knoten des Stash Pools keine Guthaben stehlen können, da dies einen M von N Beweis der Knoten im Pool erfordert,“ erklärt Chris Odom, „Es bedeutet auch, dass einzelne Knoten Bob nicht davon abhalten können, Bitcoins auszuzahlen, da M von N Knoten die Auszahlung autorisieren können.“
Es wäre freilich möglich, dass ein Kartell von beispielsweise 8 von 10 Knoten in den Voting Pools Guthaben stehlen könnte. Chris Odom hält dies aber für vernachlässigbar: „Du meinst, dass das eine Schwachstelle ist, was stimmt, aber tatsächlich haben wir eine viel sicherere Situation als in der gegenwärtigen Bitcoin-Welt. Heute braucht man kein Kartell, da die Leute ihr Geld individuellen Servern anvertrauen, die dann auch Geld stehlen oder verlieren. Ein M von N zu verlangen bedeutet definitiv eine deutliche Verbesserung der Sicherheit. Voting Pools mit einer zunehmenden Anzahl von Knoten erreichen die höchste theoretisch mögliche Sicherheit auf der Seite der Server.“
Nicht nur Bitcoins – sondern alles
Um neben dem Bitcoin auch andere Währungen und Güter zu transportieren, unterstützt Stash auch Colored Coins. Das sind sozusagen eingefärbte Bitcoins, die ein anderes Gut repräsentieren – Gold, Euro, Aktien, was auch immer. Solche Güter brauchen stets eine zu vertrauende Partei, die sie herausgibt – die zum Beispiel verspricht, so und so viel Gold sicher zu verwahren – aber sie sind auch in Stash nicht zu fälschen, da sie auf der Blockchain gespeichert sind.
„Colored Coins können traditionelle Währungen wie Dollar oder Euro repräsentieren. Aber dies bedeutet, dass jemand sie herausgeben muss, der diese Dollar oder Euro hält. Das kann eine Dritte Partei sein, aber vermutlich werden es in Zukunft die selben wie heute sein – die Zentralbanken oder Banken,“ erklärt Chris Odom, „Voting Pools werden mit jeder Art von Colored Coins arbeiten können. Es interessiert sie aber nicht, ob die Coins wirkliche Werte repräsentieren oder nicht. Das ist die Angelegenheit des Nutzers.“
Das Echte-Welt-Problem wird also auch bei Stash bleiben. Im virtuellen Raum, wo die Transaktionen stattfinden, bietet Stash aber ein vielversprechendes Protokoll, um eine neue, sichere Art von Transaktionsserver aufzubauen. Wenn es klappt, könnte sich der Slogan von Stash bewahrheiten: Alles geringere ist nicht akzeptabel.
Worin besteht da die Einsparung, wenn ich für diese Angelegenheit wieder Server benötige?
Da kann man doch genausogut auch Bitcoin-Full-Nodes betreiben.