Bitcoin төлбөрийг зохицуулахын тулд DNS ашиглах

Мэтт Коралло долоо хоног гаруйн өмнө Bitcoin-ийн төлбөр тооцоог зохицуулахад зориулсан BIP санал болгов. Биткойн төлбөр хийх нь янз бүрийн шалтгааны улмаас гинжин ба сүлжээнээс гадуур Lightning гэх мэт протоколуудтай уялдаа холбоог хангахад бэрхшээлтэй тулгарсаар ирсэн. Имэйл, Paypal, Cashapp гэх мэт төлбөрийн систем гэх мэт дижитал системүүдийн тухайд хүмүүс нэг статик танигч гэсэн ойлголтод маш их дассан байдаг. Хэрэв та Жон руу имэйл илгээхийг хүсвэл "john@[domain оруулах]" гэж имэйлээр илгээнэ үү. Хэрэв та Cashapp дээр Жон руу мөнгө илгээхийг хүсвэл @John on Cashapp руу төлбөрөө илгээхэд л болно.

Энэ бол хүмүүсийн сайн мэддэг хэрэглэгчийн туршлага бөгөөд аливаа зүйлтэй холбоотой хэрэглэгчийн зан төлөв, хүлээлтийн тухай ярихад тэднийг зан төлөвт нь мэдэгдэхүйц эсвэл огцом өөрчлөлт оруулахад маш хэцүү байдаг. Хэрэв та тэдэнд үүнийг шаарддаг багажийг өгөх юм бол энэ нь маш их үрэлтийг бий болгодог бөгөөд ихэнх хүмүүсийг энэ хэрэгслийг ашиглахаас татгалзаж магадгүй юм.

Сүлжээний төлбөрүүд нь статик танигч (нэг хаяг) байх боломжгүйгээс биш харин сүлжээн дэх ганц хаягийг нийтэлж, таны харилцдаг хүн бүр үүнийг ашиглах нь нууцлалын нөлөөллөөс болж ийм хүлээлттэй тулгардаг. чамд төлөх. Энэ нь таны бүх төлбөрийн түүх, зоос эзэмших эрхийг хүн бүрийн нүдэнд харагдуулдаг. Хэрэв та хааяа хааяа мөнгө авдаг бол, өөрөөр хэлбэл ажлын хөлсөө авах юм уу, хүмүүстэй харьцахдаа мөнгө авч байгаа бол зүгээр л түрийвчээ онгойлгож, хүлээн авах шинэ хаяг үүсгэх нь тийм ч их дарамт биш юм. Хэрэв та байнга мөнгө авч байгаа бол, ялангуяа төлбөрийг шууд нэхэмжлэхгүй байгаа тохиолдолд энэ нь ноцтой дарамт болно.

Ийм учраас дахин ашиглахын тулд төлбөр төлж байгаа хүн бүрт нэг хаяг байршуулах гэх мэт гэнэн зүйл хийлгүйгээр мөнгө хүлээн авах ажлыг автоматжуулахад шаардлагатай дэд бүтцийг бий болгоход хүмүүст нэвтрэх саадыг багасгахын тулд BTCPay сервер гэх мэт хэрэгслүүдийг бий болгосон. Гэсэн хэдий ч энэ нь байнга онлайн байдаг сервер ажиллуулах шаардлагатай болдог. Төсөл нь шаардлагатай ойлголтыг эрс багасгасан ч мөнгө хүлээн авахыг хүссэн хэрэглэгчдэд маш их ачаалалтай хэвээр байна.

