Professional Documents
Culture Documents
Mark Muskardin
469 Followers About Following
This is your last free member-only story this month. Upgrade for unlimited access.
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.
Part IV — Transactions
Part V — Gas
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
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.
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.
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 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.
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.
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.
Transactions are at the heart of the Ethereum system, so let’s get to it…
Next. Part IV — Transactions