What are the best
Ethereum wallets out there? How do Ethereum wallets work and what’s their purpose? What is Gas
and how is it calculated? Well stick around, in this episode of
Ethereum whiteboard Tuesday we’ll answer
these questions and more. Hi, I’m Nate Martin
from 99Bitcoins and today we’re going to
talk about Ethereum wallets - those pieces of software,
or hardware, that allow us to interact with
the Ethereum network. At its core, an Ethereum wallet,
also known as a client, holds your private key - the “secret password”
that gives you control over your coins. It also supplies you with
a public Ethereum address which people can use
to send you Ethereum’s currency known as Ether. This is almost as far as
Bitcoin and Ethereum go in terms of similarities. Many non technical users
think of Ether as a currency in the same sense
they view Bitcoin. They buy Ether in hopes
its price will rise, they pay for stuff with Ether
and more. However, Ether wasn’t designed
for the same purpose as Bitcoin. If you’ve watched
our previous video “What is Ethereum?” and if you didn’t you should, you know that Ethereum is
a network of independent computers working together
as one supercomputer. This super computer
executes pieces of code known as contracts
or smart contracts. Interacting with contracts
requires more complex communication than to just send X amount of money from Y to Z like Bitcoin does. Ethereum wallets
are the tool we use for this communication . So in order to truly
understand Ethereum wallets we need to first understand
how Ethereum is built. In Ethereum there are
two types of accounts: The most basic type of account
in Ethereum is called an EOA or Externally Owned Account. Similar to how
a Bitcoin wallet operates, EOAs have an Ethereum address
that is controlled by a private key. A person can open
as many EOAs as he likes. In addition to sending
and receiving Ether, EOAs have the ability to
create contracts and trigger them. The second type of account
is the Contract account. These are accounts that have code
associated with them. Every contract deployed to
the Ethereum network has its own account which includes
a unique Ethereum address. However,
unlike an external account a contract account doesn’t have
a private key that controls it. So how is a contract account controlled? Well, the code that
defines the contract includes a set of
predefined triggers which control the account. In other words, the conditions to control
how the contract operates are hard coded from the get-go. Similar to EOAs, contract accounts
can receive Ether, and if triggered, send Ether or even create
additional contract accounts. It’s important to note that contracts can’t be changed
once they’ve been launched, so the author
must be very thorough in drafting the conditions
for each trigger. EOAs can interact with other EOAs and with contracts
through messages. These messages are
“wrapped” inside transactions which are paid for in Ether. So while in Bitcoin transactions are used
only to transfer value, Ethereum transactions
are used for a variety of reasons: First, transactions are used for
the transfer of value. This is the simplest
form of transaction, meaning sending Ether
between accounts. You can also use transactions
to create a new Smart contract. Creating a new contract is done by sending a transaction
that includes the contract’s code. And finally, transactions can be used
to trigger a contract. For example - when you send money to
an ICO’s contract account address, you’re actually
activating a contract that sends you tokens in return. Now that you understand
how Ethereum is built and that transactions
are in fact used to help accounts talk to each other we can move on to
Ethereum wallets. Some Ethereum wallets
will only allow you to transfer value, or send Ether between accounts. Other wallets will allow you to
also deploy or trigger a contract. These wallets are known as
“Smart contract wallets”. Similar to Bitcoin, wallets are sometimes
referred to as clients or nodes. There are two types of clients - full clients and light clients A full node is
a computer that holds the entire Ethereum
blockchain history, since its inception until this day. Running a full node
has disadvantages like increased memory
and computer usage, however it allows you to verify transactions on
the Ethereum blockchain without needing to
trust anyone’s word for it. Full nodes are an integral
part of the Ethereum network as they are
the “muscles” of the network, that help execute contracts
in a decentralized manner. Each node that receives
a new block of transactions also executes the code
inside these transactions. There are different programs to help you run
an Ethereum full node. We won't discuss all of 'em, however we will talk about
the most common clients: The first on is Geth - Short for Go Ethereum. Developed by
the Ethereum Foundation, a non-profit organization
established to develop the code and community
for Ethereum. Geth is the most popular
and widely used program. The second is Mist - Since Geth is a tool
made for developers Mist was created
in order to allow non technical users
to interact with it. So while technically
you’re using Geth, Mist provides you with
an easy user interface to talk to it. And finally, Parity – which is a private company
based in London whose mission is to enable
businesses and organizations to capitalize on
blockchain technology. They developed software to run
full nodes for Ethereum and are considered
the second most popular full client. Just for reference, at the time of releasing this video there are 9713 nodes
running Geth and 4069 nodes running Parity. All full nodes
are smart contract wallets - meaning they can deploy
smart contracts to the Ethereum network. If you don’t want to run
a full node you can use a light node. Light nodes,
similar to Bitcoin’s SPV wallets, are programs that rely on
3rd party full nodes in order to get information
when needed rather than holding
a full copy of the blockchain. This means
they require less space and can operate on
devices with limited space, such as mobile phones. Being the second largest currency by market cap
on the crypto market, Ether has caught
the eye of day to day users. These users will usually
use light nodes as their wallet since it’s easier to
install and operate. If you don’t intend to write
smart contracts any time soon you can use any of
the light nodes listed on our website for the most user
friendly experience. Let’s talk a bit about
Ethereum hardware wallets If you're serious about security I suggest storing your Ether
on a hardware wallet. While being the most secure way
to store your coins, hardware wallets cost money. Also, hardware wallets are not
smart contract wallets by design, they can only send
and receive Ether and ERC-20 tokens. Now let’s move on to
transaction fees and Gas; trust me, you’ll understand
in a few minutes. While Bitcoin can be divided into
100,000,000 units with the smallest unit called a Satoshi, Ether can be divided into
one quintillion units, that’s a 1 with 18 zeroes after it… with the smallest one called Wei. Wei is named after Wei Dai, a cryptography activist who is known for supporting
widespread use of strong cryptography and privacy-oriented technologies. Fees for transactions,
are usually calculated in Giga Wei. So 1 quintillion Wei equals 1 Ether and 1 billion Wei
equals one Giga Wei. There are also other names
for different amounts of Wei, all named after
famous cryptographers, as shown in this table. In Bitcoin, to send a transaction
we need to add a miner's fee to it. This way, we incentivize the miners to include it in a block. In Ethereum, we must keep miners incentivized as well, for their contribution of computing power
to the Ethereum supercomputer. Just like a car, the Ethereum network runs on Gas. Each line of code that
needs to be executed by the network will take up a certain amount of gas. Run out of Gas
and the code stops running. You specify how much Gas
you’re going to use upfront, and you can’t refuel on the way. If your contract runs out of Gas
because it’s written inefficiently or you miscalculated, it will just stop
in the middle of the road. This system motivates
Smart contract programmers to keep their code
lean and optimized, since Gas costs money
as we will soon learn. The Gas you pay goes to the miners, as they are the ones
investing computing power in order to update
the ledger of Ethereum transactions, similar to what goes on in Bitcoin. Keep in mind that
Gas isn’t something you can own, it’s just a unit of account to measure how much work
is needed to run a line of code. Think of it as
the equivalent of hours of labour. Gas is paid in Ether, Now I know what you’re thinking - why not just price
execution of smart contracts in Ether, why do we need
another virtual currency? Well, Ether’s price
is constantly changing, and if we priced contracts in Ether the price would be different
each time we calculated it due to the fluctuating exchange rate. Imagine we’d price
painting our house at 2 Ether, sometimes it would cost us $1000
and other times $2000. With Gas, running the same contract
several times will always bring back
a fixed amount of Gas to be paid just like painting the same house takes the same
amount of hours every time. So how much gas do you need
to run a line of code? Easy... there are predefined amounts for each action
you want to run in your code. For example, sending Ether from
one address to the other requires 21,000 gas units. Now comes the tricky part. How much do you actually pay for a unit of gas? The price of 1 gas unit
changes all the time depending on how crowded
the network is. The same way an hour of labor
would cost more if many people are
looking for employees the Gas price rises
when the network is crowded. The “standard” gas price
is around 20 GiGa wei. You can consider this
the average salary on the market for an hour of labor. If the Ethereum network is very busy and you want your contract
to get priority in execution over other contracts you may over bid the gas price so that miners will have
an incentive to include your contract in the next block. You’re basically saying I’m willing to increase your pay
per unit of labor so you’ll give my work priority. This is similar to
how Bitcoin transaction fees rise when the network is crowded. When you send a transactions in Ether you also need to specify a gas limit - meaning how much gas
are you willing to use at maximum for running your lines of code. This is done in order to protect you
from depleting your funds in case your code has an error
and runs endlessly or inefficiently. You pay the full amount
for your gas limit upfront and there’s no option for “refueling”. This can cause certain things
to go wrong, for example: If you overpaid and your contract
ended up using less gas - you’ll get refunded for the gas not used. However, if an operation
ran out of gas mid way it will halt, just like your car, and no Ether will be returned to you just like a gas station
doesn’t refund you even if you didn’t have enough gas
to get where you want to go. This can happen if, for example, your contract needs to do
some recurring function that keeps on consuming gas
and finally runs out. If you don’t include enough
gas units for running your code no miner will pick up your transaction since it doesn't have
enough gas from the get go. And finally - If you choose
enough units of gas but pay very little for each unit it may take a lot of time
for your transaction to go through since miners will prioritize
higher paying transactions. To conclude, in Ethereum fees are
a general term that refers to the gas used multiplied by
the gas price you were willing to pay. In other words - the hours of labor worked
times the wage per hour. The higher you’re
willing to pay per gas unit the more miners will compete
for running your code, and the faster your transaction
will be included in the blockchain. That’s it for today’s video. Hopefully by now you have a better understanding
of Ethereum's wallets, Ethereum accounts,
gas, transaction fees and also the various wallets
you can choose from. As you probably noticed Ethereum is a lot
more complicated than Bitcoin mainly because it’s intended on executing much more complex functions than just sending money
from A to B. Don’t worry, it gets worse, but we’ll walk you through it as always in our upcoming videos. You may still have some questions. If so, just leave them
in the comment section below. And if you’re watching
this video on YouTube, and enjoy what you’ve seen, don’t forget to hit the like button. Then make sure to
subscribe to the channel and click that bell so that you’ll be notified
as soon as we post new episodes. Thanks for joining me
here at the Whiteboard. For 99Bitcoins.com,
I’m Nate Martin, and I’ll see you… in a bit.