ब्लॉकचिन्स में क्रिप्टोग्राफिक छांटना: वीआरएफ का महत्व

जब क्रिप्टो सिस्टम गेमर हो सकता है

जब मैं विटनेट में अपने शोधकर्ता की नौकरी के हिस्से के रूप में ब्लॉकचेन प्रौद्योगिकियों के बारे में अधिक से अधिक पढ़ता हूं और समझता हूं, तो मुझे लगता है कि क्रिप्टोग्राफिक प्रोटोकॉल और योजनाओं का उनके डिजाइनों पर महत्व है। यह आश्चर्यजनक है कि कैसे एक छोटा डिजाइन निर्णय उपयोगकर्ताओं को सिस्टम के साथ बातचीत करने के तरीके को प्रभावित कर सकता है और, संभवतः, इसका लाभ उठाएं।

इस पोस्ट में मैं Witnet पर किए गए कुछ आंतरिक शोधों को साझा करना चाहूंगा, और हमने कैसे महसूस किया कि हमारे प्रारंभिक उद्देश्यों के लिए हमारी क्रिप्टोग्राफिक धारणाएं पर्याप्त मजबूत नहीं थीं।

ब्लॉकचेन प्रोटोकॉल के हिस्से के रूप में पीओई

ब्लॉकचेन तकनीक में प्रूफ ऑफ एलिजिबिलिटीज (पीओई) तेजी से लोकप्रिय हो रहे हैं। वास्तव में पीओई हमें यह तय करने का अवसर देता है कि कार्रवाई करने के लिए कौन जिम्मेदार है। जब पात्रता की खोज प्रत्येक सहकर्मी द्वारा व्यक्तिगत रूप से की जाती है, तो हम आमतौर पर इसे एक क्रिप्टोग्राफिक छंटनी योजना के रूप में संदर्भित करते हैं, अर्थात्, यह पता लगाने की क्षमता है कि क्या आप अपने आप से एक "लॉटरी" के विजेता हैं।

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

हमने कई क्रिप्टोग्राफ़िक सॉर्टिंग योजनाओं को ब्लॉकचेन डिज़ाइन के हिस्से के रूप में प्रस्तावित किया है, जो बिटकॉइन में कार्य के प्रसिद्ध प्रमाण से लेकर नए प्रस्तावों जैसे, जैसे: Algorand, Filecoin या Witnet। इस पोस्ट में, हम अपना ध्यान विटनेट में वर्णित क्रिप्टोग्राफिक छंटनी और इसके संभावित सुधारों पर लगाएंगे। मुझे आशा है कि यहां पोस्ट की गई जानकारी समान उद्देश्य के साथ अन्य ब्लॉकचेन के लिए सहायक है।

डिजिटल हस्ताक्षर के आधार पर क्रिप्टोग्राफिक छंटनी

आमतौर पर क्रिप्टोग्राफिक छंटनी योजनाएं एक यादृच्छिक संख्या प्राप्त करने के भाग्य पर उनकी पात्रता को आधार बनाती हैं जो किसी दिए गए लक्ष्य मान से नीचे आती हैं। कठिनाई स्पष्ट रूप से लक्ष्य मूल्य पर निर्भर करती है; उच्चतर मूल्य है, अधिक संभावना वाले साथियों को पात्र बनना होगा। लक्ष्य मान, अलग-अलग साथियों के लिए वास्तव में भिन्न हो सकते हैं, शायद यह निर्भर करता है कि पिछले कार्यों में उन्होंने कितना अच्छा व्यवहार किया था। यह ठीक वैटनेट द्वारा वर्णित दृष्टिकोण है। विटनेट में क्रिप्टोग्राफिक छंटनी को निम्नलिखित के रूप में परिभाषित किया गया है:

विटनेट में क्रिप्टोग्राफिक छंटनी

जहां <> कुंजी M पर हस्ताक्षर को दर्शाता है, और मैं समय पर सहकर्मी के प्रभाव को संदर्भित करता हूं। प्रभाव नोड की प्रतिष्ठा को संदर्भित करता है, अर्थात, पिछले कार्यों में यह कितना अच्छा व्यवहार करता है। अनिवार्य रूप से, यदि कोई सहकर्मी कार्य के हस्ताक्षर का हैश लक्ष्य मूल्य से नीचे गिरना चाहता है, तो वह कार्य करने के लिए पात्र हो जाता है। हम देखते हैं कि प्रत्येक सहकर्मी नेटवर्क में किसी भी अन्य सहकर्मी के साथ बातचीत किए बिना व्यक्तिगत रूप से अपनी छंटनी कैसे कर सकता है। यादृच्छिक मूल्य सभी साथियों के लिए कम है (अच्छी तरह से पिछले ब्लॉक का हैश हो सकता है)।

