डैन्कशार्डिंग वह तरीका है जिससे इथेरियम वास्तव में एक स्केलेबल ब्लॉकचेन बन जाता है, लेकिन वहां तक पहुंचने के लिए कई प्रोटोकॉल अपग्रेड की आवश्यकता होती है। प्रोटो-डैंकशार्डिंग इस रास्ते में एक मध्यवर्ती कदम है। दोनों का उद्देश्य उपयोगकर्ताओं के लिए लेयर 2 (L2) पर लेन-देन को यथासंभव सस्ता बनाना है और इथेरियम को >100,000 लेन-देन प्रति सेकंड तक स्केल करना चाहिए।
प्रोटो-डैंकशार्डिंग क्या है?
प्रोटो-डैंकशार्डिंग, जिसे EIP-4844 (opens in a new tab) के रूप में भी जाना जाता है, रोलअप्स के लिए ब्लॉक्स में सस्ता डेटा जोड़ने का एक तरीका है। यह नाम उन दो शोधकर्ताओं से आया है जिन्होंने इस विचार का प्रस्ताव दिया था: Protolambda और Dankrad Feist। ऐतिहासिक रूप से, रोलअप्स इस बात से सीमित रहे हैं कि वे उपयोगकर्ता के लेन-देन को कितना सस्ता बना सकते हैं क्योंकि वे अपने लेन-देन को CALLDATA में पोस्ट करते हैं।
यह महंगा है क्योंकि इसे सभी इथेरियम नोड्स द्वारा प्रोसेस किया जाता है और यह हमेशा के लिए ऑनचेन रहता है, भले ही रोलअप्स को केवल थोड़े समय के लिए डेटा की आवश्यकता होती है। प्रोटो-डैंकशार्डिंग डेटा ब्लॉब्स पेश करता है जिन्हें भेजा जा सकता है और ब्लॉक्स से जोड़ा जा सकता है। इन ब्लॉब्स का डेटा EVM के लिए सुलभ नहीं है और एक निश्चित समय अवधि के बाद स्वचालित रूप से हटा दिया जाता है (लिखते समय 4096 इपोक (epochs) पर सेट किया गया है, या लगभग 18 दिन)। इसका मतलब है कि रोलअप्स अपना डेटा बहुत सस्ते में भेज सकते हैं और सस्ते लेन-देन के रूप में अंतिम उपयोगकर्ताओं को बचत का लाभ दे सकते हैं।
ब्लॉब डेटा को कैसे सत्यापित किया जाता है?
रोलअप्स उन लेन-देन को डेटा ब्लॉब्स में पोस्ट करते हैं जिन्हें वे निष्पादित करते हैं। वे डेटा के लिए एक "प्रतिबद्धता" भी पोस्ट करते हैं। वे डेटा में एक बहुपद (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 ईमानदार प्रतिभागी की आवश्यकता को पूरा किया)।
डैन्कशार्डिंग क्या है?
डैन्कशार्डिंग रोलअप स्केलिंग की पूर्ण प्राप्ति है जो प्रोटो-डैंकशार्डिंग के साथ शुरू हुई थी। डैन्कशार्डिंग रोलअप्स के लिए अपने संपीड़ित (compressed) लेन-देन डेटा को डंप करने के लिए इथेरियम पर भारी मात्रा में स्थान लाएगा। इसका मतलब है कि इथेरियम आसानी से सैकड़ों व्यक्तिगत रोलअप्स का समर्थन करने में सक्षम होगा और प्रति सेकंड लाखों लेन-देन को वास्तविकता बना देगा।
यह जिस तरह से काम करता है वह ब्लॉक्स से जुड़े ब्लॉब्स को प्रोटो-डैंकशार्डिंग में छह (6) से बढ़ाकर पूर्ण डैन्कशार्डिंग में 64 तक विस्तारित करना है। आवश्यक बाकी बदलाव सर्वसम्मति क्लाइंट्स के काम करने के तरीके में अपडेट हैं ताकि वे नए बड़े ब्लॉब्स को संभालने में सक्षम हो सकें। इनमें से कई बदलाव डैन्कशार्डिंग से स्वतंत्र अन्य उद्देश्यों के लिए पहले से ही रोडमैप पर हैं। उदाहरण के लिए, डैन्कशार्डिंग के लिए प्रस्तावक-निर्माता पृथक्करण (pbs) को लागू करने की आवश्यकता है। यह एक अपग्रेड है जो ब्लॉक्स बनाने और ब्लॉक्स प्रस्तावित करने के कार्यों को विभिन्न सत्यापकों के बीच अलग करता है। इसी तरह, डैन्कशार्डिंग के लिए डेटा उपलब्धता सैंपलिंग (data availability sampling) की आवश्यकता होती है, लेकिन यह बहुत हल्के क्लाइंट्स के विकास के लिए भी आवश्यक है जो बहुत अधिक ऐतिहासिक डेटा ("स्टेटलेस क्लाइंट्स") संग्रहीत नहीं करते हैं।
वर्तमान प्रगति
पूर्ण डैन्कशार्डिंग अभी कई साल दूर है। इस बीच, KZG समारोह 140,000 से अधिक योगदानों के साथ संपन्न हो गया है, और प्रोटो-डैंकशार्डिंग के लिए EIP (opens in a new tab) परिपक्व हो गया है। इस प्रस्ताव को सभी टेस्टनेट्स में पूरी तरह से लागू कर दिया गया है, और मार्च 2024 में कैनकन-डेनेब ("डेंकुन") नेटवर्क अपग्रेड के साथ मेननेट पर लाइव हो गया है।
आगे की पढ़ाई
- प्रोटो-डैंकशार्डिंग नोट्स (opens in a new tab) - विटालिक बुटेरिन (Vitalik Buterin)
- डैन्कशार्डिंग पर डैन्क्राड (Dankrad) के नोट्स (opens in a new tab)
- डैन्क्राड, प्रोटो और विटालिक डैन्कशार्डिंग पर चर्चा करते हैं (opens in a new tab)
- KZG समारोह (opens in a new tab)
- विश्वसनीय सेटअप पर कार्ल बीखुइज़ेन (Carl Beekhuizen) की देवकॉन (Devcon) वार्ता (opens in a new tab)
- ब्लॉब्स के लिए डेटा उपलब्धता सैंपलिंग पर अधिक जानकारी (opens in a new tab)
- KZG प्रतिबद्धताओं और प्रमाणों पर डैन्क्राड फीस्ट (Dankrad Feist) (opens in a new tab)
- KZG बहुपद प्रतिबद्धताएँ (opens in a new tab)