Hisobga asoslangan blokcheynlarda anonimlik haqida

Biz kriptovalyutalarda anonimlik mavzusiga uzoq vaqtdan beri qiziqib kelganmiz va bu sohadagi texnologiyalarning rivojlanishini kuzatishga harakat qilamiz. Bizning maqolalarimizda biz allaqachon ishlash tamoyillarini batafsil muhokama qildik maxfiy operatsiyalar Moneroda, shuningdek, amalga oshirildi qiyosiy ko'rib chiqish Ushbu sohada mavjud bo'lgan texnologiyalar. Biroq, bugungi kunda barcha anonim kriptovalyutalar Bitcoin tomonidan taklif qilingan ma'lumotlar modeliga asoslanadi - Unsent Transaction Output (keyingi o'rinlarda UTXO). Ethereum kabi hisob qaydnomasiga asoslangan blokcheynlar uchun anonimlik va maxfiylikni amalga oshirish uchun mavjud echimlar (masalan, Mobius yoki Aztek) UTXO modelini aqlli shartnomalarda takrorlashga harakat qildi.

2019 yil fevral oyida Stenford universiteti va Visa Research tadqiqotchilari guruhi ozod qilindi oldindan chop etish "Zether: aqlli kontraktlar dunyosida maxfiylik tomon." Mualliflar birinchi bo‘lib hisob qaydnomalariga asoslangan blokcheynlarda anonimlikni ta’minlashga yondashuvni taklif qilishdi va aqlli shartnomaning ikkita versiyasini taqdim etdilar: maxfiy (qoldiqlar va o‘tkazma summalarini yashirish) va anonim (qabul qiluvchi va jo‘natuvchini yashirish) tranzaksiyalar uchun. Biz taklif etilayotgan texnologiyani qiziqarli deb topamiz va uning dizayni bilan baham ko'rishni istaymiz, shuningdek, hisob qaydnomasiga asoslangan blokcheynlarda anonimlik muammosi nima uchun juda qiyin deb hisoblanishi va mualliflar uni to'liq hal qila olganmi yoki yo'qmi haqida gaplashmoqchimiz.

Ushbu ma'lumotlar modellarining tuzilishi haqida

