Používanie DNS na koordináciu bitcoinových platieb

Matt Corallo pred viac ako týždňom navrhol BIP na koordináciu platieb za bitcoiny. Uskutočňovanie platieb v bitcoinoch vždy predstavovalo určitú výzvu z hľadiska koordinácie v reťazci aj mimo neho s protokolmi ako Lightning, a to z rôznych dôvodov. Pokiaľ ide o digitálne systémy ako e-mail alebo platobné systémy ako Paypal, Cashapp atď., ľudia sú veľmi zvyknutí na koncept jediného statického identifikátora. Ak chcete poslať Johnovi e-mail, stačí poslať e-mail „john@[vložte doménu]“. Ak chcete poslať Johnovi nejaké peniaze na Cashapp, stačí poslať platbu @John na Cashapp.

Toto je používateľská skúsenosť, ktorú ľudia poznajú, a pokiaľ ide o zakorenené správanie používateľov a očakávania od vecí, je neuveriteľne ťažké prinútiť ich k podstatnej alebo prudkej zmene v ich správaní. Ak im predložíte nástroj, ktorý to vyžaduje, predstavuje to veľký stupeň trenia a je viac než pravdepodobné, že to jednoducho odradí väčšinu ľudí od používania tohto nástroja.

Reťazové platby narážajú na problém s týmto očakávaním nie kvôli neschopnosti mať statický identifikátor (jednu adresu), ale kvôli dôsledkom na súkromie zverejnenia jednej reťazovej adresy a toho, že každý, s kým komunikujete, bude používať túto aby som ti zaplatil. Všetkým vám poskytne celú históriu platieb a vlastníctvo mincí. Ak z času na čas dostávate peniaze len zriedka, napríklad pri platení za prácu alebo pri vybavovaní baru s ľuďmi, nie je vôbec zaťažujúce jednoducho otvoriť peňaženku a vygenerovať si novú adresu, na ktorú budete dostávať. Ak však často dostávate peniaze, najmä v prípadoch, keď o platbu priamo nepožadujete, predstavuje to vážnu záťaž.

To je dôvod, prečo boli vytvorené nástroje ako BTCPay Server, aby sa znížila prekážka vstupu pre ľudí, aby vytvorili potrebnú infraštruktúru na automatizáciu prijímania finančných prostriedkov bez toho, aby robili niečo naivné, ako je zverejnenie jedinej adresy pre každého, kto vám platí za opätovné použitie. To si však vyžaduje spustenie servera, ktorý je neustále dostupný online. Projekt síce drasticky znížil latku potrebného porozumenia, no pre používateľa, ktorý chce mať len možnosť pasívne prijímať peniaze, je stále veľkou záťažou.

To isté platí pre Lightning, ibaže horšie. Faktúra je dobrá len na jednu platbu. Na rozdiel od on-chain adresy, ktorá môže byť znovu použitá, aj keď je to hrozná prax, Lightning faktúru nemožno použiť. Po zaplatení faktúry alebo po uplynutí jej platnosti príslušný uzol Lightning odmietne akýkoľvek pokus o jej zaplatenie. Táto dynamika viedla k vytvoreniu špecifikácie LNURL, ako aj k vytvoreniu Lightning Addresses. LNURL je protokol na pripojenie k serveru HTTP prostredníctvom statickej adresy IP, ktorú je možné zdieľať raz, aby bolo možné získať skutočnú faktúru Lightning na zaplatenie zo servera. Okrem toho sú Lightning Addresses schémou pomenovania nad LNURL štruktúrovanou podobne ako e-mailové adresy: John@[doména servera LNURL].

Všetky tieto riešenia majú nevýhody. Požiadavka na spustenie ďalšej časti softvéru (server HTTP), ktorý zostáva online po celú dobu okrem vašej bitcoinovej peňaženky alebo Lightning uzla; pri požiadavke na BTCPay/LNURL server unikne príjemcovi IP adresa odosielateľa; spoliehať sa na certifikačné autority TLS.

Stačí použiť DNS

Nástroje servera HTTP ako LNURL pri spárovaní s adresou Lightning používajú domény na vyriešenie pripojenia k serveru HTTP. Podobne sú všetky servery BTCPay konfigurované s doménami a nie s použitím nespracovaných IP adries. Mattov pohľad je, prečo jednoducho nevystrihnúť závislosť od HTTP a nepoužiť samotný systém doménových mien?

