BTCPay Server je svobodný software pro přijímání bitcoinových plateb, dostupný pod licencí MIT. Lze jej provozovat na vlastním serveru nebo používat instalaci někoho jiného. Vytváří platební požadavky, přiřazuje k nim úhrady a pomáhá vést evidenci. Samotný projekt není účet, na který musíte svěřit peníze, ani prostředník rozhodující spory o zboží.
Představte si e-shop s knihami. Zákazník zvolí bitcoin a BTCPay Server vytvoří invoice, tedy požadavek na zaplacení konkrétní částky. Na platební stránce se zobrazí adresa nebo Lightning požadavek podle nastavení obchodu. Software sleduje příjem a propojenému e-shopu oznámí změnu stavu. Nemusíte tak ručně hledat, kdo poslal kterou částku. Podobně lze obsloužit pokladnu nebo vybírat dary. Dostupnost zdrojového kódu umožňuje program kontrolovat a upravovat; sama ještě nepotvrzuje bezpečnost konkrétní instalace. [1]
U existující peněženky může server dostat rozšířený veřejný klíč, údaj umožňující odvozovat její přijímací adresy. Soukromé klíče, které dovolují peníze poslat dál, mohou zůstat mimo server, například v hardwarové peněžence. Jinak funguje horká peněženka: její tajné údaje jsou přímo na zařízení připojeném k síti. Přístup k Lightning uzlu, který zajišťuje rychlé platby, také může umožňovat utrácení. Proto jsou správa serveru a správa peněz dvě samostatné otázky. Označení self-hosted, tedy vlastní provoz, je samo nezodpoví. [2] [3]
Použití cizího serveru vám může ušetřit instalaci a údržbu. I při příjmu do vlastní peněženky ale spoléháte na jeho správce. Pokud server někdo upraví nebo napadne, může místo vašich adres zobrazovat adresy útočníka. Získání veřejného klíče mu samo nedovolí utratit dříve přijaté mince, ale podvržená pokladna může odvést budoucí platby jinam. Příjem proto ověřujte i v nezávislé peněžence. Stejné přesměrování hrozí u napadeného vlastního serveru; cizí hostitel navíc ovlivňuje dostupnost služby a soukromí plateb. [4]
Kniha může stát určitou částku v korunách, zatímco zákazník platí bitcoinem. Invoice na omezenou dobu stanoví kurz a částku k úhradě. Processing znamená, že byla zaplacena celá požadovaná částka, ale čeká se na podmínky dokončení, například potvrzení v blocích. Settled označuje jejich splnění; Lightning platba běžně na blok nečeká. Obchod musí vyřešit i nedoplatky, přeplatky a pozdní platby. Ruční změna stavu nevytvoří síťové potvrzení. A pouhý přepočet korun na bitcoin neposílá koruny na váš účet: směna přes doplněk či poskytovatele je další služba s vlastními podmínkami a náklady. [5] [6] [3]
Programy se propojují přes Greenfield API, rozhraní pro jejich vzájemnou komunikaci. E-shop uloží identifikátor invoice k objednávce. O změnách se dozví pomocí webhooku, automatické zprávy ze serveru, jejíž pravost musí podle dokumentace ověřit. Přístupový API klíč má dostat jen potřebná oprávnění pro daný obchod. Když stejná zpráva dorazí znovu, nesmí obchod poslat druhou knihu. Ani návrat zákazníka na děkovací stránku sám nedokazuje platbu. Po výpadku je potřeba porovnat vlastní záznamy se stavem faktur a skutečnými úhradami. [7]
Lightning Network umožňuje platit přes platební kanály bez samostatného zápisu každé platby do bloku. Vlastní uzel musí být dostupný a mít příchozí likviditu: prostor v kanálech, kterým mohou prostředky doputovat k vám. Jeho provoz proto vyžaduje průběžnou správu. Lze využít pomoc s likviditou, směnu mezi platebními sítěmi nebo úschovní službu, která ovládá prostředky za zákazníka. Tyto možnosti ale mají rozdílná oprávnění, poplatky a rizika. Nápis BTCPay Server na platební stránce sám neříká, kterou obchod používá, ani nezaručuje úspěch každé platby. [8]
Obnovovací údaje peněženky nejsou zálohou celého obchodu. Vedle klíčů potřebujete také záznamy o fakturách, nastavení a podle zapojení další data. U Lightning je zvlášť nebezpečné spustit uzel ze zastaralého stavu kanálů: nesprávná obnova může ohrozit prostředky. Plánovaný přesun na nový server se liší od obnovy po havárii. Původní uzel se při migraci nesmí dál měnit ani běžet současně s obnovenou kopií. Řiďte se postupem pro konkrétní implementaci. Obnovu Lightning zálohy zkoušejte odděleně od sítě a protistran, aby test nemohl zasáhnout živé kanály. Návod pro Docker, prostředí spouštějící části aplikace v oddělených kontejnerech, se vztahuje právě k tomuto způsobu instalace. [9]
Výhodou je možnost rozhodovat o své platební infrastruktuře. Někdo se však musí starat o aktualizace, přístup správce, služby dostupné z internetu a obnovitelné zálohy. Software si nebere procento z každé platby, ale hosting, hardware, síťové poplatky nebo pomoc s Lightning mohou něco stát. Do systému neukládejte zbytečné osobní údaje zákazníků. Pokud se kniha ztratí nebo ji zákazník vrátí, řeší obchodník reklamaci a vrácení peněz; vývojáři BTCPay Server nejsou rozhodci tohoto obchodu. Přehled faktur pomáhá s evidencí, nenahrazuje však všechny účetní povinnosti. [10] [3] [7]
Pokladna vypadla, peněženka zůstala
E-shop používá jen veřejné údaje externí peněženky a jeho server přestane odpovídat. Již přijaté bitcoinové platby pod kontrolou jejích klíčů tím nezmizí, ale zákazník nemusí otevřít novou platební stránku a obchod nevidí aktuální stav objednávek. Po obnově ověří nastavení příjmu a porovná faktury s peněženkou. Tento příklad neplatí stejně pro tajné klíče ztracené spolu s horkou peněženkou na serveru ani pro obnovu Lightning kanálů ze starých dat.
Pro nejúplnější obraz čtěte toto heslo společně s Bitcoin Payment Processor, Bitcoin Point of Sale, Vlastní úschova, Lightning Network, Merchant Adoption, Bitcoin. Opačným směrem na něj odkazují také Bitcoin Coffee, Transaction Labeling, Bitcoin Payment Processor, Bitcoin Point of Sale.
01Znamená použití BTCPay Server automaticky vlastní úschovu?+
Ne. Zjistěte, kdo ovládá klíče připojené peněženky a jaká oprávnění má server nebo Lightning služba. Pouhé veřejné údaje externí peněženky nedovolují utrácet; horká peněženka či úschovní služba mohou mít jiný model. I bez přístupu ke klíčům může napadená pokladna ukazovat nesprávné adresy.
02Stačí pro obnovu slova ze zálohy peněženky?+
Mohou obnovit odpovídající bitcoinovou peněženku, ale ne seznam faktur, nastavení obchodu nebo automaticky stav Lightning kanálů. Tyto části potřebují vlastní zálohy a postupy. Obnovu otestujte bezpečně; u Lightning nesmí testovací stará kopie komunikovat se sítí jako současný uzel.