BITCOIN

बिटकॉइन पर कुशल zk-SNARKs: तकनीकी व्याख्याता

यह पोस्ट पहली बार माध्यम पर प्रकाशित हुई थी।

ग्रोथ16 को sCrypt में लागू करें

हाल ही में, हमने sCrypt में zk-SNARKs लागू किया है और इसे बिटकॉइन पर चलाया है। अधिक विशेष रूप से, हमने Groth16 एल्गोरिथ्म के सत्यापनकर्ता को लागू किया है, जो शून्य-ज्ञान प्रमाण को सीधे श्रृंखला पर सत्यापित करने की अनुमति देता है। यह लेख बिटकॉइन पर अन्य उन्नत क्रिप्टोग्राफिक तकनीकों को कुशलतापूर्वक कार्यान्वित करने के तरीके पर प्रकाश डालते हुए कुछ विवरणों में गोता लगाता है।

अण्डाकार वक्रों पर बिलिनियर पेयरिंग

Groth16 अत्यंत आनंद मिलता है छोटे सबूत आकार और तेजी से सत्यापन । पेयरिंग ग्रोथ16 वेरिफायर एल्गोरिथम का सबसे महंगा हिस्सा है। हमने इष्टतम एटी जोड़ी चुना है, क्योंकि इसकी दक्षता अभ्यास में प्रदर्शित की गई है।

हम इसे युग्मन-अनुकूल अण्डाकार वक्र BN256 (जिसे ALT_BN128 और BN254 के रूप में भी जाना जाता है) पर लागू करते हैं। हम BN256 का उपयोग करते हैं क्योंकि यह 1) लोकप्रिय ZKP टूल जैसे ZoKrates और Circom द्वारा समर्थित है; 2) अन्य ब्लॉकचेन के साथ संगत जैसे एथेरियम ।

मिलर एल्गोरिथम का उपयोग इष्टतम एटी पेयरिंग की कुशलतापूर्वक गणना करने के लिए किया जाता है। उच्च स्तर पर, इसके दो भाग होते हैं: मिलर लूप: दो इनपुट बिंदुओं के एक मध्यवर्ती फ़ंक्शन की गणना करें f(P, क्यू) पुनरावर्ती रूप से अंतिम घातांक: बढ़ाएँ f एक बड़ी शक्ति के लिए c

समीकरण 1 इष्टतम खाया जोड़ी

3 जोड़ियों को कम करें सत्यापनकर्ता को यह जांचना होगा कि निम्नलिखित समीकरण सही है या नहीं। समीकरण 2

हमारे पास है कुल 4 जोड़े। हम देखते हैं कि α और β ज्ञात हैं सेटअप पर, इसलिए हम प्रीकंप्यूट दूसरी जोड़ी बनाते हैं और इसे

के हिस्से के रूप में जोड़ते हैं सत्यापन कुंजी , एक जोड़ी को सहेजना

एक एकल अंतिम घातांक Eq। 1 के रूप में फिर से लिखा जा सकता है:

)

इसे निम्नलिखित के रूप में लिखा जा सकता है, क्योंकि e बिलिनियर है और हम एक्सपोनेंट ( को स्थानांतरित कर सकते हैं -1) ब्रैकेट में।

बिलिनियर

Eq में प्लगिंग। 2, हम प्राप्त करते हैं:

अंतिम घातांक की गणना करने के बजाय बार, जो हैं कम्प्यूटेशनल रूप से गहन, हमें केवल इसे करना है एक बार अंत में।

लूप अनोलिंग

स्क्रिप्ट/स्क्रिप्ट में, सभी if शाखाओं को लेनदेन में शामिल किया जाता है और लेनदेन शुल्क लगाया जाता है, भले ही उन्हें बाद में निष्पादित किया गया हो या नहीं। मिलर लूप में, sᵢ संकलन समय पर जाना जाता है। हम लूप को अनियंत्रित करते हैं और लाइन 5 और 7 पर ब्रांचिंग से बचते हैं।

एक्सटेंशन फील्ड ट्विस्ट

दो बिंदुओं की कंप्यूटिंग जोड़ी को सीधे विस्तार क्षेत्र पर अंडाकार वक्र अंकगणित की आवश्यकता होती है Fq¹², जो बेहद जटिल और अक्षम है। हम इसे Fq² पर मैप करने के लिए एक मोड़ का उपयोग करते हैं , दक्षता में काफी सुधार। कृपया देखें अधिक विस्तृत विवरण के लिए यह लेख ।

सारांश

इन सभी अनुकूलन के बाद, हम जोड़ी के स्क्रिप्ट आकार में कटौती करने में सक्षम हैं

से ) 5 एमबी । हम इसे और कम करने के लिए और अनुकूलन तलाश रहे हैं। कोड का पूर्ण संस्करण पर पाया जा सकता है) गिटहब ।

परंपरागत रूप से, प्रोग्राम को अनुकूलित करने का उद्देश्य इसके सीपीयू को कम करना है और / या स्मृति उपयोग। बिटकॉइन में जहां Eq. 1 of Optimal Ate Pairingलेनदेन शुल्क स्क्रिप्ट वाले लेनदेन के आकार के समानुपाती होता है, इसका उद्देश्य स्क्रिप्ट का आकार कम करना है। इस उद्देश्य के खिलाफ अनुकूलन कैसे करें यह एक दिलचस्प खुला विषय है जो नए शोध के योग्य है।

देखें: बीएसवी ग्लोबल ब्लॉकचैन कन्वेंशन प्रेजेंटेशन, बीएसवी पर स्मार्ट कॉन्ट्रैक्ट्स और कंप्यूटेशन

चौड़ाई=”560″ ऊंचाई=”315″ फ्रेमबॉर्डर=”0″ अनुमति पूर्णस्क्रीन=”अनुमति पूर्णस्क्रीन”> optimal Ate pairing equation

होते हों बिटकॉइन में नए हैं? CoinGeek की जाँच करें

होते शुरुआती के लिए बिटकॉइनoptimal Ate pairing equation खंड , बिटकॉइन के बारे में अधिक जानने के लिए अंतिम संसाधन गाइड – जैसा कि मूल रूप से सतोशी नाकामोटो द्वारा कल्पना की गई थी – और ब्लॉकचेन। हों

Back to top button
%d bloggers like this: