इथेरियम खाती
इथेरियम खाते ही इथर (ETH) शिल्लक असलेली एक संस्था (entity) आहे जी इथेरियमवर संदेश पाठवू शकते. खाती वापरकर्त्याद्वारे नियंत्रित केली जाऊ शकतात किंवा स्मार्ट कॉन्ट्रॅक्ट म्हणून तैनात (deploy) केली जाऊ शकतात.
पूर्वतयारी
हे पृष्ठ अधिक चांगल्या प्रकारे समजून घेण्यासाठी, आम्ही शिफारस करतो की तुम्ही प्रथम आमची इथेरियमची ओळख वाचावी.
खात्यांचे प्रकार
इथेरियममध्ये दोन प्रकारचे खाते आहेत:
- बाह्य मालकीचे खाते (EOA) – खाजगी की असलेल्या कोणाकडूनही नियंत्रित केले जाते
- कॉन्ट्रॅक्ट खाते – नेटवर्कवर तैनात केलेले स्मार्ट कॉन्ट्रॅक्ट, जे कोडद्वारे नियंत्रित केले जाते. स्मार्ट कॉन्ट्रॅक्ट्स बद्दल जाणून घ्या
दोन्ही प्रकारच्या खात्यांमध्ये खालील क्षमता असते:
- ETH आणि टोकन प्राप्त करणे, धारण करणे आणि पाठवणे
- तैनात केलेल्या स्मार्ट कॉन्ट्रॅक्ट्सशी संवाद साधणे
मुख्य फरक
बाह्य मालकीचे
- खाते तयार करण्यासाठी कोणताही खर्च येत नाही
- व्यवहार सुरू करू शकतात
- बाह्य मालकीच्या खात्यांमधील व्यवहार केवळ ETH/टोकन हस्तांतरण असू शकतात
- की च्या क्रिप्टोग्राफिक जोडीने बनलेले: सार्वजनिक आणि खाजगी की ज्या खात्याच्या क्रियाकलापांवर नियंत्रण ठेवतात
कॉन्ट्रॅक्ट
- कॉन्ट्रॅक्ट तयार करण्यासाठी खर्च येतो कारण तुम्ही नेटवर्क स्टोरेज वापरत आहात
- केवळ व्यवहार प्राप्त झाल्याच्या प्रतिसादात संदेश पाठवू शकतात
- बाह्य खात्यातून कॉन्ट्रॅक्ट खात्यात केलेले व्यवहार कोड ट्रिगर करू शकतात जे अनेक भिन्न क्रिया अंमलात आणू शकतात, जसे की टोकन हस्तांतरित करणे किंवा नवीन कॉन्ट्रॅक्ट तयार करणे
- कॉन्ट्रॅक्ट खात्यांमध्ये खाजगी की नसतात. त्याऐवजी, ते स्मार्ट कॉन्ट्रॅक्ट कोडच्या लॉजिकद्वारे नियंत्रित केले जातात
खात्याचे परीक्षण
इथेरियम खात्यांमध्ये चार फील्ड असतात:
nonce– एक काउंटर जो बाह्य मालकीच्या खात्यातून पाठवलेल्या व्यवहारांची संख्या किंवा कॉन्ट्रॅक्ट खात्याद्वारे तयार केलेल्या कॉन्ट्रॅक्ट्सची संख्या दर्शवतो. प्रत्येक खात्यासाठी दिलेल्या नॉन्ससह केवळ एकच व्यवहार अंमलात आणला जाऊ शकतो, ज्यामुळे रिप्ले हल्ल्यांपासून (replay attacks) संरक्षण मिळते जिथे स्वाक्षरी केलेले व्यवहार वारंवार प्रसारित केले जातात आणि पुन्हा अंमलात आणले जातात.balance– या पत्त्याच्या मालकीच्या Wei ची संख्या. Wei हे ETH चे एक मूल्यवर्ग (denomination) आहे आणि प्रति ETH 1e+18 Wei असतात.codeHash– हा हॅश इथरियम व्हर्च्युअल मशीन (EVM) वरील खात्याच्या कोड चा संदर्भ देतो. कॉन्ट्रॅक्ट खात्यांमध्ये प्रोग्राम केलेले कोडचे तुकडे असतात जे भिन्न ऑपरेशन्स करू शकतात. जर खात्याला संदेश कॉल मिळाला तर हा EVM कोड अंमलात आणला जातो. इतर खाते फील्डच्या विपरीत, तो बदलला जाऊ शकत नाही. असे सर्व कोडचे तुकडे नंतर पुनर्प्राप्त करण्यासाठी त्यांच्या संबंधित हॅश अंतर्गत स्थिती (state) डेटाबेसमध्ये समाविष्ट केले जातात. हे हॅश मूल्य codeHash म्हणून ओळखले जाते. बाह्य मालकीच्या खात्यांसाठी, codeHash फील्ड हे रिकाम्या स्ट्रिंगचे हॅश असते.storageRoot– काहीवेळा स्टोरेज हॅश म्हणून ओळखले जाते. मर्कल पॅट्रिशिया ट्राय च्या रूट नोडचा 256-बिट हॅश जो खात्यातील स्टोरेज सामग्री एन्कोड करतो (256-बिट पूर्णांक मूल्यांमधील मॅपिंग), ट्रायमध्ये 256-बिट पूर्णांक की च्या Keccak-256 हॅशपासून पुनरावर्ती लांबी उपसर्ग (आरएलपी)-एन्कोड केलेल्या 256-बिट पूर्णांक मूल्यांपर्यंत मॅपिंग म्हणून एन्कोड केले जाते. हे ट्राय या खात्याच्या स्टोरेज सामग्रीचा हॅश एन्कोड करते आणि डीफॉल्टनुसार रिक्त असते.
Ethereum EVM illustrated (नवीन टॅबमध्ये उघडते) वरून रुपांतरित केलेली आकृती
बाह्य मालकीची खाती आणि की जोड्या
खाते हे क्रिप्टोग्राफिक की च्या जोडीने बनलेले असते: सार्वजनिक आणि खाजगी. ते हे सिद्ध करण्यास मदत करतात की व्यवहारावर खरोखरच प्रेषकाने स्वाक्षरी केली होती आणि बनावटगिरीला प्रतिबंध करतात. तुमची खाजगी की तुम्ही व्यवहारांवर स्वाक्षरी करण्यासाठी वापरता, त्यामुळे ती तुम्हाला तुमच्या खात्याशी संबंधित निधीवर ताबा देते. तुम्ही कधीही खरोखर क्रिप्टोकरन्सी बाळगत नाही, तुम्ही खाजगी की बाळगता – निधी नेहमी इथेरियमच्या लेजरवर असतो.
हे दुर्भावनापूर्ण घटकांना बनावट व्यवहार प्रसारित करण्यापासून प्रतिबंधित करते कारण तुम्ही नेहमी व्यवहाराच्या प्रेषकाची पडताळणी करू शकता.
जर ॲलिसला तिच्या स्वतःच्या खात्यातून बॉबच्या खात्यात इथर पाठवायचे असेल, तर ॲलिसला व्यवहाराची विनंती तयार करावी लागेल आणि ती पडताळणीसाठी नेटवर्कवर पाठवावी लागेल. इथेरियमचा सार्वजनिक-की गूढलेखनाचा वापर हे सुनिश्चित करतो की ॲलिस हे सिद्ध करू शकते की तिने मूळतः व्यवहाराची विनंती सुरू केली होती. क्रिप्टोग्राफिक यंत्रणेशिवाय, इव्ह (Eve) सारखा दुर्भावनापूर्ण विरोधक "ॲलिसच्या खात्यातून इव्हच्या खात्यात 5 ETH पाठवा" अशी विनंती सार्वजनिकरित्या प्रसारित करू शकतो आणि ती ॲलिसकडून आली नाही हे कोणीही पडताळून पाहू शकणार नाही.
खाते निर्मिती
जेव्हा तुम्हाला खाते तयार करायचे असते, तेव्हा बहुतांश लायब्ररी तुम्हाला एक यादृच्छिक (random) खाजगी की तयार करून देतील.
खाजगी की 64 हेक्स वर्णांची बनलेली असते आणि ती पासवर्डसह कूटबद्ध (encrypted) केली जाऊ शकते.
उदाहरण:
fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036415f
सार्वजनिक की लंबवर्तुळाकार वक्र डिजिटल स्वाक्षरी अल्गोरिदम (Elliptic Curve Digital Signature Algorithm) (नवीन टॅबमध्ये उघडते) वापरून खाजगी की मधून तयार केली जाते. सार्वजनिक की च्या Keccak-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) आधारित एकमतावर (consensus) स्विच केल्यावर सादर केली गेली. या 'BLS' की आहेत आणि त्या प्रमाणक (validators) ओळखण्यासाठी वापरल्या जातात. नेटवर्कला एकमतावर येण्यासाठी आवश्यक असलेली बँडविड्थ कमी करण्यासाठी या की कार्यक्षमतेने एकत्रित केल्या जाऊ शकतात. या की एकत्रीकरणाशिवाय प्रमाणकासाठी किमान स्टेक खूप जास्त असेल.
वॉलेट्सवरील एक टीप
खाते हे वॉलेट नसते. वॉलेट हा एक इंटरफेस किंवा ॲप्लिकेशन आहे जो तुम्हाला तुमच्या इथेरियम खात्याशी संवाद साधू देतो, मग ते बाह्य मालकीचे खाते असो किंवा कॉन्ट्रॅक्ट खाते.
एक दृश्य प्रात्यक्षिक
ऑस्टिन तुम्हाला हॅश फंक्शन्स आणि की जोड्यांबद्दल मार्गदर्शन करत असताना पहा.
पुढील वाचन
- इथेरियम खाती समजून घेणे (नवीन टॅबमध्ये उघडते) - Etherscan
तुम्हाला मदत केलेल्या एखाद्या समुदाय संसाधनाबद्दल माहिती आहे? हे पृष्ठ संपादित करा आणि ते जोडा!