विषय सूची
200x
सीपीयू पर अधिकतम गति वृद्धि
90%
लेटेंसी में एनटीटी का योगदान
32-बिट
इंटीजर पाइपलाइन उपयोग
1. परिचय
ज़ीरो-नॉलेज प्रूफ़्स (ZKPs) एक क्रांतिकारी क्रिप्टोग्राफ़िक प्रोटोकॉल का प्रतिनिधित्व करते हैं जो एक पक्ष (प्रूवर) को गुप्त इनपुट के ज्ञान का प्रदर्शन करने में सक्षम बनाता है, बिना गुप्त जानकारी के बारे में कोई जानकारी प्रकट किए। इस क्षमता ने निजी क्रिप्टोकरेंसी, सत्यापन योग्य कम्प्यूटेशन आउटसोर्सिंग और ब्लॉकचेन स्केलिंग समाधानों में परिवर्तनकारी अनुप्रयोगों को सक्षम किया है। ZKP अपनाने में मूलभूत चुनौती प्रूफ जनरेशन के लिए आवश्यक पर्याप्त कम्प्यूटेशनल ओवरहेड रही है, जो जटिल गणनाओं के लिए आधुनिक सीपीयू पर कई मिनट ले सकती है।
कोर कम्प्यूटेशनल कर्नेल की डेटा-समानांतर प्रकृति के कारण जीपीयू ZKPs के लिए प्राथमिक एक्सेलेरेशन प्लेटफॉर्म के रूप में उभरे हैं। जैसा कि चित्र 1 में दिखाया गया है, जीपीयू-एक्सेलेरेटेड ZKPs सीपीयू कार्यान्वयन की तुलना में 200x तक की गति वृद्धि प्रदर्शित करते हैं। हालाँकि, इन प्रभावशाली लाभों के बावजूद, आधुनिक जीपीयू आर्किटेक्चर पर प्रदर्शन बाधाओं और स्केलेबिलिटी सीमाओं की एक व्यवस्थित विशेषता साहित्य में उल्लेखनीय रूप से अनुपस्थित रही है।
2. पृष्ठभूमि और संबंधित कार्य
2.1 ज़ीरो-नॉलेज प्रूफ़ फंडामेंटल्स
ज़ीरो-नॉलेज प्रूफ़्स इस सिद्धांत पर काम करते हैं कि एक प्रूवर एक वेरिफायर को एक साक्षी $w$ के ज्ञान के लिए एक सार्वजनिक फ़ंक्शन $f$ और इनपुट $x$ के लिए आश्वस्त कर सकता है जैसे कि $f(x,w) = y$, बिना $w$ के बारे में कोई जानकारी प्रकट किए। Groth16 प्रोटोकॉल, जो इस अध्ययन का आधार बनता है, संक्षिप्त प्रमाण और उप-मिलीसेकंड सत्यापन समय प्रदान करता है, जिससे यह वास्तविक दुनिया के अनुप्रयोगों के लिए विशेष रूप से उपयुक्त हो जाता है।
2.2 क्रिप्टोग्राफी में जीपीयू एक्सेलेरेशन
क्रिप्टोग्राफ़िक प्रिमिटिव्स के जीपीयू एक्सेलेरेशन में पिछले कार्य ने महत्वपूर्ण प्रदर्शन सुधार प्रदर्शित किए हैं। [19,30,31,42] जैसे अध्ययनों ने दिखाया है कि जीपीयू की समानांतर आर्किटेक्चर क्रिप्टोग्राफ़िक ऑपरेशनों, विशेष रूप से बड़े पैमाने की गणितीय गणनाओं वाले लोगों के लिए उपयुक्त है। हालाँकि, इन प्रयासों ने मुख्य रूप से अलग-अलग कर्नेल पर ध्यान केंद्रित किया है न कि एंड-टू-एंड सिस्टम प्रदर्शन पर।
3. मेथडोलॉजी और प्रायोगिक सेटअप
3.1 ZKProphet फ्रेमवर्क
ZKProphet जीपीयू पर ZKP प्रदर्शन का मूल्यांकन करने के लिए एक व्यापक विश्लेषण फ्रेमवर्क प्रदान करता है। यह फ्रेमवर्क कोर कम्प्यूटेशनल कर्नेल का व्यवस्थित रूप से मूल्यांकन करता है, जिसमें मल्टी-स्केलर गुणन (MSM) और नंबर-थ्योरेटिक ट्रांसफॉर्म (NTT) शामिल हैं, जो सामूहिक रूप से ZKP जनरेशन में कम्प्यूटेशनल वर्कलोड के 95% से अधिक के लिए जिम्मेदार हैं।
3.2 बेंचमार्क कॉन्फ़िगरेशन
हमारा प्रायोगिक सेटअप NVIDIA की Ampere और Ada Lovelace पीढ़ियों के आधुनिक जीपीयू आर्किटेक्चर का उपयोग करता है। हम विभिन्न कंस्ट्रेंट काउंट्स में प्रदर्शन का मूल्यांकन करते हैं, जो सिद्ध की जा रही गणना की जटिलता का प्रतिनिधित्व करते हैं। बेंचमार्क में सिंथेटिक वर्कलोड और क्रिप्टोकरेंसी और ब्लॉकचेन डोमेन से वास्तविक दुनिया के ZKP अनुप्रयोग दोनों शामिल हैं।
4. प्रदर्शन विश्लेषण परिणाम
4.1 कर्नल प्रदर्शन ब्रेकडाउन
हमारे विश्लेषण से प्रदर्शन बाधाओं में एक महत्वपूर्ण बदलाव का पता चलता है। जबकि पिछले शोध ने MSM ऑपरेशन को अनुकूलित करने पर भारी ध्यान केंद्रित किया था, हम पाते हैं कि आधुनिक अनुकूलित MSM कार्यान्वयन के साथ, NTT ऑपरेशन अब प्रूफ जनरेशन लेटेंसी के 90% तक के लिए जिम्मेदार हैं। यह एक महत्वपूर्ण प्रतिमान बदलाव का प्रतिनिधित्व करता है जिसके लिए NTT अनुकूलन पर नए सिरे से ध्यान देने की आवश्यकता है।
चित्र 1: प्रूवर स्पीडअप बनाम कंस्ट्रेंट्स की संख्या
प्रायोगिक परिणाम प्रदर्शित करते हैं कि जीपीयू कार्यान्वयन सीपीयू बेसलाइन पर पर्याप्त गति वृद्धि प्रदान करते हैं, जिसमें बड़े कंस्ट्रेंट सेट के लिए 200x सुधार के साथ प्रदर्शन लगभग रैखिक रूप से कंस्ट्रेंट काउंट के साथ स्केल होता है।
4.2 स्केलेबिलिटी विश्लेषण
हम देखते हैं कि ZKP गणनाएं विशेष रूप से जीपीयू की 32-बिट इंटीजर पाइपलाइन पर निष्पादित होती हैं और अंतर्निहित डेटा निर्भरताओं के कारण सीमित निर्देश-स्तरीय समानांतरता प्रदर्शित करती हैं। यह मौलिक रूप से प्रदर्शन स्केलिंग को उपलब्ध इंटीजर कम्प्यूट यूनिट्स के आधार पर सीमित करता है, न कि फ्लोटिंग-पॉइंट क्षमताओं पर।
5. तकनीकी कार्यान्वयन विवरण
5.1 गणितीय आधार
ZKPs में कोर गणितीय संचालन बड़े प्राइम फ़ील्ड्स पर फाइनाइट फ़ील्ड अंकगणित पर निर्भर करते हैं। NTT ऑपरेशन, जो फाइनाइट फ़ील्ड्स में फूरियर ट्रांसफॉर्म का एक विशेष रूप है, को इस प्रकार व्यक्त किया जा सकता है:
$$X_k = \sum_{j=0}^{n-1} x_j \cdot \omega^{jk} \mod p$$
जहाँ $\omega$ मॉड्यूलो $p$ एकता का एक आदिम $n$-वाँ मूल है, और $p$ एक बड़ी अभाज्य संख्या है। व्युत्क्रम NTT को इसी तरह $\omega^{-1}$ के साथ परिभाषित किया गया है।
5.2 कोड कार्यान्वयन
निम्नलिखित स्यूडोकोड जीपीयू आर्किटेक्चर के लिए एक अनुकूलित NTT कार्यान्वयन प्रदर्शित करता है:
__global__ void ntt_kernel(uint32_t *a, uint32_t *roots, int n) {
int tid = threadIdx.x + blockIdx.x * blockDim.x;
int stride = blockDim.x * gridDim.x;
for (int i = tid; i < n/2; i += stride) {
int j = bit_reverse(i, log2(n));
if (i < j) {
swap(a[i], a[j]);
}
}
__syncthreads();
for (int len = 2; len <= n; len <<= 1) {
int half = len >> 1;
for (int i = tid; i < n; i += stride) {
if ((i & (len - 1)) < half) {
uint32_t u = a[i];
uint32_t v = mul_mod(a[i + half], roots[len + (i & (half - 1))]);
a[i] = add_mod(u, v);
a[i + half] = sub_mod(u, v);
}
}
__syncthreads();
}
}
6. भविष्य के अनुप्रयोग और दिशाएँ
जीपीयू पर ZKPs का अनुकूलन कई अनुप्रयोग संभावनाएं खोलता है। ब्लॉकचेन प्रौद्योगिकी में, अनुकूलित ZKPs अधिक कुशल रोलअप समाधान और गोपनीयता-संरक्षण स्मार्ट कॉन्ट्रैक्ट्स को सक्षम कर सकते हैं। सत्यापन योग्य मशीन लर्निंग के लिए, जैसा कि [32] जैसे कार्यों में खोजा गया है, जीपीयू-एक्सेलेरेटेड ZKPs मालिकाना मॉडल पैरामीटर्स को प्रकट किए बिना मॉडल अनुमानों के व्यावहारिक सत्यापन को सक्षम कर सकते हैं।
भविष्य के शोध दिशाओं में जीपीयू टेंसर कोर का बेहतर उपयोग करने के लिए मिश्रित-परिशुद्धता अंकगणित की खोज करना, विशेष हार्डवेयर-सॉफ्टवेयर सह-डिजाइन दृष्टिकोण विकसित करना और अनुकूली अनुकूलन फ्रेमवर्क बनाना शामिल है जो विशिष्ट हार्डवेयर क्षमताओं और अनुप्रयोग आवश्यकताओं के आधार पर ZKP पैरामीटर्स को स्वचालित रूप से ट्यून कर सकते हैं।
मूल विश्लेषण
ZKProphet अध्ययन आधुनिक जीपीयू आर्किटेक्चर पर ज़ीरो-नॉलेज प्रूफ़्स की प्रदर्शन विशेषताओं को समझने में एक महत्वपूर्ण प्रगति का प्रतिनिधित्व करता है। जबकि पिछले शोध, जैसे Ben-Sasson et al. (2014) द्वारा zk-SNARKs पर आधारभूत कार्य, ने सैद्धांतिक आधार स्थापित किए, और libsnark और bellman जैसे बाद के कार्यान्वयन ने व्यावहारिक फ्रेमवर्क प्रदान किए, पूरी कम्प्यूटेशनल पाइपलाइन में व्यवस्थित प्रदर्शन विश्लेषण में एक उल्लेखनीय अंतर रहा है।
NTT की नई प्राथमिक बाधा (90% तक लेटेंसी के लिए जिम्मेदार) के रूप में पहचान अनुकूलन प्राथमिकताओं में एक महत्वपूर्ण बदलाव को चिह्नित करती है। यह निष्कर्ष अन्य कम्प्यूट-गहन डोमेन में अवलोकनों के साथ संरेखित होता है जहां प्रारंभिक अनुकूलन सबसे स्पष्ट बाधाओं को लक्षित करते हैं, केवल द्वितीयक बाधाओं को प्रकट करने के लिए जो प्रारंभिक सुधारों के बाद प्रमुख हो जाते हैं। ब्लॉकचेन सिस्टम के लिए क्रिप्टोग्राफ़िक कार्यान्वयन में समान पैटर्न देखे गए हैं, जहां अण्डाकार वक्र ऑपरेशन को अनुकूलित करने के बाद, मेमोरी एक्सेस पैटर्न सीमित कारक बन गए।
32-बिट इंटीजर पाइपलाइन के अनन्य उपयोग चुनौतियाँ और अवसर दोनों प्रस्तुत करता है। मशीन लर्निंग वर्कलोड के विपरीत जो टेंसर कोर और FP32/FP16 अंकगणित का भारी उपयोग करते हैं, ZKPs वर्तमान जीपीयू आर्किटेक्चर में इन विशेष इकाइयों से लाभान्वित नहीं हो सकते हैं। यह हार्डवेयर-सॉफ्टवेयर सह-डिजाइन की संभावित क्षमता का सुझाव देता है, जो Google के TPU आर्किटेक्चर में तंत्रिका नेटवर्क के लिए अपनाए गए दृष्टिकोण के समान है, लेकिन क्रिप्टोग्राफ़िक ऑपरेशन के लिए विशेष है। डेटा निर्भरताओं के कारण सीमित निर्देश-स्तरीय समानांतरता अधिक समानांतरता को उजागर कर सकने वाले एल्गोरिदमिक नवाचारों की आवश्यकता पर और जोर देती है।
अन्य क्रिप्टोग्राफ़िक एक्सेलेरेशन प्रयासों की तुलना में, जैसे कि होमोमोर्फिक एन्क्रिप्शन (जैसा कि [9] में संदर्भित) या सत्यापन योग्य कम्प्यूटेशन फ्रेमवर्क के लिए, ZKProphet का अलग-अलग कर्नेल अनुकूलन के बजाय एंड-टू-एंड प्रदर्शन पर ध्यान केंद्रित करना वास्तविक दुनिया के तैनाती के लिए अधिक व्यावहारिक अंतर्दृष्टि प्रदान करता है। [32] में सत्यापन योग्य मशीन लर्निंग अनुप्रयोगों का संदर्भ आशाजनक क्रॉस-डोमेन अनुप्रयोगों का सुझाव देता है जहां जीपीयू-एक्सेलेरेटेड ZKPs AI सिस्टम में नए ट्रस्ट मॉडल को सक्षम कर सकते हैं।
इस काम में पहचानी गई प्रदर्शन स्केलेबिलिटी सीमाओं का उत्पादन प्रणालियों में ZKPs की व्यावहारिक तैनाती पर महत्वपूर्ण प्रभाव पड़ता है। जैसे-जैसे कंस्ट्रेंट काउंट अधिक जटिल गणनाओं के साथ बढ़ते हैं, रैखिक स्केलिंग संबंध सुझाव देता है कि वर्तमान जीपीयू आर्किटेक्चर क्रिप्टोग्राफ़िक वर्कलोड को विशेष रूप से लक्षित करने वाली आर्किटेक्चरल नवाचारों के बिना मौलिक सीमाओं का सामना कर सकते हैं।
7. संदर्भ
- Groth, J. (2016). "On the Size of Pairing-Based Non-interactive Arguments." EUROCRYPT 2016.
- Ben-Sasson, E., et al. (2014). "Succinct Non-Interactive Zero Knowledge for a von Neumann Architecture." USENIX Security Symposium.
- Parno, B., et al. (2013). "Pinocchio: Nearly Practical Verifiable Computation." IEEE Symposium on Security and Privacy.
- Setty, S., et al. (2013). "Resolving the conflict between generality and plausibility in verified computation." EuroSys.
- Zhang, J., et al. (2020). "vCNN: Verifiable Convolutional Neural Network based on zk-SNARKs." Cryptology ePrint Archive.
- Wahby, R.S., et al. (2018). "Full accounting for verifiable outsourcing." CCS.
- Kosba, A., et al. (2016). "C∅C∅: A Framework for Building Composable Zero-Knowledge Proofs." USENIX Security.
- Xie, T., et al. (2022). "zkCNN: Zero Knowledge Proofs for Convolutional Neural Network Predictions and Accuracy." CCS.