Wei Dai ist Kryptograf und ursprünglicher Autor der Bibliothek Crypto++. Sein Entwurf b-money von 1998 beschreibt, wie Menschen unter digitalen Pseudonymen Geldkonten führen und Verträge schließen könnten. Bitcoin verweist auf diese Arbeit, hat aber einen eigenen Netzwerkaufbau und eigene Regeln.
Wer eine Nachricht verschlüsseln oder eine digitale Signatur prüfen möchte, muss nicht sämtliche Verfahren selbst programmieren. Eine kryptografische Bibliothek stellt dafür fertige Funktionen bereit. Wei Dai schrieb ursprünglich eine solche Bibliothek, Crypto++, in der Programmiersprache C++. Das ist konkrete Software, die sich in Anwendungen einbauen lässt. b-money ist eine andere Art von Beitrag: ein schriftlicher Entwurf für ein Geldsystem. Eine funktionierende Bibliothek belegt nicht, dass auch ein Netzwerk nach diesem Entwurf betrieben wurde. Um seinen Beitrag zu verstehen, müssen wir diese beiden Arbeitsbereiche auseinanderhalten. [3]
Im November 1998 stellte Wei Dai eine Frage, die auch beim gewöhnlichen Onlinekauf vertraut klingt: Wie können Menschen zusammenarbeiten, ohne ihre Identität preiszugeben? In b-money schlug er zwei Protokolle vor, also Regelwerke für gemeinsame Kontoführung und Verträge. Öffentliche Schlüssel sollten als Pseudonyme dienen, Nachrichten digital signiert werden. Ein nicht rückverfolgbares Netzwerk setzte der Entwurf allerdings voraus; er stellte es nicht selbst her und garantierte damit keine Anonymität. Die erste Variante bezeichnete Dai wegen ihrer hohen Anforderungen an die gemeinsame Nachrichtenübermittlung als unpraktikabel. Wir lesen einen durchdachten Entwurf, keine Anleitung zu einem bereits laufenden anonymen Dienst. [1]
Angenommen, Anna hat in b-money ein Guthaben von 5 Einheiten und schickt Tom 2. In der ersten Variante führt jeder Teilnehmer eine Kopie der Konten. Annas signierte Nachricht weist die anderen an, ihr Konto zu belasten und Toms Konto gutzuschreiben; ihr bleiben 3 Einheiten. Nachrichten, die einen negativen Saldo erzeugen würden, werden ignoriert. Die Signatur bestätigt die Berechtigung zur Anweisung. Gemeinsame Buchführung braucht aber auch Regeln für deren Übermittlung. Bitcoin nutzt dagegen das UTXO-Modell: Es erfasst konkrete Transaktionsausgänge, die noch ausgegeben werden können. Ein ähnliches Ziel bedeutet also nicht dieselbe Art der Buchführung. [1]
Die zweite b-money-Variante überträgt die Kontoführung einer Teilgruppe, den sogenannten Servern. Das entlastet die übrigen Teilnehmer, wirft aber die Frage nach der Kontrolle der Verwalter auf. Server sollen Geld hinterlegen, aus dem Strafen bezahlt werden können, und ihre Datenbanken regelmäßig veröffentlichen sowie sich öffentlich auf deren Inhalt festlegen. Nutzer prüfen ihre eigenen Guthaben und ob die Summe aller Konten die ausgegebene Geldmenge übersteigt. Zahlungsempfänger sollen zudem bei zufällig ausgewählten Servern die Verarbeitung kontrollieren. Eine hinterlegte Summe beseitigt Vertrauen nicht einfach. Sie ist Teil der vorgesehenen Aufsicht über Menschen und Rechner, die Konten verwalten. [1]
Im ursprünglichen b-money entstehen Einheiten durch das Lösen eines Rechenproblems. Ihre Menge soll den Rechenkosten entsprechen, gemessen an einem standardisierten Warenkorb. Dieser dient als gemeinsamer Kostenmaßstab; er bestimmt nicht den Marktpreis einer Einheit. Allerdings werden Rechner leistungsfähiger, und ihre tatsächlichen Kosten sind nicht allen bekannt. Dai benannte dieses Problem und schlug im Anhang ein Auktionsverfahren vor: Die Kontoführer verhandeln über die neue Geldmenge, während Interessenten mit Rechengeboten konkurrieren. Das ist nicht der Ausgabeplan für BTC. Zum Wert des Textes gehört auch, eine Schwierigkeit offen zu benennen und einen anderen Lösungsweg zu suchen. [1]
Der Entwurf behandelt mehr als Zahlungen. Bei einem Übersetzungsauftrag kann eine Signatur die Zustimmung zum Vertrag belegen, nicht aber die Qualität des gelieferten Textes. Verträge in b-money sehen deshalb hinterlegte Beträge, vereinbarte Entschädigungen bei Vertragsbruch und einen Schlichter vor. Kommt auch mit dessen Hilfe keine Einigung zustande, legen die Parteien ihre Argumente vor; jeder Kontoführer trifft eine eigene Entscheidung. Das zeigt, wie schwierig sich menschliche Streitfälle in digitale Systeme übertragen lassen. Bitcoin Script, die Sprache für Ausgabebedingungen eines Transaktionsausgangs, prüft hingegen genau festgelegte technische Bedingungen. Ob eine Übersetzung gut ist, kann es allein nicht beurteilen. [1]
Satoshi Nakamoto führte b-money von 1998 als Quelle 1 im Bitcoin-Whitepaper auf, dem Dokument über Bitcoins Aufbau. Dadurch lässt sich eine konkrete gedankliche Verbindung nachvollziehen: Digitales Geld ohne gemeinsamen Verwalter wurde schon vor Bitcoin untersucht. Der Verweis bedeutet aber nicht, dass Bitcoin alle vorgeschlagenen Mechanismen übernommen hat. Kontoführung, Geldschöpfung und Streitbeilegung unterscheiden sich. Ebenso wenig verrät die Quellenangabe, wer hinter dem Namen Satoshi Nakamoto stand. Für das Verständnis der Geschichte ist es ergiebiger, belegte Texte zu vergleichen, als aus einer Zitation auf die Identität des Autors zu schließen. [2]
Crypto++ wird durch Fehlerkorrekturen, Tests und die Arbeit weiterer Entwickler fortgeführt. Die Projektgeschichte hält fest, dass Wei Dai im Juni 2015 den täglichen Betrieb an die Gemeinschaft übergab. Für Nutzer zählen deshalb neben dem ursprünglichen Autor auch die konkrete Version und die richtige Verwendung der Funktionen. Eine Bibliothek liefert Werkzeuge zum Signieren oder Verschlüsseln. Sie löst nicht von selbst die sichere Schlüsselaufbewahrung oder den gesamten Aufbau einer Wallet. Anwendungsentwickler müssen die Dokumentation lesen, Korrekturen verfolgen und ihre eigene Nutzung prüfen. Die Leistung des Autors anzuerkennen und heutige Software zu überprüfen, gehört zusammen. [3]
Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit Adam Back, Nick Szabo, b-money, Satoshi Nakamoto. Auf diesen Eintrag verweisen außerdem b-money, Bit Gold, Adam Back, Nick Szabo.