मुख्य सामग्री पर जाएं
Change page

इथेरियम खाते

एक इथेरियम खाता एक ऐसी इकाई है जिसमें ईथर (ETH) बैलेंस होता है जो इथेरियम पर संदेश भेज सकता है। खाते उपयोगकर्ता द्वारा नियंत्रित हो सकते हैं या स्मार्ट अनुबंध के रूप में डिप्लॉय किए जा सकते हैं।

पूर्वापेक्षाएँ

इस पृष्ठ को बेहतर ढंग से समझने में आपकी मदद करने के लिए, हम अनुशंसा करते हैं कि आप पहले हमारे इथेरियम के परिचय को पढ़ें।

खाते के प्रकार

इथेरियम में दो प्रकार के खाते होते हैं:

  • बाह्य रूप से स्वामित्व वाला खाता (Externally-owned account - EOA) – निजी कुंजी वाले किसी भी व्यक्ति द्वारा नियंत्रित
  • कॉन्ट्रैक्ट खाता – नेटवर्क पर डिप्लॉय किया गया एक स्मार्ट अनुबंध, जो कोड द्वारा नियंत्रित होता है। स्मार्ट अनुबंधों के बारे में जानें

दोनों प्रकार के खातों में निम्नलिखित क्षमताएं होती हैं:

  • ETH और टोकन प्राप्त करना, रखना और भेजना
  • डिप्लॉय किए गए स्मार्ट अनुबंधों के साथ इंटरैक्ट करना

मुख्य अंतर

बाह्य रूप से स्वामित्व वाले (Externally-owned)

  • खाता बनाने में कोई लागत नहीं आती है
  • लेन-देन शुरू कर सकते हैं
  • बाह्य रूप से स्वामित्व वाले खातों के बीच लेन-देन केवल ETH/टोकन ट्रांसफर हो सकते हैं
  • कुंजियों के एक क्रिप्टोग्राफ़िक युग्म से बने होते हैं: सार्वजनिक कुंजी और निजी कुंजी जो खाते की गतिविधियों को नियंत्रित करती हैं

कॉन्ट्रैक्ट

  • अनुबंध बनाने में लागत आती है क्योंकि आप नेटवर्क स्टोरेज का उपयोग कर रहे हैं
  • केवल लेन-देन प्राप्त करने की प्रतिक्रिया में ही संदेश भेज सकते हैं
  • किसी बाहरी खाते से कॉन्ट्रैक्ट खाते में लेन-देन कोड को ट्रिगर कर सकता है जो कई अलग-अलग क्रियाएं निष्पादित कर सकता है, जैसे टोकन ट्रांसफर करना या यहां तक कि एक नया अनुबंध बनाना
  • कॉन्ट्रैक्ट खातों में निजी कुंजी नहीं होती है। इसके बजाय, वे स्मार्ट अनुबंध कोड के लॉजिक द्वारा नियंत्रित होते हैं

एक खाते का परीक्षण

इथेरियम खातों में चार फ़ील्ड होते हैं:

  • nonce – एक काउंटर जो बाह्य रूप से स्वामित्व वाले खाते से भेजे गए लेन-देन की संख्या या कॉन्ट्रैक्ट खाते द्वारा बनाए गए अनुबंधों की संख्या को दर्शाता है। प्रत्येक खाते के लिए दिए गए नॉन्स के साथ केवल एक लेन-देन निष्पादित किया जा सकता है, जो रीप्ले हमलों (replay attacks) से बचाता है जहां हस्ताक्षर किए गए लेन-देन बार-बार प्रसारित और फिर से निष्पादित किए जाते हैं।
  • balance – इस पते के स्वामित्व वाले Wei की संख्या। Wei, ETH का एक मूल्यवर्ग है और प्रति ETH 1e+18 Wei होते हैं।
  • codeHash – यह हैश इथेरियम वर्चुअल मशीन (EVM) पर किसी खाते के कोड को संदर्भित करता है। कॉन्ट्रैक्ट खातों में कोड फ़्रैगमेंट प्रोग्राम किए गए होते हैं जो विभिन्न संचालन कर सकते हैं। यदि खाते को संदेश कॉल प्राप्त होता है तो यह EVM कोड निष्पादित हो जाता है। अन्य खाता फ़ील्ड के विपरीत, इसे बदला नहीं जा सकता है। ऐसे सभी कोड फ़्रैगमेंट बाद में पुनर्प्राप्ति के लिए उनके संबंधित हैश के तहत स्थिति (state) डेटाबेस में समाहित होते हैं। इस हैश मान को codeHash के रूप में जाना जाता है। बाह्य रूप से स्वामित्व वाले खातों के लिए, codeHash फ़ील्ड एक खाली स्ट्रिंग का हैश है।
  • storageRoot – कभी-कभी इसे स्टोरेज हैश के रूप में जाना जाता है। एक मर्कल पैट्रिशिया ट्राई के रूट नोड का 256-बिट हैश जो खाते की स्टोरेज सामग्री (256-बिट पूर्णांक मानों के बीच एक मैपिंग) को एन्कोड करता है, जिसे 256-बिट पूर्णांक कुंजियों के केकाक-256 हैश से RLP-एन्कोडेड 256-बिट पूर्णांक मानों में मैपिंग के रूप में ट्राई में एन्कोड किया जाता है। यह ट्राई इस खाते की स्टोरेज सामग्री के हैश को एन्कोड करता है, और डिफ़ॉल्ट रूप से खाली होता है।

