इथेरियम खाती
इथेरियम खाते ही इथर (ETH) शिल्लक असलेली एक संस्था (entity) आहे जी इथेरियमवर संदेश पाठवू शकते. खाती वापरकर्त्याद्वारे नियंत्रित केली जाऊ शकतात किंवा स्मार्ट कॉन्ट्रॅक्ट म्हणून तैनात (deployed) केली जाऊ शकतात.
पूर्वअटी
हे पृष्ठ अधिक चांगल्या प्रकारे समजून घेण्यासाठी, आम्ही शिफारस करतो की तुम्ही प्रथम आमची इथेरियमची ओळख वाचावी.
खात्यांचे प्रकार
इथेरियममध्ये दोन प्रकारचे खाती आहेत:
- बाह्य मालकीचे खाते (Externally-owned account - EOA) – खाजगी की असलेल्या कोणाकडूनही नियंत्रित केले जाते
- कॉन्ट्रॅक्ट खाते – नेटवर्कवर तैनात केलेले स्मार्ट कॉन्ट्रॅक्ट, जे कोडद्वारे नियंत्रित केले जाते. स्मार्ट कॉन्ट्रॅक्ट्स बद्दल जाणून घ्या
दोन्ही प्रकारच्या खात्यांमध्ये खालील क्षमता असतात:
- ETH आणि टोकन्स प्राप्त करणे, धारण करणे आणि पाठवणे
- तैनात केलेल्या स्मार्ट कॉन्ट्रॅक्ट्सशी संवाद साधणे
मुख्य फरक
बाह्य मालकीचे (Externally-owned)
- खाते तयार करण्यासाठी कोणताही खर्च येत नाही
- व्यवहार सुरू करू शकतात
- बाह्य मालकीच्या खात्यांमधील व्यवहार केवळ ETH/टोकन हस्तांतरण असू शकतात
- की च्या क्रिप्टोग्राफिक जोडीने बनलेले असते: सार्वजनिक आणि खाजगी की ज्या खात्याच्या क्रियाकलापांवर नियंत्रण ठेवतात
कॉन्ट्रॅक्ट
- कॉन्ट्रॅक्ट तयार करण्यासाठी खर्च येतो कारण तुम्ही नेटवर्क स्टोरेज वापरत आहात
- केवळ व्यवहार प्राप्त झाल्याच्या प्रतिसादात संदेश पाठवू शकतात
- बाह्य खात्यातून कॉन्ट्रॅक्ट खात्यात केलेले व्यवहार कोड ट्रिगर करू शकतात जे अनेक भिन्न क्रिया अंमलात आणू शकतात, जसे की टोकन्स हस्तांतरित करणे किंवा नवीन कॉन्ट्रॅक्ट तयार करणे
- कॉन्ट्रॅक्ट खात्यांमध्ये खाजगी की नसतात. त्याऐवजी, ते स्मार्ट कॉन्ट्रॅक्ट कोडच्या लॉजिकद्वारे नियंत्रित केले जातात
खात्याचे परीक्षण
इथेरियम खात्यांमध्ये चार फील्ड असतात:
nonce– एक काउंटर जो बाह्य मालकीच्या खात्यातून पाठवलेल्या व्यवहारांची संख्या किंवा कॉन्ट्रॅक्ट खात्याद्वारे तयार केलेल्या कॉन्ट्रॅक्ट्सची संख्या दर्शवतो. प्रत्येक खात्यासाठी दिलेल्या नॉन्ससह केवळ एकच व्यवहार अंमलात आणला जाऊ शकतो, ज्यामुळे रिप्ले हल्ल्यांपासून (replay attacks) संरक्षण मिळते जिथे स्वाक्षरी केलेले व्यवहार वारंवार प्रसारित आणि पुन्हा अंमलात आणले जातात.balance– या पत्त्याच्या मालकीच्या Wei ची संख्या. Wei हे ETH चे एक मूल्य (denomination) आहे आणि प्रति ETH 1e+18 Wei असतात.codeHash– हा हॅश इथेरियम व्हर्च्युअल मशीन (EVM) वरील खात्याच्या कोड चा संदर्भ देतो. कॉन्ट्रॅक्ट खात्यांमध्ये प्रोग्राम केलेले कोडचे भाग असतात जे भिन्न ऑपरेशन्स करू शकतात. जर खात्याला संदेश कॉल मिळाला तर हा EVM कोड अंमलात आणला जातो. इतर खाते फील्ड्सच्या विपरीत, तो बदलला जाऊ शकत नाही. असे सर्व कोडचे भाग नंतर पुनर्प्राप्त करण्यासाठी त्यांच्या संबंधित हॅश अंतर्गत स्थिती (state) डेटाबेसमध्ये समाविष्ट असतात. हे हॅश मूल्य codeHash म्हणून ओळखले जाते. बाह्य मालकीच्या खात्यांसाठी, codeHash फील्ड हे रिकाम्या स्ट्रिंगचे हॅश असते.storageRoot– काहीवेळा स्टोरेज हॅश म्हणून ओळखले जाते. मर्कल पॅट्रिशिया ट्राय च्या रूट नोडचा 256-बिट हॅश जो खात्यातील स्टोरेज सामग्री एन्कोड करतो (256-बिट पूर्णांक मूल्यांमधील मॅपिंग), ट्रायमध्ये 256-बिट पूर्णांक की च्या केकाक-256 (Keccak-256) हॅशपासून RLP-एन्कोड केलेल्या 256-बिट पूर्णांक मूल्यांपर्यंत मॅपिंग म्हणून एन्कोड केलेला असतो. हा ट्राय या खात्याच्या स्टोरेज सामग्रीचा हॅश एन्कोड करतो आणि डीफॉल्टनुसार रिकामा असतो.
आकृती Ethereum EVM illustrated (opens in a new tab) वरून रूपांतरित
बाह्य मालकीची खाती आणि की जोड्या
खाते हे क्रिप्टोग्राफिक की च्या जोडीने बनलेले असते: सार्वजनिक आणि खाजगी. ते हे सिद्ध करण्यास मदत करतात की व्यवहार खरोखरच प्रेषकाने स्वाक्षरी केलेला होता आणि बनावटगिरीला प्रतिबंध करतात. तुमची खाजगी की तुम्ही व्यवहारांवर स्वाक्षरी करण्यासाठी वापरता, त्यामुळे ती तुम्हाला तुमच्या खात्याशी संबंधित निधीवर ताबा (custody) देते. तुम्ही खरोखर कधीही क्रिप्टोकरन्सी धारण करत नाही, तुम्ही खाजगी की धारण करता – निधी नेहमी इथेरियमच्या लेजरवर असतो.
हे दुर्भावनापूर्ण घटकांना बनावट व्यवहार प्रसारित करण्यापासून प्रतिबंधित करते कारण तुम्ही नेहमी व्यवहाराच्या प्रेषकाची पडताळणी करू शकता.
जर ॲलिसला तिच्या स्वतःच्या खात्यातून बॉबच्या खात्यात इथर पाठवायचे असेल, तर ॲलिसला व्यवहाराची विनंती तयार करावी लागेल आणि ती पडताळणीसाठी नेटवर्कवर पाठवावी लागेल. इथेरियमचा सार्वजनिक-की गूढलेखनाचा (public-key cryptography) वापर हे सुनिश्चित करतो की ॲलिस हे सिद्ध करू शकते की तिने मूळतः व्यवहाराची विनंती सुरू केली होती. क्रिप्टोग्राफिक यंत्रणेशिवाय, इव्ह (Eve) सारखा दुर्भावनापूर्ण विरोधक "ॲलिसच्या खात्यातून इव्हच्या खात्यात 5 ETH पाठवा" अशी दिसणारी विनंती सार्वजनिकरित्या प्रसारित करू शकतो आणि ती ॲलिसकडून आली नाही हे कोणीही पडताळून पाहू शकणार नाही.
खाते निर्मिती
जेव्हा तुम्हाला खाते तयार करायचे असते, तेव्हा बहुतांश लायब्ररी तुम्हाला एक यादृच्छिक (random) खाजगी की तयार करून देतील.
खाजगी की 64 हेक्स (hex) वर्णांची बनलेली असते आणि ती पासवर्डने एन्क्रिप्ट केली जाऊ शकते.
उदाहरण:
fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036415f
सार्वजनिक की लंबवर्तुळाकार वक्र डिजिटल स्वाक्षरी अल्गोरिदम (Elliptic Curve Digital Signature Algorithm) (opens in a new tab) वापरून खाजगी की मधून तयार केली जाते. सार्वजनिक की च्या केकाक-256 (Keccak-256) हॅशचे शेवटचे 20 बाइट्स घेऊन आणि सुरुवातीला 0x जोडून तुम्हाला तुमच्या खात्यासाठी सार्वजनिक पत्ता मिळतो.
याचा अर्थ बाह्य मालकीच्या खात्याचा (EOA) 42-वर्णांचा पत्ता असतो (20-बाइट विभाग जो 40 हेक्साडेसिमल वर्ण अधिक 0x उपसर्ग आहे).
उदाहरण:
0x5e97870f263700f46aa00d967821199b9bc5a120
खालील उदाहरण नवीन खाते तयार करण्यासाठी Clef (opens in a new tab) नावाचे स्वाक्षरी साधन कसे वापरावे हे दर्शवते. Clef हे खाते व्यवस्थापन आणि स्वाक्षरी साधन आहे जे इथेरियम क्लायंट, Geth (opens in a new tab) सोबत बंडल केलेले येते. 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 दस्तऐवजीकरण (opens in a new tab)
तुमच्या खाजगी की मधून नवीन सार्वजनिक की मिळवणे शक्य आहे, परंतु तुम्ही सार्वजनिक की मधून खाजगी की मिळवू शकत नाही. तुमच्या खाजगी की सुरक्षित ठेवणे आणि नावाप्रमाणेच त्या खाजगी (PRIVATE) ठेवणे अत्यंत महत्त्वाचे आहे.
संदेश आणि व्यवहारांवर स्वाक्षरी करण्यासाठी तुम्हाला खाजगी की ची आवश्यकता असते, ज्यामुळे स्वाक्षरी तयार होते. त्यानंतर इतर लोक तुमची सार्वजनिक की मिळवण्यासाठी ती स्वाक्षरी घेऊ शकतात, ज्यामुळे संदेशाचा लेखक सिद्ध होतो. तुमच्या ॲप्लिकेशनमध्ये, नेटवर्कवर व्यवहार पाठवण्यासाठी तुम्ही JavaScript लायब्ररी वापरू शकता.
कॉन्ट्रॅक्ट खाती
कॉन्ट्रॅक्ट खात्यांचा देखील 42 वर्णांचा हेक्साडेसिमल पत्ता असतो:
उदाहरण:
0x06012c8cf97bead5deae237070f9587f8e7a266d
जेव्हा इथेरियम ब्लॉकचेनवर कॉन्ट्रॅक्ट तैनात केले जाते तेव्हा सहसा कॉन्ट्रॅक्टचा पत्ता दिला जातो. हा पत्ता निर्मात्याच्या पत्त्यावरून आणि त्या पत्त्यावरून पाठवलेल्या व्यवहारांच्या संख्येवरून ("नॉन्स") येतो.
प्रमाणक की
इथेरियममध्ये आणखी एका प्रकारची की आहे, जी इथेरियमने प्रूफ-ऑफ-वर्क (PoW) वरून प्रूफ-ऑफ-स्टेक (PoS) आधारित एकमतावर (consensus) स्विच केल्यावर सादर केली गेली. या 'BLS' की आहेत आणि त्या प्रमाणक (validators) ओळखण्यासाठी वापरल्या जातात. नेटवर्कला एकमतावर येण्यासाठी आवश्यक असलेली बँडविड्थ कमी करण्यासाठी या की कार्यक्षमतेने एकत्रित केल्या जाऊ शकतात. या की एकत्रीकरणाशिवाय प्रमाणकासाठी किमान स्टेक खूप जास्त असेल.
वॉलेट्सवर एक टीप
खाते हे वॉलेट नसते. वॉलेट हा एक इंटरफेस किंवा ॲप्लिकेशन आहे जो तुम्हाला तुमच्या इथेरियम खात्याशी संवाद साधू देतो, मग ते बाह्य मालकीचे खाते असो किंवा कॉन्ट्रॅक्ट खाते.
एक दृश्य प्रात्यक्षिक
ऑस्टिन तुम्हाला हॅश फंक्शन्स आणि की जोड्यांबद्दल मार्गदर्शन करत असताना पहा.
पुढील वाचन
- इथेरियम खाती समजून घेणे (opens in a new tab) - Etherscan
तुम्हाला मदत केलेल्या एखाद्या समुदाय संसाधनाबद्दल माहिती आहे? हे पृष्ठ संपादित करा आणि ते जोडा!