UTXO modelida tranzaktsiya "kirishlar" va "chiqishlar" dan iborat. "Chiqish" ning to'g'ridan-to'g'ri analogi sizning hamyoningizdagi veksellardir: har bir "chiqish" ma'lum bir denominatsiyaga ega. Biror kishiga to'laganingizda (tranzaksiyani tuzganingizda) siz bir yoki bir nechta "chiqish" ni sarflaysiz, bu holda ular tranzaksiyaning "kirishlari" bo'ladi va blokcheyn ularni sarflangan deb belgilaydi. Bunday holda, to'lovni oluvchi (yoki o'zingiz, agar o'zgartirish kerak bo'lsa) yangi yaratilgan "chiqishlarni" oladi. Buni sxematik tarzda quyidagicha ifodalash mumkin:

Hisobga asoslangan blokcheynlarda anonimlik haqida

Hisobga asoslangan blokcheynlar sizning bank hisobingiz kabi tuzilgan. Ular faqat sizning hisobingizdagi summa va o'tkazma summasi bilan shug'ullanadi. Hisobingizdan ma'lum miqdorni o'tkazganingizda, siz hech qanday "chiqish" ni yoqmaysiz, tarmoq qaysi tangalar sarflanganini va qaysi biri sarflanmaganligini eslashi shart emas. Eng oddiy holatda, tranzaksiyani tekshirish jo'natuvchining imzosi va uning balansidagi miqdorni tekshirishga to'g'ri keladi:

Hisobga asoslangan blokcheynlarda anonimlik haqida

Texnologiyani tahlil qilish

Keyinchalik, Zether tranzaksiya summasini, oluvchini va jo'natuvchini qanday yashirishi haqida gaplashamiz. Uning ishlash tamoyillarini ta'riflaganimizda, biz maxfiy va anonim versiyalardagi farqlarni qayd etamiz. Hisobga asoslangan blokcheynlarda maxfiylikni ta'minlash ancha oson bo'lganligi sababli, anonimlashtirish tomonidan qo'yilgan ba'zi cheklovlar texnologiyaning maxfiy versiyasiga tegishli bo'lmaydi.

Balans va transfer summalarini yashirish

Balanslarni shifrlash va Zetherda summalarni o'tkazish uchun shifrlash sxemasidan foydalaniladi El Gamal. U quyidagicha ishlaydi. Elis Bobni yubormoqchi bo'lganida b manzil bo'yicha tangalar (uning ochiq kaliti) Y, u tasodifiy raqamni tanlaydi r va miqdorni shifrlaydi:

Hisobga asoslangan blokcheynlarda anonimlik haqida
qayerda C - shifrlangan miqdor, D - bu miqdorni ochish uchun zarur bo'lgan yordamchi qiymat; G - elliptik egri chiziqdagi sobit nuqta, maxfiy kalitga ko'paytirilganda ochiq kalit olinadi.

Bob bu qiymatlarni olganida, ularni xuddi shu tarzda shifrlangan balansiga qo'shadi, shuning uchun ham bu sxema qulay.

Xuddi shunday, Elis o'z balansidan bir xil qiymatlarni olib tashlaydi, xuddi shunday Y umumiy kalitingizdan foydalanadi.

Qabul qiluvchi va jo'natuvchini yashirish

UTXO-da "chiqishlarni" aralashtirish kriptovalyutalarning dastlabki kunlaridan boshlanadi va jo'natuvchini yashirishga yordam beradi. Buning uchun jo'natuvchining o'zi pul o'tkazmasini amalga oshirayotganda blokcheyndagi tasodifiy "chiqishlarni" to'playdi va ularni o'zi bilan aralashtiradi. Keyinchalik, u "chiqishlar" ni halqali imzo bilan imzolaydi - bu kriptografik mexanizm unga jo'natuvchining tangalari jalb qilingan "chiqishlar" orasida mavjudligiga tasdiqlovchini ishontirishga imkon beradi. Aralashtirilgan tangalarning o'zi, albatta, sarflanmaydi.

Biroq, biz qabul qiluvchini yashirish uchun soxta natijalarni yarata olmaymiz. Shuning uchun, UTXO-da har bir "chiqish" o'zining noyob manziliga ega va u kriptografik ravishda ushbu tangalarni qabul qiluvchining manzili bilan bog'langan. Ayni paytda yagona chiqish manzili va qabul qiluvchi manzili o'rtasidagi aloqani uning maxfiy kalitlarini bilmasdan aniqlashning hech qanday usuli yo'q.

Hisobga asoslangan modelda biz bir martalik manzillardan foydalana olmaymiz (aks holda u allaqachon "chiqish" modeli bo'ladi). Shuning uchun, qabul qiluvchi va jo'natuvchi blokcheyndagi boshqa hisoblar orasida aralashtirilishi kerak. Bunday holda, shifrlangan 0 tanga aralash hisobvaraqlardan debetlanadi (yoki oluvchi aralashgan bo'lsa, 0 qo'shiladi), ularning haqiqiy balansini o'zgartirmaydi.

Yuboruvchi ham, oluvchi ham har doim doimiy manzilga ega bo'lganligi sababli, bir xil manzillarga o'tkazishda aralashtirish uchun bir xil guruhlardan foydalanish kerak bo'ladi. Bunga misol bilan qarash osonroq.

Aytaylik, Elis Bobning xayriya ishlariga hissa qo'shishga qaror qildi, lekin transfer tashqi kuzatuvchiga anonim bo'lishini afzal ko'radi. Keyin, jo'natuvchi sohasida o'zini yashirish uchun u Odam va Adelning hisoblariga ham kiradi. Va Bobni yashirish uchun qabul qiluvchi maydoniga Ben va Billning hisoblarini qo'shing. Keyingi hissa qo'shib, Elis yoniga Aleks va Amandani, Bobning yoniga Bryus va Benjen yozishga qaror qildi. Bunday holda, blokcheynni tahlil qilganda, ushbu ikki tranzaktsiyada faqat bitta kesishgan ishtirokchilar juftligi mavjud - Elis va Bob, bu tranzaktsiyalarni anonimlashtiradi.

Hisobga asoslangan blokcheynlarda anonimlik haqida

Tranzaksiya poygalari

Yuqorida aytib o'tganimizdek, hisob qaydnomasiga asoslangan tizimlarda balansingizni yashirish uchun foydalanuvchi o'z balansini va o'tkazma summasini shifrlaydi. Shu bilan birga, u o'z hisobidagi qoldiq salbiy bo'lmaganligini isbotlashi kerak. Muammo shundaki, tranzaktsiyani yaratishda foydalanuvchi o'zining joriy hisobi holatiga dalil yaratadi. Agar Bob Elisga bitim yuborsa va u Elis yuborganidan oldin qabul qilinsa nima bo'ladi? Keyin Elisning tranzaksiyasi haqiqiy emas deb hisoblanadi, chunki balansni tasdiqlovchi hujjat Bobning bitimi qabul qilinishidan oldin tuzilgan.

Hisobga asoslangan blokcheynlarda anonimlik haqida

Bunday vaziyatda kelgan birinchi qaror, operatsiya amalga oshirilgunga qadar hisobni muzlatishdir. Ammo bu yondashuv mos emas, chunki taqsimlangan tizimda bunday muammoni hal qilishning murakkabligiga qo'shimcha ravishda, anonim sxemada kimning hisobini blokirovka qilish aniq bo'lmaydi.

Ushbu muammoni hal qilish uchun texnologiya kiruvchi va chiquvchi operatsiyalarni ajratadi: sarf-xarajatlar balansga darhol ta'sir qiladi, tushum esa kechiktirilgan ta'sirga ega. Buning uchun "davr" tushunchasi - belgilangan o'lchamdagi bloklar guruhi kiritilgan. Joriy "davr" blok balandligini guruh o'lchamiga bo'lish yo'li bilan aniqlanadi. Tranzaktsiyani qayta ishlashda tarmoq darhol jo'natuvchining balansini yangilaydi va qabul qiluvchining mablag'larini saqlash idishida saqlaydi. Yig'ilgan mablag'lar oluvchiga faqat yangi "davr" boshlanganda taqdim etiladi.

Natijada, foydalanuvchi mablag'lar qanchalik tez-tez qabul qilinishidan qat'i nazar, tranzaktsiyalarni yuborishi mumkin (albatta, uning balansi imkon qadar). Davr hajmi bloklarning tarmoq orqali qanchalik tez tarqalishiga va tranzaksiya blokga qanchalik tez kirishiga qarab belgilanadi.

Ushbu yechim maxfiy o'tkazmalar uchun yaxshi ishlaydi, ammo anonim operatsiyalar bilan, keyinroq ko'rib chiqamiz, bu jiddiy muammolarni keltirib chiqaradi.

Takroriy hujumlardan himoya

Hisobga asoslangan blokcheynlarda har bir tranzaksiya jo‘natuvchining shaxsiy kaliti bilan imzolanadi, bu tekshiruvchini tranzaktsiya o‘zgartirilmaganiga va ushbu kalit egasi tomonidan yaratilganiga ishontiradi. Ammo uzatish kanalini tinglayotgan tajovuzkor ushbu xabarni ushlab, xuddi shu ikkinchi xabarni yuborsa nima bo'ladi? Tekshiruvchi tranzaktsiya imzosini tekshiradi va uning muallifligiga ishonch hosil qiladi va tarmoq yana jo'natuvchi balansidan xuddi shu miqdorni o'chiradi.

Bu hujum takroriy hujum deb ataladi. UTXO modelida bunday hujumlar ahamiyatli emas, chunki tajovuzkor sarflangan natijalardan foydalanishga harakat qiladi, bu o'z-o'zidan haqiqiy emas va tarmoq tomonidan rad etiladi.

Buning oldini olish uchun tranzaktsiyaga tasodifiy ma'lumotlarga ega maydon o'rnatilgan bo'lib, u nonce yoki oddiygina "tuz" deb ataladi. Tuz bilan tranzaktsiyani qayta yuborayotganda, tekshiruvchi nonce avval ishlatilganmi yoki yo'qligini tekshiradi va agar bo'lmasa, tranzaktsiyani haqiqiy deb hisoblaydi. Blockchain-da foydalanuvchi noxushliklarining butun tarixini saqlamaslik uchun odatda birinchi tranzaksiyada u nolga tenglashtiriladi va keyin bittaga oshiriladi. Tarmoq faqat yangi tranzaksiyaning noncesi oldingisidan birma-bir farq qilishini tekshirishi mumkin.

Anonim o'tkazma sxemasida tranzaksiyaning noaniqligini tekshirish muammosi paydo bo'ladi. Nonceni jo'natuvchining manziliga aniq bog'lay olmaymiz, chunki bu transferni anonimlashtirishga olib keladi. Shuningdek, biz barcha ishtirokchi hisoblarning noaniqlariga bittasini qo'sha olmaymiz, chunki bu boshqa o'tkazmalarga zid kelishi mumkin.

Zether mualliflari "davr" ga qarab nonce kriptografik tarzda yaratishni taklif qilishadi. Masalan:

Hisobga asoslangan blokcheynlarda anonimlik haqida
u x jo'natuvchining maxfiy kalitidir va Gepoch — "Zether +" ko'rinishidagi qatorni xeshlash orqali olingan davr uchun qo'shimcha generator. Endi muammo hal qilinganga o'xshaydi - biz jo'natuvchining noaniqligini oshkor qilmaymiz va ishtirok etmagan ishtirokchilarning noaniqligiga aralashmaymiz. Ammo bu yondashuv jiddiy cheklovni qo'yadi: bitta hisob "davr" uchun bittadan ortiq tranzaksiyani jo'natishi mumkin emas. Ushbu muammo, afsuski, hal qilinmagan va hozirda Zether-ning anonim versiyasini, bizning fikrimizcha, foydalanish uchun deyarli mos kelmaydi.

Nolinchi bilim isbotlarining murakkabligi

UTXO-da jo'natuvchi tarmoqqa salbiy miqdorni sarflamaganligini isbotlashi kerak, aks holda havodan yangi tangalar ishlab chiqarish mumkin bo'ladi (nima uchun bu mumkin, biz avvalgilaridan birida yozgan edik. maqolalar). Va shuningdek, aralashgan tangalar orasida unga tegishli mablag'lar borligini isbotlash uchun "kirishlar" ni halqali imzo bilan imzolang.

Hisobga asoslangan blokcheynning anonim versiyasida isbotlash uchun iboralar ancha murakkab. Yuboruvchi buni tasdiqlaydi:

  1. Yuborilgan miqdor ijobiy;
  2. Balans salbiy bo'lib qoladi;
  3. Yuboruvchi o'tkazma summalarini to'g'ri shifrlagan (shu jumladan nol);
  4. Balansdagi qoldiq faqat jo'natuvchi va oluvchi uchun o'zgaradi;
  5. Yuboruvchi o'z hisobining shaxsiy kalitiga egalik qiladi va u aslida jo'natuvchilar ro'yxatida (ishtirokchilar orasida);
  6. Tranzaksiyada ishlatiladigan Nonce to'g'ri tuzilgan.

Bunday murakkab dalil uchun mualliflar aralashmani ishlatadilar Bulletproof (Aytgancha, mualliflardan biri uni yaratishda ishtirok etgan) va Sigma protokoli, ular Sigma-o'qlar deb ataladi. Bunday bayonotning rasmiy isboti juda qiyin ish bo'lib, texnologiyani amalga oshirishga tayyor odamlar sonini sezilarli darajada cheklaydi.

Nima oxir-oqibat?

Bizning fikrimizcha, Zether-ning hisobga asoslangan blokcheynlarga maxfiylik keltiradigan qismidan hozir foydalanish mumkin. Ammo hozirda texnologiyaning anonim versiyasi undan foydalanishga jiddiy cheklovlar qo'yadi va uni amalga oshirishning murakkabligi. Biroq, mualliflar uni bir necha oy oldin chiqarganini e'tiborsiz qoldirmaslik kerak va ehtimol, kimdir bugungi kunda mavjud muammolarga yechim topadi. Axir, fan shunday amalga oshiriladi.

Manba: www.habr.com

a Izoh qo'shish