Peněženka Zeus je vyvíjena od roku 2019. Nejprve sloužila primárně jako rozhraní k vlastnímu lightning uzlu, ale později přibyla i možnost spustit na mobilním zařízení vlastní uzel, podobně jako je tomu například u peněženky Breez. Zařadila se takto peněženka Zeus mezi Lightning peněženky druhé generace?
Lightning peněženky jsou poměrně těžkým oříškem. Oproti on-chain peněženkám se musí potýkat s různými výzvami.
U on-chain peněženky je možná lepší pojem „klíčenka“ – vše, co Bitcoinová on-chain peněženka musí dělat, je držet a používat klíče a vytvářet pomocí nich transakce. V on-chain „klíčence“ nejsou uloženy žádné Bitcoiny, jen klíče k odemčení coinů, které se nacházejí ve veřejné databázi. Při Lightning peněžence přibývá nutnost starat se o kanály a jejich stav. Peněženka tedy kromě klíčů drží i řadu dalších informací, které jsou nezbytné – kanály a jejich stav (poslední commitment transakce, klíče nod), revokační klíče a podobně. Tato data je třeba zálohovat, nebo tento problém vyřešit nějak jinak. Co to všechno znamená jsme psali v článku o Lightningu.
Kromě toho je třeba vyřešit další problémy. Musí se starat o management kanálů a řešit situaci přijímání satů při nedostatečné kapacitě přijímání. Kromě toho na rozdíl od on-chain platby musí být příjemce při přijímání platby online (a podepsat nový stav kanálu), což je výzva, pokud uživatel má mobilní zařízení, které není stále online.
A v neposlední řadě je to uživatelská zkušenost – má koncový uživatel řešit, které coiny má v kanálu a které pouze na běžné on-chain adrese, nebo má peněženka ukazovat unifikovaný zůstatek?
Peněženka Zeus mnohé z těchto rozhodnutí udělala jinak než běžné peněženky druhé generace. Bitcoin je open-source projekt a diverzita je v tomto případě žádoucí. To ovšem neznamená, že peněženka je vhodná pro každého.
Peněženka Zeus původně sloužila jako appka k vašemu uzlu na RaspBlitz, BTCPayserver, NODL, Umbrel nebo jiné podobné službě. Podporuje uzly založené na Core Lightning nebo LND. Umožňuje vám mobilem naskenovat Lightning fakturu, kterou vaše noda zaplatí, otevírat kanály, přijímat saty (on-chain i přes lightning).
Za tímto účelem se jedná o poměrně unikátní aplikaci, jejíž alternativa je snad jen dnes již nevyvíjená peněženka Zap. Pokud provozujete vlastní uzel, určitě se na Zeus podívejte. Očekával bych propojení přímo přes Lightning síť pomocí projektu Commando, což by zjednodušilo přístup, jelikož není třeba otevírat či přesměrovávat nové porty. Věřím, že i tato funkcionalita někdy přibude.
Non-custodial peněženky druhé generace jako Breez a Phoenix provozují nějakou formu Lightning uzlu přímo na zařízení. Phoenix provozuje minimalistický uzel, který obsahuje všechny operace související s klíči a zůstatky, ale například pro směrování používá uzel výrobce. Peněženka Breez funguje podobně jako Zeus – na mobilu pustí vlastní lnd uzel. To má výhodu v lepším soukromí a suverenitě, ale nevýhodou je nutnost synchronizovat stav Bitcoin blockchainu (pomocí rozšíření Neutrino) či synchronizaci Lightning grafu pro hledání optimální cesty. Snadno se vám může stát, že pokud máte předplacená data a otevřete peněženku po delší době, váš lokální mobilní uzel přijde o všechna vaše data.
Zeus je na tom podobně. Po vytvoření peněženky se synchronizuje a čekání na spuštění uzlu a synchronizaci vás bude čekat i při dalších spuštěních. Po týdnu na rychlých datech a rychlém zařízení trvalo spuštění skoro půl minuty. Dá se povolit synchronizace na pozadí, případně to, že na pozadí na telefonu stále běží lnd, ale myslím, že tato vlastnost odradí mnoho uživatelů, zvláště pokud chtějí používat Zeus v provozu k přijímání plateb.
Peněženka Breez sice provozuje lokální nodu, ale má sjednocený zůstatek (který je vždy v kanálech) a má napevno zakódovaného Lightning Service Providera (resp. Liquidity providera) – všechny kanály peněženka otevírá s uzlem této peněženky.
Zeus vám dává plnou kontrolu nad vaším lokálním lnd uzlem – můžete vytvářet nové kanály, dělat onchain platby z on-chain peněženky. Přesto má integrovanou podporu Lightning service providerů, včetně výchozího poskytovatele Olympus, který vám otevře kanál v případě potřeby.
Pokud tedy chceme přijmout po instalaci satoshi přes Lightning, bude to automaticky fungovat. Máme také plnou kontrolu nad tím, jak vypadá invoice. Můžeme ji poslat přes NFC, případně přijmout přes NFC (pomocí protokolu lnurl). Prostředky můžeme přijmout i on-chain, ale na rozdíl od Lightning peněženek Phoenix nebo Breez skončí ve zvláštním zůstatku.
Přijmout lze i přes non-custodial Lightning adresu pomocí služby ZeusPay založené na projektu zaplocker. Přijmout lze i přes non-custodial Lightning adresu pomocí služby ZeusPay založené na projektu. Tato technologie využívá tzv. HODL invoices, kdy služba poskytující invoices poskytuje hashe, ke kterým nemá „klíč“ (prehash). Klient tedy při platbě vytvoří platební cestu, která má ale expiraci 24 hodin. Pokud se do 24 hodin peněženka spustí, dostane přes protokol Nostr informace o jednotlivých lightning fakturách, které čekají na zpracování, a peněženka vytvoří poslední část cesty a předáním klíčů je vyrovná (a tedy přijme).
Problém tohoto přístupu je, že platební cesta má uzamčené prostředky na 24 hodin, přičemž za toto uzamčení Bitcoinů není nikdo po cestě odměněn. Některé peněženky jako Mutiny tedy platby z peněženky Zeus s takovou expirací blokují. I když toto řešení je bezpečné z pohledu úschovy Bitcoinů, není moc praktické (úspěšnost platby závisí na tom, zda do 24 hodin otevřete na mobilu peněženku) a zbytečně zahlcuje síť, a tedy vytváří rozpory mezi vývojáři i uživateli. Na Lightning address tedy doporučuji používat nějaký jiný nástroj – například npub.cash s vaší oblíbenou Cashu mint. Tento projekt také používá protokol Nostr, dá vám lightning adresu, ale na dobu do přijetí platby musíte věřit ecash mint, kterou si zvolíte. Více o projektu Cashu jsme psali v článku o poplatcích.
Odesílání je podobné – máme poměrně mnoho možností, ale musíme mít zůstatek buď v Lightningu, nebo on-chain podle toho, jakým způsobem chceme prostředky poslat. Znovu máme možnost použít NFC.
I při odesílání se projevuje to, že v této peněžence má kontrolu uživatel – vidíme přesně, co se stane, co platíme.
Osobně bych uvítal integraci nějaké swap služby a možnost unifikovaného zůstatku.
Na rozdíl od Phoenix nebo Breez, ale podobně jako například v peněžence Blixt máte plnou kontrolu nad kanály. Pokud používáte službu Olympus LSP, tak možná získáte automaticky otevřené kanály, ale také si můžete otevřít kanály s kým chcete. V československém prostoru dobře propojené uzly naleznete například na této github page bratislavské Paralelní Polis.
Při otevření kanálu máme několik možností – peněženka dokonce umožňuje coin control, a můžeme si tedy vybrat, které UTXO chceme použít, a zda chceme použít jejich celý zůstatek.
Při otevírání (a rovněž při on-chain platbě) máme možnost vybrat si poplatek. Na rozdíl od jiných peněženek se mi líbí, že poplatky ukazuje projekt mempool.space, který možná není nejlepší na trhu, ale osobně jej preferuji, neboť mi dává smysl. Pokud mi peněženka ukáže nějaké doporučené poplatky, většinou otevřu stejně mempool.space, protože jinak nevím, odkud peněženka poplatky vzala.
Po vytvoření otevírací transakce stačí počkat na vytížení bloku, ve kterém bude funding transakce kanálu zahrnuta, a můžete lightningovat – s kým chcete a jak chcete.
Zeus má ve srovnání s jinými peněženkami množství nastavení, kde můžete přizpůsobit prakticky cokoli. Samozřejmostí je volba fiat měny na zobrazování a přepočty, ale také volba jazyka.
Samozřejmostí je možnost vytvoření zálohy. Záloha je vytvořena podobně jako u peněženek Phoenix a Breez a je tvořena mnemonickou zálohou seedu (v případě Zeusu 24 slovy).
Znalejší z vás jistě okamžitě napadne otázka statusu kanálů. Zeus provádí pouze statické zálohování kanálů na servery Olympus. Ty jsou zašifrované podle seedu, ale neobsahují stav kanálů, takže při obnově peněženky můžete pouze požádat protistrany o uzavření kanálů – sami to udělat nemůžete. Zde je důležité se zamyslet nad tím, jak důvěřujete protistranám, se kterými otevíráte kanály, že této žádosti vyhoví.
Jeden z důvodů, proč jsem se Zeusu chtěl podívat na zoubky, je vestavěný modul pro přijímání plateb v provozovnách. Prakticky každý může přijímat Lightning platby přes jakoukoli peněženku – stačí spočítat částku, zadat v lokální fiat měně a ukázat QR kód Lightning faktury. To je možné, pokud jste například „živnostník“ – masér, máte vlastní kavárnu, ve které také pracujete, nebo přijímáte platby osobně.
Něco lepšího potřebujete tehdy, když nechcete mít v provozovně nebo předat zaměstnancům peněženku s privátními klíči, ze které lze prostředky i odeslat. Ubráníte se tak krádeži zařízení, neodborné manipulaci a podobně.
Větší provozovny mohou používat zařízení založená na open-source PoS službě postavené na projektu btcpayserver – ať už od vlastní služby, nebo jako hostovanou službu, například z projektu HydraNode. Nebo můžete použít komerční službu jako například tu od Confirmo, kterou používá i Alza k přijímání kryptoměn.
Mezi přijímáním do vlastní peněženky a používání služby založené na serverovém řešení (ať už vlastním, nebo hostovanou jako službu) existuje prostor pro non-custodial řešení, která běží přímo v zařízení, ale jsou nějakým způsobem ochráněná proti krádeži. První inovací tohoto typu byla peněženka Breez, která má vlastní PoS terminál. Umožňuje nastavit „administrátorské heslo“, které je třeba při jakékoli změně nastavení, nebo chcete-li poslat peníze z peněženky ven, či zobrazit seed. Obsluha terminálu může tedy pouze přijímat, ale nemůže posílat transakce.
Nevýhodou řešení od Breez je nemožnost přijímat on-chain transakce a limit samotné peněženky Breez na 4M satoshi, což některým provozovnám nebude stačit.
Podobnou funkcionalitu platebního terminálu má i Zeus. Můžete nastavit heslo nebo PIN, které je potřebné k odesílání.
V nastaveních můžete také vytvářet jednotlivé produkty. A tady se trochu mísí různý typ použití PoS terminálu. Jsou dva možné přístupy – buď používáte k vytvoření „účtu“ klasickou pokladnu, kde účtujete všechny zákazníky, nebo očekáváte od terminálu, aby účtoval jednotlivé položky. Vezměme si to na příkladu platby kartou. Pokladna vypočítá, kolik máte platit, pak částku zadáte na platebním terminálu k akceptování plateb kartou a platební terminál jen řekne, zda platba byla zaúčtována či nikoliv. U některých terminálů nemusíte ani nic zadávat a pokladna dokáže do modulu pro akceptaci plateb kartou posílat částku a zjišťovat stav platby.
Druhá možnost je, že přímo terminál pro přijímání plateb má položky. To je vhodné, pokud přijímáte pouze jeden typ plateb, případně můžete použít účet z tohoto terminálu k akceptování jiného typu platby. Například jste-li živnostníci, kteří prodávají zboží nebo služby při osobní návštěvě klienta, je fajn mít možnost „vyklikat“ a spočítat jednotlivé služby přímo v Lightning peněžence a kliknout na vytvoření Lightning faktury. Dokonce i když zákazník bude nakonec platit v hotovosti, nepotřebujete mít zvláštní ceník a kalkulačku, ale vypočte vám částku, kterou od zákazníka inkasujete. Samozřejmě zákonné požadavky na přijímání plateb tento terminál neřeší a musíte je vyřešit jinak.
Pokud povolíme možnost „Show Keypad” v nastavení terminálu, tak můžeme účtovat i přímo částku – tedy použijeme režim „kartového terminálu,” o kterém jsem mluvil – vytváříme pouze fakturu s částkou, nemusíme se starat o položky a zadávat je. Pokladna spočítá, kolik má klient zaplatit, a chce-li zaplatit Bitcoinem, otevřeme „klávesnici” a zadáme sumu ve fiat měně:
Oproti terminálu peněženky Breez tak můžeme přijímat on-chain platby stejně jako Lightning platby (ale funkcionalitu on-chain plateb lze také zakázat). Mimochodem, Breez umožňuje přijmout on-chain platby přes swap službu (pomocí volby Receive via Bitcoin Address), ale tato možnost není zaintegrována do platebního terminálu.
Na rozdíl od platebního terminálu peněženky Breez vidíme v Zeus PoS seznam plateb – nových, otevřených a zaplacených. Takže chceme-li se podívat, která platba prošla, vidíme to v historii. Zde je drobná chyba, kde se nezobrazuje platba zadaná na klávesnici – tlačítko Request nás pošle rovnou na platbu, ale pokud si obsluha nevšimne, že platba byla potvrzena, nevidí ji mezi úspěšnými platbami. Navíc, v košíku má jakoby nezaplacenou platbu na danou výši.
Zeus je skvělá volba, pokud chcete používat vlastní uzel a připojovat se k němu. Umožní vám platit, přijímat platby, a to vše uživatelsky pohodlným způsobem z vašeho mobilního zařízení.
Máte-li zájem přijímat platby v provozovně, může být PoS modul také zajímavou možností, jak přijímat Lightning – nejen pomocí QR kódů, linek, ale také pomocí různých NFC karet a podobně. Chcete-li pouze používat Lightning, mít plnou kontrolu nad privátními klíči, ale nechcete se starat o kanály, přemýšlet, jak přehodit zůstatek mezi Lightningem a on-chain a v zásadě potřebujete pouze posílat a přijímat, budou pro vás jiné peněženky vhodnější.

Juraj Bednár
Jsem cypherpunker, mám rád svobodu, soukromí, peer to peer technologie a terminálová okna. Zkoumám chaotický svět, volatilitu a nejistotu, bojuji proti entropii - zakládám firmy a neziskové projekty, dělám kurzy a píšu knihy. Jsem spoluzakladatel Paralelní Polis, hackerspace Progressbar a bug bounty platformy Hacktrophy. Vystudoval jsem obor umělá inteligence a ta se vrátila tak, jako bych o ni nikdy ani neslyšel. O všech těchto zkušenostech píšu blog.