Bitcoin SV: Wenn Peer-to-Peer zu Bank-zu-Bank wird

Hütte oder Palast? Im Nebel ist das nicht immer direkt zu erkennen. Bild von waferboard via flickr.com. Lizenz: Creative Commons

Die Wallets Handcash und MoneyButton führen „peer-to-peer“-Transaktionen für Bitcoin SV (BSV) ein. Damit erfüllen sie eine der Visionen des selbsternannten Bitcoin-Erfinders Craig Wright – oder reproduzieren sie nur das Bankenwesen, das Transaktionen „server-to-server“ prozessiert?

Dass Craig Wright seit langem beansprucht, der Erfinder von Bitcoin zu sein, dürfte mittlerweile den meisten bekannt sein. Weniger bekannt ist einer der faszinierendsten Aspekte dieses Epos: nämlich dass Craig Wright dabei eine eigene Schule entwickelt hat, Bitcoin zu betrachten, die ihren ganz eigenen Charme hat. Mit dem Ökosystem von Bitcoin SV (BSV) hat er dabei eine Handvoll von Unternehmen, die mehr als nur willens sind, seine Ideen in der Praxis zu erproben.

Ein aktuelles Beispiel dafür ist die Ankündigung der Wallets MoneyButton und Handcash, „peer-to-peer in Bitcoin wieder einzuführen.“ Alex Agut von Handcash meint, dies sei „RIESIG“ und mindestens so groß wie das Genesis-Upgrade Anfang Februar.

Echtes P2P laut Craig Wright

Die Kernidee geht auf Craig Wrights mittlerweile legendäre Rede in Arnheim 2017 zurück. In ihr hat er erklärt, dass Bitcoin eigentlich so geplant war, dass Transaktionen nicht an Adressen gehen, sondern direkt vom Sender an den Empfänger geschickt werden, und dass der Empfänger – etwa ein Händler – anstelle des Senders dafür sorgt, dass die Transaktion in der Blockchain landet. Diese Art von „IP-to-IP“-Transaktion war ursprünglich Teil des Bitcoin-Protokolls, wurde aber von Satoshi selbst deaktiviert, weil es damals nicht sicher war. Mit dem 2013 entwickelten Payment-Protokoll (BIP70) kehrte sie zurück zu Bitcoin und wurde etwa von BitPay angewandt – sehr zur Empörung der BTC-Szene.

Die BSV-Entwickler haben das Payment-Protokoll mit BIP270 weiter ausgebaut. Geht es nach ihnen, soll diese Art von Zahlung zum Standard werden. Besser gesagt: Sie muss es. Denn dies ist wohl notwendig, damit BSV so skalieren kann, wie versprochen wird. In Zukunft soll die Blöckgröße nicht mehr in Megabyte gemessen werden, sondern in Gigabytes. Als Falschenhals entpuppen sich dabei nicht die Full Nodes, sondern die Wallet-Infrastruktur.

Um das zu verstehen, sollte man wissen, was eine Wallet macht: Sie fragt bei einem Full Node fortlaufend nach dem Kontostand von Adressen. Alex Agut von Handcash vergleicht dies mit einem Kunden bei McDonalds, der in jeder Sekunde beim Kassierer fragt, ob sein Spar-Menü bereits fertig ist. Wer nun weiß, wie die Bitcoin-Blockchain aufgebaut ist, ahnt, wie aufwändig dies für den Full Node werden kann: Transaktionen sind nämlich nur nach ihrer ID indiziert, also nach ihrer Hash. Um herauszufinden, ob eine Adresse eine Zahlung erhalten hat, kann ein Node nicht einfach einen Blick auf die indizierten Hashes werfen. Stattdessen muss er die Transaktion eine nach der anderen anschauen, um in diesen die Adresse zu finden. Bei einer Blocksize von einem oder ein paar Megabyte ist das unproblematisch. Wenn aber Blöcke ein oder mehr Gigabyte groß sind, und tausende von Nutzer jede Sekunde ein Guthaben anfragen, wird daraus ein enormer Aufwand.

