Bitcoin byl vytvořen jako peer-to-peer měna bez potřeby důvěryhodné třetí strany. K přijímání bitcoinu za své zboží a služby nikoho nepotřebujete. Ba naopak, pokud do toho někoho zapojíte, říkáte si tak akorát o problémy. Služby třetích stran jsou lákavé svou jednoduchostí, ale je důležité uvědomit si, co obětujete – plnou kontrolu nad svými platbami. Chcete-li Bitcoin doopravdy používat a těžit z fundamentů, které nabízí, musíte si vystačit sami. Nikomu nevěřte, nikoho nežádejte o svolení provést transakci, nespoléhejte se na cizí systém a před nikým neskákejte tak, jak píská. Zkrátka, používejte BTCPay Server – a my vám poradíme jak.
Bitcoin je mnoho věcí pro různé lidi. A pro každého jednotlivce, firmu nebo organizaci mohou být důvody, proč přijímat bitcoin, různé. Pro někoho to zkrátka a dobře může být dobrý marketingový tah, protože se teď o Bitcoinu hodně mluví. Někomu jinému to přijde cool, a ačkoliv tomu ani moc nerozumí, chce to dělat. A někdo chce jen co nejvíce možností způsobů plateb na svém e-shopu či v kamenné provozovně, aby případně neztratil vzácného zákazníka, který upřednostňuje platbu v BTC před kreditní kartou či bankovním převodem.
Existuje ale ještě jeden důvod, proč přijímat platby v bitcoinu. Tím jsou nesporné výhody, které Bitcoin nabízí v případě, že jej používáte tak, jak byl navržen. Pokud patříte do této skupiny, pravděpodobně víte, nebo minimálně tušíte, o čem je řeč. Bitcoin nabízí finanční svrchovanost. Jde o celkem široký pojem, jehož hranice se zdají být nekonečné a pro většinu lidí těžce představitelné, jelikož jde o něco, co jsme tu ještě nikdy neměli.
K pochopení finanční svrchovanosti je potřeba chápat tři základní vlastnosti peněz, které musí mít, abychom vůbec o nějaké finanční svrchovanosti mohli mluvit. Český jazyk, nehledě na svou pestrost, neobsahuje v tomto směru výstižné výrazy a vzhledem k tomu, že je Bitcoin globální záležitostí s obrovským přesahem, která nezná hranic států, budeme o těchto vlastnostech mluvit v anglických termínech: permissionlessness, trustlessness a censorship-resistance.
Anglický výraz permissionlessness znamená: udělat něco bez potřeby povolení. Téma je samo o sobě, stejně jako Bitcoin sám, tak trochu králičí norou. Jakmile začnete zkoumat, co vše ve vašem životě potřebuje povolení, ať už technické, či hierarchistické, zažijete nekončící pád. Inu, pravděpodobně se po cestě dost pomlátíte, ale to už k tomu bohužel patří.
I lost my family savings with #payoneer and #wirecard
— Alex Kukharenko (@AlexDeardream) June 27, 2020
this is fucking hell
What's your responsibility for this @Payoneer ? pic.twitter.com/GViO3gbCvs
V kontextu finanční svrchovanosti jde o provedení transakce. Na první pohled jednoduchá věc. Je ale otázkou, zda to, jestli transakci úspěšně provedeme, záleží jen na naší vlastní vůli, nebo naopak na možnostech a pravidlech komplikovaného systému, který se skládá z mnoha technicko-sociálně-právních vrstev, jež musí být v dokonalé souhře. Stejné je to s přijímáním transakce.
Jádrem této vlastnosti je potřeba důvěry. V kontextu finanční svrchovanosti je tím především myšlena potřeba věřit třetí straně. Je vcelku jedno, zda jde o důvěryhodnou banku, směnárnu či burzu. Nebo o systém a službu, která ověřuje naši identitu (KYC) a nakládá s našimi citlivými osobními údaji. A co teprve bitcoinový full node, na který se potřebujete připojit vždy, chcete-li poslat nebo přijmout nějaké satoshi. Používáte váš vlastní, nebo cizí?
How would you feel if your life-time savings disappeared tomorrow? I am only 34, but I have spent the last decade working hard, building my career, saving for the future. Now it’s all gone. It’s mere ink on paper. I am still in denial but reality is slowly sinking in. #Lebanon
— Dalal Mawadدلال معوض (@dalalmawad) June 24, 2020
Jde tedy vyloženě o čistě technickou věc, zda jste nuceni pro provedení či přijmutí transakce věřit někomu jinému nežli jen sami sobě. Svrchovanost jako taková však samozřejmě neexistuje jen ve financích, ale jde o zásadní faktor vylepšující kvalitu života každého jednotlivce.
Jednoduše řečeno odolnost vůči cenzuře. Aby mohl cenzor dělat to, co dělá nejraději, tedy cenzurovat, vyžaduje od vás dvě věci. Potřebuje, abyste se neobešli bez jeho povolení provést danou věc, tedy například uskutečnit finanční transakci, a potřebuje vaši důvěru.
Rychlý příklad ze života, abychom se už konečně dostali k jádru dnešního článku – chcete si koupit bitcoin a potřebujete poslat „své“ FIAT peníze na účet burzy. Banka transakci označí jako rizikovou a zamítne, protože příjemce pracuje s kryptoměnami. Jako důvod většinou uvádí riziko praní peněz z výnosů z trestné činnosti à la obchod s drogami, se zbraněmi, dětskou pornografií a terorismus.
Lekcí z finanční svrchovanosti a ze svrchovanosti obecně v běžném životě je tedy to, že pokud někoho žádáte o svolení něco udělat a musíte u toho někomu věřit, tak holt nikdy nemáte věci pevně ve svých rukou a jste odkázáni na dobrou vůli a schopnost někoho jiného. Co v životě chcete, je už jen na vás.
Pakliže vám dává smysl přijímat bitcoin svrchovaným způsobem, je na čase se zamyslet nad technickou stránkou věci. Mít u kasy nebo na e-shopu vylepený QR kód jedné bitcoinové adresy vaší peněženky a říkat každému zákazníkovi, kolik tam má poslat, asi není ten nejlepší nápad. Platby v bitcoinu je potřeba co nejlépe nejen zautomatizovat, ale vyhnout se i nespočtu nepříjemných nástrah, které samotné používaní bitcoinů přináší.
Budete tedy potřebovat nějakou platební bránu, dobře promyšlenou a sofistikovaně naprogramovanou, která za vás vyřeší drtivou většinu věcí, na něž běžný obchodník nemůže mít čas ani prostředky. Platebních bran existuje doslova hromada, ale každá patří nějaké třetí straně. A my už víme, že v tomto směru nejde o nic, co bychom hledali. Výjimkou je BTCPay Server, doslova kus geniálně navrženého open-source kódu, který umožňuje být sám sobě svou vlastní platební bránou. A je navíc úplně zdarma.
BTCPay Server je soubor nejrůznějších funkcí, které jsou založeny na bitcoinovém softwaru, Bitcoin Core. Pokud používáte BTCPay Server, na rozdíl od drtivé většiny „uživatelů“ Bitcoinu opravdu Bitcoin používáte. S vlastním BTCPay Serverem máte i vlastní Bitcoin full node. A to je absolutní základ a podmínka pro používání Bitcoinu. Součástí zmíněného souboru je NBXplorer, speciálně navržený prohlížeč blockchainu, který BTCPay Server používá k ověření příchozích plateb a validuje tak pravost BTC mincí, kterými vám váš případný zákazník zaplatil.
Pokud nepoužíváte svůj vlastní Bitcoin full node, a přesto přijímáte nějaké platby v bitcoinu, používáte cizí full node. Technicky tak důvěřujete majiteli cizího full nodu, že vám říká pravdu o pravosti vašich mincí.
Pokud ještě netušíte, co to vlastně ten bitcoinový full node je, dejte si s tímto článkem pauzu a prostudujte tento, jelikož jde o absolutní základy Bitcoinu jako takového: Co to je Bitcoin full node? (ZÁKLADY BITCOINU)
Fungování BTCPay Serveru je v podstatě o něco složitější a technicky pokročilejší uživatelé jsou vítáni si pročíst skvělou dokumentaci, nebo dokonce zdrojový kód. Pro běžné uživatele, kteří prostě chtějí přijímat bitcoin a chtějí to dělat správně, postačí vědět pár dalších faktů:
Jinými slovy, BTCPay Server funguje tak, jak byl Bitcoin navržen. Respektuje pravidla a zásadní vlastnosti Bitcoinu, které Bitcoin dělají tím, čím doopravdy jde. V současnosti neexistuje sofistikovanější způsob přijímání plateb v BTC. A to jsme teprve u špičky ledovce.
Už teď je jasné, že BTCPay Server toho dokáže daleko víc než všechny ostatní platební brány. Umí základy Bitcoinu a zvládne přijímat platby. Přijímání platby ale může mít mnoho podob. Jinak bude vypadat platba v kamenném obchodě a jinak na e-shopu. Zcela jiná platba je donate (dar) a platby na specifickou sbírku (crowdfunding) už vypadají úplně jinak. BTCPay Server umí všechno.
Seznam fičur, které BTCPay Server nabízí, je opravdu rozsáhlý, a co víc, s každou aktualizací jsou nejen vylepšovány, ale jejich počet přibývá. Už z tohoto důvodu je chytré vydat se cestou BTCPay Serveru, jelikož je velmi pravděpodobné, že to, co u projektu nenajdete teď, objevíte v některé z dalších aktualizací. Jeho síla totiž spočívá v tom, že jde o komunitní free open-source software a v průběhu času se přidává víc a víc vývojářů, kteří v zásadě přidávají to, co jim dává smysl.
BTCPay Server, jak sami vidíte, je opravdu funkcemi nabušená platební brána, která myslí na všechno. To nejzásadnější ale na konec. Pravá genialita BTCPay Serveru spočívá v tom, že se vy i vaši zákazníci na úrovni platební brány vyhnete většině byrokracie ze strany zákonů a regulací. Jako provozovatel své vlastní platební brány totiž nespravujete cizí prostředky a na samotném serveru nejsou nikdy žádné uloženy. Nijak nepracujete s FIAT penězi a nepropojujete je se světem kryptoměn. Nemusíte se nikde ověřovat (Know Your Customer), protože není u koho.
Ověřovací proces Know Your Customer (KYC), neboli ověření identity zákazníka, vyžaduje nahrání citlivých dat (občanský/řidičský průkaz, cestovní pas, aktuální fotografie a důkaz o místě bydliště) na internet. A co je na internetu, to lze ukrást. Je tak jen na kompetenci správce těchto dat, aby je uchránil před hackery. A historie nám opakovaně dokazuje, že i sebelepší správce těchto dat toho na sto procent nikdy není schopen.
Podrobněji se tomuto tématu věnujeme v 11. kapitole našeho článku: Decentralizovaná P2P burza Bisq – Jak správně koupit a prodat bitcoin? (NÁVOD)
Přijímání plateb pomocí BTCPay Serveru je ve své podstatě obyčejnou peer-to-peer transakcí. Neobyčejnost spočívá v zachování finanční svrchovanosti, kterou Bitcoin nabízí s důrazem nejen na vaše transakční soukromí, ale i vašich zákazníků. Být sám sobě platební bránou navíc přináší klidné spaní, protože i když někde přes noc zkrachuje platební brána třetí strany nebo ji někdo vyhackuje a bitcoiny jí ukradne, vám to může být jedno. Na BTCPay Serveru není co ukrást. Nejsou tam žádné bitcoiny ani žádné citlivé údaje.
Pakliže vidíte smysl v tom být svou vlastní platební bránou, není na co čekat – pojďme si ukázat, jak to vlastně celé rozjet. Způsobů, jak provozovat svůj vlastní BTCPay Server, je mnoho. Liší se mírou obtížnosti instalace a pořizovací cenou. Některé jsou na pár kliků a některé vyžadují práci s příkazovou řádkou v Linuxu.
Jedním z nejlepších způsobů, jak provozovat vlastní BTCPay Server, je pořízení tzv. bitcoinového full node stacku, o kterém píšeme v 8. kapitole našeho článku o full nodech. Zařízení, jako jsou Nodl či myNode, v podstatě nabízejí instalaci BTCPay Serveru na jeden klik. Jejich nevýhoda je v tom, že jsou oproti jiným způsobům dražší na pořízení, ale to vyvažuje početná nabídka dalších funkcí, jako je kompletní a ověřená kopie celého bitcoinového blockchainu, dále vlastní block explorer, Samourai Whirlpool a DOJO, Electrum Server a několik dalších vychytávek.
Pokud nechcete investovat několik tisíc do výše zmíněných řešení, a přesto se vyhnout technikáliím, BTCPay developeři připravili jednoduché zprovoznění u společnosti LunaNode, které vyjde na cca 200 Kč měsíčně. Je to na pár kliků a trochu trpělivosti kvůli synchronizaci, ale cca do 72 hodin už můžete vesele BTCPay Server plně používat.
Možností, jak začít používat BTCPay Server, je samozřejmě daleko více. Kromě dvou zmíněných lze téměř stejně jednoduše použít Microsoft Azure či Google Cloud. Pro kutily může být zajímavější alternativou cesta SBC počítačů typu Raspberry Pi 4 či mini PC, jako je Intel NUC. Za zmínku stojí připravené BTCPay Servery, které vlastní někdo jiný a nabízí je k dispozici ostatním uživatelům. Nejde o úplně tu nejlepší volbu ve smyslu svrchovanosti dle první kapitoly tohoto článku, ale spíš o dobrý způsob, jak si BTCPay Server poprvé vyzkoušet a osahat.
Jakmile je BTCPay Server nainstalován, můžeme se pustit do registrace a veškerého nastavení. Pro účely dnešního článku používám již zmíněnou cestu přes LunaNode, ale ostatní metody by až na případné drobné rozdíly měly vypadat stejně.
Jako první je potřeba provést registraci a vytvoření účtu. Nebuďte ale na omylu, neregistrujete se u nikoho jiného než sami u sebe. Vytváříte si tak administrátorský účet majitele BTCPay Serveru, ze kterého budete ovládat veškerá nastavení.
Po přihlášení se dostaneme na hlavní stránku BTCPay Serveru. V pravém dolním rohu si můžete všimnout malého okna, které informuje o fázi synchronizace bitcoinového blockchainu. Pokud si vyberete cestu přes LunaNode, počítejte s 48–72 hodinami. Většina možností a nastavení, které si už za chvíli ukážeme, je dostupná, ale na některé si budete muset počkat, až bude synchronizace kompletní.
Možnosti nastavení v menu počínající položkou Server Settings (nastavení serveru) symbolizují, že je přihlášen administrátor. Začneme tedy s touto sekcí a postupně se dostaneme ke všem částem. Nastavení BTCPay Serveru obnáší nastavení uživatelů, kteří budou server používat, e-mailový server, pravidla serveru, služby, šablony (design), možnosti údržby a také logy a soubory.
V Users (uživatelé) můžete nastavovat, přidávat a odebírat uživatelské účty. Poprvé pravděpodobně zatím žádné další účty, kromě toho svého, nebudete potřebovat nijak spravovat, ale časem by vám tato sekce mohla přijít vhod.
Dost možná přijdete na to, že je BTCPay Server opravdu šikovná věc, a budete chtít možnosti, které máte díky BTCPay Serveru vy, poskytnout i dalším lidem. Jakmile se se svou vlastní platební bránou seznámíte, nebude pro vás problém ji poskytnout rodinným příslušníkům, kamarádům či známým.
Mail server slouží k automatickému odesílání e-mailů vám i vašim zákazníkům o průběhu platby. Tyto zprávy určitě znáte při klasickém způsobu placení kartou na internetu, kdy vám do e-mailu přijde jedna nebo více zpráv o stavu platby přímo od platební brány, kterou obchodník, u něhož nakupujete, používá.
K dispozici je několik přednastavených e-mailových služeb, jako je Gmail, Yahoo a např. Office365. Pokud používáte jinou e-mailovou službu, pokyny pro nastavení naleznete v příslušné dokumentaci vaší e-mailové služby či hostingu. Pokud jste někdy nastavovali e-mailového klienta, jako je například Microsoft Outlook, jde víceméně o stejný proces.
Váš BTCPay Server má nějaká pravidla a jako jeho provozovatelé byste měli vědět, jaká to jsou a k čemu slouží. Naleznete je pod položkou Policies. Než k vašemu BTCPay Serveru pustíte někoho dalšího, dobře si tato opatření projděte a zamyslete se nad jejich účely.
V Policies můžete např. zakázat další registrace na server nebo indexování vyhledávači, což hned ze začátku doporučuji udělat. Je zde několik dalších nastavení, která se týkají sdílení Lightning Network nodu, což v případě dalších uživatelů, kterým byste váš BTCPay Server poskytli, nedoporučuji. Používali by vaši LN peněženku, takže by v praxi platby přes LN chodily na váš účet a vy byste se s nimi museli posléze nějak vyrovnávat. Navíc by v tu chvíli přestalo platit, že nespravujete cizí peníze, a to už by byl docela jiný oříšek z pohledu práva a regulací.
BTCPay Server nabízí interoperabilitu s řadou externích aplikací, čímž tvoří velmi funkční ekosystém. Pokud chcete, můžete tuto kapitolu lehce prolétnout a vrátit se k ní později. K přijímání klasické on-chain platby v BTC nic z následujícího potřebovat nebudete. Zábava začne ve chvíli, kdy naskočíte na Lightning Network.
Po stránce Lightning Network můžete používat buď LND, nebo c-lightning. Jde o odlišné implementace LN, které se drží standardů BOLT11. Dodržováním BOLT11 je zajištěna interoperabilita mezi těmito a několika dalšími implementacemi. Jednoduše řečeno, LND node bude moci přijmout platbu od c-lightning nodu a naopak.
Co je ale podstatné pro vás jako majitele a uživatele BTCPay Serveru, je to, že tyto samotné implementace by se vám jen horko těžko používaly. A právě z tohoto důvodu existuje několik peněženek na desktop i chytrý telefon, které jak LND, tak c-lightning umějí ovládat. Trik spočívá v tom, že disponují velmi slušným grafickým rozhraním, a díky velmi dobrému UX i UI tak dokážete svůj LN bez problému používat.
Existuje několik komunikačních protokolů, s jejichž pomocí mezi sebou mohou dvě či vícero aplikací komunikovat. ZAP a Peeble peněženky používají jiný protokol než Zeus a Joule. Více si s tím ale nemusíte lámat hlavu, vše za vás vyřeší QR kódy, které jednoduše naskenujete.
ZAP nabízí jak verzi pro desktop (Windows, MacOS, Linux), tak pro chytré telefony (iOS i Android). Je plně open-source, umožňuje připojení přes Tor i přes clearnet. Pro účel BTCPay Serveru je zásadní, že umí napojení na vlastní LN node, tedy na váš vlastní BTCPay Server.
ZAP používá pro komunikaci tzv. gRPC protokol. Aniž byste se museli zabývat tím, co to je a jak to funguje, stačí vám pouze naskenovat QR kód. K tomu se dostanete po kliknutí na „See information“ na řádku „LND (gRPC server)“.
Zeus je mobilní open-source LN peněženka pro Android i iOS. Používá se pro vzdálené ovládání vašeho vlastní LN nodu. Nemá tak vymakané UI po stránce designu jako ZAP, ale zato toho umí opravdu hodně. Umí připojení přes Tor, VPN i clearnet. Díky spolupráci s dalšími projekty ji není problém propojit s dalšími full node řešeními, jako jsou Nodl, myNode a RaspiBlitz, pouhým naskenováním QR kódu.
Zeus používá pro komunikaci REST protokol. Opět se nemusíte o nic starat, potřebný QR kód znovu naleznete po kliknutí na „See information“ na řádce „LND (REST server)“ v nastavení Serveru pod položkou Services, kde se stále nacházíme. Joule funguje podobně, jen jde o webovou peněženku formou pluginu do prohlížeče.
Pokud jste ještě nikdy Lightning Network nepoužívali, patrně vás překvapí, že je k tomu potřeba separátní bitcoinová peněženka. Má to své technické důvody a také by nebylo dobré spojovat vaši hlavní on-chainovou peněženku s něčím dalším.
LN peněženka funguje velmi podobně jako klasická on-chainová peněženka. Minimálně, co se zálohy pomocí seedu, oněch 24 slov a bezpečnostní fráze týče. To je potřeba zazálohovat a uložit na bezpečné místo. Poté záznam o seedu z BTCPay Serveru pro jistotu odstraňte zeleným tlačítkem „Remove Seed from server“.
Pro jistotu připomenu, že ač je Lightning Network už velmi dobře použitelná, stále se nachází v rané fázi vývoje. Mohou se objevit skryté bugy či nečekané útoky, které by mohly zapříčinit ztrátu vašich bitcoinů.
Nikdy nemějte v LN kanálech více prostředků, jejich případná ztráta by vás mohla hodně bolet či finančně položit.
RTL je parádní webová aplikace sloužící ke správě vašeho Lightning Network nodu. Umí téměř vše, co budete potřebovat.
S RTL můžete bez příkazové řádky pohodlně spravovat vše týkající se lightningových kanálů, včetně on-chain zůstatku. Zajímavé je také sledovat, kolik satoshi jste svým LN nodem přeroutovali a případně kolik vám to hodilo. Funkcí, které Ride the Lightning umí, je opravdu hodně a jejich popis by vydal na samostatný článek.
V průběhu druhé kapitoly tohoto článku jsem zmínil nespornou výhodu BTPay Serveru, kterou je vlastní full node. Kromě BTCPay Serveru samotného můžete svůj vlastní full node využít pro řadu dalších účelů a skvělých aplikací. Celé to umocňuje fakt, že komunikace probíhá přes Tor síť prostřednictvím vaší vlastní unikátní Tor v3 adresy, kterou znáte jen vy a nikdo jiný.
Pokud rádi používáte Blockstream Green, peněženku pro desktop, Android i iOS, už nemusíte používat full node společnosti Blockstream, ale svůj vlastní. Stejná možnost se vám naskýtá, pokud jste uživateli Wasabi Wallet.
Zatímco zmíněné peněženky používají P2P protokol, Fully Noded používá RPC, opět přes vlastní Tor v3 skrytou službu. Dokud Tor adresu nikomu nesdělíte, budete jediní, kdo váš full node může použít.
Fully Noded je skvělá aplikace pro iOS, která umožňuje ovládání vašeho bitcoinového full nodu. Aplikace umí neskutečné množství funkcí a klade si za cíl zprostředkovat uživateli appky snad vše, co umí Bitcoin Core software s výborným UX a UI. Osobně si myslím, že jde stejně jako u BTCPay Serveru o jednu z nejzajímavějších aplikací, které na Bitcoinu existují a vyvíjí se.
Pokud patříte mezi technicky zručnější typy, není potřeba SSH představovat. Běžní uživatelé mohou tuto část přeskočit, ale je dobré vědět, že jde o způsob, jak se dostat do nižší úrovně BTCPay Serveru samotného.
SSH neboli Secure Shell je další komunikační protokol využívaný v počítačových sítích (TCP/IP). Pokud by se někdy objevil technický zádrhel, který by nešel vyřešit restartem BTCPay Serveru či z webové administrace, jde o další cestu, jak nalézt problém a případně jej opravit.
DDNS zde slouží především k tomu, máte-li svůj vlastní BTCPay Server za proměnlivou IP adresu, která se často mění. Nejde o případ instalace přes LunaNode, kde máte zaplacenou vlastní IP adresu. DDNS se může hodit, máte-li BTCPay Server připojený na ISP, které neposkytuje pevnou IP adresu, nebo pokud za ni nechcete platit.
Vlastní IPv4 adresy dnes totiž něco stojí a i běžní poskytovatelé internetu si za ně účtují nemalé peníze. Důvodem je, že IPv4 adresy již prakticky došly a nové nejsou k dispozici. Jde tedy o poměrně vzácné zboží, a pokud tuto adresu z nějakého důvodu nemáte, můžete využít DDNS služby, které jsou povětšinou zdarma.
Ačkoliv má Bitcoin spoustu nedostatků na úrovni soukromí, je zde zásadní korelace snahy o vylepšení nejen transakčního soukromí, ale i celkového. BTCPay Server proto defaultně funguje i v Tor síti. Můžete tak ke klasickému způsobu nabídnout svým zákazníkům alternativu .onion adresy namísto klasické (www.) a nebo provozovat obchod pouze přes Tor síť.
Stejné je to s adresou (veřejným klíčem) vašeho LN nodu. K dispozici je .onion adresa, na kterou se mohou připojit i otevřít kanál další Tor LN nody. Nody bez Tor softwaru se na vás nepřipojí a ani o vás nebudou vědět, pokud se na ně nepřipojíte jako první. V době psaní článku je v provozu 2 278 Tor nodů z celkových 13 104 nodů, což už o něčem svědčí.
S LunaNode tuto položku řešit nemusíte, ale pro úplnost jde o diskový prostor, kam budete nahrávat případné soubory, např. obrázky. Defaultně se cestou LunaNode ukládají na stejný diskový prostor, na kterém je BTCPay Server, tedy na FileSystem. Jsou zde navíc možnosti cloudu od Azure, Amazonu či od Googlu. Někomu to může přijít vhod, záleží opět čistě na osobních preferencích.
BTCPay Server přichází v základu ve čtyřech designových provedeních. Nejzajímavější jsou ovšem dvě defaultní – Light a Dark – tedy klasický světlý a tmavý režim. Designová stránka BTCPay Serveru je ale velmi flexibilní, nic vám tak nebrání vytvořit si svůj vlastní design.
Stačí trochu ovládat CSS (kaskádové styly) a můžete si vzhled vašeho BTCPay Serveru upravit dle libosti. Pokud CSS neovládáte a ani se ho nechcete učit, je zde k dispozici možnost tzv. Bootstrapu. S pomocí několika bootstrapovacích služeb si můžete vybrat z již vytvořeného tématu nebo si vytvořit své vlastní a následně jej použít pro „přebarvení“ vašeho BTCPay Serveru.
V nastavení údržby si můžete změnit jméno domény či subdomény, za kterou se váš BTCPay Server nachází. Kromě toho odsud můžete updatovat celý BTCPay Server, vyjde-li nová aktualizace, a pročistit systém od starých instalačních souborů.
BTCPay Server je jeden z nejaktivnějších projektů na Bitcoinu vůbec. Aktualizace vychází celkem často a developeři stále přidávají nové funkce a fičury.
Logy jsou v podstatě technické záznamy o tom, co se s vaším BTCPay Serverem děje. Pokud nastane nějaký problém, jsou logy první místo, kam je dobré se podívat. Pokud jim nerozumíte, BTCPay Server má rozsáhlou a nápomocnou komunitu, která vám jistě pomůže.
Komunity BTCPay Serveru najdete na Mattermostu, Githubu a Telegramu. Na Mattermostu jsou i vyhrazené kanály přímo pro podporu a pomoc. Jen mějte na paměti, že BTCPay Server je úplně zdarma, a tak je i veškerá pomoc dobrovolného charakteru. Používáním softwaru vám nikdo nic nedluží, ani se nezavazuje k žádné 24/7/365 podpoře. Na druhou stranu je vše zdarma a na rozdíl od platebních bran třetích stran neplatíte nikomu ani žádné poplatky.
Klasický adresář se soubory, které jste si na BTCPay nahráli. Možnost svých vlastních souborů přijde vhod např. ve formě obrázků, budete-li si chtít vytvořit a používat svůj vlastní platební terminál (Point of Sale) či vlastní sbírku (Crowdfunding).
Pokud půjdete cestou instalace přes LunaNode jako v tomto článku, nemusíte nastavovat nic. Pakliže byste používali jiný způsob, musíte nejprve nastavit úložiště v External storage service, viz pár odstavců výše.
Po nastavení BTCPay Serveru po serverové stránce je potřeba vytvořit první obchod. Obchodů můžete mít více, stejně jako můžete mít více e-shopů. Každý obchod bude mít svou vlastní on-chainovou bitcoinovou peněženku, separátní pravidla, checkout design včetně svého vlastního loga a další. Jediné, co tyto obchody budou sdílet, je Lightningová peněženka, takže v případě přijímání LN plateb na více e-shopech či kamenných provozovnách budete mít bitcoiny pohromadě.
Jako první vytvoříme obchod. Pojmenovat ho můžete dle libosti, na pozdější funkčnost to nemá žádný vliv. Obchodů můžete vytvořit libovolné množství a mazat je dle potřeby, takže se nebojte testovat a vše si pořádně ozkoušet, než přejdete na ostrý provoz.
V této sekci se jedná o nejzákladnější nastavení, jako je název a webová stránka obchodu, je-li k dispozici (může jít o kamenný obchod). Dále jsou tu možnosti nastavení poplatků, počtu konfirmací, tvorby faktur a možnost PayJoinu (vysvětlíme si už za chvíli).
Položka „Add additional fee“ je možnost přidání extra poplatku v případě, kdy zákazník platí za objednávku na více částí. Tím se vám, jako příjemci platby, prodražuje následný výběr bitcoinů, jelikož se taková transakce skládá z více vstupů, které při výběru musíte spojit do jedné transakce.
Zaškrtávací položka „Allow anyone to create invoice“ slouží k tzv. pull platbám (které si probereme později) či ke zprovoznění tzv. Payment Buttonů, tlačítek, která mohou sloužit pro donaty, jež si můžete jednoduše přes HTML kód dát kamkoliv na váš web. Technicky si tak váš zákazník, fanoušek či follower vystaví bitcoinovou fakturu sám pro sebe, kterou následně i sám uhradí bez vaší pomoci.
Položka „Invoice expires if the full amount has not been paid after“ slouží k časové expiraci vystavené platby. Je ideální mít nastavenou nějakou rozumnou dobu kvůli volatilitě. Položka „Payment invalid if transactions fails to confirm ... minutes after invoice expiration“ pak slouží ke zrušení platby v případě, že nedojde v bitcoinové síti ani k jednomu potvrzení. BTCPay má pro tyto účely nově možnost automatických refundů (vrácení plateb).
„Consider the invoice paid even if the paid amount is ... % less than expected“ je celkem chytrou funkcí, která umožňuje označit objednávku jako částečně zaplacenou za předpokladu, že zákazník pošle o něco méně, než poslat měl. Stává se tak v případě nezkušených uživatelů, kteří posílají platby rovnou ze směnáren či špatně nadesignovaných peněženek, odkud není finální částka posílána v takové výši, kterou uživatel zadal, ale ve formě ponížené o různé poplatky. Zákazník tak nechtěně zaplatí za objednávku o něco málo méně (většinou v řádu pár Kč).
„Consider the invoice confirmed when the payment transaction...“ je nastavení počtu potvrzení transakce v bitcoinové síti, než je bitcoinová platba označena za potvrzenou. Na výběr je 0, 2 a 6 konfirmací. A ve finále, funkce Enable Payjoin/P2EP nabízí zcela odlišný typ plateb, kdy s platícím zákazníkem uděláte tzv. CoinJoin, což je transakce znatelně vylepšující soukromí obou stran, které platbu provádějí a matou případnou transakční analýzu. PayJoinu se ještě budeme věnovat později v tomto článku.
Derivation scheme neboli derivační schéma může znít celkem strašlivě. Osobně znám i několik technicky pokročilých uživatelů, kteří při pohledu na tuto část nastavení BTCPay Server zavřeli a označili projekt za overengineered nesmysl. Nelekejte se, nevzdávejte to, o nic v podstatě nejde.
Pamatuje si ještě na svůj seed, oněch 12–24 slov, která jste si opsali a bezpečně schovali při tvorbě své bitcoinové peněženky? Z těchto slov se derivuje rozšířený veřejný klíč, tzv. XPUB. Z XPUBu se následně automaticky derivuje nekonečně mnoho adres vaší bitcoinové peněženky, které už všichni znáte. Derivation scheme je tedy v podstatě jen tento XPUB. Používá se proto, že není bezpečné vícekrát než jednou používat stejnou bitcoinovou adresu peněženky. Každá platba, kterou od zákazníka obdržíte, může díky tomuto způsobu jít na čerstvě vygenerovanou adresu, která nemá žádnou transakční historii. Chráníte tak soukromí svoje i vašich zákazníků.
Způsobů, jak zjistit váš XPUB, je více, a pro přesné kroky se raději podívejte do dokumentace peněženky, kterou používáte. U hardwarové peněženky Ledger Nano BTCPay lze zjistit XPUB za pár kliků. BTCPay developeři si uvědomují, že pro technicky méně zdatné uživatele může jít o nejobtížnější krok při celém nastavení, a proto si pro ně připravili aplikaci zvanou BTCPay Vault.
BTCPay Vault funguje jako asistent při propojení hardwarové peněženky a BTCPay Serveru a naleznete ho ke stažení zde. Jde v podstatě o takový most mezi hardwarovou peněženkou, webovým prohlížečem a BTCPay Serverem.
Jakmile Vault nainstalujete a spustíte, klikněte v BTCPay Serveru ihned pod textovým polem „Import from...“ a vyberte možnost „...the vault“.
Jakmile Vault propojí hardwarovou peněženku s BTCPay Serverem, dá vám na výběr typ veřejné adresy. Doporučuji vybrat address type SegWit (adresa pak začíná vždy písmeny bc1q), jelikož na tomto typu adresy budou mít vaši zákazníci nejlevnější transakce (až o 50 % levnější poplatky těžařům oproti běžně používaným adresám).
Jakmile máte hotovo, ukáže se vám prvních deset adres vaší bitcoinové peněženky vygenerovaných ze zadaného XPUBu, ať už jste je zadali ručně, či pomocí Vaultu a hardwarové peněženky. Dobrou praxí je adresy ověřit na jiném zařízení, kde peněženku z tohoto seedu máte. Stačí postupovat tak, jako byste chtěli přijmout platbu, a první adresa, kterou vám vaše peněženka ukáže, by se měla shodovat rovněž s první, kterou ukázal BTCPay Server.
Address reuse neboli opětovné používání jedné adresy vaší peněženky je tou nejhorší věcí, kterou můžete při používání Bitcoinu udělat! Spojujete tak veškeré své odchozí a příchozí platby do jednoho klubka, které už jde horko těžko rozmotat, a navíc kdokoliv, kdo tomu rozumí, může jednoduše vypátrat vaši celou transakční historii a následně ji použít proti vám.
Přijímat bitcoiny od svých zákazníků, fanoušků či followerů na stejnou bitcoinovou adresu je nejen neetické, ale maximálně neohleduplné k těm, kteří vám bitcoiny posílají. Nedělejte to!
Součástí BTCPay Serveru je i Lightning Network, resp. je zde integrovaný LN node. Jednoduše řečeno, pokud tuto funkci zapnete, budete moct od svých zákazníků přijímat i LN platby, které jsou vhodné především pro účely mikrotransakcí a malých plateb s velmi nízkými poplatky.
Vás zde bude zajímat pouze textové pole s názvem „Connection String“. Pod ním se nachází text „You can use internal lightning node by clicking here“. Klikněte tedy na „clicking here“, díky čemuž vyplníte ono textové pole. Poté klikněte na šedivé tlačítko „Test connection“, čímž otestujete připojení na váš LN node.
Pokud vše funguje, jak má, stránka se obnoví a objeví se zelená notifikace s hláškou „Connection to the lightning node succeeded“ a adresou (veřejným klíčem) vašeho LN nodu. Dále už nic jiného nastavovat nemusíte. Váš zákazník bude mít při checkoutu možnost klasické bitcoinové on-chain platby i off-chain přes Lightning.
Pod položkou Rates se nastavuje spread. Jde o rozdíl mezi aktuální cenou za bitcoin (zdroj ceny lze libovolně nastavit) a reálně účtovanou částkou zákazníkovi. Riskem při přijímání plateb v bitcoinu je kurzová volatilita, a právě díky této funkci si můžete nastavit procentuální částku k zaplacení navíc, abyste se před tímto rizikem dostatečně ochránili.
První kolonka nastavuje zdroj, odkud se BTCPay Server informuje o aktuální ceně BTC. Doporučuji ponechat přednastavené CoinGecko, jde o spolehlivý zdroj nejen ceny, ale i dalších informací. Hned pod tím naleznete „Add a spread on exchange rate of ... % “. Jde o procentuální přirážku nad aktuální cenu bitcoinu, kterou hlásí CoinGecko. Můžete si tak nastavit pojistku proti volatilitě či prostě naúčtovat zákazníkům to, že v roce 2020 jako jedni z mála přijímáte bitcoin.
Pod položkou Checkout experience naleznete několik možností nastavení, které se vztahují ke kroku, kdy už ve finále zákazník platí za objednávku. Lze zde nastavit vlastní logo, již zmíněné CSS styly, výchozí platbu (on-chain či off-chain), výchozí jazyk (CZ, EN atp.), možnost vynucení zadání refund mail adresy ze strany zákazníka pro případ potřeby vrácení platby a pár dalších věcí.
Defaultně při checkoutu vidí zákazník logo BTCPay. Pokud chcete, můžete jej v první kolonce vyměnit za svoje vlastní. Dále již známá možnost vlastních CSS stylů a hned pod tím možnost titulního nadpisu. „Default payment method on checkout“ slouží k nastavení výchozího způsobu platby. Můžete nastavit klasiku on-chain platbu nebo off-chain přes LN.
BTCPay Server sice administraci do češtiny přeloženou nemá, ale to, s čím se váš zákazník setká, je přeloženo do spousty jazyků. Můžete tak kromě angličtiny nastavit češtinu i slovenštinu. Hned pod tím je zaškrtávací položka „Requires a refund mail“. Doporučuji zapnout, jelikož krásně zautomatizujete případné vrácení peněz, ale záleží na vaší osobní preferenci a také na tom, jaké máte zákazníky. V určitých případech se obchod může obejít i bez e-mailu a lidé, kteří si potrpí na soukromí, to jistě ocení.
„Do not propose on chain payment if the value of the invoice is below...“ a „Do not propose lightning payment if value of the invoice is above...“ fungují v případě, že máte zapnuté jak on-chain, tak off-chain platby. Můžete tak nastavit částku k zaplacení, která v případě, že bude nižší než nastavená, bude zákazníkovi navrhnuta platba přes LN a naopak.
A ve finále tu máme několik zaškrtávacích políček. První slouží k zobrazování LN plateb v satoshis namísto v BTC. Druhá se týká privátních LN kanálů (může zlepšit úspěšnost platby) a automatického přesměrování po zaplacení objednávky zpět na web. Poslední položka zapne doporučení výše mining fee, která se vypočítává podle toho, v kolika následujících blocích má být transakce potvrzena. Defaultně je nastaveno 1, tedy hned v nadcházejícím bloku (do 10 minut).
Přístupové tokeny budete potřebovat především pro účely propojení nějaké externí aplikace s vaším BTCPay Serverem. Nejčastějším příkladem je napojení WooCommerce pluginu. Jak propojit váš WordPressový eshop s BTCPay Serverem, si ukážeme později.
Ke vzniku BTCPay Serveru se váže celkem legendární tweet Nicolase Doriera, který nebyl spokojený s praktikami platební brány BitPay a v podstatě jim slíbil, že jejich bránu udělá nepotřebnou.
This is lies, my trust in you is broken, I will make you obsolete
— Nicolas Dorier (@NicolasDorier) August 18, 2017
BitPay je v bitcoinové komunitě z mnoha důvodů celkem neoblíbená platební brána. Jejich platební protokol byl dokonce nedávno natvrdo odstraněn z Bitcoin Core a kvůli mizerné použitelnosti a interoperabilitě vzniklo několik nástrojů, které umožňují použití většiny bitcoinových peněženek pro platby, které tato brána vygeneruje. BTCPay Server je jedním z nich, proto zde najdete i možnost, jak přes BTCPay Server zaplatit BitPay fakturu i bez kompatibilní peněženky.
Do obchodu můžete přidávat i další uživatele. To se může hodit zejména v případě kamenné prodejny a použití Point of Sale aplikace (platebního terminálu). Každý zaměstnanec fungující jako obsluha může mít svůj vlastní účet a vám se pak jako majiteli lépe budou počítat dýška, případné prodeje atp.
Nastavení uživatelů v daném obchodě se také může hodit k přidání např. správce či technicky kompetentnější osoby, která vám s nastavením pomůže, ale zároveň bude limitovaná svými právy, která jí nastavíte.
A konečně se dostáváme k jedné z nejzajímavějších funkcí BTCPay Serveru. Tou je tzv. Pay Button, který je skvělou náhradou za statické bitcoinové adresy peněženek s QR kódy visících po webech pro účely donatů. Pomocí jednoduchého generátoru si tak můžete vložit libovolně navržené tlačítko, na které váš návštěvník klikne a zaplatí klasickou fakturu, jako kdyby platil v e-shopu. K dispozici je samozřejmě jak on-chain, tak off-chain.
Tlačítko lze samozřejmě nastavit na fixní částku, např. 100 Kč, či libovolnou, kterou zadá ten, kdo vám chce nějaké bitcoiny poslat. Navíc je zde možnost volby výše částky pomocí slideru. S BTCPay Serverem neexistuje žádný rozumný důvod, proč přijímat donaty pomocí statické adresy, kde automaticky dochází k address reuse, což je tou nejhorší možnou praktikou, které se můžete při používání Bitcoinu dopustit.
BTCPay Server nabízí dvě zásadní aplikace. Tou první je Point of Sale, resp. platební terminál. Jedná se o jednoduchou stránku, na kterou si můžete přidat produkty, naházet je do košíku a rovnou zkasírovat zákazníka. V případě kamenného obchodu, například čajovny, si svůj platební terminál otevřete třeba na mobilním telefonu či tabletu. Obsluha pak zařízení používá místo klasického papírku, na který se běžně zapisují např. vypitá piva v hospodě. Jakmile chce zákazník zaplatit útratu, obsluha pár kliky vygeneruje QR kód, ukáže jej zákazníkovi a ten útratu zaplatí mobilním telefonem.
Jako první je potřeba platební terminál vytvořit. Pojmenujte jej dle libosti a přiřaďte k příslušnému obchodu. Platebních terminálů tak můžete mít nekonečně mnoho. Dobré je, že takto můžete každému zaměstnanci či směně vytvořit vlastní platební terminál a bude se vám pak například lépe pracovat se spropitným, které obsluha od zákazníku obdrží.
Jakmile platební terminál vytvoříte, budete mít k dispozici několik nastavení, počínaje názvem terminálu, nastavením měny (BTC, CZK, EUR či USD a další). Dále můžete povolit platby libovolnou sumou, což se může hodit pro případy, kdy chcete dát zákazníkům možnost zaplatit tolik, kolik sami chtějí. Nastavit zde lze i libovolné slevy v procentech a zapnutí funkce spropitného.
Jako další je možnost flexibilních textů, procentuální možnosti spropitného a opět možnost již zmíněného CSS souboru, pakliže byste chtěli být kreativní a dát svému platebnímu terminálu vlastní design. Poté už jen stačí přidat fotografie produktů, nastavit jim ceny, popisky či případný stav jednotlivých položek na skladě.
Samozřejmě nemusíte mít telefon ani tablet, postačí vám levný PC sloužící jako kasa. Otočíte monitor směrem k zákazníkovi a ukážete mu, za co a kolik platí. Případně, pokud bude chtít dát spropitné, bude mít tu možnost.
Pokud máte zapnutá dýška, může zákazník zvolit jeho výši a přejít již rovnou k platbě. BTCPay Server je samozřejmě i v češtině, ale jelikož máme v plánu tento článek přeložit i pro zbytek bitcoinové komunity, veškeré texty jsou ponechány v angličtině.
Po dokončení posledního kroku v platebním terminálu BTCPay Server zákazníkovi ukáže pokyny k platbě. Pokud je k dispozici Lightning Network, lze jednoduše přepínat mezi on-chain a off-chain platbou. Zákazníkovi tak stačí v libovolné mobilní peněžence naskenovat QR kód a zaplatit. Mimochodem, i tuto stránku lze libovolně nadesignovat, místo loga BTCPay přidat vlastní, změnit barvy a podobně.
A pro představu ukázka, jak vypadá platební terminál a průběh jeho používání na telefonu.
Znáte Kickstarter či český HitHit? Jedná se o tzv. crowdfundingové platformy, které slouží ke zrealizování sbírky. Může jít např. o pomoc dětem, vydání knihy a nebo nastartování určitého projektu, např. dokumentu nebo vývoje nějaké hry. A přesně to umí BTCPay Server.
Krása takové aplikace spočívá v tom, že jde prozatím o jedinou možnost, jak uspořádat sbírku bez potřeby třetí strany a dost možná i v bitcoinu vůbec. Obrovskou výhodou je podpora Lightning Network, jelikož tím umožníte rychlé a privátní platby i v rozmezí pár korun s téměř nulovými poplatky, které se pohybují v rámci pár satoshis.
Opět si v menu, pod položkou Apps, vytvoříte novou aplikaci. Libovolně ji pojmenujte, v App type tentokrát vyberte Crowdfund a zvolte příslušný obchod.
Pro ukázku jsem vytvořil jednoduchou sbírku na vývoj hry, The Bitcoin Journey. Jako první nastavíme hlavní nadpis, tag a popisek celé sbírky. Fantazii se meze nekladou, k dispozici je klasický textový editor včetně možnosti přepnutí do HTML režimu.
Jako další je potřeba nastavit měnu, ve které se bude sbírka odehrávat. Reálně jsou platby vždy v BTC, ale cíl a jednotlivé výše příspěvků můžete uvést i ve FIAT měnách. Pokračujeme nastavením cílové částky (v ukázce 10 BTC). Případně lze nastavit start sbírky (datum a čas) a konec sbírky. Mezitím si můžete povšimnout možnosti vynulování cílové částky. To se může hodit například v případech, kdy byste místo jedné finální částky potřebovali vybrat každý měsíc určitou sumu, která například představuje opakovatelné náklady na vývoj.
Jak už je u crowdfundingových sbírek běžné, je potřeba nastavit různé perky. Ty představují pro uživatele minimální částku, kterou mohou přispět, včetně informace, co za zakoupený perk dostanou (jako odměnu). A opět zde máte možnost vlastního CSS souboru, pokud toužíte customizovat defaultní design výsledné stránky.
Asi nejzajímavější položkou tohoto nastavení jsou zvuky a animace, které webová stránka sbírky přehraje ve chvíli, kdy někdo přispěje. Ostatní uživatele, kteří se zrovna rozmýšlejí, může takovéto zvýraznění příspěvků v reálném čase motivovat k tomu přispět také. Co víc, k aplikaci jde zapnout diskuze pomocí služby Disqus a sbírku o to více oživit.
Vytvoření takovéto sbírky pomocí BTCPay zabralo bezmála pět minut. Design je sice velmi základní a jednoduchý, ale budete-li chtít, můžete pomocí vlastních CSS stylů vyladit vzhled celé stránky dle libosti. Platby do sbírky pak probíhají úplně stejně jako u platebního terminálu.
BTCPay Server je vybaven vlastním rozhraním pro ovládání vaší bitcoinové peněženky. Tento způsob se vám bude hodit, především pokud budete chtít využít funkci pull payments a nebo z jakéhokoliv důvodu chcete používat interní hot wallet. Nutno ale zmínit, že i v případě hardwarových peněženek můžete tento způsob využívat také.
Tady naleznete veškeré on-chain transakce, které byly s nastavenou peněženkou (viz podkapitola derivation scheme) provedeny. Nespornou výhodou používání BTCPay Server peněženky s vaší hardwarovou peněženkou je používání vašeho vlastního full nodu. Snad jediným dalším způsobem, jak tohoto docílit, je peněženka Electrum, ale BTCPay wallet má o dost přívětivější grafické rozhraní a lépe se s ní pracuje.
Pokud byste nějaké transakce postrádali, využijte funkce „rescan“, která znovu zkontroluje veškeré transakce v blockchainu, které souvisí s vaší bitcoinovou peněženkou.
Kvalitu bitcoinové peněženky určuje zejména to, jaké možnosti uživatelům nabízí, co se odesílání i přijímání transakcí týče, a to především po stránce soukromí. Dobrá peněženka by měla umožňovat odeslat i přijmout transakci tak, aby uživatel neudělal nějakou zásadní a nezvratnou chybu, kterých existuje při práci s bitcoinem celá řada.
Dobrá bitcoinová peněženka by tedy především měla uživatele chránit před sebou samým. BTCPay wallet umí nad běžné funkce tzv. Coin Controling. Jde o manuální výběr bitcoinových UTXO, jenž umožňuje zvolit, které konkrétní bitcoiny na vaší peněžence chcete k případné transakci použít. Zásadní na této funkci je, abyste nedopatřením neutratili tzv. change bitcoiny, které by spojily právě prováděnou platbu s předchozí, z níž change vznikla.
Funkce „Don't create UTXO change“ natvrdo zamezí vytváření change tím způsobem, že místo částky, kterou chcete odeslat, nastaví částku ve výši celé UTXO, aby žádná change ani vzniknout nemohla. Logicky tuto funkci nepoužívejte, pokud byste platili někomu dalšímu nebo bitcoiny posílali na adresu, ke které nemáte privátní klíče.
Ve smyslu předchozích slov je nezbytné, aby dobrá peněženka zamezila tzv. address reuse, resp. aby vám nikdy nevygenerovala již použitou adresu, na kterou jste už nějaké bitcoiny přijali. BTCPay Server vám vždy vygeneruje čerstvou, nepoužitou adresu, což je možné díky zmíněnému derivačnímu schématu neboli xpubu.
K dispozici je QR kód i klasický textový formát veřejné adresy. Pokud budete chtít, můžete si kdykoliv manuálně vygenerovat novou adresu.
Jak už bylo zmíněno výše, funkce rescanu slouží pro případy, kdy postrádáte nějakou transakci. S její pomocí můžete prohledat specifické místo v bitcoinovém blockchainu, abyste s UTXOs, jež náleží vašemu veřejnému klíči (xpubu), mohli pracovat.
Pokud i přes rescan transakci nevidíte, zkuste navýšit GapLimit. Nízká hodnota tohoto parametru bývá nejčastějším důvodem, proč se lidé nemohou ani po rescanu dobrat k chybějícím UTXO.
Takzvané pull platby jsou velmi šikovnou fičurou pro případy, kdy jako majitel BTCPay Serveru platíte např. za něčí služby. Dejme tomu, že potřebujete pro váš web nové logo. Najmete si logotvůrce na volné noze a domluvíte se na celkové ceně 0,1 BTC. Podmínky zakázky budou 0,05 BTC po zaslání prvních třech návrhů nového loga a 0,05 BTC po zapracování vašich připomínek a odevzdání finální podoby.
Vytvoříme tedy novou pull platbu s trefným názvem, částkou a v libovolné měně. V našem případě v BTC, ale můžete dle libosti použít i FIAT měny. Ve chvíli provedení transakce budou BTC přepočítány např. na CZK.
Jakmile je nová pull platba vytvořena, prohlížeč nás přesměruje zpět na seznam našich pull plateb. Klikneme na „View Payouts“ a odkaz z prohlížeče pošleme našemu freelancerovi.
V naší názorné ukázce se nacházíme v momentě, kdy nám náš freelancer odeslal první tři návrhy loga. V odkaze své pull platby si zároveň zadá svých domluvených 0,05 BTC, adresu, na kterou chce BTC poslat, a pull platbu odešle k proplacení.
Stav pull platby pod odkazem se změní dle počtu vyžádaných BTC z celkové domluvené částky. Nic víc váš freelancer dělat nemusí, platba mu přijde, jakmile ji potvrdíte ve vašem BTCPay Serveru.
Jakmile si protistrana vyžádá platbu, váš BTCPay Server vás upozorní pomocí notifikace. Nyní už stačí žádost o proplacení pull platby potvrdit klasickým odesláním transakce z vaší peněženky.
Pod položkou payouts naleznete veškeré platby, které máte zaplatit vy někomu jinému. Pull platby tak, jak jsme si je ukázali, jsou jednou možností, tou druhou jsou refundy neboli vrácení plateb. Dejme tomu, že prodáváte software a dáváte 30 dní záruku spokojenosti. Tímto způsobem můžete rovnou bez zbytečných kroků řešit případné nároky na vrácení peněz ze strany zákazníka.
V případě, že budete pravidelně, klidně na denní či týdenní bázi, řešit více pull plateb, můžete je ke své pohodlnosti vyřešit jedinou transakcí pomocí tzv. batchování. K tomu stačí vybrané pull platby označit a kliknout na zelené tlačítko Confirm Selected Payouts.
Hlavní výhodou batchování transakcí je kromě pohodlí menší „váha transakce“, která zabírá místo v bitcoinovém bloku, za něž musíte samozřejmě těžařům řádně platit. Vás jako odesílatele tedy vyjde batchování více plateb levněji. Neméně důležité je myslet na transakční soukromí své i vašich protistran, kterým platíte. V ideálním případě byste měli platit bitcoiny s přerušenou transakční historií, např. z Whirlpoolu, a stejně tak by si i příjemci vašich plateb měli své nově nabyté bitcoiny očistit.
Partially Signet Bitcoin Transaction, zkráceně PSBT, mají mnoho využití. Jedním z nejčastějších je tzv. AirGapped podepisování transakce, např. pomocí hardwarové peněženky ColdCard. V praxi to vypadá tak, že hardwarovou peněženku nijak nepřipojujete k PC, ale vytvoříte částečně podepsanou transakci privátním klíčem, kterou uložíte na microSD kartu. Tu pak vložíte do PC a transakci dokončíte.
PSBT je většinou v podobě tzv. payloadu (velmi dlouhého textu), který stačí vložit do textového pole v této sekci a nebo použít přímo soubor se zakódovaným payloadem, máte-li jej k dispozici.
V poslední části nastavení peněženky naleznete především opět derivační schéma neboli xpub. Peněženku si zde můžete pojmenovat a v případě, že rozumíte derivačním cestám, můžete pracovat se subúčty vaší bitcoinové peněženky.
Tímto máme za sebou kompletní práci s BTCPay Server peněženkou. Ačkoliv to v tuto chvíli může vypadat, že je toho opravdu hodně, a tento článek může působit přehlcujícím dojmem, jde spíše o velmi podrobný návod toho, co slouží k čemu, abyste už další informace nemuseli hledat někde jinde.
Každá platba, která půjde přes váš BTCPay Server, se rovná vystavené faktuře. Faktury najdete v hlavním menu pod položkou „Invoices“. Pokud si někdo něco koupí na vašem e-shopu či přes platební terminál nebo crowdfundingovou aplikaci, najdete zde k transakci příslušnou fakturu. Stejně jako při běžném podnikání ale můžete vystavovat faktury i ručně.
Pro účely psaní tohoto článku používám čerstvou BTCPay Server instalaci, a proto na mém seznamu žádné faktury nevidíte. Pro příklad si pojďme ukázat klasické vystavení faktury zákazníkovi, který si u mě objednal stavbu nového PC.
Odshora: Nastavíte částku k zaplacení a měnu, ve které zákazníkovi fakturu vystavujete. V našem případě v CZK o celkové částce 48 231 Kč. Order ID je zde klasické číslo objednávky. Do předmětu (Item Description) můžete vyplnit popis, za co je faktura vystavena, a zadáte zákazníkův e-mail. Zvolíte si příslušný obchod (máte-li jich více) a vyberete, zda chcete umožnit platbu on-chain, nebo off-chain, případně obojí.
Ve sloupci Actions si můžete všimnout dvou položek: Checkout (odkaz pro platbu – pošlete zákazníkovi), Details (podrobné detaily faktury – pro kontrolu, za co konkrétně příjemce faktury platí).
Pro transparentnost pošlete zákazníkovi odkaz na detaily faktury, za kterou platí. Na té zákazník může vidět veškeré důležité podrobnosti včetně kurzu BTC–CZK. Pod odkazem z Checkout (viz výše) se už nachází klasická běžná platba s QR kódem či textovými detaily (veřejná adresa a částka v BTC).
BTCPay Server nabízí ještě jednu šikovnou fičuru, která se nazývá Payment Request neboli žádost o platbu. Stejnou funkci pravděpodobně nabízí i vaše banka. Rozdíl oproti klasické faktuře je ten, že Payment Request nemá časovou expiraci.
Způsobů využití může být nekonečně mnoho, ale pro představu uvedu příklad. Zrovna vyšla nová, dlouho očekávaná hra Death Stranding. Kamarád vás poprosí, jestli byste mu ji nekoupili s tím, že vám peníze vrátí hned, jak mu přijde výplata. Raději než vrácení částky v CZK byste uvítali BTC, a tak souhlasíte. Hru mu koupíte a abyste se o nic nemuseli dále starat, vystavíte mu ve svém BTCPay Serveru žádost o platbu.
Vašemu kamarádovi už stačí poslat odkaz na žádost o platbu, kterou může v bitcoinech zaplatit dle aktuálního kurzu ve chvíli, kdy se mu to bude hodit. Platba za Payment Request pak už opět vypadá úplně stejně jako jakákoliv jiná platba přes BTCPay Server.
Už víte, jak přijímat platby v bitcoinu v kamenném obchodě. Je ale na čase se podívat na to, jak používat BTCPay Server na e-shopu. Pokud máte řešení na míru od někoho jiného, bude nejlepší, když je poprosíte, aby se o to postarali. Většina majitelů menších až středně velkých e-shopů si ale vystačí s WordPressem v kombinaci s WooCommerce nebo jiným redakčním systémem typu Drupal, Magento či PrestaShop. Pro tyto případy jsou již připravené pluginy.
Propojení vašeho BTCPay Serveru je jednoduché, zabere pár minut a výsledkem jsou elegantní platby v Bitcoinu i přes Lightning Network na vašem e-shopu. Stačí nainstalovat plugin a postupovat dle instrukcí na videu nebo dle oficiální dokumentace zde. V nastavení pluginu ve WooCommerce zadáte webovou adresu vašeho e-shopu. Plugin vám vygeneruje odkaz na váš BTCPay Server, kde propojení dokončíte.
Zbývající nastavení jsou už stejná jako při každé jiné metodě platby ve WooCommerce.
Pokud jste dočetli až sem, máte můj obdiv. Dnešní článek se svým rozsahem slušně řečeno urval ze řetězu. Původním záměrem bylo BTCPay Server představit a v rychlosti ukázat, jak celou věc rozjet a používat. Pokud ve vás celý článek zanechal dojem, že jde o komplikovaný způsob, jak přijímat bitcoin, pravda je někde na půl cesty.
Svrchovanost totiž něco stojí. A v tomto případě stojí nějaký ten čas, úsilí, ale především přijetí odpovědnosti sám za sebe. Dnešní článek berte jako step by step návod, ve kterém se kdykoliv můžete vrátit k jakékoliv části, kterou budete potřebovat. A pokud někdy ztratíte nit a zapomenete, proč to všechno vlastně děláte a zda ta námaha stojí za to, vraťte se k první kapitole.
BTCPay Server nabízí elegantní způsob, jak přijímat bitcoiny za své zboží či služby. Svým designem umožňuje zachování finanční svrchovanosti, pro kterou byl Bitcoin vytvořen. Při používání BTCPay Serveru není potřeba nikomu věřit, nikoho žádat o svolení, a to nejlepší na konec – vše je zdarma a bez jakýchkoliv poplatků.
Michal Mikle
Vysloužilý extreme overclocker a příznivec hi-endového hardwaru. Nadšenec do bitcoinu, bezpečnosti a soukromí. Baví mě nacházet nové králičí nory – tou poslední je circadiánní a kvantová biologie a vliv světla, vody a magnetismu na život. Najdete mě na Xitteru @ElkimXOC