Používání DNS ke koordinaci bitcoinových plateb

Matt Corallo navrhl před více než týdnem BIP pro koordinaci provádění plateb v bitcoinech. Provádění plateb bitcoiny vždy představovalo určitou výzvu, pokud jde o koordinaci, a to jak v řetězci, tak mimo něj s protokoly jako Lightning, a to z různých důvodů. Pokud jde o digitální systémy, jako je e-mail nebo platební systémy, jako je Paypal, Cashapp atd., lidé jsou velmi zvyklí na koncept jediného statického identifikátoru. Pokud chcete Johnovi poslat e-mail, stačí napsat „john@[vložte doménu]“. Pokud chcete poslat Johnovi nějaké peníze na Cashapp, stačí poslat platbu @John na Cashapp.

Toto je uživatelská zkušenost, kterou lidé znají, a pokud jde o zakořeněné uživatelské chování a očekávání s věcmi, je neuvěřitelně obtížné donutit je k podstatné nebo prudké změně v jejich chování. Pokud jim předložíte nástroj, který to vyžaduje, představuje to velký stupeň tření a je více než pravděpodobné, že to většinu lidí jednoduše odradí od používání tohoto nástroje.

Platby v řetězci narážejí na problém s tímto očekáváním, ne kvůli neschopnosti mít statický identifikátor (jedinou adresu), ale kvůli důsledkům na soukromí zveřejněním jedné adresy v řetězci a všichni, s nimiž přijdete do styku, tuto abych vám zaplatil. Všichni vaši celou historii plateb a vlastnictví mincí zveřejní. Pokud občas dostáváte peníze jen výjimečně, např. při výplatě za práci nebo vyřizování barových karet s lidmi, není vůbec žádnou zátěží jednoduše otevřít peněženku a vygenerovat novou adresu pro příjem. Pokud však často dostáváte peníze, zejména v případech, kdy o platbu přímo nepožadujete, představuje to vážnou zátěž.

To je důvod, proč byly vytvořeny nástroje jako BTCPay Server, aby se snížila překážka vstupu pro lidi, aby vytvořili potřebnou infrastrukturu pro automatizaci přijímání finančních prostředků, aniž by dělali něco naivního, jako je zveřejnění jediné adresy pro každého, kdo vám platí za opětovné použití. To však vyžaduje provoz serveru, který je neustále dostupný online. I když projekt drasticky snížil laťku potřebného porozumění, stále představuje velkou zátěž pro uživatele, který chce mít pouze možnost pasivně přijímat peníze.

Totéž platí pro Lightning až na horší. Faktura je dobrá pouze na jednorázovou platbu. Na rozdíl od on-chain adresy, kterou lze znovu použít, i když je to hrozná praxe, nelze použít Lightning fakturu. Jakmile bude faktura zaplacena nebo vyprší její platnost, příslušný uzel Lightning odmítne jakýkoli pokus o její zaplacení. Tato dynamika vedla k vytvoření specifikace LNURL a na ní postavených Lightning Addresses. LNURL je protokol pro připojení k HTTP serveru prostřednictvím statické IP adresy, kterou lze jednou sdílet, aby bylo možné získat skutečnou Lightning fakturu k zaplacení ze serveru. V návaznosti na to jsou Lightning Addresses schéma pojmenování nad LNURL strukturované podobně jako e-mailové adresy: John@[doména serveru LNURL].

Všechna tato řešení mají stinné stránky. Požadavek na provozování dalšího softwaru (HTTP server), který zůstává neustále online, kromě vaší bitcoinové peněženky nebo Lightning uzlu; odesláním požadavku na BTCPay/LNURL server unikne IP adresa odesílatele příjemci; spoléhat se na certifikační autority TLS.

Stačí použít DNS

Nástroje HTTP serveru jako LNURL při spárování s Lightning Address používají domény k vyřešení připojení k HTTP serveru. Podobně jsou všechny servery BTCPay konfigurovány s doménami, nikoli pomocí nezpracovaných IP adres. Mattův postřeh je, proč prostě neodstranit závislost na HTTP a nepoužít samotný systém doménových jmen?

