ब्लॉकचेन डेटा स्टोरेज रणनीतियाँ
जानकारी को सीधे ब्लॉकचेन पर, या ब्लॉकचेन द्वारा सुरक्षित तरीके से स्टोर करने के कई तरीके हैं:
- EIP-4844 ब्लॉब्स
- कॉल डेटा
- लेयर 1 (L1) तंत्र के साथ ऑफचेन
- अनुबंध "कोड"
- घटनाएँ
- EVM स्टोरेज
किस तरीके का उपयोग करना है, इसका चुनाव कई मानदंडों पर आधारित है:
- जानकारी का स्रोत। कॉल डेटा में जानकारी सीधे ब्लॉकचेन से नहीं आ सकती है।
- जानकारी का गंतव्य। कॉल डेटा केवल उस लेन-देन में उपलब्ध होता है जिसमें यह शामिल होता है। घटनाएँ ऑनचेन बिल्कुल भी सुलभ नहीं हैं।
- कितनी परेशानी स्वीकार्य है? पूर्ण पैमाने पर नोड चलाने वाले कंप्यूटर ब्राउज़र में चलने वाले एप्लिकेशन में लाइट क्लाइंट की तुलना में अधिक प्रोसेसिंग कर सकते हैं।
- क्या हर नोड से जानकारी तक आसान पहुँच की सुविधा देना आवश्यक है?
- सुरक्षा आवश्यकताएँ।
सुरक्षा आवश्यकताएँ
सामान्य तौर पर, सूचना सुरक्षा में तीन विशेषताएँ होती हैं:
-
गोपनीयता, अनधिकृत संस्थाओं को जानकारी पढ़ने की अनुमति नहीं है। यह कई मामलों में महत्वपूर्ण है, लेकिन यहाँ नहीं। ब्लॉकचेन पर कोई रहस्य नहीं होते हैं। ब्लॉकचेन काम करते हैं क्योंकि कोई भी स्थिति (state) संक्रमणों को सत्यापित कर सकता है, इसलिए रहस्यों को सीधे स्टोर करने के लिए उनका उपयोग करना असंभव है। ब्लॉकचेन पर गोपनीय जानकारी स्टोर करने के तरीके हैं, लेकिन वे सभी कम से कम एक कुंजी स्टोर करने के लिए किसी ऑफचेन घटक पर निर्भर करते हैं।
-
अखंडता, जानकारी सही है, इसे अनधिकृत संस्थाओं द्वारा, या अनधिकृत तरीकों से नहीं बदला जा सकता है (उदाहरण के लिए,
Transferघटना के बिना ERC-20 टोकन (एक नए टैब में खुलता है) स्थानांतरित करना)। ब्लॉकचेन पर, हर नोड हर स्थिति परिवर्तन को सत्यापित करता है, जो अखंडता सुनिश्चित करता है। -
उपलब्धता, जानकारी किसी भी अधिकृत संस्था के लिए उपलब्ध है। ब्लॉकचेन पर, यह आमतौर पर हर पूर्ण नोड (एक नए टैब में खुलता है) पर जानकारी उपलब्ध कराकर प्राप्त किया जाता है।
यहाँ दिए गए विभिन्न समाधानों में उत्कृष्ट अखंडता है, क्योंकि हैश L1 पर पोस्ट किए जाते हैं। हालाँकि, उनकी उपलब्धता की गारंटी अलग-अलग होती है।
पूर्वापेक्षाएँ
आपको ब्लॉकचेन के मूल सिद्धांतों की अच्छी समझ होनी चाहिए। यह पृष्ठ यह भी मानकर चलता है कि पाठक ब्लॉकों, लेन-देन, और अन्य प्रासंगिक विषयों से परिचित है।
EIP-4844 ब्लॉब्स
डेंकुन हार्डफोर्क (एक नए टैब में खुलता है) से शुरू होकर इथेरियम ब्लॉकचेन में EIP-4844 (एक नए टैब में खुलता है) शामिल है, जो इथेरियम में सीमित जीवनकाल (शुरुआत में लगभग 18 दिन (एक नए टैब में खुलता है)) वाले डेटा ब्लॉब्स जोड़ता है। इन ब्लॉब्स की कीमत निष्पादन गैस से अलग तय की जाती है, हालाँकि एक समान तंत्र का उपयोग किया जाता है। वे अस्थायी डेटा पोस्ट करने का एक सस्ता तरीका हैं।
EIP-4844 ब्लॉब्स का मुख्य उपयोग रोलअप्स के लिए अपने लेन-देन प्रकाशित करना है। ऑप्टिमिस्टिक रोलअप्स को अपने ब्लॉकचेन पर लेन-देन प्रकाशित करने की आवश्यकता होती है। उन लेन-देन को चुनौती अवधि (एक नए टैब में खुलता है) के दौरान किसी के लिए भी उपलब्ध होना चाहिए ताकि यदि रोलअप का सीक्वेंसर (एक नए टैब में खुलता है) गलत स्थिति रूट पोस्ट करता है तो सत्यापनकर्ता (एक नए टैब में खुलता है) गलती को ठीक कर सकें।
हालाँकि, एक बार चुनौती अवधि बीत जाने और स्थिति रूट को अंतिम रूप दिया गया होने के बाद, इन लेन-देन को जानने का शेष उद्देश्य चेन की वर्तमान स्थिति को दोहराना है। यह स्थिति चेन नोड्स से भी उपलब्ध है, जिसमें बहुत कम प्रोसेसिंग की आवश्यकता होती है। इसलिए लेन-देन की जानकारी को अभी भी कुछ स्थानों पर संरक्षित किया जाना चाहिए, जैसे कि ब्लॉक एक्सप्लोरर, लेकिन इथेरियम द्वारा प्रदान किए जाने वाले सेंसरशिप प्रतिरोध के स्तर के लिए भुगतान करने की कोई आवश्यकता नहीं है।
शून्य-ज्ञान रोलअप्स भी अन्य नोड्स को मौजूदा स्थिति को दोहराने और वैधता प्रमाणों को सत्यापित करने में सक्षम बनाने के लिए अपना लेन-देन डेटा पोस्ट करते हैं, लेकिन फिर से यह एक अल्पकालिक आवश्यकता है।
लिखते समय EIP-4844 पर पोस्ट करने की लागत एक Wei (10-18 ETH) प्रति बाइट है, जो 21,000 निष्पादन गैस की तुलना में नगण्य है जो किसी भी लेन-देन, जिसमें ब्लॉब्स पोस्ट करने वाला भी शामिल है, की लागत होती है (एक नए टैब में खुलता है)। आप blobscan.com (एक नए टैब में खुलता है) पर वर्तमान EIP-4844 कीमत देख सकते हैं।
यहाँ कुछ प्रसिद्ध रोलअप्स द्वारा पोस्ट किए गए ब्लॉब्स देखने के पते दिए गए हैं।
कॉल डेटा
कॉल डेटा लेन-देन के हिस्से के रूप में भेजे गए बाइट्स को संदर्भित करता है। इसे ब्लॉकचेन के स्थायी रिकॉर्ड के हिस्से के रूप में उस ब्लॉक में स्टोर किया जाता है जिसमें वह लेन-देन शामिल होता है।
ब्लॉकचेन में स्थायी रूप से डेटा डालने का यह सबसे सस्ता तरीका है। प्रति बाइट लागत या तो 4 निष्पादन गैस (यदि बाइट शून्य है) या 16 गैस (कोई अन्य मान) है। यदि डेटा संकुचित (compressed) है, जो कि मानक अभ्यास है, तो हर बाइट मान समान रूप से संभावित है, इसलिए औसत लागत लगभग 15.95 गैस प्रति बाइट है।
लिखते समय, कीमतें 12 Gwei/गैस और 2300 $/ETH हैं, जिसका अर्थ है कि लागत लगभग 45 सेंट प्रति किलोबाइट है। क्योंकि EIP-4844 से पहले यह सबसे सस्ता तरीका था, यह वह तरीका है जिसका उपयोग रोलअप्स लेन-देन की जानकारी स्टोर करने के लिए करते थे, जिसे दोष चुनौतियों (fault challenges) (एक नए टैब में खुलता है) के लिए उपलब्ध होने की आवश्यकता होती है, लेकिन सीधे ऑनचेन सुलभ होने की आवश्यकता नहीं होती है।
यहाँ कुछ प्रसिद्ध रोलअप्स द्वारा पोस्ट किए गए लेन-देन देखने के पते दिए गए हैं।
L1 तंत्र के साथ ऑफचेन
आपके सुरक्षा ट्रेडऑफ़ के आधार पर, जानकारी को कहीं और रखना और एक ऐसे तंत्र का उपयोग करना स्वीकार्य हो सकता है जो यह सुनिश्चित करता है कि आवश्यकता पड़ने पर डेटा उपलब्ध हो। इसके काम करने के लिए दो आवश्यकताएँ हैं:
-
ब्लॉकचेन पर डेटा का एक हैश (एक नए टैब में खुलता है) पोस्ट करें, जिसे इनपुट प्रतिबद्धता कहा जाता है। यह एक एकल 32-बाइट शब्द हो सकता है, इसलिए यह महंगा नहीं है। जब तक इनपुट प्रतिबद्धता उपलब्ध है, अखंडता सुनिश्चित होती है क्योंकि कोई अन्य डेटा खोजना संभव नहीं है जो उसी मान पर हैश हो। इसलिए यदि गलत डेटा प्रदान किया जाता है, तो इसका पता लगाया जा सकता है।
-
एक ऐसा तंत्र रखें जो उपलब्धता सुनिश्चित करे। उदाहरण के लिए, Redstone (एक नए टैब में खुलता है) में कोई भी नोड उपलब्धता चुनौती प्रस्तुत कर सकता है। यदि सीक्वेंसर समय सीमा तक ऑनचेन प्रतिक्रिया नहीं देता है, तो इनपुट प्रतिबद्धता को छोड़ दिया जाता है, इसलिए यह माना जाता है कि जानकारी कभी पोस्ट ही नहीं की गई थी।
यह एक ऑप्टिमिस्टिक रोलअप के लिए स्वीकार्य है क्योंकि हम पहले से ही स्थिति रूट के लिए कम से कम एक ईमानदार सत्यापनकर्ता होने पर भरोसा कर रहे हैं। ऐसा ईमानदार सत्यापनकर्ता यह भी सुनिश्चित करेगा कि उसके पास ब्लॉक को प्रोसेस करने के लिए डेटा है, और यदि जानकारी ऑफचेन उपलब्ध नहीं है तो उपलब्धता चुनौती जारी करेगा। इस प्रकार के ऑप्टिमिस्टिक रोलअप को प्लाज्मा कहा जाता है।
अनुबंध कोड
वह जानकारी जिसे केवल एक बार लिखने की आवश्यकता होती है, जिसे कभी ओवरराइट नहीं किया जाता है, और जिसे ऑनचेन उपलब्ध होने की आवश्यकता होती है, उसे अनुबंध कोड के रूप में स्टोर किया जा सकता है। इसका मतलब है कि हम डेटा के साथ एक "स्मार्ट अनुबंध" बनाते हैं और फिर जानकारी पढ़ने के लिए EXTCODECOPY (एक नए टैब में खुलता है) का उपयोग करते हैं। इसका लाभ यह है कि कोड की प्रतिलिपि बनाना अपेक्षाकृत सस्ता है।
मेमोरी विस्तार की लागत के अलावा, किसी अनुबंध तक पहली पहुँच (जब यह "कोल्ड" हो) के लिए EXTCODECOPY की लागत 2600 गैस होती है और उसी अनुबंध से बाद की प्रतियों के लिए 100 गैस और 3 गैस प्रति 32 बाइट शब्द होती है। कॉल डेटा की तुलना में, जिसकी लागत 15.95 प्रति बाइट है, यह लगभग 200 बाइट्स से शुरू होने पर सस्ता है। मेमोरी विस्तार लागत के सूत्र (एक नए टैब में खुलता है) के आधार पर, जब तक आपको 4MB से अधिक मेमोरी की आवश्यकता नहीं है, मेमोरी विस्तार की लागत कॉल डेटा जोड़ने की लागत से कम है।
बेशक, यह केवल डेटा पढ़ने की लागत है। अनुबंध बनाने में लगभग 32,000 गैस + 200 गैस/बाइट का खर्च आता है। यह तरीका केवल तभी किफायती होता है जब एक ही जानकारी को विभिन्न लेन-देन में कई बार पढ़ने की आवश्यकता होती है।
अनुबंध कोड निरर्थक हो सकता है, जब तक कि यह 0xEF से शुरू न हो। 0xEF से शुरू होने वाले अनुबंधों की व्याख्या इथेरियम ऑब्जेक्ट फॉर्मेट (एक नए टैब में खुलता है) के रूप में की जाती है, जिसकी आवश्यकताएँ बहुत सख्त होती हैं।
घटनाएँ
घटनाएँ (एक नए टैब में खुलता है) स्मार्ट अनुबंधों द्वारा उत्सर्जित की जाती हैं, और ऑफचेन सॉफ़्टवेयर द्वारा पढ़ी जाती हैं। उनका लाभ यह है कि ऑफचेन कोड घटनाओं को सुन सकता है। इसकी लागत गैस (एक नए टैब में खुलता है) है, 375 और 8 गैस प्रति बाइट डेटा। 12 Gwei/गैस और 2300 $/ETH पर, यह एक सेंट और 22 सेंट प्रति किलोबाइट के बराबर है।
स्टोरेज
स्मार्ट अनुबंधों की स्थायी स्टोरेज (एक नए टैब में खुलता है) तक पहुँच होती है। हालाँकि, यह बहुत महंगा है। पहले से खाली स्टोरेज स्लॉट में 32 बाइट का शब्द लिखने में 22,100 गैस का खर्च आ सकता है (एक नए टैब में खुलता है)। 12 Gwei/गैस और 2300 $/ETH पर, यह लगभग 61 सेंट प्रति राइट ऑपरेशन, या $19.5 प्रति किलोबाइट है।
यह इथेरियम में स्टोरेज का सबसे महंगा रूप है।
सारांश
यह तालिका विभिन्न विकल्पों, उनके लाभों और हानियों का सारांश देती है।
| स्टोरेज का प्रकार | डेटा का स्रोत | उपलब्धता की गारंटी | ऑनचेन उपलब्धता | अतिरिक्त सीमाएँ |
|---|---|---|---|---|
| EIP-4844 ब्लॉब्स | ऑफचेन | ~18 दिनों (एक नए टैब में खुलता है) के लिए इथेरियम की गारंटी | केवल हैश उपलब्ध है | |
| कॉल डेटा | ऑफचेन | हमेशा के लिए इथेरियम की गारंटी (ब्लॉकचेन का हिस्सा) | केवल तभी उपलब्ध है जब किसी अनुबंध में लिखा गया हो, और उस लेन-देन पर | |
| L1 तंत्र के साथ ऑफचेन | ऑफचेन | चुनौती अवधि के दौरान "एक ईमानदार सत्यापनकर्ता" की गारंटी | केवल हैश | चुनौती तंत्र द्वारा गारंटीकृत, केवल चुनौती अवधि के दौरान |
| अनुबंध कोड | ऑनचेन या ऑफचेन | हमेशा के लिए इथेरियम की गारंटी (ब्लॉकचेन का हिस्सा) | हाँ | एक "यादृच्छिक" पते पर लिखा गया, 0xEF से शुरू नहीं हो सकता |
| घटनाएँ | ऑनचेन | हमेशा के लिए इथेरियम की गारंटी (ब्लॉकचेन का हिस्सा) | नहीं | |
| स्टोरेज | ऑनचेन | हमेशा के लिए इथेरियम की गारंटी (ब्लॉकचेन का हिस्सा और ओवरराइट होने तक वर्तमान स्थिति) | हाँ |