Cashu ist ein offenes E-Cash-Protokoll mit blinden Signaturen, häufig zusammen mit Bitcoin über Lightning Network genutzt. Die Wallet hält Nachweise einer bestimmten Mint, keine Signaturberechtigung für deren Bitcoin-Reserve.
Cashu ist keine gemeinsame Mint. Ein Token bezeichnet Aussteller, Einheit und Signaturschlüsselsatz; derselbe Zahlenbetrag bedeutet nicht dieselbe Währung oder Verbindlichkeit. Token einer Mint sind nicht automatisch bei einer anderen einlösbar. Das Format V4 verwendet CBOR und enthält Nachweise einer einzigen Mint. [Cashu — NUT-00: Protocol and tokens] [Cashu — NUT-02: Keysets and fees] [Cashu — Project introduction]
Das Grundprotokoll verwendet BDHKE auf secp256k1. Die Wallet erzeugt ein Geheimnis und verblindet dessen Punkt, die Mint signiert ihn, und die Wallet entfernt die Verblindung. Stückelungen haben unterschiedliche Schlüssel: Die Mint kennt die Werte ausgestellter Nachweise, obwohl sie deren spätere unverblindete Form nicht kennen soll. [Cashu — NUT-00: Protocol and tokens]
Ein gewöhnlicher unbedingter Token lässt sich kopieren. Der Empfänger tauscht ihn per swap gegen neue Nachweise mit eigenen Geheimnissen; die Mint entwertet die alten Eingaben. UNSPENT ist nur eine Momentaufnahme, keine Reservierung für den Empfänger. PENDING bezeichnet laufende Verarbeitung, SPENT einen bereits eingelösten Nachweis. [Cashu — NUT-03: Swap tokens] [Cashu — NUT-07: Token state check]
Das optionale NUT-12 ergänzt einen DLEQ-Nachweis, dass die Signatur zum öffentlichen Schlüssel der Mint passt. Mit den nötigen Daten kann der Empfänger dies offline prüfen. Daraus folgt weder, dass niemand den Token inzwischen ausgegeben hat, noch dass die Mint erreichbar ist oder Reserven besitzt. Die Offline-Prüfung ersetzt daher den Empfang per swap nicht. [Cashu — NUT-12: Offline signature validation]
NUT-02 unterscheidet active=false vom optionalen final_expiry. Ein inaktiver Schlüsselsatz stellt keine neuen Token mehr aus, seine Nachweise werden jedoch weiter als Eingaben akzeptiert; nach dem endgültigen Ablauf verpflichtet die Spezifikation die Mint nicht mehr zur Einlösung. Die Eingabegebühr input_fee_ppk wird anhand von Anzahl und Sätzen der Nachweise summiert und aufgerundet. [Cashu — NUT-02: Keysets and fees]
Bei melt übergibt die Wallet Nachweise für eine externe Zahlung, häufig über Lightning Network. Das Angebot legt Betrag, Einheit, Gültigkeit und gegebenenfalls eine Gebührenreserve fest; zusätzlich können Eingabegebühren anfallen. HTTP 200 mit PENDING bestätigt keine Zahlung. Das Endergebnis ist von der Annahme des Auftrags zu unterscheiden. [Cashu — NUT-05: Melting tokens]
Verblindung beseitigt keine Informationen über Beträge, Zeitpunkte oder Verbindungen. NUT-03 empfiehlt, angeforderte Stückelungen zu sortieren, damit ihre Reihenfolge nicht die Aufteilung zwischen Zahlung und Wechselgeld verrät. Statusabfragen des Senders zu weitergegebenen Nachweisen können der Mint die Verknüpfung von Sender und Empfänger erleichtern. [Cashu — NUT-03: Swap tokens] [Cashu — NUT-07: Token state check]
NUT-13 leitet Geheimnisse und Verblindung aus dem Seed anhand von Schlüsselsatz und Zähler ab. Version 01 nutzt HMAC-SHA256, die ältere 00 BIP32. Die Wiederherstellung benötigt die ursprünglichen Schlüsselsätze und über NUT-09 bezogene Signaturen, danach eine Prüfung der Ausgaben. Ohne mitwirkende Mint garantiert ein Seed weder die Wiederherstellung der Signaturen noch eine Auszahlung aus der Reserve. [Cashu — NUT-13: Deterministic secrets] [Cashu — NUT-09: Restore signatures]
Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit Fedimint, Chaumsches eCash, Blinde Signatur, Lightning Network, Gegenparteirisiko, Satoshi. Auf diesen Eintrag verweisen außerdem Chaumsches eCash, Blinde Signatur, Fedimint, Fiduciary Media.