161 / 736CASHU

Cashu

Digitální hotovost, za kterou odpovídá konkrétní mincovna

Cashu dovoluje poslat digitální hotovost třeba jako zprávu. Pro příjemce je ale důležité, kdo ji vydal, zda ji dokáže přijmout a jak ji případně vymění zpět za bitcoiny. Soukromější placení totiž neodstraňuje důvěru v provozovatele.

Cashu je otevřený protokol pro e-cash, digitální tokeny vydávané mincovnou neboli mintem. Často jde o částky v bitcoinech; vklad nebo výběr lze provést například přes Lightning Network. Držitel ovládá tokeny, nikoli bitcoinové klíče mincovny, na jejíž spolupráci dál závisí.

Představte si, že Anna pošle Petrovi Cashu token v soukromé zprávě. Neposílá tím bitcoinovou transakci do blockchainu. Předává data, která Petr může u příslušné mincovny uplatnit. Token může obsahovat jeden či více důkazů (Proof). Jsou to datové záznamy, z nichž každý obsahuje mimo jiné částku, tajnou hodnotu a podpis mincovny. Cashu je společný protokol, nikoli jediná služba se společnou rezervou. Záleží na vydavateli, měnové jednotce a sadě podpisových klíčů. Částka v sats znamená malé jednotky bitcoinu; stejné číslo v jiné jednotce už znamená něco jiného. Token jedné mincovny neplatí automaticky u druhé. Pro zájemce o formát: V4 používá úsporné binární kódování CBOR a přenáší důkazy jediné mincovny. [1] [2] [9]

Anna může mít kopii běžného nepodmíněného tokenu stále u sebe. Petr proto potřebuje swap: jeho peněženka předá staré důkazy mincovně a získá nové, s tajemstvími, která už Anna nezná. Mincovna přitom staré vstupy zneplatní. Právě úspěšná výměna brání tomu, aby Anna použila tutéž kopii znovu. Pouhá kontrola stavu nestačí. UNSPENT znamená, že mincovna neeviduje zpracování ani utracení; není to rezervace pro Petra. PENDING označuje probíhající zpracování a SPENT už uplatněný důkaz. Token tedy neposílejte veřejně jako obrázek potvrzení: kdo získá jeho použitelnou kopii, může závod o uplatnění vyhrát. [3] [5]

Blind Signature, slepý podpis, pomáhá oddělit vydání tokenu od jeho pozdějšího použití. Peněženka si vytvoří tajemství, jeho matematickou podobu skryje a požádá mincovnu o podpis. Potom skrytí odstraní. Mincovna tak nemá z podoby uplatněného tokenu poznat, který dřívější požadavek k němu vedl. Nejde o skrytí všeho: jednotlivé nominální hodnoty mají různé klíče, takže vydavatel zná vydávané hodnotové třídy. Technický název použitého postupu je BDHKE a pracuje na křivce secp256k1. K pochopení platby není nutné počítat s body křivky; podstatné je, kterou vazbu tato matematika chrání. [1]

Volitelné rozšíření NUT-12 přidává DLEQ, matematický důkaz, že podpis vznikl stejným soukromým klíčem, kterému odpovídá veřejný klíč mincovny. Petr může se správnými doprovodnými údaji ověřit podpis i bez připojení k mincovně. Nemůže z něj ale zjistit, zda jiná kopie už nebyla utracena, zda služba odpovídá nebo zda má dostatečné bitcoinové rezervy. Pokud je DLEQ přiložen, peněženka jej podle specifikace musí ověřit. Ověření podpisu přesto nenahrazuje dokončený swap. Counterparty risk, riziko selhání provozovatele, tím nezmizí. [7]