DNS umožňuje přidružit TXT záznamy k danému názvu domény a vytvořit tak malé lidské (nebo strojově) čitelné záznamy, které lze dotazovat ze serverů DNS. V kombinaci s Domain Name System Security Extensions (DNSSEC) DNS TXT záznamy poskytují mechanismus, který lze použít k dotazování na platební informace bez režie a zátěže s provozováním HTTP serveru, a také nabízí trochu větší flexibilitu a otevřenost. DNSSEC poskytuje řadu nástrojů pro kryptografické podepisování záznamů DNS, včetně záznamů TXT, s klíči DNS, které jsou vlastní hierarchické struktuře DNS. To poskytuje záruku, že záznam TXT, na který se dotazujete, je záznam podepsaný a distribuovaný na servery DNS nižší úrovně z místního kořenového serveru/klíče.

To přináší skutečnou výhodu DNS jako prostředku pro načítání platebních dat: rozlučte se s požadavkem na provozování HTTP serveru. Záznam TXT může zakódovat bitcoinovou adresu v řetězci (ačkoli BIP to výslovně doporučuje PROTI, pokud nejste schopni pravidelně střídat nové adresy, abyste zabránili opětovnému použití adresy), ale co je důležitější, může také obsahovat nabídku BOLT 12 Lightning.

Tyto záznamy lze načíst z libovolného serveru DNS, vašeho vlastního místního, vašeho ISP, dokonce i veřejného serveru, jako je Google nebo Cloudflare. Z tohoto základního bodu je vyřešen jeden nedostatek řešení založených na HTTP; již neprozradíte svou IP adresu osobě, které se snažíte zaplatit. Nyní, v případě použití DNS vašeho ISP nebo veřejného serveru, jako je Google nebo Cloudflare bez VPN nebo Tor, jim odhalujete svou IP adresu; BIP jasně podporuje podporu pro překlad DNS přes VPN nebo Tor právě z tohoto důvodu.

Kombinace tohoto návrhu s BOLT 12 odstraňuje potřebu spouštět pomocný software, který představuje velmi skutečný bezpečnostní problém pro nenáročné uživatele, a umožňuje vlastnictví domény samotné, aby uživatelům poskytlo vše, co potřebují, aby měli mechanismus pro vyhledání platebních informací pomocí jednoduchého člověka. čitelný identifikátor. BOLT 12 nevyžaduje žádný HTTP server, zpracovává skutečné doručení faktur přes onion směrovaná připojení přímo přes Lightning Network, a podporuje Offers, statický identifikátor, který lze použít k nalezení onion trasy k danému Lightning uzlu. Problém je v tom, že Nabídka je zakódována jako masivní náhodný zdánlivý řetězec jako samotná faktura, což z ní dělá strašlivý člověkem čitelný/použitelný identifikátor, s výjimkou použití QR kódů nebo kopírování a vkládání.

Uložením nabídky do DNS TXT záznamu uživatel potřebuje k provedení platby pouze něčí doménu, kterou zadá do své peněženky, aby mohl načíst TXT záznam, načíst nabídku BOLT 12 a poté provést platbu. Nepotřebují hostovat žádný server ani spouštět jiný software než jejich uzel Lightning, systém DNS za ně zvládá vše, pokud jde o hostování jejich BOLT 12 Nabídněte někoho, koho uživatelé, kteří jim chtějí zaplatit, najdou.

Je to dokonale nedůvěryhodný systém? Ne. Je to mnohem lepší než systémy založené na HTTP? Absolutně. Problém s problémy, jako je tento, je, že existuje určitá očekávání UX a chování, které většina lidí má, pokud se předpokládá, že digitální systémy v jejich myslích fungují. Bez replikace tohoto UX budou velké skupiny lidí jednoduše používat alternativy, které splňují toto očekávání UX. Vzhledem k tomu, že ve skutečnosti, ve snaze vměstnat bitcoiny do škatulky těchto očekávání UX, by cílem návrhu mělo být splnit tyto potřeby uživatelů s minimálním množstvím důvěry, minimálním množstvím zátěže kladené na uživatele a minimálním potenciálem pro ztráta soukromí novými způsoby. Myslím, že Matt's BIP kontroluje všechna tato políčka ve srovnání s existujícími řešeními. 

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