एक नोड की पात्रता को सत्यापित करने के लिए, बाकी नोड्स पहले यह जांचते हैं कि हस्ताक्षर उचित मापदंडों (वर्तमान युग से संबंधित यादृच्छिक मान और कार्य जिसके लिए नोड का चयन हो रहा है) के साथ उत्पन्न हुआ था। फिर, उन्होंने यह देखने के लिए हस्ताक्षर किए कि क्या यह लक्ष्य मूल्य से कम है। यदि हां, तो कार्य के लिए सहकर्मी की पात्रता सत्यापित है।

क्रिप्टोग्राफ़िक छंटनी जो कि डिजिटल हस्ताक्षरों पर आधारित होती है (अर्थात, दिए गए संदेश के हस्ताक्षर) उपरोक्त परिभाषित कथनों को पूर्ण रूप से परिभाषित करते हैं: वे किसी दिए गए सहकर्मी द्वारा उत्पन्न होते हैं, वे सार्वजनिक कुंजी के माध्यम से सत्यापित होते हैं और उनका आउटपुट सार्वजनिक कुंजी के बिना यादृच्छिक दिखाई देता है।

लेकिन डिजिटल हस्ताक्षर आधारित क्रिप्टोग्राफिक सॉर्टिंग स्कीम फुलफिल (विटनेट के रूप में) की एक और आवश्यकता है जिसका मैंने उल्लेख नहीं किया है: प्रत्येक सहकर्मी के पास इनपुट संदेश के लिए एक एकल पात्रता शॉट होना चाहिए। अन्यथा, सहकर्मी लॉटरी को केवल कई बार चला सकते हैं, जब तक वे पात्र नहीं बन जाते। विट्नेट में हमने जो सवाल खुद से पूछा वह था: क्या डिजिटल हस्ताक्षर इस संपत्ति को पूर्ण रूप से प्रभावित करते हैं?

समस्या: ईसीडीएसए के लिए गैर-अद्वितीय आउटपुट

पिछले प्रश्न का उत्तर देने से पहले, मैं एक संक्षिप्त परिचय देता हूं कि एलिप्टिक कर्व क्रिप्टोग्राफी कैसे काम करती है।

संक्षेप में, एलिप्टिक कर्व क्रिप्टोग्राफी (ईसीसी) एक सार्वजनिक कुंजी क्रिप्टोसिस्टम है जिसमें प्रत्येक सहकर्मी एक निजी-सार्वजनिक कुंजी जोड़ी रखता है। निजी कुंजी केवल स्वामी द्वारा जानी जाती है, जबकि सार्वजनिक कुंजी प्रत्येक सहकर्मी के लिए जानी जाती है। संचार साथियों को पहले ईसीसी वक्र पर सहमत होना होगा कि वे
उपयोग करने जा रहे हैं। एक वक्र समीकरण द्वारा परिभाषित बिंदुओं का एक समूह है,
जैसे, y ^ 2 = x ^ 3 + कुल्हाड़ी + बी। एक जनरेटर बिंदु के द्वारा वक्र को अन्य मापदंडों के बीच परिभाषित किया गया है, धन्यवाद जिससे हम वक्र में किसी अन्य बिंदु तक पहुंच सकते हैं। ऐसी प्रणाली के निर्माण के लिए, ECC निम्नलिखित अंकगणित का निर्माण करती है:

  • यदि पी वक्र में एक बिंदु है, -पी एक्स अक्ष पर इसका प्रतिबिंब है
  • यदि दो बिंदु P और Q अलग हैं तो P और Q को जोड़ने का परिणाम है
    P और Q को पार करते हुए एक रेखा खींचकर गणना की जाती है, जो एक में प्रतिच्छेद करेगी
    वक्र में तीसरा बिंदु inR। R की गणना compR का प्रतिबिंब लेकर की जाती है
    एक्स अक्ष के संबंध में।
  • P + P की वक्र पर स्पर्शरेखा रेखा खींचकर गणना की जाती है, जो कि पी
    फिर से वक्र P2P में एक तीसरे बिंदु में अंतर करेगा। 2P बस है
    एक्स अक्ष पर प्रतिबिंब
अण्डाकार वक्र जोड़ उदाहरण

