Λογαριασμοί Ethereum
Τελευταία επεξεργασία: @mr_giorgos(opens in a new tab), 4 Ιουλίου 2024
Ένας λογαριασμός Ethereum είναι μια οντότητα, με υπόλοιπο σε ether (ETH), όπου δύναται να εκτελέσει συναλλαγές εντός του δικτύου. Ένας λογαριασμός μπορεί να ελέγχεται από το χρήστη ή να έχει αναπτυχθεί ως έξυπνο συμβόλαιο.
Προαπαιτούμενα
Για να σας βοηθήσουμε να κατανοήσετε καλύτερα αυτήν τη σελίδα, σας συνιστούμε πρώτα να διαβάσετε την εισαγωγή μας στο Ethereum.
Τύποι λογαριασμού
Το Ethereum έχει δύο τύπους λογαριασμού:
- Λογαριασμός εξωτερικής ιδιοκτησίας (EOA) – ελεγχόμενος από οποιονδήποτε κατέχει τα ιδιωτικά κλειδιά
- Λογαριασμός συμβολαίου – ένα έξυπνο συμβόλαιο ανεπτυγμένο στο δίκτυο, ελεγχόμενο από κώδικα. Μάθετε για τα έξυπνα συμβόλαια
Και οι δύο τύποι λογαριασμού έχουν τη δυνατότητα να:
- Λαμβάνουν, διατηρούν και να ανταλλάσσουν ETH και κρυπτονομίσματα
- Αλληλεπιδρούν με άλλα ανεπτυγμένα έξυπνα συμβόλαια
Βασικές διαφορές
Εξωτερικής ιδιοκτησίας
- Η δημιουργία ενός λογαριασμού δεν κοστίζει τίποτα
- Μπορείτε να ξεκινήσετε άμεσα συναλλαγές
- Οι συναλλαγές μεταξύ εξωτερικών λογαριασμών μπορούν να μεταφέρουν μόνο ΕΤΗ/token.
- Αποτελείται από ένα κρυπτογραφικό ζευγάρι κλειδιών: δημόσια και ιδιωτικά κλειδιά που ελέγχουν τις δραστηριότητες λογαριασμού
Συμβολαίου
- Η δημιουργία ενός συμβολαίου κοστίζει, λόγω χρήσης του αποθηκευτικού χώρου του δικτύου.
- Μπορεί να στείλει συναλλαγή μόνο ως απάντηση κατά τη λήψη μιας συναλλαγής.
- Οι συναλλαγές από έναν εξωτερικό λογαριασμό σε έναν λογαριασμό συμβολαίου, μπορούν να ενεργοποιήσουν τον κώδικα που μπορεί να εκτελέσει πολλές διαφορετικές ενέργειες όπως η μεταφορά κρυπτονομισμάτων ή ακόμη και η δημιουργία ενός νέου συμβολαίου.
- Οι λογαριασμοί συμβολαίου δεν έχουν ιδιωτικά κλειδιά. Αντίθετα, ελέγχονται από τη λογική του κώδικα του έξυπνου συμβολαίου
Εξετάζοντας ένα λογαριασμό
Οι λογαριασμοί Ethereum έχουν τέσσερα πεδία:
μοναδικότητα
– Ένα νούμερο που δηλώνει τον αριθμό των συναλλαγών που αποστέλλονται από ένα λογαριασμό εξωτερικής ιδιοκτησίας ή τον αριθμό των συμβολαίων που δημιουργούνται από τον λογαριασμό συμβολαίου. Μόνο μία συναλλαγή με μια συγκεκριμένα μοναδικά στοιχεία μπορεί να εκτελεστεί για κάθε λογαριασμό, προστατεύοντας από επιθέσεις επανάληψης, όπου οι υπογεγραμμένες συναλλαγές μεταδίδονται και επανεκτελούνται.υπόλοιπο
– Ο αριθμός των wei που ανήκουν σε αυτή τη διεύθυνση. Το Wei είναι η ονομαστική αξία του ETH και υπάρχουν 1e+18 wei ανά ETH.codeHash
– Αυτός ο κατατεμαχισμός αναφέρεται στον code ενός λογαριασμού στην εικονική μηχανή Ethereum (EVM). Οι λογαριασμοί συμβολαίου έχουν κομμάτια κώδικα όπου μπορούν να εκτελέσουν προγραμματισμένα διαφορετικές λειτουργίες. Ο κώδικας EVM εκτελείται εάν ο λογαριασμός λάβει κλήση μηνύματος. Δεν μπορεί να τροποποιηθεί, σε αντίθεση με τα υπόλοιπα πεδία του λογαριασμού. Όλα αυτά τα τμήματα κώδικα περιέχονται στη βάση δεδομένων κατάστασης κάτω από τους αντίστοιχους κατακερματισμούς τους για μεταγενέστερη ανάκτηση. Αυτή η τιμή κατακερματισμού είναι γνωστή ως codeHash. Για λογαριασμούς εξωτερικής ιδιοκτησίας, το πεδίο codeHash είναι ο κατακερματισμός της κενής συμβολοσειράς.storageRoot
– Μερικές φορές είναι γνωστό ως κατακερματισμός αποθήκευσης. Ένας κατακερματισμός 256-bit του κόμβου ρίζας ενός καταλόγου Merkle Patricia, που κωδικοποιεί τα περιεχόμενα αποθήκευσης του λογαριασμού (μια αντιστοίχιση μεταξύ ακέραιων τιμών 256-bit), κωδικοποιημένος στον κατάλογο ως αντιστοίχιση από τον κατακερματισμό Keccak 256-bit, των ακέραιων κλειδιών 256-bit στις κωδικοποιημένες με RLP ακέραιες τιμές 256-bit. Αυτός ο κατάλογος κωδικοποιεί τον κατακερματισμό των περιεχομένων αποθήκευσης αυτού του λογαριασμού και είναι κενός από προεπιλογή.
Διάγραμμα προσαρμοσμένο από το Ethereum EVM που απεικονίζεται(opens in a new tab)
Λογαριασμοί και ζεύγη κλειδιών εξωτερικής ιδιοκτησίας
Ένας λογαριασμός αποτελείται από ένα ζεύγος κρυπτογραφημένων κλειδιών: το δημόσιο και το ιδιωτικό. Βοηθούν στην απόδειξη ότι μια συναλλαγή έχει πράγματι υπογραφεί από τον αποστολέα και αποτρέπουν τις πλαστογραφίες. Το ιδιωτικό σας κλειδί είναι αυτό που χρησιμοποιείτε για να υπογράφετε τις συναλλαγές, οπότε σας παρέχει την επιμέλεια των χρημάτων που σχετίζονται με τον λογαριασμό σας. Ποτέ δεν κρατάτε κρυπτονόμισμα, αλλά ιδιωτικά κλειδιά - τα κεφάλαια βρίσκονται πάντα στο λογιστικό βιβλίο του Ethereum.
Αυτό αποτρέπει τους κακόβουλους φορείς από το να μεταδίδουν ψεύτικες συναλλαγές, επειδή μπορείτε πάντα να επαληθεύετε τον αποστολέα μιας συναλλαγής.
Εάν η Alice θέλει να στείλει αιθέρα από τον δικό της λογαριασμό στον λογαριασμό του Bob, η Alice πρέπει να δημιουργήσει ένα αίτημα συναλλαγής και να το στείλει στο δίκτυο για επαλήθευση. Η χρήση κρυπτογραφίας δημόσιου κλειδιού στο Ethereum διασφαλίζει ότι η Alice μπορεί να αποδείξει ότι εκείνη ξεκίνησε αρχικά το αίτημα συναλλαγής. Χωρίς κρυπτογραφικούς μηχανισμούς, ένας κακόβουλος αντίπαλος Eve θα μπορούσε απλώς να μεταδώσει δημόσια ένα αίτημα που θα έμοιαζε κάπως σαν "στείλε 5 ETH από τον λογαριασμό της Alice στον λογαριασμό της Eve" και κανείς δε θα μπορούσε να επαληθεύσει ότι δεν προέρχεται από την Alice.
Δημιουργία λογαριασμού
Όταν θέλετε να δημιουργήσετε έναν λογαριασμό, οι περισσότερες βιβλιοθήκες θα δημιουργήσουν για εσάς ένα τυχαίο ιδιωτικό κλειδί.
Ένα ιδιωτικό κλειδί αποτελείται από 64 δεκαεξαδικούς χαρακτήρες και μπορεί να κρυπτογραφηθεί με ένα κωδικό πρόσβασης.
Παράδειγμα:
fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036415f
Το δημόσιο κλειδί δημιουργείται από το ιδιωτικό κλειδί χρησιμοποιώντας τον αλγόριθμο ελλειπτικής καμπύλης ψηφιακής υπογραφής(opens in a new tab). Θα λάβετε μια δημόσια διεύθυνση για τον λογαριασμό σας αποτελούμενη από τα τελευταία 20 bytes του κατακερματισμού Keccak-256 δημόσιου κλειδιού και προσθέτοντας το 0x
στην αρχή.
Αυτό σημαίνει ότι ένας λογαριασμός που ανήκει σε εξωτερικό κάτοχο (EOA) έχει μια διεύθυνση 42 χαρακτήρων (τμήμα 20 byte που αποτελείται από 40 δεκαεξαδικούς χαρακτήρες συν το πρόθεμα 0x
).
Παράδειγμα:
0x5e97870f263700f46aa00d967821199b9bc5a120
Το παρακάτω παράδειγμα δείχνει πώς να χρησιμοποιήσετε ένα εργαλείο υπογραφής που ονομάζεται Clef(opens in a new tab) για να δημιουργήσετε ένα νέο λογαριασμό. Το Clef είναι ένα εργαλείο διαχείρισης λογαριασμού και υπογραφής, ενσωματωμένο με τον πελάτη Ethereum, Geth(opens in a new tab). Η εντολή clef newaccount
δημιουργεί ένα νέο ζεύγος κλειδιών και αποθηκεύει σε ένα κρυπτογραφημένο κλειδί.
1> clef newaccount --keystore <path>23Παρακαλούμε εισαγάγετε ένα κωδικό πρόσβασης για το νέο λογαριασμό:4> <password>56------------7ΠΛΗΡΟΦΟΡΙΕΣ [10-28|16:19:09.156] Το νέο σας κλειδί δημιουργήθηκε address=0x5e97870f263700f46aa00d967821199b9bc5a1208WARN [10-28|16:19:09.306] Παρακαλούμε αποθηκεύστε το αρχείο κλειδιού path=/home/user/go-ethereum/data/keystore/UTC--2022-10-28T15-19-08.000825927Z--5e97870f263700f46aa00d967821199b9bc5a1209ΠΡΟΣΟΧΗ [10-28|16:19:09.306] Παρακαλούμε να θυμάστε τον κωδικό πρόσβασής σας!10Δημιουργήθηκε ο λογαριασμός 0x5e97870f263700f46aa00d967821199b9bc5a120Εμφάνιση όλων
Τεκμηρίωση Geth(opens in a new tab)
Είναι δυνατή η παραγωγή νέων δημόσιων κλειδιών από το ιδιωτικό σας κλειδί, αλλά δεν μπορείτε να παράγετε ένα ιδιωτικό κλειδί από δημόσια κλειδιά. Είναι ζωτικής σημασίας να διατηρείτε τα ιδιωτικά κλειδιά σας ασφαλή και όπως υποδηλώνει το όνομά τους ΙΔΙΩΤΙΚΑ.
Χρειάζεστε ένα ιδιωτικό κλειδί για την υπογραφή μηνυμάτων και συναλλαγών που εξάγουν μια υπογραφή. Άλλοι μπορούν στη συνέχεια να χρησιμοποιήσουν την υπογραφή για να αντλήσουν το δημόσιο κλειδί σας, αποδεικνύοντας τον συντάκτη του μηνύματος. Στην εφαρμογή σας, μπορείτε να χρησιμοποιήσετε μια βιβλιοθήκη JavaScript για την αποστολή συναλλαγών στο δίκτυο.
Λογαριασμοί συμβολαίου
Οι λογαριασμοί συμβολαίου έχουν επίσης μια δεκαεξαδική διεύθυνση 42 χαρακτήρων:
Παράδειγμα:
0x06012c8cf97bead5deae237070f9587f8e7a266d
Η διεύθυνση του συμβολαίου δίνεται συνήθως όταν ένα συμβόλαιο αναπτύσσεται στην κρυπτοαλυσίδα του Ethereum. Η διεύθυνση προέρχεται από τη διεύθυνση του δημιουργού και τον αριθμό των συναλλαγών που αποστέλλονται από αυτή τη διεύθυνση (τη «μοναδικότητα»).
Κλειδιά επικυρωτή
Υπάρχει επίσης ένας άλλος τύπος κλειδιού στο Ethereum, που εισήχθη όταν το Ethereum πέρασε από την απόδειξη εργασίας στην απόδειξη συμμετοχής που βασίζεται στη συναίνεση. Αυτά είναι κλειδιά «BLS» και χρησιμοποιούνται για την αναγνώριση επαληθευτών. Αυτά τα κλειδιά μπορούν να συγκεντρωθούν αποτελεσματικά για να μειωθεί το εύρος ζώνης που απαιτείται για να καταλήξει το δίκτυο σε συναίνεση. Χωρίς αυτή τη βασική συνάθροιση η ελάχιστη συμμετοχή για έναν επαληθευτή θα ήταν πολύ υψηλότερη.
Περισσότερα για τα κλειδιά επικυρωτή.
Μια σημείωση για τα πορτοφόλια
Ένας λογαριασμός δεν είναι πορτοφόλι. Ένα πορτοφόλι είναι μια διεπαφή ή εφαρμογή που σας επιτρέπει να αλληλεπιδράσετε με τον λογαριασμό σας στο Ethereum, ακόμη και με ένα λογαριασμό εξωτερικού κατόχου ή με λογαριασμό συμβολαίου.
Μια εικονική επίδειξη
Παρακολουθήστε τον Austin να σας ξεναγήσει μέσα από τις λειτουργίες κατατεμαχισμού και ζευγών κλειδιών.
Περισσότερες πληροφορίες
Γνωρίζετε κάποιο πόρο της κοινότητας που σας βοήθησε; Επεξεργαστείτε αυτή τη σελίδα και προσθέστε το!