मुख्य सामग्री पर जाएं

डैन्कशार्डिंग

डैन्कशार्डिंग वह तरीका है जिससे इथेरियम वास्तव में एक स्केलेबल ब्लॉकचेन बन जाता है, लेकिन वहां तक पहुंचने के लिए कई प्रोटोकॉल अपग्रेड की आवश्यकता होती है। प्रोटो-डैंकशार्डिंग इस रास्ते में एक मध्यवर्ती कदम है। दोनों का उद्देश्य उपयोगकर्ताओं के लिए लेयर 2 (L2) पर लेन-देन को यथासंभव सस्ता बनाना है और इथेरियम को >100,000 लेन-देन प्रति सेकंड तक स्केल करना चाहिए।

प्रोटो-डैंकशार्डिंग क्या है?

प्रोटो-डैंकशार्डिंग, जिसे EIP-4844 (opens in a new tab) के रूप में भी जाना जाता है, रोलअप्स के लिए ब्लॉक्स में सस्ता डेटा जोड़ने का एक तरीका है। यह नाम उन दो शोधकर्ताओं से आया है जिन्होंने इस विचार का प्रस्ताव दिया था: Protolambda और Dankrad Feist। ऐतिहासिक रूप से, रोलअप्स इस बात से सीमित रहे हैं कि वे उपयोगकर्ता के लेन-देन को कितना सस्ता बना सकते हैं क्योंकि वे अपने लेन-देन को CALLDATA में पोस्ट करते हैं।

यह महंगा है क्योंकि इसे सभी इथेरियम नोड्स द्वारा प्रोसेस किया जाता है और यह हमेशा के लिए ऑनचेन रहता है, भले ही रोलअप्स को केवल थोड़े समय के लिए डेटा की आवश्यकता होती है। प्रोटो-डैंकशार्डिंग डेटा ब्लॉब्स पेश करता है जिन्हें भेजा जा सकता है और ब्लॉक्स से जोड़ा जा सकता है। इन ब्लॉब्स का डेटा EVM के लिए सुलभ नहीं है और एक निश्चित समय अवधि के बाद स्वचालित रूप से हटा दिया जाता है (लिखते समय 4096 इपोक (epochs) पर सेट किया गया है, या लगभग 18 दिन)। इसका मतलब है कि रोलअप्स अपना डेटा बहुत सस्ते में भेज सकते हैं और सस्ते लेन-देन के रूप में अंतिम उपयोगकर्ताओं को बचत का लाभ दे सकते हैं।

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

रोलअप्स अपने लेन-देन डेटा के लिए प्रतिबद्धता ऑनचेन पोस्ट करते हैं और वास्तविक डेटा को डेटा ब्लॉब्स में भी उपलब्ध कराते हैं। इसका मतलब है कि प्रमाणक जांच सकते हैं कि प्रतिबद्धताएँ मान्य हैं या उस डेटा को चुनौती दे सकते हैं जो उन्हें लगता है कि गलत है। नोड-स्तर पर, डेटा के ब्लॉब्स सर्वसम्मति क्लाइंट में रखे जाते हैं। सर्वसम्मति क्लाइंट्स प्रमाणित करते हैं कि उन्होंने डेटा देखा है और इसे नेटवर्क के चारों ओर प्रसारित किया गया है। यदि डेटा को हमेशा के लिए रखा जाता, तो ये क्लाइंट्स बहुत बड़े हो जाते और नोड्स चलाने के लिए बड़ी हार्डवेयर आवश्यकताओं को जन्म देते। इसके बजाय, डेटा हर 18 दिनों में नोड से स्वचालित रूप से हटा (prune) दिया जाता है। सर्वसम्मति क्लाइंट के प्रमाणन यह प्रदर्शित करते हैं कि प्रमाणकों के लिए डेटा को सत्यापित करने का पर्याप्त अवसर था। वास्तविक डेटा को रोलअप ऑपरेटरों, उपयोगकर्ताओं या अन्य लोगों द्वारा ऑफचेन संग्रहीत किया जा सकता है।

ब्लॉब डेटा को कैसे सत्यापित किया जाता है?