Аянгын хувьд ч мөн адил, муугаас бусад тохиолдолд. Нэхэмжлэх нь зөвхөн нэг удаагийн төлбөрт тохиромжтой. Хэдийгээр аймшигтай практик байсан ч дахин ашиглах боломжтой сүлжээн дэх хаягаас ялгаатай нь Lightning нэхэмжлэхийг ашиглах боломжгүй. Нэхэмжлэхийг төлсөн эсвэл хугацаа нь дууссаны дараа тухайн Lightning зангилаа үүнийг төлөх оролдлогыг үгүйсгэх болно. Энэхүү динамик нь LNURL-ийн тодорхойлолтыг бий болгоход хүргэсэн бөгөөд түүний дээр суурилуулсан Lightning хаягуудыг бий болгосон. LNURL нь статик IP-ээр дамжуулан HTTP сервертэй холбогдох протокол бөгөөд үүнийг серверээс төлөх Lightning нэхэмжлэхийг авахын тулд нэг удаа хуваалцах боломжтой. Дээрээс нь Lightning хаягууд нь LNURL-ийн дээд талд байрлах Жон@[LNURL серверийн домэйн] имэйл хаягтай төстэй бүтэцтэй нэршлийн схем юм.

Эдгээр бүх шийдэл нь сул талуудтай. Таны Bitcoin түрийвч эсвэл Lightning зангилаанаас гадна байнга онлайн хэвээр байх нэмэлт програм хангамжийг (HTTP сервер) ажиллуулах шаардлага; BTCPay/LNURL серверт хүсэлт гаргах нь илгээгчийн IP хаягийг хүлээн авагч руу алддаг; TLS гэрчилгээний газруудад найдаж байна.

Зүгээр л DNS ашиглана уу

LNURL гэх мэт HTTP серверийн хэрэгслийг Lightning хаягтай хослуулсан тохиолдолд HTTP сервертэй холболтыг шийдвэрлэхийн тулд домэйнуудыг ашигладаг. Үүний нэгэн адил BTCPay серверүүд нь түүхий IP хаяг ашиглахаас илүүтэй домэйнээр тохируулагдсан байдаг. Мэттийн ойлголт бол яагаад HTTP-ийн хамаарлыг хасч, Домэйн Нэрийн Системийг өөрөө ашиглаж болохгүй гэж?

DNS нь TXT бичлэгийг өгөгдсөн домэйн нэртэй холбох боломжийг олгодог бөгөөд DNS серверүүдээс асууж болох хүний ​​(эсвэл машин) уншигдах жижиг бичлэгүүдийг үүсгэдэг. Домэйн нэрийн системийн аюулгүй байдлын өргөтгөлүүд (DNSSEC)-тэй хослуулан DNS TXT бичлэгүүд нь HTTP серверийг ажиллуулахад ачаалал, ачаалалгүйгээр төлбөрийн мэдээллийг асуухад ашиглах механизмыг бий болгож, илүү уян хатан, нээлттэй байдлыг санал болгодог. DNSSEC нь DNS-ийн шаталсан бүтцэд хамаарах DNS түлхүүрүүдтэй TXT бичлэг зэрэг DNS оруулгуудыг криптографаар гарын үсэг зурах хэд хэдэн хэрэгслээр хангадаг. Энэ нь таны асууж буй TXT бичлэг нь локал эх сервер/түлхүүрээс доод түвшний DNS серверт гарын үсэг зурж, түгээсэн бичлэг мөн гэсэн баталгааг өгдөг.

Энэ нь төлбөрийн өгөгдлийг татах хэрэгсэл болох DNS-ийн жинхэнэ ашиг тусыг авчирдаг: HTTP сервер ажиллуулах шаардлагад баяртай гэж хэлээрэй. TXT бичлэг нь сүлжээн дэх Bitcoin хаягийг кодлох боломжтой (хэдийгээр та хаягийг дахин ашиглахаас сэргийлэхийн тулд шинэ хаягийг тогтмол эргүүлэх чадваргүй бол BIP үүнийг хийхээс ЭСРЭГ зөвлөж байна), гэхдээ хамгийн чухал нь энэ нь BOLT 12 Lightning санал агуулж болно.

