इथेरियम खाते
एक इथेरियम खाता एक ऐसी इकाई है जिसमें ईथर (ETH) बैलेंस होता है जो इथेरियम पर संदेश भेज सकता है। खाते उपयोगकर्ता द्वारा नियंत्रित हो सकते हैं या स्मार्ट अनुबंधों के रूप में डिप्लॉय किए जा सकते हैं।
पूर्वापेक्षाएँ
इस पृष्ठ को बेहतर ढंग से समझने में आपकी मदद करने के लिए, हम अनुशंसा करते हैं कि आप पहले हमारे इथेरियम के परिचय को पढ़ें।
खाते के प्रकार
इथेरियम में दो प्रकार के खाते होते हैं:
- बाह्य स्वामित्व वाला खाता (EOA) – निजी कुंजियों वाले किसी भी व्यक्ति द्वारा नियंत्रित
- कॉन्ट्रैक्ट खाता – नेटवर्क पर डिप्लॉय किया गया एक स्मार्ट अनुबंध, जो कोड द्वारा नियंत्रित होता है। स्मार्ट अनुबंधों के बारे में जानें
दोनों प्रकार के खातों में निम्नलिखित क्षमता होती है:
- ETH और टोकन प्राप्त करना, रखना और भेजना
- डिप्लॉय किए गए स्मार्ट अनुबंधों के साथ इंटरैक्ट करना
मुख्य अंतर
बाह्य स्वामित्व वाले (Externally-owned)
- खाता बनाने में कोई लागत नहीं आती है
- लेन-देन शुरू कर सकते हैं
- बाह्य स्वामित्व वाले खातों के बीच लेन-देन केवल ETH/टोकन ट्रांसफर हो सकते हैं
- कुंजियों के एक क्रिप्टोग्राफ़िक युग्म से बने होते हैं: सार्वजनिक और निजी कुंजियाँ जो खाते की गतिविधियों को नियंत्रित करती हैं
कॉन्ट्रैक्ट (Contract)
- अनुबंध बनाने में लागत आती है क्योंकि आप नेटवर्क स्टोरेज का उपयोग कर रहे हैं
- केवल लेन-देन प्राप्त करने की प्रतिक्रिया में संदेश भेज सकते हैं
- किसी बाहरी खाते से कॉन्ट्रैक्ट खाते में लेन-देन कोड को ट्रिगर कर सकता है जो कई अलग-अलग क्रियाएं निष्पादित कर सकता है, जैसे टोकन ट्रांसफर करना या यहां तक कि एक नया अनुबंध बनाना
- कॉन्ट्रैक्ट खातों में निजी कुंजियाँ नहीं होती हैं। इसके बजाय, वे स्मार्ट अनुबंध कोड के लॉजिक द्वारा नियंत्रित होते हैं
एक खाते का परीक्षण
इथेरियम खातों में चार फ़ील्ड होते हैं:
nonce– एक काउंटर जो बाह्य स्वामित्व वाले खाते से भेजे गए लेन-देन की संख्या या कॉन्ट्रैक्ट खाते द्वारा बनाए गए अनुबंधों की संख्या को इंगित करता है। प्रत्येक खाते के लिए दिए गए नॉन्स के साथ केवल एक लेन-देन निष्पादित किया जा सकता है, जो रीप्ले हमलों से बचाता है जहां हस्ताक्षरित लेन-देन बार-बार प्रसारित और फिर से निष्पादित किए जाते हैं।balance– इस पते के स्वामित्व वाले Wei की संख्या। Wei, ETH का एक मूल्यवर्ग है और प्रति ETH 1e+18 Wei होते हैं।codeHash– यह हैश इथेरियम वर्चुअल मशीन (EVM) पर किसी खाते के कोड को संदर्भित करता है। कॉन्ट्रैक्ट खातों में कोड फ़्रैगमेंट प्रोग्राम किए गए होते हैं जो विभिन्न संचालन कर सकते हैं। यदि खाते को संदेश कॉल मिलता है तो यह EVM कोड निष्पादित हो जाता है। अन्य खाता फ़ील्ड के विपरीत, इसे बदला नहीं जा सकता है। ऐसे सभी कोड फ़्रैगमेंट बाद में पुनर्प्राप्ति के लिए उनके संबंधित हैश के तहत स्थिति डेटाबेस में समाहित होते हैं। इस हैश मान को codeHash के रूप में जाना जाता है। बाह्य स्वामित्व वाले खातों के लिए, codeHash फ़ील्ड एक खाली स्ट्रिंग का हैश है।storageRoot– कभी-कभी इसे स्टोरेज हैश के रूप में जाना जाता है। एक मर्कल पैट्रिशिया ट्राई के रूट नोड का 256-बिट हैश जो खाते की स्टोरेज सामग्री (256-बिट पूर्णांक मानों के बीच एक मैपिंग) को एन्कोड करता है, जिसे 256-बिट पूर्णांक कुंजियों के केकाक 256-बिट हैश से पुनरावर्ती लंबाई उपसर्ग (RLP)-एन्कोडेड 256-बिट पूर्णांक मानों में मैपिंग के रूप में ट्राई में एन्कोड किया जाता है। यह ट्राई इस खाते की स्टोरेज सामग्री के हैश को एन्कोड करता है, और डिफ़ॉल्ट रूप से खाली होता है।
आरेख Ethereum EVM illustrated (नए टैब में खुलता है) से अनुकूलित
बाह्य स्वामित्व वाले खाते और कुंजी युग्म
एक खाता क्रिप्टोग्राफ़िक कुंजियों के एक युग्म से बना होता है: सार्वजनिक और निजी। वे यह साबित करने में मदद करते हैं कि लेन-देन वास्तव में प्रेषक द्वारा हस्ताक्षरित किया गया था और जालसाजी को रोकते हैं। आपकी निजी कुंजी वह है जिसका उपयोग आप लेन-देन पर हस्ताक्षर करने के लिए करते हैं, इसलिए यह आपको आपके खाते से जुड़े फंड की कस्टडी प्रदान करती है। आप वास्तव में कभी भी क्रिप्टोकरेंसी नहीं रखते हैं, आप निजी कुंजियाँ रखते हैं - फंड हमेशा इथेरियम के लेज़र पर होते हैं।
यह दुर्भावनापूर्ण कर्ताओं को नकली लेन-देन प्रसारित करने से रोकता है क्योंकि आप हमेशा लेन-देन के प्रेषक को सत्यापित कर सकते हैं।
यदि ऐलिस अपने खाते से बॉब के खाते में ईथर भेजना चाहती है, तो ऐलिस को एक लेन-देन अनुरोध बनाना होगा और इसे सत्यापन के लिए नेटवर्क पर भेजना होगा। इथेरियम का सार्वजनिक-कुंजी क्रिप्टोग्राफी का उपयोग यह सुनिश्चित करता है कि ऐलिस यह साबित कर सकती है कि उसने मूल रूप से लेन-देन अनुरोध शुरू किया था। क्रिप्टोग्राफ़िक तंत्र के बिना, एक दुर्भावनापूर्ण विरोधी ईव बस सार्वजनिक रूप से एक अनुरोध प्रसारित कर सकती है जो कुछ इस तरह दिखता है "ऐलिस के खाते से ईव के खाते में 5 ETH भेजें," और कोई भी यह सत्यापित करने में सक्षम नहीं होगा कि यह ऐलिस से नहीं आया है।
खाता निर्माण
जब आप एक खाता बनाना चाहते हैं, तो अधिकांश लाइब्रेरी आपके लिए एक यादृच्छिक निजी कुंजी उत्पन्न करेंगी।
एक निजी कुंजी 64 हेक्स वर्णों से बनी होती है और इसे पासवर्ड से एन्क्रिप्ट किया जा सकता है।
उदाहरण:
fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036415f
सार्वजनिक कुंजी दीर्घवृत्तीय वक्र डिजिटल हस्ताक्षर एल्गोरिथम (Elliptic Curve Digital Signature Algorithm) (नए टैब में खुलता है) का उपयोग करके निजी कुंजी से उत्पन्न होती है। आप सार्वजनिक कुंजी के केकाक-256 हैश के अंतिम 20 बाइट्स लेकर और शुरुआत में 0x जोड़कर अपने खाते के लिए एक सार्वजनिक पता प्राप्त करते हैं।
इसका मतलब है कि एक बाह्य स्वामित्व वाले खाते (EOA) में 42-वर्ण का पता होता है (20-बाइट खंड जो 40 हेक्साडेसिमल वर्ण और 0x उपसर्ग है)।
उदाहरण:
0x5e97870f263700f46aa00d967821199b9bc5a120
निम्नलिखित उदाहरण दिखाता है कि नया खाता उत्पन्न करने के लिए Clef (नए टैब में खुलता है) नामक हस्ताक्षर करने वाले टूल का उपयोग कैसे करें। Clef एक खाता प्रबंधन और हस्ताक्षर करने वाला टूल है जो इथेरियम क्लाइंट, Geth (नए टैब में खुलता है) के साथ बंडल में आता है। clef newaccount कमांड एक नया कुंजी युग्म बनाता है और उन्हें एक एन्क्रिप्टेड कीस्टोर में सहेजता है।
> clef newaccount --keystore <path>
Please enter a password for the new account to be created:
> <password>
------------
INFO [10-28|16:19:09.156] Your new key was generated address=0x5e97870f263700f46aa00d967821199b9bc5a120
WARN [10-28|16:19:09.306] Please backup your key file path=/home/user/go-ethereum/data/keystore/UTC--2022-10-28T15-19-08.000825927Z--5e97870f263700f46aa00d967821199b9bc5a120
WARN [10-28|16:19:09.306] Please remember your password!
Generated account 0x5e97870f263700f46aa00d967821199b9bc5a120
Geth दस्तावेज़ीकरण (नए टैब में खुलता है)
आपकी निजी कुंजी से नई सार्वजनिक कुंजियाँ प्राप्त करना संभव है, लेकिन आप सार्वजनिक कुंजियों से निजी कुंजी प्राप्त नहीं कर सकते। अपनी निजी कुंजियों को सुरक्षित रखना महत्वपूर्ण है और, जैसा कि नाम से पता चलता है, निजी (PRIVATE) रखना चाहिए।
आपको संदेशों और लेन-देन पर हस्ताक्षर करने के लिए एक निजी कुंजी की आवश्यकता होती है जो एक हस्ताक्षर आउटपुट करती है। फिर अन्य लोग आपकी सार्वजनिक कुंजी प्राप्त करने के लिए हस्ताक्षर ले सकते हैं, जिससे संदेश के लेखक को साबित किया जा सकता है। अपने एप्लिकेशन में, आप नेटवर्क पर लेन-देन भेजने के लिए JavaScript लाइब्रेरी का उपयोग कर सकते हैं।
कॉन्ट्रैक्ट खाते
कॉन्ट्रैक्ट खातों में भी 42 वर्णों का हेक्साडेसिमल पता होता है:
उदाहरण:
0x06012c8cf97bead5deae237070f9587f8e7a266d
कॉन्ट्रैक्ट का पता आमतौर पर तब दिया जाता है जब कोई अनुबंध इथेरियम ब्लॉकचेन पर डिप्लॉय किया जाता है। पता निर्माता के पते और उस पते से भेजे गए लेन-देन की संख्या ("नॉन्स") से आता है। इस तरह CREATE ऑपरेशन एक पता प्राप्त करता है।
अनुबंधों को CREATE2 (नए टैब में खुलता है) के साथ भी डिप्लॉय किया जा सकता है, जो निर्माता के पते, निर्माता द्वारा चुने गए मान ("सॉल्ट"), और अनुबंध के निर्माण कोड के हैश से पता प्राप्त करता है। इसमें कोई नॉन्स शामिल नहीं होता है, इसलिए अनुबंध के अस्तित्व में आने से पहले पते की गणना की जा सकती है और यह समान रहता है, भले ही निर्माता इस बीच कितने भी अन्य लेन-देन भेजे। यह एक ऐसे अनुबंध को संदर्भित करना संभव बनाता है जिसे अभी तक डिप्लॉय नहीं किया गया है।
सत्यापक कुंजियाँ
इथेरियम में एक अन्य प्रकार की कुंजी भी है, जिसे तब पेश किया गया था जब इथेरियम प्रूफ-ऑफ-वर्क (PoW) से प्रूफ-ऑफ़-स्टेक (PoS) आधारित सर्वसम्मति में बदल गया था। ये 'BLS' कुंजियाँ हैं और इनका उपयोग सत्यापकों की पहचान करने के लिए किया जाता है। नेटवर्क को सर्वसम्मति पर आने के लिए आवश्यक बैंडविड्थ को कम करने के लिए इन कुंजियों को कुशलतापूर्वक एकत्र किया जा सकता है। इस कुंजी एकत्रीकरण के बिना एक सत्यापक के लिए न्यूनतम स्टेक बहुत अधिक होगा।
सत्यापक कुंजियों के बारे में अधिक जानकारी।
वॉलेट पर एक नोट
खाता कोई वॉलेट नहीं है। वॉलेट एक इंटरफ़ेस या एप्लिकेशन है जो आपको अपने इथेरियम खाते के साथ इंटरैक्ट करने देता है, चाहे वह बाह्य स्वामित्व वाला खाता हो या कॉन्ट्रैक्ट खाता।
एक दृश्य डेमो
ऑस्टिन को हैश फ़ंक्शन और कुंजी युग्मों के बारे में बताते हुए देखें।
आगे की पढ़ाई
- इथेरियम खातों को समझना (नए टैब में खुलता है) - Etherscan
क्या आप किसी ऐसे सामुदायिक संसाधन के बारे में जानते हैं जिसने आपकी मदद की? इस पृष्ठ को संपादित करें और इसे जोड़ें!