Die Wallet erstellt zuerst einen Zahlungsvorschlag
Wenn Sie die Adresse des Empfängers und einen Betrag eingeben, wählt die Wallet keine Datei mit Münzen aus. Sie sucht frühere Outputs, die sich mit Ihren Schlüsseln ausgeben lassen, und verwendet sie als Inputs einer neuen Transaktion. Anschließend erzeugt sie einen Output für den Empfänger, üblicherweise einen Wechselgeld-Output zurück an Sie, und wählt eine Gebühr.
Solange der Vorschlag nicht korrekt signiert ist, erteilt er dem Netzwerk für sich genommen keine Ausgabeberechtigung. Die Wallet muss Beträge und Bedingungen prüfen, die exakt zu signierenden Daten vorbereiten und darf das Ergebnis erst danach an einen verbundenen Node senden. Eine gut gestaltete Signier-Wallet zeigt Zieladresse, Betrag und Gebühr vor der Bestätigung an.
Inputs verweisen zurück, Outputs weisen nach vorn
Jeder gewöhnliche Input bezeichnet über eine Kennung und einen Index einen bestimmten Output einer älteren Transaktion. Er liefert außerdem die Daten, die dessen Ausgabebedingung erfüllen. Neue Outputs legen eine Anzahl Satoshis und eine neue Bedingung fest, die ein künftiger Ausgebender erfüllen muss.
Eine Transaktion erteilt also keinen Befehl wie „von Johanns Konto abziehen und Peter gutschreiben“. Sie verbraucht die ausgewählten Outputs vollständig und erzeugt neue. Sind die Inputs mehr wert als Zahlung und Gebühr, wird die Differenz gewöhnlich in einem eigenen Output an den Sender zurückgegeben. Artikel 45 erklärt dieses Modell genauer.
- ein Input verweist auf einen bestimmten älteren, nicht ausgegebenen Output
- ein Output bestimmt Betrag und Bedingung einer künftigen Ausgabe
- die Differenz zwischen Inputs und Outputs kann ein Miner als Gebühr beanspruchen
Die Signatur reist, der private Schlüssel bleibt zu Hause
Die Wallet nutzt den privaten Schlüssel, um festgelegte Teile der Transaktion zu signieren. Mit der Signatur können Nodes prüfen, dass die erforderliche Berechtigung erteilt wurde und geschützte Daten nach dem Signieren unverändert blieben. Der private Schlüssel selbst wird weder an den Empfänger noch an das Netzwerk gesendet.
Die signierte Transaktion geht an einen oder mehrere Nodes. Diese prüfen sie unabhängig und können eine gültige Transaktion an weitere Peers weiterleiten. Verbreitung ist jedoch noch keine Bestätigung: In dieser Phase ist die Transaktion unbestätigt und muss noch in keinem Block enthalten sein.
Der Empfänger beobachtet einen Eintrag, keinen ankommenden Gegenstand
Die Wallet des Empfängers erkennt, dass ein neuer Output zu einer Bedingung gehört, die ihr Schlüssel später erfüllen kann. Sie kann ihn sofort als ausstehende Zahlung anzeigen. Die Aufnahme in einen gültigen Block erzeugt die erste Bestätigung; weitere Blöcke senken die Wahrscheinlichkeit, dass sich die Reihenfolge der Geschichte ändert.
Diese Erklärung macht Bitcoin nicht zu einem gewöhnlichen Bankkonto. Der Unterschied besteht darin, dass nicht ein einziger Betreiber einer Kontodatenbank die Gültigkeit bescheinigen muss. Jeder Full Node kann aus öffentlichen Daten und Regeln selbst bestimmen, ob Inputs vorhanden, noch nicht ausgegeben und frei von unerlaubter Wertschöpfung sind.