Petr může chtít místo dalších tokenů zaplatit požadavek přes Lightning Network. Taková výměna se jmenuje melt. Peněženka si nejprve vyžádá nabídku: kolik tokenů v jaké jednotce bude potřeba, do kdy nabídka platí a zda zahrnuje rezervu na poplatky. Přidat se mohou i vstupní poplatky. Teprve potom předá důkazy a mincovna provede vnější platbu. Odpověď HTTP 200 znamená úspěšné vyřízení webového požadavku, ne nutně zaplacení. Stav PENDING stále znamená „zpracovává se“, zatímco PAID oznamuje úspěšnou platbu. Peněženka musí sledovat konečný výsledek a případné potvrzení příslušné platební metody. [4]

Mincovna může vyměnit sadu podpisových klíčů. Označení active=false říká, že se pod starou sadou nevydávají nové tokeny; samo o sobě neruší možnost použít staré důkazy jako vstupy. Jinou věcí je volitelné final_expiry, konečný termín, po němž specifikace už mincovně neukládá povinnost tyto tokeny přijímat. Tyto dvě situace nezaměňujte. Poplatek input_fee_ppk je navíc sazba za jednotlivý vstup, nikoli prosté procento posílané částky. Sazby všech použitých důkazů se sečtou, součet se vydělí 1000 a teprve výsledný poplatek se zaokrouhlí nahoru na celé jednotky. Například v sadě s jednotkou sat dají 3 vstupy se sazbou 100 ppk součet 300; po vydělení a zaokrouhlení je poplatek 1 sat. Dvě stejně velké platby tak mohou stát jinak, pokud použijí jiný počet důkazů nebo jiné sady. [2]

Slepý podpis neodstraňuje čas platby, částky ani údaje o síťovém spojení. Mincovně může něco napovědět i způsob, jakým peněženka žádá o nové nominální hodnoty. NUT-03 proto doporučuje seřadit požadované hodnoty vzestupně, aby jejich pořadí zbytečně neprozrazovalo rozdělení na platbu a vrácený zbytek. Také opakované dotazy odesílatele na stav předaných tokenů mohou usnadnit spojení odesílatele s příjemcem. Cashu dává nástroje pro soukromější oběh peněz; neznamená to, že každá aplikace nebo každá situace automaticky skryje všechny souvislosti. [3] [5]

Obnova musí odpovídat použité peněžence a mincovně. NUT-13 popisuje, jak ze seedu, tedy výchozího tajemství, sady klíčů a čítače znovu odvodit tajemství tokenů a jejich zaslepení. Pro verzi sady 01 používá HMAC-SHA256, pro starší 00 postup BIP32. Podpisy, které seed sám nevytvoří, se získávají od mincovny přes NUT-09; potom je potřeba ověřit, co už bylo utraceno. Nestačí tedy slib „mám Seed Phrase, vše obnovím kdekoli“. Před spoléháním na peněženku si ověřte její postup zálohy, obnovy a malého výběru. Záloha nedonutí zmizelou mincovnu odpovídat ani jí nedoplní rezervy. [8] [6]

Pro nejúplnější obraz čtěte toto heslo společně s Fedimint, Chaumian eCash, Blind Signature, Lightning Network, Counterparty risk, Satoshi. Opačným směrem na něj odkazují také Chaumian eCash, Blind Signature, Fedimint, Fiduciary Media.

DOC · 001Cashu — NUT-00: Protocol and tokensSpecifikace DOC · 002Cashu — NUT-02: Keysets and feesSpecifikace DOC · 003Cashu — NUT-03: Swap tokensSpecifikace DOC · 004Cashu — NUT-05: Melting tokensSpecifikace DOC · 005Cashu — NUT-07: Token state checkSpecifikace DOC · 006Cashu — NUT-09: Restore signaturesSpecifikace DOC · 007Cashu — NUT-12: Offline signature validationSpecifikace DOC · 008Cashu — NUT-13: Deterministic secretsSpecifikace DOC · 009Cashu — Project introductionPrimární zdroj
Revidováno: Primární zdroje · Nejde o investiční doporučení