A diagram showing the make up of an account आरेख Ethereum EVM illustrated (opens in a new tab) से अनुकूलित

बाह्य रूप से स्वामित्व वाले खाते और कुंजी युग्म

एक खाता क्रिप्टोग्राफ़िक कुंजियों के एक युग्म से बना होता है: सार्वजनिक कुंजी और निजी कुंजी। वे यह साबित करने में मदद करते हैं कि लेन-देन वास्तव में प्रेषक द्वारा हस्ताक्षरित किया गया था और जालसाजी को रोकते हैं। आपकी निजी कुंजी वह है जिसका उपयोग आप लेन-देन पर हस्ताक्षर करने के लिए करते हैं, इसलिए यह आपको आपके खाते से जुड़े फंड की कस्टडी प्रदान करती है। आप वास्तव में कभी भी क्रिप्टोकरेंसी नहीं रखते हैं, आप निजी कुंजी रखते हैं – फंड हमेशा इथेरियम के लेज़र पर होते हैं।

यह दुर्भावनापूर्ण तत्वों को नकली लेन-देन प्रसारित करने से रोकता है क्योंकि आप हमेशा लेन-देन के प्रेषक को सत्यापित कर सकते हैं।

यदि ऐलिस अपने खाते से बॉब के खाते में ईथर भेजना चाहती है, तो ऐलिस को एक लेन-देन अनुरोध बनाना होगा और इसे सत्यापन के लिए नेटवर्क पर भेजना होगा। इथेरियम का सार्वजनिक-कुंजी क्रिप्टोग्राफी का उपयोग यह सुनिश्चित करता है कि ऐलिस यह साबित कर सके कि उसने मूल रूप से लेन-देन अनुरोध शुरू किया था। क्रिप्टोग्राफ़िक तंत्र के बिना, एक दुर्भावनापूर्ण विरोधी ईव (Eve) आसानी से सार्वजनिक रूप से एक अनुरोध प्रसारित कर सकती है जो कुछ इस तरह दिखता है "ऐलिस के खाते से ईव के खाते में 5 ETH भेजें," और कोई भी यह सत्यापित नहीं कर पाएगा कि यह ऐलिस की ओर से नहीं आया है।

खाता निर्माण

जब आप एक खाता बनाना चाहते हैं, तो अधिकांश लाइब्रेरी आपके लिए एक यादृच्छिक (random) निजी कुंजी उत्पन्न करेंगी।

एक निजी कुंजी 64 हेक्स (hex) वर्णों से बनी होती है और इसे पासवर्ड से एन्क्रिप्ट किया जा सकता है।

उदाहरण:

fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036415f

सार्वजनिक कुंजी दीर्घवृत्तीय वक्र डिजिटल हस्ताक्षर एल्गोरिथम (Elliptic Curve Digital Signature Algorithm) (opens in a new tab) का उपयोग करके निजी कुंजी से उत्पन्न होती है। आप सार्वजनिक कुंजी के केकाक-256 हैश के अंतिम 20 बाइट्स लेकर और शुरुआत में 0x जोड़कर अपने खाते के लिए एक सार्वजनिक पता प्राप्त करते हैं।

