प्रूफ-ऑफ़-स्टेक (PoS) इथेरियम में कुंजियाँ
इथेरियम सार्वजनिक-निजी कुंजी क्रिप्टोग्राफी का उपयोग करके उपयोगकर्ता की संपत्तियों को सुरक्षित करता है। सार्वजनिक कुंजी का उपयोग इथेरियम पते के आधार के रूप में किया जाता है—अर्थात, यह आम जनता को दिखाई देता है और एक विशिष्ट पहचानकर्ता के रूप में उपयोग किया जाता है। निजी (या 'गुप्त') कुंजी केवल खाता स्वामी के लिए ही सुलभ होनी चाहिए। निजी कुंजी का उपयोग लेन-देन और डेटा पर 'हस्ताक्षर करने' के लिए किया जाता है ताकि क्रिप्टोग्राफी यह साबित कर सके कि धारक किसी विशिष्ट निजी कुंजी की किसी कार्रवाई को मंजूरी देता है।
इथेरियम की कुंजियाँ एलिप्टिक-कर्व क्रिप्टोग्राफी (opens in a new tab) का उपयोग करके उत्पन्न की जाती हैं।
हालाँकि, जब इथेरियम प्रूफ-ऑफ-वर्क (PoW) से प्रूफ-ऑफ़-स्टेक (PoS) में स्थानांतरित हुआ, तो इथेरियम में एक नए प्रकार की कुंजी जोड़ी गई। मूल कुंजियाँ अभी भी पहले की तरह ही काम करती हैं—खातों को सुरक्षित करने वाली एलिप्टिक-कर्व-आधारित कुंजियों में कोई बदलाव नहीं किया गया था। हालाँकि, उपयोगकर्ताओं को ETH की स्टेकिंग करके और सत्यापकों को चलाकर प्रूफ-ऑफ़-स्टेक में भाग लेने के लिए एक नए प्रकार की कुंजी की आवश्यकता थी। यह आवश्यकता बड़ी संख्या में सत्यापकों के बीच पारित होने वाले कई संदेशों से जुड़ी स्केलेबिलिटी चुनौतियों से उत्पन्न हुई, जिसके लिए एक ऐसी क्रिप्टोग्राफ़िक पद्धति की आवश्यकता थी जिसे नेटवर्क को सर्वसम्मति पर आने के लिए आवश्यक संचार की मात्रा को कम करने के लिए आसानी से एकत्रित किया जा सके।
यह नए प्रकार की कुंजी Boneh-Lynn-Shacham (BLS) हस्ताक्षर योजना (opens in a new tab) का उपयोग करती है। BLS हस्ताक्षरों के बहुत कुशल एकत्रीकरण को सक्षम बनाता है, लेकिन एकत्रित व्यक्तिगत सत्यापक कुंजियों की रिवर्स इंजीनियरिंग की भी अनुमति देता है और सत्यापकों के बीच कार्यों के प्रबंधन के लिए आदर्श है।
दो प्रकार की सत्यापक कुंजियाँ
प्रूफ-ऑफ़-स्टेक पर स्विच करने से पहले, इथेरियम उपयोगकर्ताओं के पास अपने फंड तक पहुंचने के लिए केवल एक ही एलिप्टिक-कर्व-आधारित निजी कुंजी थी। प्रूफ-ऑफ़-स्टेक की शुरुआत के साथ, जो उपयोगकर्ता सोलो स्टेकर बनना चाहते थे, उन्हें एक सत्यापक कुंजी और एक निकासी कुंजी की भी आवश्यकता थी।
सत्यापक कुंजी
सत्यापक हस्ताक्षर कुंजी में दो तत्व होते हैं:
- सत्यापक निजी कुंजी
- सत्यापक सार्वजनिक कुंजी
सत्यापक निजी कुंजी का उद्देश्य ब्लॉक प्रस्तावों और अनुप्रमाणन जैसे ऑनचेन संचालन पर हस्ताक्षर करना है। इस कारण से, इन कुंजियों को एक हॉट वॉलेट में रखा जाना चाहिए।
इस लचीलेपन का लाभ यह है कि सत्यापक हस्ताक्षर कुंजियों को एक डिवाइस से दूसरे डिवाइस में बहुत तेज़ी से ले जाया जा सकता है, हालाँकि, यदि वे खो जाती हैं या चोरी हो जाती हैं, तो एक चोर कुछ तरीकों से दुर्भावनापूर्ण कार्य करने में सक्षम हो सकता है:
- सत्यापक की कटौती करवा सकता है:
- एक प्रस्तावक बनकर और एक ही स्लॉट के लिए दो अलग-अलग बीकन ब्लॉकों पर हस्ताक्षर करके
- एक अनुप्रमाणक बनकर और एक ऐसे अनुप्रमाणन पर हस्ताक्षर करके जो दूसरे को "घेरता" है
- एक अनुप्रमाणक बनकर और एक ही लक्ष्य वाले दो अलग-अलग अनुप्रमाणनों पर हस्ताक्षर करके
- एक स्वैच्छिक निकास को बाध्य करके, जो सत्यापक को स्टेकिंग से रोकता है, और निकासी कुंजी के मालिक को इसके ETH बैलेंस तक पहुंच प्रदान करता है
जब कोई उपयोगकर्ता स्टेकिंग जमा अनुबंध में ETH जमा करता है, तो लेन-देन डेटा में सत्यापक सार्वजनिक कुंजी शामिल होती है। इसे जमा डेटा के रूप में जाना जाता है और यह इथेरियम को सत्यापक की पहचान करने की अनुमति देता है।
निकासी क्रेडेंशियल्स
प्रत्येक सत्यापक के पास एक गुण होता है जिसे निकासी क्रेडेंशियल्स के रूप में जाना जाता है। इस 32-बाइट फ़ील्ड का पहला बाइट खाता प्रकार की पहचान करता है: 0x00 मूल BLS (शपेला-पूर्व, गैर-निकासी योग्य) क्रेडेंशियल्स का प्रतिनिधित्व करता है, 0x01 लीगेसी क्रेडेंशियल्स का प्रतिनिधित्व करता है जो एक निष्पादन पते को इंगित करते हैं, और 0x02 आधुनिक कंपाउंडिंग क्रेडेंशियल प्रकार का प्रतिनिधित्व करता है।
0x00 BLS कुंजियों वाले सत्यापकों को अतिरिक्त बैलेंस भुगतान या स्टेकिंग से पूर्ण निकासी को सक्रिय करने के लिए इन क्रेडेंशियल्स को एक निष्पादन पते को इंगित करने के लिए अपडेट करना होगा। यह प्रारंभिक कुंजी निर्माण के दौरान जमा डेटा में एक निष्पादन पता प्रदान करके, या बाद में BLSToExecutionChange संदेश पर हस्ताक्षर करने और प्रसारित करने के लिए निकासी कुंजी का उपयोग करके किया जा सकता है।
सत्यापक निकासी क्रेडेंशियल्स के बारे में अधिक जानकारी
निकासी कुंजी
यदि प्रारंभिक जमा के दौरान सेट नहीं किया गया है, तो निकासी क्रेडेंशियल्स को निष्पादन पते को इंगित करने के लिए अपडेट करने के लिए निकासी कुंजी की आवश्यकता होगी। यह अतिरिक्त बैलेंस भुगतानों को संसाधित करना शुरू करने में सक्षम करेगा, और उपयोगकर्ताओं को अपने स्टेक किए गए ETH को पूरी तरह से निकालने की भी अनुमति देगा।
सत्यापक कुंजियों की तरह ही, निकासी कुंजियों में भी दो घटक होते हैं:
- निकासी निजी कुंजी
- निकासी सार्वजनिक कुंजी
निकासी क्रेडेंशियल्स को 0x01 प्रकार में अपडेट करने से पहले इस कुंजी को खोने का मतलब है सत्यापक बैलेंस तक पहुंच खोना। सत्यापक अभी भी अनुप्रमाणन और ब्लॉकों पर हस्ताक्षर कर सकता है क्योंकि इन कार्यों के लिए सत्यापक की निजी कुंजी की आवश्यकता होती है, हालाँकि यदि निकासी कुंजियाँ खो जाती हैं तो बहुत कम या कोई प्रोत्साहन नहीं होता है।
इथेरियम खाता कुंजियों से सत्यापक कुंजियों को अलग करने से एक ही उपयोगकर्ता द्वारा कई सत्यापकों को चलाया जा सकता है।
नोट: स्टेकिंग कर्तव्यों से बाहर निकलने और सत्यापक के बैलेंस को निकालने के लिए वर्तमान में सत्यापक कुंजी के साथ एक स्वैच्छिक निकास संदेश (VEM) (opens in a new tab) पर हस्ताक्षर करने की आवश्यकता होती है। हालाँकि, EIP-7002 (opens in a new tab) एक प्रस्ताव है जो भविष्य में उपयोगकर्ता को निकासी कुंजी के साथ निकास संदेशों पर हस्ताक्षर करके सत्यापक के निकास को ट्रिगर करने और उसके बैलेंस को निकालने की अनुमति देगा। यह उन स्टेकर्स को सक्षम करके विश्वास मान्यताओं को कम करेगा जो स्टेकिंग-एज़-ए-सर्विस प्रदाताओं को ETH प्रत्यायोजित करते हैं, ताकि वे अपने फंड के नियंत्रण में रह सकें।
बीज वाक्यांश से कुंजियाँ प्राप्त करना
यदि स्टेक किए गए प्रत्येक 32 ETH के लिए 2 पूरी तरह से स्वतंत्र कुंजियों के एक नए सेट की आवश्यकता होती है, तो कुंजी प्रबंधन जल्दी ही बोझिल हो जाएगा, विशेष रूप से कई सत्यापकों को चलाने वाले उपयोगकर्ताओं के लिए। इसके बजाय, एक ही सामान्य रहस्य से कई सत्यापक कुंजियाँ प्राप्त की जा सकती हैं और उस एकल रहस्य को संग्रहीत करने से कई सत्यापक कुंजियों तक पहुंच की अनुमति मिलती है।
निमोनिक्स (Mnemonics) (opens in a new tab) और पथ प्रमुख विशेषताएं हैं जिनका उपयोगकर्ता अक्सर सामना करते हैं जब वे अपने वॉलेट तक पहुंचते हैं (opens in a new tab)। निमोनिक शब्दों का एक क्रम है जो एक निजी कुंजी के लिए प्रारंभिक बीज के रूप में कार्य करता है। जब अतिरिक्त डेटा के साथ जोड़ा जाता है, तो निमोनिक एक हैश उत्पन्न करता है जिसे 'मास्टर कुंजी' के रूप में जाना जाता है। इसे एक पेड़ की जड़ के रूप में सोचा जा सकता है। इस जड़ से शाखाओं को फिर एक पदानुक्रमित पथ का उपयोग करके प्राप्त किया जा सकता है ताकि चाइल्ड नोड अपने मूल नोड के हैश और पेड़ में उनके सूचकांक के संयोजन के रूप में मौजूद हो सकें। निमोनिक-आधारित कुंजी निर्माण के लिए BIP-32 (opens in a new tab) और BIP-19 (opens in a new tab) मानकों के बारे में पढ़ें।
इन पथों की संरचना निम्नलिखित है, जो उन उपयोगकर्ताओं के लिए परिचित होगी जिन्होंने हार्डवेयर वॉलेट के साथ बातचीत की है:
m/44'/60'/0'/0`
इस पथ में स्लैश निजी कुंजी के घटकों को निम्नानुसार अलग करते हैं:
master_key / purpose / coin_type / account / change / address_index
यह तर्क उपयोगकर्ताओं को एक ही निमोनिक वाक्यांश में अधिक से अधिक सत्यापकों को संलग्न करने में सक्षम बनाता है क्योंकि पेड़ की जड़ सामान्य हो सकती है, और शाखाओं पर भिन्नता हो सकती है। उपयोगकर्ता निमोनिक वाक्यांश से कितनी भी कुंजियाँ प्राप्त कर सकता है।
[m / 0]
/
/
[m] - [m / 1]
\
\
[m / 2]
प्रत्येक शाखा को एक / द्वारा अलग किया जाता है, इसलिए m/2 का अर्थ है मास्टर कुंजी से शुरू करें और शाखा 2 का अनुसरण करें। नीचे दिए गए योजनाबद्ध चित्र में तीन निकासी कुंजियों को संग्रहीत करने के लिए एक ही निमोनिक वाक्यांश का उपयोग किया गया है, जिनमें से प्रत्येक में दो संबद्ध सत्यापक हैं।

