You are on page 1of 11

Open in app

Mark Muskardin
469 Followers About Following

This is your last free member-only story this month. Upgrade for unlimited access.

Mastering The Fundamentals of Ethereum (For


New Blockchain Devs) Part III — Wallets, Keys,
And Accounts
Mark Muskardin Dec 8, 2019 · 7 min read

TL;DR — This is a 6 part series written for software developers new to Ethereum — the
world’s largest platform for running Smart Contracts, creating digital assets, and
developing decentralized business models.

My name is Mark and I developed Notional.Finance, a new DeFi application built on


Ethereum. Join my Facebook group “6-Figure Blockchain Developer” to get the latest
training on blockchain development for Ethereum — the largest Smart Contract platform
on the planet.
Table Of Contents
Part I — The Blockchain Revolution

Part II — Ethereum And Smart Contracts

Part III — Wallets, Keys, And Accounts

Part IV — Transactions

Part V — Gas

Part IV — Consensus Algorithms (Coming soon!)

In
user.
order to build dApps for Ethereum so that you can become one of the world’s
first blockchain developers, you need to understand how it’s used by an end

Ethereum is a permission-less system. That means it’s open to absolutely anyone to


interact with. It’s also decentralized, which means there’s no central gatekeeper
responsible for admitting or rejecting users or creating user accounts.

So in a system that is totally permission-less, decentralized, and with no centralized


computer administering accounts, how can user accounts be created?

And how do users interact with a totally decentralized system?


Public Key Cryptography
The first thing to understand is that Public Key Cryptography is a fundamental
technology used in blockchains.

It’s used for the following purposes:

1. It establishes identity by the creation of accounts

2. It provides private control over money

3. It provides the authentication necessary when using Smart Contracts

In a blockchain system that utilizes Public Key Cryptography, each user generates two
keys that uniquely identifies them: a public key and a private key.

The public key is given to the world openly and freely, just like your email address. The
private key however, is always kept private and never revealed because it’s what gives
users direct access to their money.

The strength and the security of blockchain systems like Ethereum relies *fully* on the
fact that everyone is keeping their private keys *well protected* and private.
That’s that rock bottom fundamental thing you need to know about how cryptography
is used in a public blockchain system like Ethereum.

Now as you evolve as a new blockchain developer, you’re going to have to understand
how Public Key Cryptography works. You’re going to have to understand *why* it’s
used in blockchain systems to begin with (versus other cryptographic schemes), and
how it’s used to authenticate users via the use of Digital Signatures.

That’s beyond the scope of this article, so in order to answers these questions and and
so many others, register for the FREE Ethereum Fundamentals Master Class where all
of these topics will be clearly explained.

Wallets
The first thing a user needs in order to interact with a blockchain system is a wallet.

When we create dApps (decentralized applications) backed by Smart Contracts, we’re


dealing with some form of peer-to-peer programmable money or digital asset that has
value.

Remember, Ethereum enables you to develop powerful dApps with built-in economic
functions without a middleman.
Because we’re dealing with money, we need a way to send and receive digital money.
So how do we do that?

A wallet is a software application that helps you manage your Ethereum account. And it
allows you to send and receive digital money or tokens.

Wallets generate and hold your public and private keys, and can create and broadcast
transactions on your behalf. Without a wallet, you cannot interact with dApps on
Ethereum.

So a wallet is your gateway to the Ethereum system.

Public & Private Keys


A wallet generates a user’s public and private key pair.
In a public and private key pair that a wallet generates, the public key can be publicly
shared with the world at large. It an be viewed by anyone just like an email address.

The corresponding private key in a public/private key pair is what gives a user control
over her or his money. The private key must always be kept hidden and private.

Therefore, each user must be responsible enough to take care that their private key is
never lost or stolen. Because if someone gets access to a user’s private key, then they
have direct control over that person’s money.

If there’s one mantra you should inculcate into the heads of anyone new to blockchain
systems it’s this: NEVER SHARE OR REVEAL YOUR PRIVATE KEY.
Ethereum Accounts
The public and private key pair is what creates an Ethereum account. So when you hear
the term “Ethereum account” you know it means a user’s public and private key pair.

In a truly decentralized system like Ethereum, users can and should control their own
private keys. That requires a lot of responsibility on the part of the user, but it also gives
a user full autonomy and control over their money.

The most popular Ethereum wallet on the market today is Metamask. Metamask is a
web-based wallet that users install as a browser extension for either Chrome or Firefox.

Most Ethereum dApp users use MetaMask to interact with the Ethereum system. It also
provides another humongous benefit: it allows users to interact with dApps on
Ethereum from the convenience of a Web page.

The Ethereum Address


A wallet like Metamask generates what’s known as an “Ethereum address” that’s based
off of the public key that the wallet generates.

The Ethereum address is what gets sent freely to any dApp, or to anybody else, and is
the address that money or tokens get sent to.

Note: the Ethereum address is based off of the public key but’s it is not exactly the
public key. It’s the Ethereum address.

Externally Owned Accounts (EOA)


There are two main types of accounts on Ethereum that you must be aware of. An
Externally Owned Account (EOA) and a Smart Contract account.

The first type of account is the EOA, and it’s the account type that’s owned by a real
user.

An EOA contains a users’s private key. This means that an EOA has direct control and
access over a user’s money.
Smart Contract Accounts
The other type of account on Ethereum is called the “Smart Contract account” or simply
“Contract account”.

A contract account has Smart Contract code which a a simple EOA does not have. But
the contract account does not have a private key the way an EOA does.

Because a Smart Contract account does not have a private key, it cannot initiate a
transaction on the Ethereum network. Only EOAs can do that. Smart Contract accounts
can however send messages to other contracts on the system.

Let’s compare a few more differences between these two types of accounts so that we
can understand things a bit more.

Comparing An EOA To A Smart Contract Account


You now understand that an EOA is an account that’s owned by a real user. Because an
EOA has a private key, it can initiate transactions on the Ethereum network, like
sending money to another user or changing the state of the blockchain.
A Smart Contract account on the other hand does not have access to a private key,
which means it cannot initiate transactions that would, for example, send money to
another user.

A Smart Contract can send messages to other Smart Contracts on Ethereum in response
to a transaction initiated by an EOA, but it cannot initiate any kind of transaction. That’s
because a Smart Contract account does not have a corresponding private key.

An EOA is owned by a real user, a real person. Whereas a Smart Contract account is
owned by the logic of the smart contract code itself.

Once last distinction is that an EOA does not contain any code, whereas the Smart
Contract account contains contract logic.

Next Steps
You now understand the rock bottom essentials that you must know in order to develop
dApps for Ethereum.

If you haven’t fully digested everything, then I highly recommend the Ethereum
Fundamentals Master Class. It’s a video lecture series with cool graphics that will
solidify your knowledge of the most exciting technology of our generation.

In the next lecture, you’re going to understand transactions . Everything in Ethereum,


or any blockchain system for that matter, starts with a transaction.

Transactions are at the heart of the Ethereum system, so let’s get to it…
Next. Part IV — Transactions

Blockchain Dapps Ethereum Blockchain Technology Blockchain Development

About Write Help Legal

Get the Medium app

You might also like