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