रोलअप्स उन लेन-देन को डेटा ब्लॉब्स में पोस्ट करते हैं जिन्हें वे निष्पादित करते हैं। वे डेटा के लिए एक "प्रतिबद्धता" भी पोस्ट करते हैं। वे डेटा में एक बहुपद (polynomial) फ़ंक्शन को फिट करके ऐसा करते हैं। इस फ़ंक्शन का फिर विभिन्न बिंदुओं पर मूल्यांकन किया जा सकता है। उदाहरण के लिए, यदि हम एक अत्यंत सरल फ़ंक्शन f(x) = 2x-1 परिभाषित करते हैं तो हम इस फ़ंक्शन का मूल्यांकन x = 1, x = 2, x = 3 के लिए कर सकते हैं जिससे परिणाम 1, 3, 5 मिलते हैं। एक प्रमाणक डेटा पर वही फ़ंक्शन लागू करता है और उन्हीं बिंदुओं पर इसका मूल्यांकन करता है। यदि मूल डेटा बदल दिया जाता है, तो फ़ंक्शन समान नहीं होगा, और इसलिए प्रत्येक बिंदु पर मूल्यांकन किए गए मान भी समान नहीं होंगे। वास्तव में, प्रतिबद्धता और प्रमाण अधिक जटिल होते हैं क्योंकि वे क्रिप्टोग्राफ़िक फ़ंक्शंस में लिपटे होते हैं।

KZG क्या है?

KZG का अर्थ Kate-Zaverucha-Goldberg है - एक योजना के तीन मूल लेखकों (opens in a new tab) के नाम जो डेटा के एक ब्लॉब को एक छोटी क्रिप्टोग्राफ़िक "प्रतिबद्धता" (opens in a new tab) में कम कर देता है। रोलअप द्वारा सबमिट किए गए डेटा के ब्लॉब को यह सुनिश्चित करने के लिए सत्यापित किया जाना चाहिए कि रोलअप गलत व्यवहार नहीं कर रहा है। इसमें एक प्रमाणक द्वारा ब्लॉब में लेन-देन को फिर से निष्पादित करना शामिल है ताकि यह जांचा जा सके कि प्रतिबद्धता मान्य थी। यह वैचारिक रूप से उसी तरह है जैसे निष्पादन क्लाइंट्स मर्कल (Merkle) प्रमाणों का उपयोग करके लेयर 1 (L1) पर इथेरियम लेन-देन की वैधता की जांच करते हैं। KZG एक वैकल्पिक प्रमाण है जो डेटा में एक बहुपद समीकरण को फिट करता है। प्रतिबद्धता कुछ गुप्त डेटा बिंदुओं पर बहुपद का मूल्यांकन करती है। एक प्रमाणक डेटा पर उसी बहुपद को फिट करेगा और समान मानों पर इसका मूल्यांकन करेगा, यह जांचते हुए कि परिणाम समान है। यह डेटा को सत्यापित करने का एक तरीका है जो कुछ रोलअप्स और अंततः इथेरियम प्रोटोकॉल के अन्य भागों द्वारा उपयोग की जाने वाली शून्य-ज्ञान तकनीकों के अनुकूल है।

KZG समारोह क्या था?

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

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

जब कोई रोलअप किसी ब्लॉब में डेटा पोस्ट करता है, तो वे एक "प्रतिबद्धता" प्रदान करते हैं जिसे वे ऑनचेन पोस्ट करते हैं। यह प्रतिबद्धता कुछ निश्चित बिंदुओं पर डेटा में फिट किए गए बहुपद का मूल्यांकन करने का परिणाम है। ये बिंदु KZG समारोह में उत्पन्न यादृच्छिक संख्याओं द्वारा परिभाषित किए जाते हैं। प्रमाणक तब डेटा को सत्यापित करने के लिए उन्हीं बिंदुओं पर बहुपद का मूल्यांकन कर सकते हैं - यदि वे समान मानों पर पहुंचते हैं तो डेटा सही है।

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

डैन्कशार्डिंग क्या है?

