Post
Topic
Board Projektentwicklung
Topic OP
Zahlungsbeleg für Bitcoin-Zahlungen
by
Wolf
on 12/06/2013, 18:05:36 UTC
Ausgangssituation: Ein "Nomalbenutzer" (kein Techi) will als Zahlungsabsender eine Zahlung an eine öffentlich bekannte Bitcoin Adresse tätigen. So eine Adresse könnte z.B. ein Spendenkonto, ein Gruppenkauf, ein Zugang zu einem Informationsangebot (Micropayment) oder ein anderes Angebot im Netz sein, bei dem er vom Verkäufer/Anbieter keine individuelle Zahlungsadresse erhalten hat. Der Zahlungsabsender möchte beweisen können, dass er die Zahlung getätigt hat. Dem Anbieter soll es möglich sein, die Zahlung einer Person (dem Zahlungsabsender) zuzuordnen, z.B. um das Angebot freizuschalten, eine Spendenquittung auszustellen, die Ware zu liefern oder dergleichen.

Bisher habe ich nur die Möglichkeit gefunden, die Zahlung in der Blockchain zu lokalisieren, dann eine Nachricht an den Anbieter mit der Absenderadresse der Zahlung zu signieren und dem Anbieter diese Information zu senden (z.B. per E-Mail). Der Anbieter prüft die Signatur und findet die Transaktion an Hand der Transaktions-ID in seinem Zahlungseingang bzw. in der Blockchain.

Dieses Verfahren ist weder dem Käufer noch dem Anbieter wirklich zuzumuten. Es erfordert viel zuviel Kenntnisse über die Details einer Bitcoin Transaktion und ist viel zu fehleranfällig.

Lösungsvorschlag (z.B. beim bitcoin-qt client):
1. beim Zahlungsabsender (Ausgabe eines Zahlungsbelegs):
- nach erfolgter Zahlung wählt er aus seiner Transaktionsliste die betreffende Zahlung aus,
- der Bitcoin Client kennt die Trandaktions-ID, den Zahlbetrag, die Empfangsadresse und die Adresse, von der gesendet wurde,
- der Bitcoin Client bietet einen Dialog an, in dem diese Werte schon enthalten sind und ermöglicht in einem Textfeld die Eingabe weiterer Informationen (Lieferadresse, Zahlungsgrund, oder was auch sonst noch gewünscht ist),
- in diesem Dialog könnten vier Button/Menüeinträge zur Verfügung stehen:
   a. "Zahlbeleg signieren" -- die gesamte Nachricht wird mit dem zur Absenderadresse gehörenden privaten Schlüssel signiert und die Signatur der Nachricht hinzugefügt,
   b. "Zahlbeleg unverschlüsselt drucken" -- es wird ein entsprechender Beleg gedruckt,
   c. "Zahlbeleg verschlüsseln" -- die signierte Nachricht wird mit der Empfangsadresse verschlüsselt,
   b. "Zahlbeleg senden" mit entsprechenden Untermenüs:
      I. "per Mail senden" -- es wird eine E-Mail generiert, in die noch der Empfänger eingetragen werden muss, bevor sie versendet wird,
      II. "QR-Code erzeugen" -- der Zahlungsabsender entscheidet, wie er dem Anbieter den QR-Code zustellt (drucken und per Post senden oder was auch immer),
      III. "in Zwischenablage kopieren" -- die verschlüsselte und signierte Nachricht kommt in die Zwischenablage und wird von dort aus vom Zahlungsabsender beliebig weiter verwendet.

2. beim Zahlungsenmpfänger (Zuordnung eines Zahlungsbelegs):
- er erhält vom Zahlungsabsender die Nachricht und liest sie in den Bitcoin-Client ein (z.B. QR-Code, Zwischenablage),
- der Bitcoin-Client versucht die Nachricht zu entschlüsseln indem er nacheinander seine geheimen Schlüssel anwendet,
- gelingt das, überprüft er seine Transaktionsliste, ob die angegebene Transaktion eingegangen ist und prüft die Signatur der Nachricht,
- ist die Signatur gültig, zeigt er dem Zahlungsenmpfänger die vollständige Nachricht einschl. einer Bestätigung der Gültigkeit an,
- außerdem ermöglicht er, die gesamte Nachricht in die Zwischenablage zu kopieren, damit sie weiter verarbeitet werden kann.

Nach meiner Ansicht hat der Bitcoin-Client jeweils alle Informationen (Adressen, Schlüssel, Transaktions-ID, Zahlbetrag) die er benötigt. Damit könnte der Vorgang auf beiden Seiten "narrensicher" automatisiert werden.

Was sagt Ihr dazu? Könnte das gehen?