Peňaženka Zeus je vyvíjaná od roku 2019. Najprv slúžila primárne ako rozhranie k vlastnému lightning uzlu, ale neskôr pribudla aj možnosť bežať na mobilnom zariadení vlastný uzol, podobne ako je to napríklad u peňaženky Breez. Zaradila sa takto peňaženka Zeus medzi Lightning peňaženky druhej generácie?
Lightning peňaženky sú pomerne ťažkým orieškom. Oproti on-chain peňaženkám sa musia potýkať s rôznymi výzvami.
Pri on-chain peňaženke je možno lepší pojem “kľúčenka” - všetko, čo Bitcoinová on-chain peňaženka musí robiť je držať a používať kľúče a vytvárať pomocou nich transakcie. V on-chain “kľúčenke” nie sú uložené žiadne Bitcoiny, len kľúče na odomknutie coinov, ktoré sa nachádzajú vo verejnej databáze. Pri Lightning peňaženke pribúda nutnosť starať sa o kanály a ich stav. Peňaženka teda okrem kľúčov drží aj množstvo ďalších informácií, ktoré sú nevyhnutné - kanály a ich stav (posledná commitment transakcia, kľúče nod), revokačné kľúče a podobne. Tieto dáta je potrebné zálohovať alebo tento problém vyriešiť nejak inak. Čo to všetko znamená sme písali v článku o Lightningu.
Okrem toho je potrebné vyriešiť ďalšie problémy. Musí sa starať o menežment kanálov a riešiť situáciu prijímania satov pri nedostatočnej kapacite prijímania. Okrem toho na rozdiel od on-chain platby musí byť prijímateľ pri prijímaní platby online (a podpísať nový stav kanála), čo je výzva, ak užívateľ má mobilné zariadenie, ktoré nie je stále online.
A v neposlednej rade je to užívateľská skúsenosť - má koncový užívateľ riešiť ktoré coiny má v kanáli a ktoré iba na bežnej on-chain adrese alebo má peňaženka ukazovať unifikovaný zostatok?
Peňaženka Zeus mnohé z týchto rozhodnutí urobila inak ako bežné peňaženky druhej generácie. Bitcoin je open-source projekt a diverzita je v tomto prípade žiadúca. To však neznamená, že peňaženka je vhodná pre každého.
Peňaženka Zeus pôvodne slúžila ako appka k vášmu uzlu na RaspBlitz, BTCPayserver, NODL, Umbrel alebo inej podobnej službe. Podporuje uzly založené na Core Lightning alebo LND. Umožňuje vám mobilom naskenovať Lightning faktúru, ktorú vaša noda zaplatí, otvárať kanály, prijímať saty (on-chain aj cez lightning).
Za týmto účelom sa jedná o pomerne unikátnu aplikáciu, ktorej alternatíva je azda iba dnes už nevyvíjaná peňaženka Zap. Ak bežíte vlastný uzol, určite sa na Zeus pozrite. Očakával by som prepojenie priamo cez Lightning sieť pomocou projektu Commando, čo by zjednodušilo prístup, nakoľko netreba otvárať či presmerovávať nové porty. Verím, že aj táto funkcionalita niekedy pribudne.
Non-custodial peňaženky druhej generácie ako Breez a Phoenix bežia nejakú formu Lightning uzla priamo na zariadení. Phoenix beží minimalistický uzol, ktorý obsahuje všetky operácie súvisiace s kľúčmi a zostatkami, ale napríklad na smerovanie používa uzol výrobcu. Peňaženka Breez funguje podobne ako Zeus - na mobile pustí vlastný lnd uzol. To má výhodu v lepšom súkromí a suverenite, ale nevýhodou je nutnosť synchronizovať stav Bitcoin blockchainu (pomocou rozšírenia Neutrino), či synchronizáciu Lightning grafu pre hľadanie optimálnej cesty. Ľahko sa vám môže stať, že ak máte predplatené dáta a otvoríte peňaženku po dlhšej dobe, váš lokálny mobilný uzol vám všetky dáta minie.
Zeus je na tom podobne. Po vytvorení peňaženky sa synchronizuje a čakanie na spustenie uzla a synchronizáciu vás bude čakať aj pri ďalších spusteniach. Po týždni na rýchlych dátach a rýchlom zariadení trvalo spustenie skoro pol minúty. Dá sa povoliť synchronizácia na pozadí, prípadne to, že na pozadí na telefóne stále beží lnd, ale myslím, že táto vlastnosť odradí veľa používateľov, obzvlášť ak chcú používať Zeus v prevádzke na prijímanie platieb.
Peňaženka Breez síce beží lokálnu nodu, ale má zjednotený zostatok (ktorý je vždy v kanáloch) a má napevno zakódovaného Lightning Service Providera (resp. Liquidity providera) - všetky kanály peňaženka otvára s uzlom tejto peňaženky.
Zeus vám dáva plnú kontrolu nad vašim lokálnym lnd uzlom - môžete vytvárať nové kanály, robiť onchain platby z on-chain peňaženky. Aj napriek tomu má integrovanú podporu Lightning service providerov, vrátane predvoleného poskytovateľa Olympus, ktorý vám otvorí kanál v prípade potreby.
Ak teda chceme prijať po inštalácii satoshi cez Lightning, bude to automaticky fungovať. Máme aj plnú kontrolu nad tým ako vyzerá invoice. Môžeme ju poslať cez NFC, prípadne prijať cez NFC (pomocou protokolu lnurl). Prostriedky môžeme prijať aj on-chain, ale na rozdiel od Lightning peňaženiek Phoenix alebo Breez skončia v osobitnom zostatku.
Prijať je možné aj cez non-custodial Lightning adresu pomocou služby ZeusPay založenej na projekte zaplocker. Táto technológia využíva tzv. HODL invoices, kedy služba poskytujúca invoices poskytuje hashe, ku ktorým nemá “kľúč” (prehash). Klient teda pri platbe vytvorí platobnú cestu, ktorá má ale expiráciu 24 hodín. Ak sa do 24 hodín peňaženka spustí, dostane cez protokol Nostr informácie o jednotlivých lightning faktúrach, ktoré čakajú na spracovanie a peňaženka vytvorí poslednú časť cesty a odovzdaním kľúčov ich vyrovná (a teda prijme).
Problém tohto prístupu je, že platobná cesta má uzamknuté prostriedky na 24 hodín, pričom za toto uzamknutie Bitcoinov nie je nikto po ceste odmenený. Niektoré peňaženky ako Mutiny teda platby z peňaženky Zeus s takouto expiráciou blokujú. Aj keď toto riešenie je bezpečné z pohľadu úschovy Bitcoinov, nie je veľmi praktické (úspešnosť platby závisí od toho, či do 24 hodín otvoríte na mobile peňaženku) a zbytočne zahlcuje sieť a teda vytvára rozpory medzi vývojármi aj užívateľmi. Na Lightning address teda odporúčam používať nejaký iný nástroj - napríklad npub.cash s vašou obľúbenou Cashu mint. Tento projekt tiež používa protokol Nostr, dá vám lightning adresu, ale na dobu do prijatia platby musíte veriť ecash mint, ktorú si zvolíte. Viac o projekte Cashu sme písali v článku o poplatkoch.
Odosielanie je podobné - máme pomerne veľa možností, ale musíme mať zostatok buď v Lightningu alebo on-chain podľa toho, akým spôsobom chceme prostriedky poslať. Znova máme možnosť použiť NFC.
Aj pri odosielaní sa prejavuje to, že v tejto peňaženke má kontrolu užívateľ - vidíme presne, čo sa stane, čo platíme.
Osobne by som uvítal integráciu nejakej swap služby a možnosť unifikovaného zostatku.
Na rozdiel od Phoenix alebo Breez, ale podobne ako napríklad v peňaženke Blixt máte plnú kontrolu nad kanálmi. Ak používate službu Olympus LSP, tak možno získate automaticky otvorené kanály, ale taktiež si môžete otvoriť kanály s kým chcete. V československom priestore dobre prepojené uzly nájdete napríklad na tejto github page bratislavskej Paralelnej Polis.
Pri otvorení kanála máme viacero možností - peňaženka dokonca umožňuje coin control a môžeme si teda vybrať, ktoré UTXO chceme použiť a či chceme použiť ich celý zostatok.
Pri otváraní (a rovnako pri on-chain platbe) máme možnosť vybrať si poplatok. Na rozdiel od iných peňaženiek sa mi páči, že poplatky ukazuje projekt mempool.space, ktorý možno nie je najlepší na trhu, ale osobne ho preferujem, lebo mi dáva zmysel. Ak mi peňaženka ukáže nejaké odporúčané poplatky, väčšinou otvorím aj tak mempool.space, lebo inak neviem, odkiaľ peňaženka poplatky zobrala.
Po vytvorení otváracej transakcie stačí počkať na vyťaženie bloku, v ktorom bude funding transakcia kanálu zahrnutá a môžete lightningovať - s kým chcete a ako chcete.
Zeus má v porovnaní s inými peňaženkami množstvo nastavení, kde môžete prispôsobiť prakticky čokoľvek. Samozrejmosťou je voľba fiat meny na zobrazovanie a prepočty, ale aj voľba jazyka.
Samozrejmosťou je možnosť vytvorenia zálohy. Záloha je vytvorená podobne ako pri peňaženkách Phoenix a Breez a je tvorená mnemonickou zálohou seedu (v prípade Zeusu 24 slovami).
Znalejších z vás napadne hneď otázka, ako je to so stavom kanálov. Zeus robí iba static channel backup, na servery Olympusu. Tie sú zašifrované seedom, ale neobsahujú stav kanálov, teda pri obnove peňaženky je možné iba poprosiť protistrany aby zavreli kanály - neviete to urobiť sami. Tu je dôležité zamyslieť sa nad tým, ako dôverujete protistranám, s ktorými otvárate kanály, že tejto prosbe vyhovejú.
Jeden z dôvodov, prečo som sa Zeusu chcel pozrieť na zúbky je vstavaný modul na prijímanie platieb v prevádzkach. Prakticky každý môže prijímať Lightning platby cez akúkoľvek peňaženku - stačí spočítať sumu, zadať v lokálnej fiat mene a ukázať QR kód Lightning faktúry. To je možné ak ste napríklad “živnostník” - masér, máte vlastnú kaviareň, v ktorej aj pracujete alebo prijímate platby osobne.
Čosi lepšie potrebujete vtedy, keď nechcete mať na prevádzke alebo odovzdať zamestnancom peňaženku s privátnymi kľúčmi, z ktorej je možné prostriedky aj odoslať. Ubránite sa tak krádeži zariadenia, neodbornej manipulácii a podobne.
Väčšie prevádzky môžu používať zariadenia založené na open-source PoS službe postavenej na projekte btcpayserver - či už od vlastnej služby alebo ako hostovanú službu, napríklad z projektu HydraNode. Alebo môžete použiť komerčnú službu ako napríklad tú od Confirmo, ktorú používa aj Alza na prijímanie kryptomien.
Medzi prijímaním do vlastnej peňaženky a používanie služby založenej na serverovom riešení (či už vlastnom alebo hostovanú ako službu) existuje priestor pre non-custodial riešenia, ktoré bežia priamo na zariadení, ale sú nejakým spôsobom ochranené proti krádeži. Prvou inováciou tohto typu bola peňaženka Breez, ktorá má vlastný PoS terminál. Umožňuje nastaviť “administrátorské heslo”, ktoré je potrebné pri akejkoľvek zmene nastavení alebo ak chcete poslať peniaze z peňaženky von, či zobraziť seed. Obsluha terminálu môže teda iba prijímať, ale nemôže posielať transakcie.
Nevýhodou riešenia od Breez je nemožnosť prijímať on-chain transakcie a limit samotnej peňaženky Breez na 4M satoshi, čo niektorým prevádzkam nebude stačiť.
Podobnú funkcionalitu platobného terminálu má aj Zeus. Môžete nastaviť heslo alebo PIN, ktoré je potrebné na odosielanie.
V nastaveniach môžete taktiež vytvárať jednotlivé produkty. A tu sa trochu mieša rôzny typ použitia PoS terminálu. Sú dva možné prístupy - buď používate na vytvorenie “účtu” klasickú pokladňu, kde účtujete všetkých zákazníkov alebo očakávate od terminálu aby účtoval jednotlivé položky. Zoberme si to na príklade platby kartou. Pokladňa vypočíta, koľko máte platiť, potom sumu zadáte na platobnom termináli na akceptovanie platieb kartou a platobný terminál len povie, či platba bola zaúčtovaná alebo nie. Pri niektorých termináloch nemusíte ani nič zadávať a pokladňa dokáže do modulu na akceptáciu platieb kartou posielať sumu a zisťovať stav platby.
Druhá možnosť je, že priamo terminál na prijímanie platieb má položky. To je vhodné, ak prijímate iba jeden typ platieb, prípadne ak môžete použiť účet z tohto terminálu na akceptovanie iného typu platby. Napríklad ak ste živnostníci, ktorí predávajú tovary alebo služby pri osobnej návšteve klienta, je fajn mať možnosť “vyklikať” a zrátať jednotlivé služby priamo v Lightning peňaženke a kliknúť na vytvorenie Lightning faktúry. Dokonca aj ak zákazník bude nakoniec platiť v hotovosti, nepotrebujete mať osobitný cenník a kalkulačku, ale vypočíta vám sumu, ktorú od zákazníka inkasujete. Samozrejme, zákonné požiadavky na prijímanie platieb tento terminál nerieši a musíte ich vyriešiť inak.
Ak povolíme možnosť “Show Keypad” v nastaveniach terminálu, tak môžeme účtovať aj priamo sumu - teda použijeme režim “kartového terminálu” o ktorom som hovoril - vytvárame iba faktúru so sumou, nemusíme sa starať o položky a zadávať ich. Pokladňa spočíta koľko má klient zaplatiť a ak chce zaplatiť Bitcoinom, otvoríme “klávesnicu” a zadáme sumu vo fiat mene:
Oproti terminálu peňaženky Breez tak môžeme prijímať on-chain platby rovnako ako Lightning platby (ale funkcionalita on-chain platieb sa dá aj zakázať). Mimochodom, Breez umožňuje prijať on-chain platby cez swap službu (pomocou voľby Receive via Bitcoin Address), ale táto možnosť nie je zaintegrovaná do platobného terminálu.
Na rozdiel od platobného terminálu peňaženky Breez vidíme v Zeus PoS zoznam platieb - nových, otvorených a zaplatených. Takže ak sa chceme pozrieť, ktorá platba prešla, vidíme to v histórii. Tu je drobná chyba, kde sa nezobrazuje platba zadaná na klávesnici - tlačítko Request nás pošle rovno na platbu, ale ak si obsluha nevšimne, že platba bola potvrdená, nevidí ju medzi úspešnými platbami. Navyše, v košíku má ako keby nezaplatenú platbu na danú výšku.
Zeus je skvelá voľba ak chcete používať vlastný uzol a pripájať sa naň. Umožní vám platiť, prijímať platby a to všetko užívateľsky pohodlným spôsobom z vášho mobilného zariadenia.
Ak máte záujem prijímať platby v prevádzke, môže byť PoS modul tiež zaujímavou možnosťou ako prijímať Lightning - nie len pomocou QR kódov, liniek, ale aj pomocou rôznych NFC kariet a podobne.
Ak chcete iba používať Lightning, mať plnú kontrolu nad privátnymi kľúčmi, ale nechcete sa starať o kanály, rozmýšľať, ako prehodiť zostatok medzi Lightningom a on-chain a v zásade potrebujete iba posielať a prijímať, budú pre vás iné peňaženky vhodnejšie.
Juraj Bednár
Som cypherpunker, mám rád slobodu, súkromie, peer to peer technológie a terminálové okná. Skúmam chaotický svet, volatilitu a neistotu, bojujem proti entropii - zakladám firmy, neziskové projekty, robím kurzy a píšem knihy. Som spoluzakladateľ Paralelnej Polis, hackerspace Progressbar, či bug bounty platformy Hacktrophy. Vyštudoval som odbor umelá inteligencia a umelá inteligencia sa vrátila - tak ako som ju nikdy nepoznal. O všetkých týchto skúsenostiach píšem blog.