इसका मतलब है कि बाह्य रूप से स्वामित्व वाले खाते (EOA) में 42-वर्णों का पता होता है (20-बाइट सेगमेंट जो 40 हेक्साडेसिमल वर्ण है और साथ में 0x उपसर्ग है)।

उदाहरण:

0x5e97870f263700f46aa00d967821199b9bc5a120

निम्नलिखित उदाहरण दिखाता है कि नया खाता बनाने के लिए Clef (opens in a new tab) नामक हस्ताक्षर करने वाले टूल का उपयोग कैसे करें। Clef एक खाता प्रबंधन और हस्ताक्षर करने वाला टूल है जो इथेरियम क्लाइंट, Geth (opens in a new tab) के साथ बंडल में आता है। clef newaccount कमांड एक नया कुंजी युग्म बनाता है और उन्हें एक एन्क्रिप्टेड कीस्टोर में सहेजता है।

Geth दस्तावेज़ (opens in a new tab)

आपकी निजी कुंजी से नई सार्वजनिक कुंजियाँ प्राप्त करना संभव है, लेकिन आप सार्वजनिक कुंजियों से निजी कुंजी प्राप्त नहीं कर सकते। अपनी निजी कुंजियों को सुरक्षित रखना महत्वपूर्ण है और, जैसा कि नाम से पता चलता है, निजी (PRIVATE) रखना चाहिए।

आपको संदेशों और लेन-देन पर हस्ताक्षर करने के लिए एक निजी कुंजी की आवश्यकता होती है जो एक हस्ताक्षर आउटपुट करती है। फिर अन्य लोग आपकी सार्वजनिक कुंजी प्राप्त करने के लिए हस्ताक्षर ले सकते हैं, जिससे संदेश के लेखक की पुष्टि होती है। अपने एप्लिकेशन में, आप नेटवर्क पर लेन-देन भेजने के लिए JavaScript लाइब्रेरी का उपयोग कर सकते हैं।

कॉन्ट्रैक्ट खाते

कॉन्ट्रैक्ट खातों में भी 42 वर्णों का हेक्साडेसिमल पता होता है:

उदाहरण:

0x06012c8cf97bead5deae237070f9587f8e7a266d

अनुबंध का पता आमतौर पर तब दिया जाता है जब कोई अनुबंध इथेरियम ब्लॉकचेन पर डिप्लॉय किया जाता है। पता निर्माता के पते और उस पते से भेजे गए लेन-देन की संख्या ("नॉन्स") से आता है।

सत्यापक कुंजियाँ

इथेरियम में एक अन्य प्रकार की कुंजी भी है, जिसे तब पेश किया गया था जब इथेरियम प्रूफ-ऑफ-वर्क (PoW) से प्रूफ-ऑफ़-स्टेक (PoS) आधारित सर्वसम्मति पर स्विच हुआ था। ये 'BLS' कुंजियाँ हैं और इनका उपयोग सत्यापकों की पहचान करने के लिए किया जाता है। नेटवर्क को सर्वसम्मति पर आने के लिए आवश्यक बैंडविड्थ को कम करने के लिए इन कुंजियों को कुशलतापूर्वक एकत्रित किया जा सकता है। इस कुंजी एकत्रीकरण के बिना एक सत्यापक के लिए न्यूनतम स्टेक बहुत अधिक होगा।

सत्यापक कुंजियों के बारे में अधिक जानकारी

वॉलेट पर एक नोट

खाता कोई वॉलेट नहीं है। वॉलेट एक इंटरफ़ेस या एप्लिकेशन है जो आपको अपने इथेरियम खाते के साथ इंटरैक्ट करने देता है, चाहे वह बाह्य रूप से स्वामित्व वाला खाता हो या कॉन्ट्रैक्ट खाता।

एक दृश्य डेमो

ऑस्टिन को हैश फ़ंक्शन और कुंजी युग्मों के बारे में समझाते हुए देखें।

Hash function — ETH.BUILD

A demonstration of cryptographic hash functions using the ETH.BUILD educational tool.

ट्रांसक्रिप्ट के साथ देखें 

Key pair — ETH.BUILD

A demonstration of public-private key pairs using the ETH.BUILD educational tool.

ट्रांसक्रिप्ट के साथ देखें 

आगे की पढ़ाई

क्या आप किसी ऐसे सामुदायिक संसाधन के बारे में जानते हैं जिसने आपकी मदद की? इस पृष्ठ को संपादित करें और इसे जोड़ें!