DNS vám umožňuje priradiť TXT záznamy k danému názvu domény, čím sa vytvárajú malé človekom (alebo strojom) čitateľné záznamy, ktoré možno vyhľadávať zo serverov DNS. V kombinácii s Domain Name System Security Extensions (DNSSEC) DNS TXT záznamy poskytujú mechanizmus, ktorý možno použiť na vyhľadávanie platobných informácií bez réžie a záťaže pri prevádzke HTTP servera, a zároveň ponúkajú o niečo väčšiu flexibilitu a otvorenosť. DNSSEC poskytuje množstvo nástrojov na kryptografické podpisovanie záznamov DNS, vrátane záznamov TXT, s kľúčmi DNS, ktoré sú súčasťou hierarchickej štruktúry DNS. To poskytuje záruku, že záznam TXT, ktorý žiadate, je záznam podpísaný a distribuovaný na servery DNS nižšej úrovne z lokálneho koreňového servera/kľúča.

To prináša skutočnú výhodu DNS ako prostriedku na načítanie platobných údajov: rozlúčte sa s požiadavkou na spustenie HTTP servera. Záznam TXT môže zakódovať bitcoinovú adresu v reťazci (hoci BIP to konkrétne odporúča robiť PROTI, ak nie ste schopní pravidelne striedať nové adresy, aby ste zabránili opätovnému použitiu adresy), ale čo je dôležitejšie, môže obsahovať aj ponuku BOLT 12 Lightning.

Tieto záznamy je možné získať z akéhokoľvek servera DNS, vášho vlastného lokálneho, vášho poskytovateľa internetových služieb, dokonca aj z verejného servera, ako je Google alebo Cloudflare. Z tohto základného bodu je vyriešený jeden nedostatok riešení založených na HTTP; už neprezrádzate svoju IP adresu osobe, ktorej sa snažíte zaplatiť. Teraz, v prípade používania DNS vášho ISP alebo verejného servera, ako je Google alebo Cloudflare bez VPN alebo Tor, im odhaľujete svoju IP adresu; BIP jednoznačne podporuje podporu pre rozlíšenie DNS cez VPN alebo Tor práve z tohto dôvodu.

Kombinácia tohto návrhu s BOLT 12 odstraňuje potrebu spúšťania doplnkového softvéru, ktorý predstavuje veľmi skutočný bezpečnostný problém pre nenáročných používateľov, a umožňuje vlastníctvo samotnej domény, aby používateľom poskytlo všetko, čo potrebujú, aby mali mechanizmus na nájdenie platobných informácií pomocou jednoduchého človeka. čitateľný identifikátor. BOLT 12 nevyžaduje žiadny HTTP server, spracováva skutočné doručenie faktúr cez cibuľové smerované pripojenia priamo cez Lightning Network a podporuje Offers, statický identifikátor, ktorý možno použiť na nájdenie cibuľovej cesty k danému Lightning uzlu. Problém je v tom, že Ponuka je zakódovaná ako masívny náhodný zdanlivý reťazec ako samotná faktúra, čo z nej robí hrozný ľudský čitateľný/použiteľný identifikátor, s výnimkou použitia QR kódov alebo kopírovania a vkladania.

Uložením Ponuky do DNS TXT záznamu potrebuje používateľ na uskutočnenie platby iba doménu niekoho, ktorú zadá do svojej peňaženky, aby mohol načítať TXT záznam, načítať ponuku BOLT 12 a potom uskutočniť platbu. Nepotrebujú hostiť žiadny server ani spúšťať žiadny softvér okrem svojho Lightning uzla, systém DNS za nich spraví všetko, pokiaľ ide o hosťovanie ich BOLT 12 Ponúknite niekoho, koho môžu používatelia, ktorí im chcú zaplatiť, nájsť.

Je to úplne nedôveryhodný systém? Nie. Je to oveľa lepšie ako systémy založené na HTTP? Absolútne. Problém s problémami, ako je tento, je, že existuje určité očakávanie UX a správania, ktoré väčšina ľudí má, pokiaľ majú digitálne systémy fungovať v ich mysliach. Bez replikácie tohto UX budú veľké skupiny ľudí jednoducho používať alternatívy, ktoré spĺňajú tieto očakávania UX. Vzhľadom na skutočnosť, že pri pokuse vtesnať bitcoiny do rámca týchto očakávaní UX by cieľom návrhu malo byť uspokojiť tieto potreby používateľov s minimálnou dávkou dôvery, minimálnym množstvom záťaže kladenej na používateľov a minimálnym potenciálom pre stratu súkromia novými spôsobmi. Myslím si, že Matt's BIP kontroluje všetky tieto políčka v porovnaní s existujúcimi riešeniami. 

Zdroj: https://bitcoinmagazine.com/technical/using-dns-to-coordinate-bitcoin-payments