Cashu — відкритий протокол e-cash зі сліпими підписами, який часто використовують із Bitcoin через Lightning Network. Гаманець зберігає докази конкретного емітента, а не право підписувати витрачання його біткоїнового резерву.
Cashu — не єдиний спільний емітент. Токен визначає емітента, одиницю та набір ключів підпису; однакове числове значення не означає ту саму валюту чи зобов’язання. Токен одного емітента не можна автоматично погасити в іншого. Формат V4 використовує CBOR і містить докази лише одного емітента. [Cashu — NUT-00: Protocol and tokens] [Cashu — NUT-02: Keysets and fees] [Cashu — Project introduction]
Базовий протокол використовує BDHKE на secp256k1. Гаманець створює секрет і засліплює його точку, емітент її підписує, а гаманець знімає засліплення. Номінали мають різні ключі: емітент знає вартість випущених доказів, хоча не повинен знати їхню майбутню незасліплену форму. [Cashu — NUT-00: Protocol and tokens]
Звичайний безумовний токен можна скопіювати. Одержувач через swap обмінює його на нові докази зі своїми секретами; емітент анулює старі входи. UNSPENT — лише стан у певну мить, а не резервування для одержувача. PENDING означає поточне оброблення, SPENT — уже погашений доказ. [Cashu — NUT-03: Swap tokens] [Cashu — NUT-07: Token state check]
Необов’язкове NUT-12 додає доказ DLEQ відповідності підпису відкритому ключу емітента. Одержувач із потрібними даними може перевірити його офлайн. Це не показує, чи хтось уже витратив токен, чи відповідає емітент і чи має резерви. Тому офлайн-перевірка не замінює прийняття через swap. [Cashu — NUT-12: Offline signature validation]
NUT-02 розрізняє active=false та необов’язкове final_expiry. Неактивний набір більше не випускає нових токенів, але його докази й далі приймаються як входи; після остаточного строку специфікація вже не зобов’язує емітента їх погашати. Вхідну комісію input_fee_ppk підсумовують за кількістю й тарифами доказів та округлюють угору. [Cashu — NUT-02: Keysets and fees]
Під час melt гаманець передає докази за зовнішній платіж, часто через Lightning Network. Пропозиція визначає суму, одиницю, строк дії та можливий резерв комісії; також можуть діяти вхідні комісії. HTTP 200 зі станом PENDING не підтверджує платіж. Кінцевий результат треба відрізняти від прийняття запиту. [Cashu — NUT-05: Melting tokens]
Засліплення не прибирає даних про суми, час або мережеве з’єднання. NUT-03 радить сортувати запитані номінали, щоб їхній порядок не видавав поділу між платежем і рештою. Запити відправника про стан переданих доказів можуть допомогти емітенту пов’язати відправника з одержувачем. [Cashu — NUT-03: Swap tokens] [Cashu — NUT-07: Token state check]
NUT-13 виводить секрети й фактори засліплення із seed за набором ключів і лічильником. Версія 01 використовує HMAC-SHA256, старіша 00 — BIP32. Відновлення потребує початкових наборів і підписів через NUT-09, а потім перевірки витрат. Без співпраці емітента seed не гарантує відновлення підписів чи виведення резерву. [Cashu — NUT-13: Deterministic secrets] [Cashu — NUT-09: Restore signatures]
Для повної картини прочитайте також Fedimint, Chaumian eCash, Blind signature, Lightning Network, Counterparty risk, Satoshi. На цю статтю також посилаються Chaumian eCash, Blind signature, Fedimint, Fiduciary Media.