Skip to content

Instantly share code, notes, and snippets.

@pepakriz
Last active January 8, 2024 22:20
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pepakriz/f7b5f1e8f75b176a1f117569fed462da to your computer and use it in GitHub Desktop.
Save pepakriz/f7b5f1e8f75b176a1f117569fed462da to your computer and use it in GitHub Desktop.

Qerko přináší experimentální podporu pro BTC platby (verze pro bitcoinery od programátora)

Nejnovější verze Qerko aplikace umožňuje platit bitcoinem přes lightning network protokol. Tato funkce je úmyslně skrytá, avšak není obtížné ji odemknout. Chceme nejdřív získat zpětnou vazbu z menšího vzorku lidí (BTC komunity, fanoušků,...). Také víme, že současné řešení má určité omezení a technické nedokonalosti, na kterých budeme dále pracovat. Zkrátka pokud chcete BTC platbu v Qerku používat a dokážete tolerovat nedostatky, nebo ještě lépe s námi kooperovat na jejich odstranění, odemkněte funkcionalitu následujícím způsobem: https://qerko.freshdesk.com/support/solutions/articles/80001077943-jak-zaplatit-bitcoinem

Jak BTC platby v Qerku fungují, co to přesně znamená pro zákazníka, co pro podnik, proč je tato funkce označena jako experimentální a co plánujeme do budoucna? Pojďme se na to podívat více do hloubky.

Aktuální řešení

Platby přijímáme přes Bitcoin Lightning Network, díky čemuž jsou platby rychlé a levné. Nejedná se tedy o klasické on-chain transakce, ale na základě aktuálního směřování BTC plateb vše se posouvá k lightning platbám. Samotnou platbu nám zprostředkovává platební brána Confirmo, která zároveň řeší i konverzi na CZK. Podnik, ve kterém je platba uskutečněna dostane své peníze tak, jak je zvyklá - v korunách českých a tedy nemusí řešit žádné dodatečné účetní úkony a pro Qerko to znamená možnost aktivovat BTC platby plošně ve všech podnicích naráz. Pro podnik se tedy vůbec nic nemění, kromě toho, že v reportech plateb uvidí v kolonce typ platby mimo plateb kartou, stravenou atd i BTC (ano, jsme si vědomi, že toto řešení zklame pravověřné bitcoinery, ale nějak se začít musí. Podrobnosti dále...).

Jako zákazníkovi vám v průběhu platby bude vygenerovaná BTC LN invoice (faktura) a v momentě její úhrady bude platba zprocesována s pokladním systémem. Tuto fakturu zaplatíte z vaší oblíbené BTC LN peněženky.

Problém č. 1 - selhané platby

U plateb v restauracích Qerko koordinuje stav platby se stavem účtu v pokladně. Zjednodušeně popsáno - když se zákazník rozhodne zaplatit stůl, Qerko u pokladny ověří, zda požadavek na zaplacení odpovídá stavu v pokladně (položky a jejich cena) a následně zahájí proces platby (v případě nějakého nesouladu se platební proces vůbec nespustí). Poté v závislosti na platební metodě probíhá authorizace peněz. V případě klasické platby kartou čekáme, až nám platební brána potvrdí authorizaci požadované částky. Zákazník tento stav vidí v bankovnictví jako "blokaci" a Qerko má v tuto chvíli za úkol buď blokaci potvrdit, nebo zrušit. Provede tedy potvrzení platby v pokladně a na základě odpovědi pokladny blokaci buď definitivně potvrdí, nebo vrátí zákazníkovi.

Z principiálních důvodů bohužel nelze zajistit, aby pokladna během potvrzení platby vždy zareagovala úspěchem. Příčin může být spostu - položka už není na účtu, nesedí částka, vypadlo internetové spojení... V dřívějších dobách využívalo Qerko v komunikaci s pokladnou "zamykání účtu", které minimalizovalo riziko chybových stavů během potvrzování paltby. Bohužel s rostoucím počtem plateb a zaváděním nových platebních metod, nebo rostoucímu výskytu 3DS ověření se časové okénko mezi založením platby a potvrzením platby zvětšilo natolik, že nebylo akceptovatelné po celou dobu blokovat účet v pokladně.

Proč je selhaná platba problém pro Bitcoinovou paltbu? V BTC lightning protokolu neexistuje možnost odeslané peníze zablokovat někde "mezi". Peníze buď protečnou, nebo neprotečnou. (Problematiky znalí geekové zde začnou namítat, bohužel potenciální řešení nejsou ještě odladěné a hlavně je nepodporuje naše brána - HODL invoices). Zcela jednoduše se tedy můžeme dostat do stavu, kdy peníze přitekly do Qerka, ale platba selhala v pokladně. Jenže jak tyto peníze vrátit zákazníkovi, když nemáme jeho "zpětnou" lightning fakturu?