Эдгээр бүртгэлийг ямар ч DNS серверээс, өөрийн дотоод серверээс, ISP-ээс, тэр байтугай Google эсвэл Cloudflare зэрэг нийтийн серверээс татаж авч болно. Энэ үндсэн цэгээс HTTP-д суурилсан шийдлүүдийн нэг дутагдал арилсан болно; Та төлбөр төлөх гэж байгаа хүндээ IP хаягаа өгөхөө больсон. Одоо, хэрэв таны ISP-ийн DNS эсвэл Google эсвэл Cloudflare зэрэг нийтийн серверийг VPN, Torгүйгээр ашиглаж байгаа бол та тэдэнд IP хаягаа харуулах болно; BIP нь тусгайлан энэ шалтгааны улмаас VPN эсвэл Tor ашиглан DNS-ийн нягтралыг дэмжихийг дэмждэг.

Энэхүү саналыг BOLT 12-той хослуулснаар боловсронгуй бус хэрэглэгчдийн аюулгүй байдлын асуудалд онцгой анхаарал хандуулдаг туслах программ хангамжийг ажиллуулах шаардлагагүй болж, зөвхөн домэйн эзэмших нь хэрэглэгчдэд төлбөрийн мэдээллийг энгийн хүний ​​тусламжтайгаар олох механизмтай болоход шаардлагатай бүх зүйлийг өгөх боломжийг олгодог. унших боломжтой танигч. BOLT 12 нь HTTP сервер шаарддаггүй бөгөөд Lightning сүлжээгээр шууд сонгины чиглүүлсэн холболтоор бодит нэхэмжлэхийг илгээдэг бөгөөд Lightning зангилаа руу сонгины замыг олоход ашиглаж болох статик танигч Offers-ийг дэмждэг. Асуудал нь уг саналыг нэхэмжлэх шиг санамсаргүй мэт санамсаргүй том мөр болгон кодлосон нь QR код ашиглах эсвэл хуулж буулгахаас бусад тохиолдолд хүн унших боломжтой/ашиглахуйц аймшигтай танигч болгодог.

Саналыг DNS TXT бичлэгт хадгалснаар хэрэглэгч төлбөр хийхдээ хэн нэгний домэйныг түрийвч рүүгээ оруулах шаардлагатай бөгөөд ингэснээр TXT бичлэгийг татаж авах, BOLT 12 саналыг татаж авах, дараа нь төлбөрөө хийх боломжтой болно. Тэд өөрсдийн Lightning зангилаанаас өөр ямар ч сервер байршуулах эсвэл ямар нэгэн программ хангамж ажиллуулах шаардлагагүй, DNS систем нь тэдний BOLT 12 Offer-ийг байршуулах хүртэл бүх зүйлийг зохицуулдаг.

Энэ бүрэн итгэлгүй систем мөн үү? Үгүй. Энэ нь HTTP дээр суурилсан системээс хамаагүй дээр гэж үү? Мэдээжийн хэрэг. Иймэрхүү асуудалтай холбоотой асуудал бол дижитал системүүд оюун ухаанд нь ажиллах ёстой ихэнх хүмүүсийн UX болон зан төлөвийн талаар тодорхой хүлээлт байдагт оршино. Энэ UX-г хуулбарлахгүйгээр том бүлэг хүмүүс UX-ийн хүлээлтийг хангасан хувилбаруудыг ашиглах болно. Бодит байдлыг харгалзан биткойныг эдгээр UX хүлээлтийн хайрцагт багтаахыг оролдохдоо дизайны зорилго нь хамгийн бага итгэлцэл, хэрэглэгчдэд хүлээлгэх хамгийн бага ачаалал, хамгийн бага боломжоор хэрэглэгчийн хэрэгцээг хангах явдал байх ёстой. шинэ арга замаар хувийн нууцыг алдах. Мэттийн BIP нь одоо байгаа шийдлүүдтэй харьцуулахад эдгээр бүх хайрцгийг шалгадаг гэж би бодож байна. 

Эх сурвалж: https://bitcoinmagazine.com/technical/using-dns-to-coordinate-bitcoin-payments