ध्यान दें कि इस अंकगणित के साथ, हम पहले से ही अंक जोड़ सकते हैं और परिणामस्वरूप, एस्केलेटर के साथ गुणा करें (5P सिर्फ 2P + 2P + P) है। निजी-सार्वजनिक कुंजी जोड़ी का निर्माण पहले यादृच्छिक पूर्णांक को चुनकर किया जाता है जो हमें निजी कुंजी प्रदान करेगा। सार्वजनिक कुंजी जनरेटर बिंदु के साथ पूर्णांक का गुणन है। योजना की सुरक्षा सार्वजनिक कुंजी बिंदु से उत्पन्न पूर्णांक को कठिनाई या पुनः प्राप्त करने पर निर्भर करती है। यह सार्वजनिक कुंजी क्यू है, पूर्णांक k को खोजने के लिए समस्या जिसे Q तक पहुंचने के लिए गुणा किया जाता है, असतत लघुगणक समस्या के समतुल्य है।

ऐसी प्रणाली के साथ एक पहले से ही कई क्रिप्टोग्राफिक दृष्टिकोण कर सकते हैं। उनमें से एक डिजिटल हस्ताक्षर उत्पन्न करने की क्षमता है। निम्नलिखित तस्वीर में ईसीडीएसए सीगेंचर पीढ़ी की समग्र तस्वीर देखी जा सकती है

ECDSA हस्ताक्षर पीढ़ी

अनिवार्य रूप से, इनपुट संदेश m पहले हैशेड है। बाद में, एक यादृच्छिक संख्या यू को ऐसे चुना जाता है, जब जनरेटर बिंदु जी के साथ गुणा किया जाता है, वक्र में एक बिंदु पर मैप करता है जिसका एक्स-समन्वय होता है। 0. यदि यह स्थिति संतुष्ट नहीं है, तो मूल्य यू को फिर से चुना जाता है। यदि यह है, तो यू का व्युत्क्रम गुणनफल (e + dr) से गुणा किया जाता है जब तक कि मूल्य शून्य न हो। हस्ताक्षर टपल (आर, एस) है।

वास्तव में, हमें यह समझने के लिए एल्गोरिथ्म को समझने की पूरी तरह से आवश्यकता नहीं है कि हस्ताक्षर 5 में चयनित रैंडम वैल्यू यू पर बहुत अधिक निर्भर करता है। यह है, सिग्नेचर वैल्यू एक रैंडम वैल्यू पर निर्भर करेगा, और इसलिए, एक दिया गया संदेश कई अलग-अलग हस्ताक्षरों को मैप कर सकता है।

यह पहले से ही एक क्रिप्टोग्राफ़िक सॉर्टिंग के लिए आदर्श रूप से वर्णित के साथ संघर्ष में है। यदि किसी सहकर्मी की पात्रता एक हस्ताक्षर के हैश पर निर्भर करेगी जो चुने गए यादृच्छिक मान u के आधार पर अलग-अलग मान ले सकता है, तो हम यह उम्मीद कर सकते हैं कि जब तक हैश पर्याप्त रूप से कम न हो जाए, तब तक वे सहकर्मी लगातार हस्ताक्षर की गणना करेंगे, और इस तरह पात्र बनो। दिलचस्प है, क्रिप्टो योजना का उपयोग साथियों को सिस्टम को गेम करने का अवसर देता है।

समाधान: क्रिप्टोग्राफिक छँटाई के रूप में वीआरएफ

बताई गई समस्या के बावजूद, हम उन सभी लाभों का त्याग नहीं करना चाहेंगे जो डिजिटल हस्ताक्षर हमारी योजना को प्रदान करते हैं। इसलिए, हमें अपने क्रिप्टोग्राफिक सॉर्टिंग के लिए विशिष्ट संपत्ति जोड़ने की जरूरत है, जैसे कि यह "एक कुंजीयुक्त एचएमएसी का सार्वजनिक संस्करण" था। वेरिफ़िएबल रैंडम फ़ंक्शंस (वीआरएफ) ट्रिक करते हैं (और वास्तव में, वे अल्गोरंड में उपयोग किए जाते हैं)। वीआरएफ को सबसे पहले सिल्वियो मिआली ने [1] में पेश किया था। वीआरएफ दो आउटपुट उत्पन्न करते हैं: एक तथाकथित "अद्वितीय-हस्ताक्षर" outputs और एक प्रमाण outputs। एक सार्वजनिक कुंजी क्रिप्टोकरेंसी होने के अलावा, उनके पास निम्नलिखित गुण हैं:

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

