Hindi
सीक्रेट बैलट – स्नार्कीजेएस हैकथॉन यूसी बर्कले में आरडीआई द्वारा आयोजित: इस हैकथॉन के बारे में अधिक जानकारी के लिए https://zk-hacking.org/tracks/zk_snarkyjs_track पर जाएं। (जीथब रीडमी फ़ाइल से) हम एक निजी वोटिंग zkapp लागू करते हैं। विचार एकल चरण निजी मतदान को लागू करने का प्रयास करना था, जैसा कि ट्विटर पर कहा गया है – जहां प्रतिभागियों को पहले मतदान करने के लिए पंजीकरण करने की आवश्यकता नहीं है, जैसा कि मिनाटौर में किया गया था। पंजीकरण चरण के साथ मतदान प्रक्रिया में, उपयोगकर्ताओं को यह सुनिश्चित करना आवश्यक है कि उनसे पहले पर्याप्त संख्या में लोगों ने मतदान के लिए साइन अप किया है, लेकिन मतदान नहीं किया है और यह भी कि उनके पंजीकरण और मतदान लेनदेन के बीच पर्याप्त समय बीत चुका है, ताकि उनका वोट निजी हो सके। . यह कठिन हो सकता है. इसके अलावा, यह ख़राब UX जैसा लग रहा था। हमारे कार्यान्वयन में, एक केंद्रीकृत पार्टी (आइए अब ईमानदारी से मान लें) मतदान अनुबंध स्थापित करती है (जिसे सीक्रेटबैलॉट कहा जाता है), जिसमें राज्य चर शामिल हैं: बेतरतीब ढंग से चुना गया मतपत्र_आईडी मर्कल वृक्ष की जड़ जिसमें मतदाताओं की सूची में मौजूद सार्वजनिक कुंजियों का हैश शामिल है मर्कल पेड़ की जड़ विभिन्न विकल्पों के लिए वोट संग्रहीत करती है एक मर्कलेमैप, जो शून्यकर्ताओं (हैश (निजी_कुंजी, मतपत्र_आईडी)) को संग्रहीत करता है, जो रिकॉर्ड करता है कि मतदान के लिए कुंजी का उपयोग किया गया है या नहीं। वोट देने के लिए, कुंजी जोड़ी (एसके, पीके) (गुप्त/निजी कुंजी, सार्वजनिक कुंजी) को नियंत्रित करने वाला उपयोगकर्ता अनुबंध को साबित करता है कि: हैश(पीके) मतदाता सूची में है pk, sk से बना है हैश (एसके, बैलट_आईडी) का उपयोग पहले वोट देने के लिए नहीं किया गया है: nullifierMap[हैश(एसके, बैलट_आईडी)] = 0। इन तीनों का एक साथ तात्पर्य यह है कि उपयोगकर्ता एक ऐसे sk को नियंत्रित करता है जो वोट करने के लिए योग्य है लेकिन अभी तक वोट करने के लिए इसका उपयोग नहीं किया गया है (ध्यान दें कि हम इन हैश द्वारा लीक की गई जानकारी की मात्रा पर कुछ अनुमान लगा रहे हैं, खासकर यदि उसी sk का उपयोग किया जाता है) एकाधिक वोटों के लिए)। उपयोगकर्ता को उस विकल्प के लिए सही गवाह और वोटों की संख्या भी प्रदान करनी होगी, जिसे वह वोट देना चाहता है डेवलपर संपर्क जानकारी GitHub: https://github.com/goforashutos/secretballot