ज़ीरो नॉलेज प्रूफ (zero knowledge proof) एल्गोरिदम में यादृच्छिक रैखिक संयोजन (random linear combinations) एक सामान्य ट्रिक है, जो समानता जाँचों को संभावित रूप से एक ही समानता जाँच के साथ जाँचने में सक्षम बनाती है। मान लीजिए कि हमारे पास आंतरिक गुणनफल (inner products) हैं जिन्हें हम साबित करने का प्रयास कर रहे हैं। प्रमाण (proofs) बनाने के बजाय, हम समानताओं का एक यादृच्छिक रैखिक संयोजन बनाते हैं और उसे साबित करते हैं।
Pedersen Commitments की समानता
सबसे पहले, आइए विचार करें कि हम कई Pedersen commitments की समानता को कैसे साबित कर सकते हैं।
यदि हमारे पास अज्ञात डिस्क्रीट लॉग (discrete logs) वाले एलिप्टिक कर्व बिंदु (elliptic curve points) और हैं, और ब्लाइंडिंग टर्म्स (blinding terms) और हैं, तो हम Pedersen committments और का निर्माण कर सकते हैं जहाँ
यदि प्रमाणकर्ता (prover) ब्लाइंडिंग टर्म्स का अंतर प्रदान करता है, तो सत्यापनकर्ता (verifier) यह जाँच सकता है कि है या नहीं। सत्यापनकर्ता केवल की जाँच नहीं कर सकता क्योंकि ब्लाइंडिंग टर्म्स आम तौर पर एक-दूसरे के बराबर नहीं होंगे, अर्थात ।
यदि प्रमाणकर्ता सत्यापनकर्ता को यह विश्वास दिलाना चाहता है कि और क्रमशः और के लिए कमिट किए गए हैं, लेकिन और को प्रकट किए बिना, तो प्रमाणकर्ता यह गणना कर सकता है:
और सत्यापनकर्ता को दे देता है। सत्यापनकर्ता गणना करता है:
आंतरिक रूप से, यह इस प्रकार विस्तारित होता है:
सभी ब्लाइंडिंग टर्म्स कट जाएंगे और केवल बचेगा।
लेकिन मान लीजिए कि प्रमाणकर्ता कई कमिटमेंट्स के लिए समानता स्थापित करना चाहता है, अर्थात । इसका एक सीधा (naïve) उपाय यह है कि ब्लाइंडिंग टर्म्स भेजे जाएं और सत्यापनकर्ता समानता जाँच चलाएगा। इसके लिए फील्ड तत्वों (field elements) () को भेजने की आवश्यकता होगी और सत्यापनकर्ता का एल्गोरिदम समय में चलेगा।
प्रमाणकर्ता केवल सभी कमिटमेंट्स को क्यों नहीं जोड़ सकता
मान लीजिए कि हमारे पास क्रमशः कमिटमेंट्स के साथ हैं। यह भी मान लीजिए कि प्रमाणकर्ता उन्हें प्रकट किए बिना यह दिखाना चाहता है कि और है।
निम्नलिखित जाँच सुरक्षित नहीं है:
जहाँ ब्लाइंडिंग टर्म्स का अंतर है। एक प्रति-उदाहरण (counterexample) के रूप में, उस स्थिति पर विचार करें जहाँ है। इनके योग (sums) तो संतुलित हैं, लेकिन मूल दावा गलत है।
यादृच्छिक रैखिक संयोजन (Random linear combinations)
हालाँकि, यदि प्रमाणकर्ता को यह दिखाने की आवश्यकता हो कि
एक यादृच्छिक (random) मान के लिए जिसकी वे भविष्यवाणी नहीं कर सकते, तो यह योजना सुरक्षित है।
विशेष रूप से, प्रमाणकर्ता और सत्यापनकर्ता निम्नलिखित एल्गोरिदम का पालन करते हैं:
समानता का यादृच्छिक प्रमाण
सेटअप (Setup)
प्रमाणकर्ता और सत्यापनकर्ता एलिप्टिक कर्व बिंदु और पर सहमत होते हैं, जहाँ डिस्क्रीट लॉग अज्ञात होते हैं।
प्रमाणकर्ता कमिटमेंट्स भेजता है
प्रमाणकर्ता ब्लाइंडिंग टर्म्स उत्पन्न करता है और Pedersen commitments बनाता है:
और सत्यापनकर्ता को भेज देता है।
सत्यापनकर्ता एक यादृच्छिक चुनता है
सत्यापनकर्ता एक यादृच्छिक फील्ड तत्व चुनता है और इसे प्रमाणकर्ता को भेजता है।
प्रमाणकर्ता ब्लाइंडिंग टर्म्स में अंतर की गणना करता है
प्रमाणकर्ता की गणना करता है और को सत्यापनकर्ता के पास भेज देता है।
अंतिम सत्यापन जाँच
सत्यापनकर्ता जाँच करता है कि
सुरक्षा विश्लेषण (Security analysis)
यदि और है, तो के चुनाव की परवाह किए बिना समीकरण संतुलित होगा, यह मानते हुए कि प्रमाणकर्ता ने की सही गणना की है।
अब मान लीजिए कि या है। फिर भी प्रमाणकर्ता एक वैध उत्पन्न करने में सक्षम नहीं होगा क्योंकि ऐसा करने के लिए और के डिस्क्रीट लॉग को हल करने की आवश्यकता होगी।
जाँचों तक सामान्यीकरण
यदि हमारे पास समानता जाँचें हैं, , तो सत्यापनकर्ता यादृच्छिक तत्व भेज सकता है और प्रमाणकर्ता प्रदान कर सकता है ताकि
हालाँकि, इसके लिए सत्यापनकर्ता को तत्व भेजने की आवश्यकता होती है, जिससे लीनियर संचार ओवरहेड (linear communication overhead) बढ़ जाता है। यदि सत्यापनकर्ता केवल भेजता है और प्रमाणकर्ता और सत्यापनकर्ता कमिटमेंट्स को की क्रमिक घातों (successive powers) से अलग करते हैं, तो संचार ओवरहेड को स्थिरांक (constant) तक कम किया जा सकता है:
सुरक्षा विश्लेषण
बायाँ पक्ष और दायाँ पक्ष दोनों घात के बहुपद (polynomials) हैं। यदि वे एक-दूसरे के असमान हैं, तो Schwartz Zippel Lemma के अनुसार वे अधिकतम बिंदुओं पर प्रतिच्छेद करते हैं। यदि जहाँ परिमित क्षेत्र (finite field) का क्रम (order) है, तो फिर से के एक प्रतिच्छेदन बिंदु होने की संभावना नगण्य है।
आंतरिक गुणनफलों (inner products) के यादृच्छिक रैखिक संयोजन
हम कई आंतरिक गुणनफलों को एक साथ मिलाने के लिए उपरोक्त तकनीक को सामान्यीकृत कर सकते हैं।
मान लीजिए कि हमारे पास दो आंतरिक गुणनफल हैं:
और
क्योंकि दोनों आंतरिक गुणनफलों में एक सामान्य पद साझा है, इसलिए बीजगणितीय रूप से उन्हें निम्नानुसार संयोजित करना संभव है:
हालाँकि, सुदृढ़ता (soundness) के दृष्टिकोण से यह सुरक्षित नहीं है क्योंकि यह संभव है कि और हो, लेकिन हो।
जैसा कि अपेक्षित था, हम एक यादृच्छिक रैखिक संयोजन का उपयोग करके इसे हल कर सकते हैं।
हमें दो के बजाय केवल एक ही आंतरिक गुणनफल के लिए एक आंतरिक गुणनफल प्रमाण (inner product proof) बनाने की आवश्यकता है। यह महत्वपूर्ण है कि प्रमाणकर्ता को प्रासंगिक कमिटमेंट्स भेजने के बाद ही प्राप्त हो, लेकिन हम इसके सटीक विवरण को अगले अध्याय के लिए छोड़ देते हैं जब हम इस तकनीक का उपयोग करने वाले एल्गोरिदम का एक उदाहरण देखेंगे: रेंज प्रूफ्स (range proofs)।
यह ट्यूटोरियल ZK Bulletproofs पर एक श्रृंखला का हिस्सा है।