अंतिम कथन काफी महत्वपूर्ण है। इसका मतलब है कि that हमेशा दिए गए इनपुट संदेश और सार्वजनिक कुंजी के लिए अद्वितीय होगा, जबकि प्रमाण को यादृच्छिक किया जा सकता है। इस प्रकार, सहकर्मी कई हस्ताक्षर उत्पन्न नहीं कर सकते हैं जब तक कि वे पर्याप्त रूप से कम मूल्य तक नहीं पहुंचते हैं, उसी इनपुट के लिए उन्हें हमेशा समान मूल्य मिलेगा। यह है, वे केवल इनपुट संदेश के अनुसार एक बार लॉटरी चलाते हैं।

वीआरएफ उदाहरण

पाठ्यक्रम का सवाल यह है कि उन योजनाओं का निर्माण कैसे किया जाए। हम [2] में प्रस्तावित योजना का पालन करते हैं, जिसमें आरएसए और ईसीसी दोनों के लिए वीआरएफ निर्माण का वर्णन है। संक्षिप्तता के लिए, हम RSA निर्माण विवरण को छोड़ देते हैं। वास्तव में, ECC सुरक्षा के समान स्तर को प्राप्त करने के लिए RSA की तुलना में कुंजी और हस्ताक्षर आकार के संदर्भ में क्रिप्टो योजनाओं के लाभ प्रदान करता है।

ईसीसी-वीआरएफ हस्ताक्षर सत्यापन एल्गोरिथ्म नीचे देखा जा सकता है। ECVRF_hash_to_curve एक फ़ंक्शन है जो किसी पूर्णांक को वक्र में एक बिंदु पर रखता है। इसके विपरीत, ECVRF_hash_point एक फ़ंक्शन है जो वक्र में पूर्णांक तक कई बिंदुओं को राख करता है। उन दो सहायक कार्यों से हम निम्नलिखित हस्ताक्षर निर्माण योजना का निर्माण कर सकते हैं:

ईसीसी-वीआरएफ प्रूफ जनरेशन

आउटपुट digest बाद में यह जांचने के लिए हैशड है कि क्या डाइजेस्ट लक्ष्य मूल्य से कम है, जबकि प्रमाण π का ​​उपयोग सत्यापनकर्ता द्वारा यह जांचने के लिए किया जाता है कि आउटपुट वास्तव में संबंधित सार्वजनिक कुंजी के साथ और निम्न संदेश में निम्न तरीके से गणना की गई है:

ईसीसी-वीआरएफ प्रमाण सत्यापन

यदि हम एल्गोरिथ्म पर एक नज़र डालते हैं, तो केवल और केवल अगर 'ग' प्रमाण के बराबर है, तो सत्यापित किया जाता है। सत्यापन से चरण 15 और हस्ताक्षर पीढ़ी से चरण 4 की तुलना करते हुए, हम देख सकते हैं कि समानता यू = जीटी और वी = एचटी के रूप में लंबे समय तक रहेगी। क्या गुप्त कुंजी k को जाने बिना सत्यापनकर्ता इसे मान्य कर सकता है? निम्नलिखित में हम समानता की शुद्धता प्रदर्शित करते हैं:

  • मान u = Qc + Gs = Qc + G (t-kc) = Qc + Gt-Gkc = Qc + Gt -Qc = Gt
  • मान v = valuec + Hs = +c + H (t-kc) = +c + Ht-Hkc = βc + Ht-βc = Ht

यह सत्यापित किया जा सकता है कि समानता गुप्त मूल्य k को जाने बिना रखती है।

निष्कर्ष

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

सत्यापन योग्य रैंडम फ़ंक्शंस ऊपर वर्णित समस्या को हल करने के लिए लगता है। वास्तव में वे डिजिटल हस्ताक्षर के सभी लाभों को बनाए रखते हैं, एक अतिरिक्त तथ्य के साथ: "हस्ताक्षर" किसी दिए गए सार्वजनिक कुंजी और संदेश के लिए अद्वितीय है। इसके अतिरिक्त वीआरएफ सबूत के लिए धन्यवाद देते हैं, जिससे सत्यापनकर्ता लेनदेन की वैधता की जांच कर सकता है। इस प्रकार, वीआरएफ, विटनेट जैसी प्रणालियों के लिए सही दृष्टिकोण है।

संदर्भ

  • https://people.csail.mit.edu/nickolai/papers/gilad-algorand-eprint.pdf
  • https://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Pseudo%20Randomness/Verifiable_Random_Functions.pdf
  • https://filecoin.io/filecoin.pdf
  • https://witnet.io/static/witnet-whitepaper.pdf
  • https://eprint.iacr.org/2017/099.pdf
  • https://tools.ietf.org/html/draft-irtf-cfrg-vrf-03