डैन्कशार्डिंग रोलअप स्केलिंग की पूर्ण प्राप्ति है जो प्रोटो-डैंकशार्डिंग के साथ शुरू हुई थी। डैन्कशार्डिंग रोलअप्स के लिए अपने संपीड़ित (compressed) लेन-देन डेटा को डंप करने के लिए इथेरियम पर भारी मात्रा में स्थान लाएगा। इसका मतलब है कि इथेरियम आसानी से सैकड़ों व्यक्तिगत रोलअप्स का समर्थन करने में सक्षम होगा और प्रति सेकंड लाखों लेन-देन को वास्तविकता बना देगा।

यह जिस तरह से काम करता है वह ब्लॉक्स से जुड़े ब्लॉब्स को प्रोटो-डैंकशार्डिंग में छह (6) से बढ़ाकर पूर्ण डैन्कशार्डिंग में 64 तक विस्तारित करना है। आवश्यक बाकी बदलाव सर्वसम्मति क्लाइंट्स के काम करने के तरीके में अपडेट हैं ताकि वे नए बड़े ब्लॉब्स को संभालने में सक्षम हो सकें। इनमें से कई बदलाव डैन्कशार्डिंग से स्वतंत्र अन्य उद्देश्यों के लिए पहले से ही रोडमैप पर हैं। उदाहरण के लिए, डैन्कशार्डिंग के लिए प्रस्तावक-निर्माता पृथक्करण (pbs) को लागू करने की आवश्यकता है। यह एक अपग्रेड है जो ब्लॉक्स बनाने और ब्लॉक्स प्रस्तावित करने के कार्यों को विभिन्न सत्यापकों के बीच अलग करता है। इसी तरह, डैन्कशार्डिंग के लिए डेटा उपलब्धता सैंपलिंग (data availability sampling) की आवश्यकता होती है, लेकिन यह बहुत हल्के क्लाइंट्स के विकास के लिए भी आवश्यक है जो बहुत अधिक ऐतिहासिक डेटा ("स्टेटलेस क्लाइंट्स") संग्रहीत नहीं करते हैं।

व्यक्तिगत सत्यापकों को 32MB ब्लॉब डेटा के लिए महंगी प्रतिबद्धताएँ और प्रमाण उत्पन्न करने से रोकने के लिए प्रस्तावक-निर्माता पृथक्करण (pbs) की आवश्यकता होती है। यह होम स्टेकर्स पर बहुत अधिक दबाव डालेगा और उन्हें अधिक शक्तिशाली हार्डवेयर में निवेश करने की आवश्यकता होगी, जो विकेंद्रीकरण को नुकसान पहुंचाता है। इसके बजाय, विशेष ब्लॉक निर्माता इस महंगे कम्प्यूटेशनल काम की जिम्मेदारी लेते हैं। फिर, वे अपने ब्लॉक्स को ब्लॉक प्रस्तावकों को प्रसारित करने के लिए उपलब्ध कराते हैं। ब्लॉक प्रस्तावक बस उस ब्लॉक को चुनता है जो सबसे अधिक लाभदायक होता है। कोई भी ब्लॉब्स को सस्ते और जल्दी से सत्यापित कर सकता है, जिसका अर्थ है कि कोई भी सामान्य सत्यापक यह जांच सकता है कि ब्लॉक निर्माता ईमानदारी से व्यवहार कर रहे हैं। यह विकेंद्रीकरण का त्याग किए बिना बड़े ब्लॉब्स को प्रोसेस करने की अनुमति देता है। गलत व्यवहार करने वाले ब्लॉक निर्माताओं को बस नेटवर्क से बाहर निकाला जा सकता है और कटौती की जा सकती है - अन्य लोग उनकी जगह लेंगे क्योंकि ब्लॉक निर्माण एक लाभदायक गतिविधि है।

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

वर्तमान प्रगति

पूर्ण डैन्कशार्डिंग अभी कई साल दूर है। इस बीच, KZG समारोह 140,000 से अधिक योगदानों के साथ संपन्न हो गया है, और प्रोटो-डैंकशार्डिंग के लिए EIP (opens in a new tab) परिपक्व हो गया है। इस प्रस्ताव को सभी टेस्टनेट्स में पूरी तरह से लागू कर दिया गया है, और मार्च 2024 में कैनकन-डेनेब ("डेंकुन") नेटवर्क अपग्रेड के साथ मेननेट पर लाइव हो गया है।

आगे की पढ़ाई