Aus diesem Grund herrscht bei vielen BSV-Entwicklern die Gewissheit, dass man langfristig das brauche, was Wright immer wieder als „echtes p2p“ oder auch „echtes SPV“ bezeichnet: Dass der Sende dem Empfänger die Transaktion direkt sendet, anstatt dass dieser die Miner oder Full Nodes danach fragen muss.

Paymail als Schlüssel

Nun haben die beiden BSV-Wallets Handcash und MoneyButton also ihre Version von Wrights „P2P“ umgesetzt. Beide Wallets kündigen an, nun sei endlich „P2P zurück in Bitcoin.“

Der Schlüssel dafür liegt, schreibt Handcash, in Paymail. Dies ist eine Methode, um BSV nicht an Adressen, sondern an Zeichenketten im E-Mail-Format zu senden, beispielsweise an cbergmann@moneybutton.com. Die Wallet fragt dabei den Server, der in der Domain der Adresse angegeben ist, im eben genannten Fall also MoneyButton, nach einer Bitcoin-SV-Adresse. Dieser generiert bei jeder Anfrage eine neue Adresse für den User, was das Verfahren einigermaßen privat macht. Paymail ist extrem praktisch, um BSV zu versenden – aber es führt natürlich einen neuen Mittelsmann ein, dem man vertrauen muss, dass er die Paymail-Adresse richtig auflöst. Es ist an sich nicht P2P, sondern eher das Gegenteil davon.

Paymail erlaubt nun, erklärt Handcash, „eine sichere Ende-zu-Ende-verschlüsselte Kommunikation und Autentifizierung durch HTTPS, was alle Probleme löst, wegen denen die frühen Bitcoin-Entwickler wegen IP-to-IP besorgt waren.“ Mit Paymail kann eine Wallet also mit dem Server einer anderen Wallet kommunizieren, was es möglich macht, der anderen Wallet direkt die Transaktion zu übergeben.

MoneyButton und Handcash benutzen das System seit mehr als einem Monat für Transaktionen zwischen den beiden Wallets. Dabei haben sie aber einen kleinen Unterschied zu den Plänen von Wright eingeführt: Anstatt dass nur der Empfänger einer Transaktion diese an das Netzwerk der Miner weitergibt, macht dies der Sender, der dem Empfänger neben der Transaktion auch eine signierte Nachricht zusendet. Dies schützt den Sender davor, dass der Empfänger die Transaktion einfach nicht weitergibt und dann behauptet, er habe nichts empfangen.

Von Bank zu Bank

Das Verfahren ist für die beiden Wallets ohne Zweifel extrem effizient. Es erspart es deren Server, permanent die Blockchain nach allen Adressen der Wallets zu befragen. Sie haben die Transaktion ja bereits, weshalb eine einfache Suche nach deren ID ausreicht, um zu erfahren, ob die Miner die Transaktion auch haben oder ob sie bereits bestätigt ist.

Es allerdings „P2P“ zu nennen ist absurd irreführend. Die Methode ist ebenso „P2P“ wie eine Transaktion zwischen zwei Banken. Es ist in Wahrheit, wie MoneyButton immerhin anerkennt, „service-to-service“, oder: Server-to-Server. Die Peers in diesem Modell sind nicht die User, sondern die Server von Handcash und MoneyButton.

Dennoch fordert Handcash die Abschaffung von Transaktionen, die nicht „peer-to-peer“ sind.  „Wir halten es für wichtig, eine Deadline zu definieren, ab wann wir nicht-P2P-Transaktionen in userer Wallet wegen ihrer nicht-nachhaltigen Natur abschaffen können. Diese Deadline werden wir bald definieren.“ Wer sich angesichts dieser Worte graut, weil er fürchtet, dass Bitcoin-SV damit nicht länger Bitcoin, sondern eine Kooperative von PayPals sein wird, hat nicht unrecht. Eine verfrühte Abschaffung der alten Transaktion würde Bitcoin-SV zu einem System machen, das nicht länger frei ist.