Jako dočasné řešení jsme zvolili akumulaci zaplacené částky přímo v Qerku. Když platba přes BTC selže, můžete:

  1. zkusit zaplatit znovu a placená částka se poníží o předchozí neúspěšné platby.
  2. v uživatelském profilu vygenerovat zpětnou fakturu a tu přijmout pomocí vaší BTC peněženky. Tento postup bohužel přenáší kurzovní riziko na zákazníka, jelikož naakumulovaná částka je v CZK. Je to nedostatek, se kterým nejsme spokojeni.

Problém č. 2 - konverze na CZK

Já jako bitcoiner si přeju, aby bylo možné nejen s bitcoinem platit, ale aby ho příjemce použil dál. Ať už ke štosování, nebo k dalším btc platbám a nedocházelo tak k odlivu BTC z trhu tím, že se bude konvertovat na CZK.

Z důvodu konverze na CZK je platba o něco dražší, zanáší zákazníkovi do procesu kurzovní riziko a každá platba tlačí kurz bitcoinu dolů, protože platební brána ho musí prodat.

Problém č. 3 - tok peněz, legislativa

Aby v České republice mohlo Qerko fungovat (procesovat "cizí" peníze), musí mít licenci od ČNB. Sice nejsem příliš znalý detailu, co Qerku licence umožňuje a co ne, přesto se obávám strachu vedení firmy, že si bitcoinem zbytečně zaděláváme na další starosti, vysvětlování atd. přestože bychom vše dělali v souladu s nařízeními. Už teď nám implementace byrokratických požadavků žere značnou část úsilí, tak proč si ještě nenaložit více, že?

Každopádně díky konverzi na CZK zatím nic nového řešit nemusíme.

Budoucnost BTC v Qerku

V našem vývojovém týmu Qerka jsme bitcoinu nakloneni, každý z nás do nějaké míry HODLuje a téma Qerko plateb přes bitcoin bylo vždy brané jako něco, co se jednou přihodí, ať cheme nebo ne. Ikdyž - pojďme si to říct na rovinu - v současné době to firmě žádný finanční benefit nepřinese. O to víc jsem však rád, že Qerko do toho jde i přes výše uvedené nedostatky. Nějak se začít musí.

Líbilo by se mi, kdybychom se jednoho dne dostali do fáze, kdy si restaurace zvolí, jestli chce BTC platby vyplácet v CZK nebo v BTC. Stejně tak i spropitné - každá obsluha může preferovat něco jiného.

U plateb z BTC na BTC bychom nemuseli využívat platební bránu třetí strany. Mohli bychom provozovat vlastní BTC LN uzel a mít tak transakce více pod kontrolou nebo ho využívat jako prostředníka pro "zamykání" peněz.

Tok peněz nemusí být teoreticky přes Qerko. Bylo by skvělé, kdyby se BTC odesílal přímo od zákazníka do podniku a Qerko vystupovalo jen jako vzdálený pozorovatel, který poskytuje data, sjednocuje operace napříč pokladními systémy a přidává do ekosystému funkce, na které jste z Qerka zvyklí. Možná by se tím vyřešil i problém č. 3.

Pokud jste technicky zdatní v oblasti BTC LN, budu rád za jakékoliv rady, tipy, spolupráci atd.

TW: @pepakriz
nostr: npub1t24anjd3ztxdd9e3dwz55pmyep8ynvvc2srdd99mwqtudmunnqesu43elx

Předchozí text není oficiálním stanoviskem od Qerko. Jedná se jen o "nahlédnutí pod pokličku" od programátora stojícím za implementací BTC plateb.

@theerror
Copy link

theerror commented Jun 8, 2023

Mozna by stalo za to udelat nejaky brainstorming s HydraNode, kteri provozuji platebni brany na platbu BTC. Mozna by z toho obe strany mohli neco ziskat? Nemam s nimi nic spolecneho, ale casto je vidavam, ptaji se, zjistuji moznosti. Mozna by jste si vzajemne mohli nejak pomoc z technickeho pohledu reseni tech plateb, docasneho blokovani, vraceni a tak s vyzuzitim jejich infra.

@pepakriz
Copy link
Author

pepakriz commented Jun 8, 2023

@theerror Díky za feedback. Ano, určitě HydraNode nebo jiné projekty oslovím, jakmile se současný stav trochu usadí a bude mentální kapacita na další přemýšlení 👍

@DanielUhlik
Copy link

Uvažujete aj nad podporou RGB / Taproot assets v prípade vlastného node? Minimálne Tether má v pláne vydať USDT na RGB do konca roka. Tieto stablecoiny by mohli vyriešiť problémy s kurzom a odlivu BTC z trhu kvôli predaju za fiat. Pre niektoré podniky by mohlo byť aj prijateľnejšie držať USD vo forme stablecoinu ako BTC. Predpokladám aj menšie problémy s inbound liquidity. Legislatívne sa v tom moc nevyznám, na stablecoiny by sa mala zameriavať MiCA

@pepakriz
Copy link
Author

pepakriz commented Jun 8, 2023

@DanielUhlik zní to jako něco, co bychom minimálně měli vzít do úvahy. Díky za zdroj, přidávám si na seznam materiálů ke studiu.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment