paint-brush
ZkDemocracy: nol bilimga asoslangan anonim ovoz berish uchun eng oson yechimtomonidan@thebojda
Yangi tarix

ZkDemocracy: nol bilimga asoslangan anonim ovoz berish uchun eng oson yechim

tomonidan Laszlo Fazekas6m2024/09/16
Read on Terminal Reader

Juda uzoq; O'qish

Vakillik demokratiyasi muammolarga duch kelmoqda va yangi, to'g'ridan-to'g'ri echimlar kerak. zkDemocracy - bu odamlarga qarorlar qabul qilishda ishtirok etish imkonini beruvchi anonim raqamli ovoz berishni arzon narxlarda tashkil qilishimiz mumkinligini ko'rsatadigan kontseptsiyaning isbotidir.
featured image - ZkDemocracy: nol bilimga asoslangan anonim ovoz berish uchun eng oson yechim
Laszlo Fazekas HackerNoon profile picture


Vakillik demokratiyasiga asoslangan hozirgi tizimlarimiz ko‘plab muammolarga duch kelmoqda. Aslida, ular demokratiyaning asosiy maqsadini, ya'ni ko'pchilik irodasi ustunligini ta'minlashni amalga oshira olmasligi ma'nosida disfunktsiyadir.


Quyidagi diagramma hamma uchun tanish:

manba: https://commons.wikimedia.org/wiki/File:How_to_Steal_an_Election_-_Gerrymandering.svg


Saylov okruglarini strategik tanlash orqali, saylovchilarning ozchilik qismini qo'llab-quvvatlagan bo'lsa ham, partiya g'alaba qozonishi mumkin. Ammo bu ko'p muammolardan faqat bittasi. Siyosatda ishtirok etish uchun katta mablag‘ talab etiladi, bu esa siyosiy tizimni moliyaviy ta’sirga nisbatan zaif holga keltiradi. Biz demokratik deb hisoblagan tizimlar saylovchilarga emas, balki shaxsiy manfaatlar va korporatsiyalarga xizmat qiladi (qarang: Davlatni qo'lga olish ).


Yechim odamlarning to'g'ridan-to'g'ri demokratiya yoki suyuq demokratiya orqali qaror qabul qilishda ishtirok etishi bo'ladi. Albatta, haqiqatda har bir masala bo'yicha qog'ozda referendum o'tkazish mumkin emas, chunki bunday ovoz berish juda ko'p resurs talab qiladi. Lekin qog‘ozda ovoz berishning anonimligi va xavfsizligini ta’minlagan holda, buni raqamli usulda, arzon narxlarda hal qilish mumkin emasmi? Taxminan ikki yil oldin bu savolga javob izlay boshladim. Men tanga mikserlari va nol bilimga ega bo'lmagan texnologiya bilan tanishdim.


Tanga mikserlarining mohiyati blokcheyn tranzaktsiyalarini kuzatib bo'lmaydigan qilishdir. Bunday mikser katta hovuz kabi ishlaydi. Foydalanuvchilar tangalarni bir tomonga qo'yib, boshqa tomondan yechib olishadi. Eng muhimi shundaki, biz kim boshqa tomondan qaysi tangani yechib olishini bilmaymiz, shu bilan birga har bir kishi faqat o'zi qo'ygan pul miqdorini olishi mumkin. Anonim ovoz berish uchun aynan shunday tizim zarur. Har bir inson o'z ovozini berishi mumkin bo'lgan saylov byulletenini oladi. Biz kim qaysi ovoz berganini bilmaymiz, lekin har bir kishi faqat bitta ovoz berganiga amin bo'lishimiz mumkin.


Shunday qilib, men uning qanday ishlashini tushunish uchun eng mashhur tanga mikserlaridan biri Tornado Cashning manba kodini o'rganib chiqdim. Bu haqda ham maqola yozildi. Funktsiyani to'liq tushunganimdan so'ng, men asosiy xususiyatlarni ajratib oldim va zk-merkle-tree nomli kutubxona yaratdim, undan har kim anonim ovoz berish uchun foydalanishi mumkin. Ovoz berish kontseptsiyasini tasdiqlovchi ilova ham ishlab chiqildi, bu har kimga o'z tizimini yaratishga imkon beradi. Tizim blokcheynga asoslangan, bu esa uni xavfsiz qiladi, biroq ayni paytda undan foydalanishni juda qiyinlashtiradi. Mavjud blokcheyn asosida quradigan bo'lsak, aqlli kontraktni o'rnatish va shunga o'xshash muammolar kabi tranzaksiya xarajatlari paydo bo'ladi, o'z blokcheynimizni ishlatish esa yanada katta muammodir. Men blokcheynsiz va bir necha daqiqada sozlash oson bo‘lgan yechimni xohlardim. Shunday qilib, zkDemokratiya paydo bo'ldi.


zkDemocracy an'anaviy NodeJS va MySQL-ga asoslangan tizim bo'lib, uni bir necha daqiqada sozlash mumkin. U mustaqil rejimda ishlashi mumkin, bu erda zkDemocracy to'liq backend qatlami yoki kattaroq tizimga integratsiyalashgan xizmat sifatida xizmat qiladi.


Bunday tizimda paydo bo'ladigan birinchi savol: MySQL ma'lumotlar bazasi orqali blokcheyn darajasidagi xavfsizlikni qanday ta'minlash mumkin?


Blokcheyn ideal, chunki u faqat qo‘shimchalar uchun mo‘ljallangan yechim bo‘lib, unda o‘zgartirishlar kiritish mumkin emas, bu esa ko‘pchilik firibgarlik turlarini filtrlashga yordam beradi. Aslida, aldashning yagona yo'li - kimdir boshqalar nomidan ovoz berishi yoki bunga vakolati bo'lmagan kishining ovoz berishidir. Saylovchini to'g'ri identifikatsiya qilish orqali bu imkoniyatlarning oldini olish mumkin. Agar bu ta'minlansa, firibgarlik nazariy jihatdan imkonsiz bo'lib qoladi. Shuning uchun, agar biz MySQL-ning tepasida faqat qo'shimcha tizimni o'rnata olsak, biz blockchain taklif qiladigan xavfsizlik darajasini ta'minlay olamiz.


zkDemocracy-ning muammoni hal qilish usuli shundaki, ma'lumotlar bazasi jadvallariga kiritilgan har bir qator "tekshiruv nuqtasi xeshi" bilan bog'langan. Bu maydonlar ma'lumotlari va oldingi qatorning nazorat nuqtasi xeshidan tashkil topgan keccak256 xeshi. Blokcheynga o'xshab, nazorat punkti xeshlari zanjirlangan, shuning uchun agar ma'lumotlar bazasida biror narsa o'zgartirilsa, o'zgartirilganidan keyin har bir qatorning nazorat nuqtasi xeshi ham o'zgaradi.


Kimdir saylovchi sifatida ro‘yxatdan o‘tganda yoki ovoz berganda, tizim raqamli imzolangan, tranzaksiya yakunlanganligini tasdiqlovchi kvitansiyani taqdim etadi. Ushbu chekda nazorat punkti xeshi ham mavjud. Ovoz berishdan so‘ng a’zolar ro‘yxati ham, ovozlar ro‘yxati ham to‘liq ochiq bo‘lganligi sababli, istalgan o‘zgarishlar yuz bergan yoki yo‘qligini tekshirishi mumkin, agar shunday bo‘lsa, buni tasdiqlash uchun server tomonidan taqdim etilgan raqamli imzolangan chekdan foydalanishi mumkin.


Roʻyxatga olingan saylovchilarning joriy roʻyxati va oxirgi nazorat punkti xeshini istalgan vaqtda tizimdan olish mumkin, bu esa har qanday firibgarlikni darhol isbotlash imkonini beradi. Bundan tashqari, blokcheynga nazorat nuqtasi xeshini muntazam ravishda (masalan, har 10 daqiqada) yozish imkoniyati mavjud, bu esa blokcheynga xesh yozilgandan keyin maʼlumotlar bazasini oʻzgartirib boʻlmasligini taʼminlaydi. Ushbu yechim blokcheyn darajasida to'liq xavfsizlikni ta'minlaydi, chunki ma'lumotlarni buzishga urinish blokcheyndagi xeshni ham o'zgartirishni talab qiladi.


Yuqoridagi yechim bilan tizimni boshqarish uchun tanish texnologiyalardan (masalan, MySQL klasterlari) foydalanganda blokcheyn tomonidan taqdim etilgan xavfsizlik darajasiga erishish mumkinligi aniq.


Men Semaphore kutubxonasidan nol bilim dalillarini yaratish va tekshirish uchun foydalanardim. U zk-merkle-tree-ga o'xshab ishlaydi, lekin tekshirilgan va kattaroq ishlab chiquvchilar bazasiga ega.


zkDemokratiya ikkita asosiy elementga ega: guruh va ovoz berish. Guruh - bu ma'lum bir saylov okrugi saylovchilari, kompaniya aktsiyadorlari va boshqalar kabi saylovchilar to'plamidir. Xuddi shunday, ovoz berish ham ovoz berish hodisasini ifodalaydi, bu prezidentlik saylovi, referendum, korporativ qarorlar qabul qilish va hokazo bo'lishi mumkin. Bitta ovoz berish tadbirida bir nechta guruhlar ishtirok etishi mumkin; masalan, referendumda barcha saylov okruglari ovoz berishda ishtirok etadi va natijalar umumlashtiriladi. Xuddi shunday, guruh bir nechta ovoz berish tadbirlarida ishtirok etishi mumkin. Demak, saylov okruglari bo‘yicha guruhlar tuzilsa, bu guruhlar bilan bir necha bor referendum o‘tkazish mumkin. Boshqacha aytganda, guruhlar va ovoz berishlar nm munosabatiga ega.


Keling, zkDemocracy tizimi asosida tuzilgan referendum qanday ishlashini ko'rib chiqaylik.


Birinchi qadam ovoz berish huquqiga ega odamlarni aniqlashdir. Qog'ozdagi ovoz berish tizimida bu har bir saylov okrugiga o'sha okrug bo'yicha saylov huquqiga ega bo'lganlar ro'yxatini taqdim etish orqali amalga oshiriladi. Kimdir ovoz berish uchun kelganida, uning ismi ro'yxatdan kesib tashlanadi va u faqat bir marta ovoz berishi mumkinligiga ishonch hosil qiladi.


Raqamli yoki onlayn ovoz berishda bu jarayon ancha sodda. Agar davlat raqamli identifikatsiyaning qandaydir shaklini taqdim etsa, tekshirish to'liq avtomatlashtirilishi mumkin. Saylovchi o'z nomi bilan ma'lumotlar bazasida qayd etilgan yagona majburiyatni taqdim etadi. Bu nol bilim isbotining yarmi. Saylovchilar ro‘yxati va majburiyatlari ochiq bo‘lib, nazorat punkti xeshi bilan himoyalangan va raqamli imzolangan, tasdiqlangan ro‘yxatni istalgan vaqtda so‘rash mumkin. Shuning uchun, agar identifikatsiya tizimi xavfsiz bo'lsa, bu bosqichda firibgarlik nazariy jihatdan imkonsiz bo'lib qoladi.


Raqamli identifikatsiya hujjati taqdim etilmasa, qo'lda identifikatsiya qilish talab qilinadi. Bu shaxsan yoki hatto video konferentsiya tizimi orqali amalga oshirilishi mumkin (garchi onlayn identifikatsiya ilg'or chuqur soxta texnologiya tufayli o'z xavfi bor). Identifikatsiyani bir kishi amalga oshirishi mumkin, lekin bir nechta tasodifiy tanlangan shaxslar tomonidan amalga oshirilsa, u xavfsizroq bo'ladi. Agar identifikatsiyaning videoyozuvi amalga oshirilsa va cheklangan vaqt davomida saqlangan bo'lsa, qo'shimcha xavfsizlik ta'minlanadi. Ushbu davrda mustaqil tashkilot firibgarlik ehtimolini minimallashtirish uchun yozuvlarni tasodifiy tekshirishlari mumkin. Ushbu identifikatsiya tizimi qog'ozdagi ovoz berishda qo'llaniladigan tizim kabi xavfsizroq yoki undan ham xavfsizroqdir.


Ro‘yxatga olish muvaffaqiyatli yakunlangandan so‘ng, jarayon juda oddiy bo‘ladi, chunki saylovchi o‘zi xohlagancha ovoz berishda qatnashishi mumkin. Tekshirish punkti xeshi va hamma uchun ochiq bo'lgan saylovchilar ro'yxati tufayli faqat ovoz berish huquqiga ega shaxslar ovoz berishi ta'minlanadi. Har bir ovoz berish hodisasi uchun barcha ma'lumotlar bazasi ham ochiq va nazorat punkti xeshi bilan himoyalangan. Har kim ma'lum bir ovoz haqiqiy saylovchidan kelganligini nol bilim dalillari yordamida tekshirishi mumkin va har bir saylovchi istalgan vaqtda o'z ovozi ma'lumotlar bazasida to'g'ri yozilganligini tekshirishi mumkin. Saylovchilar tizim tomonidan taqdim etilgan elektron raqamli imzo cheki orqali har qanday firibgarlikni osongina isbotlashlari mumkin.


Ko'rinib turibdiki, zkDemocracy tizimi bilan ma'lumotlar bazalarining ochiq va hamma uchun ochiq bo'lishini hamda ma'lumotlar bazasining izchilligi isbotlanishi mumkin, shu bilan birga, saylovchilarning anonimligini saqlab qolish mumkin.


Tizim GitHub-da quyidagi URL manzilida mavjud: https://github.com/TheBojda/zkdemocracy


Men ishlab chiquvchilar uchun maxsus maqola yozishni rejalashtirmoqdaman. Ayni paytda, ishlab chiquvchining batafsil hujjatlari va tizimdan foydalanish uchun namuna kodini GitHub-da topish mumkin.


Ushbu ishlanmadan maqsadim demokratik tizimlarimizni yaxshilash uchun texnologik sharoitlar mavjudligini isbotlashdir. Bu imkoniyatlardan qanday foydalana olishimiz o'zimizga bog'liq...