MoneyButton weist immerhin noch darauf hin, dass das Protokoll, „das wir geschrieben haben, auch echte Peer-to-Peer-Transaktionen für echte SPV-Wallets unterstützt.“ Sollte dem so sein – und sollte es echte SPV-Wallets geben, die das Protokoll umsetzen – könnte dies eine sehr interessante Zahlungsmethode werden, die tatsächlich hervorragend skaliert, wie es die Entwickler sagen. Allerdings muss dies erst noch geschehen.

Über Christoph Bergmann (1817 Beiträge)
Das Bitcoinblog wird von Bitcoin.de gesponsort, ist inhaltlich aber unabhängig und gibt die Meinung des Redakteurs Christoph Bergmann wieder. Christoph hat vor kurzem ein Buch geschrieben: Bitcoin: Die verrückte Geschichte vom Aufstieg eines neuen Geldes. Das Buch stellt Bitcoin in seiner ganzen Pracht dar. Ihr könnt es direkt auf der Webseite Bitcoin-Buch.org bestellen - natürlich auch mit Bitcoin - oder auch per Amazon. Natürlich freuen wir uns auch über Spenden in Bitcoin, Bitcoin Cash oder Bitcoin SV an die folgende Adresse: 1BergmanNpFqZwALMRe8GHJqGhtEFD3xMw. Wer will, kann uns auch Hier mit Lightning spenden. Tipps für Stories sind an christoph.bergmann@mailbox.org immer erwünscht. Wer dies privat machen möchte, sollte meinen PGP-Schlüssel verwenden.

5 Kommentare zu Bitcoin SV: Wenn Peer-to-Peer zu Bank-zu-Bank wird

  1. > Die Peers in diesem Modell sind nicht die User, sondern die Server von Handcash und MoneyButton.

    Technisch gesehen hast du Recht. Aber sind denn letzten Endes nicht die meisten User auch Clients solcher Services? Lightweight Wallets eben. Nur weil ein paar Server in der Kommunikationskette zwischen den Usern steht, macht sie das nicht weniger p2p. (Streng genommen wäre dann jede Internet-Kommunikation kein p2p)

    Wichtiger ist doch, dass sie vom Blockchain-Netzwerk mehr oder weniger entkoppelt sind und nicht unnötig belasten. Vom regelmäßigen Pollen zum eventgetriebenen Pushen.

    • Naja, so könntest du auch sagen, dass Banküberweisungen Peers sind, oder?

      • Hannes // 1. April 2020 um 13:06 //

        Ja. Wenn man von der Möglichkeit der physischen Bargeldübergabe absieht, geht ohne die Banken nichts. Sie sind dann die eigentlichen Teilnehmer im Geldsystem. Der einzelne Kunde ist dann nur ein Peer-Nutzer.

        Bei Bitcoin wäre der direkte Austausch von Papier- oder Hardware-Wallets wie Bargeld zu betrachten. Aber wer macht das schon.
        Selbst wenn zwei Menschen direkt über Bluetooth eine Transaktion durchführen … muss sie am Ende in der Blockchain landen, sonst hat sie nicht stattgefunden. Somit sind erst die konkreten Ledger-Zugänge, also Full Nodes, Miner, SPV-Wallet-Server die eigentlichen Peers.

      • Naja, mit einer SPV-Wallet leitet man seine transaktion direkt an einen beliebigen Full Node weiter, anstatt einem Wallet-Server diese Aufgabe zu geben. Und wenn SPV-Wallets ihre Transaktionen direkt austauschen könnten, wäre das tatsächlich P2P.

      • Hannes // 1. April 2020 um 17:37 //

        Ja Richtig. Dafür müssen aber auch alle Peers mitmachen und einem einheitlichen Austausch-Protokoll folgen. Aktuell ist das halt ein bestimmtes http ‚POST‘-Request zu einem Paymail-Dienst, siehe https://docs.moneybutton.com/docs/paymail-06-p2p-transactions.html

        Ob sich das so wirklich durchsetzen wird, muss sich zeigen. Aber ich denke es hat Potential.

Schreiben Sie einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Wechseln )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Wechseln )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Wechseln )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Wechseln )

Verbinde mit %s