What is a cryptocurrency?
If you’re here, its likely because you are a Redditor who just got introduced to crytpocurrency from Reddit’s new “Community Points” feature; or, someone else who is a little bit confused about cryptocurrency and how it works.
Either way, we’ll break it down for you!
A cryptocurrency is a digital asset built on a blockchain, that can be used as a type of digital money in ‘tustless’ environments.
Now, that’s a confusing jumble of jargon, so let’s take it piece by piece.
What is a blockchain?
A blockchain is a type of digital ledger, kind of like a database.
If you aren’t familiar with these, then the best example is your own bank account.
Your bank account is a ledger that you log into with a username (likely a card number) and a password.
When you log in to your bank account online you see balances (sometimes positive, sometimes negative) as well as a history of transactions. All of that combined is what we call “a ledger” — it is an accounting system that knows your balance by keeping track of all the ‘sends’ and ‘receives’ that you’ve had.
Ultimately the money doesn’t just sit in the bank and get counted each time you log into your account. In fact, most money that we see in our bank accounts doesn’t really exist at all, as there is far more money existing in digital balances than there is physical cash. We simply represent it by a ledger.
The problem with such a ledger, is that in order for them to work, we must have a central authority that we all trust managing the ledger. Otherwise, in my ledger book I could simply write that you owe me $1M and there would be no way to verify it.
This made it very hard to create any type of currency on the internet, that wasn’t run by a central authority — because who would run the ledger?
For example, imagine I sent you a digital file, a picture of a $1 bill, and I told you it was currency. You could just copy and paste the file 100 times and you’d have $101 to spend. I would have very little way of verifying if the money was real or not.
This is where blockchains come in to play.
Blockchains are a special type of digital ledger, that is not owned or operated by any one entity. But, they aren’t just the balances, they are a network themselves. Similar to the internet.
Instead, of one person owning the ledger, copies of the blockchain ledger exist on thousands of worldwide computers. These computers can connect to one another through the internet, cellphones, satellites, locally, or by any means of communication.
Anyone can download a copy of the blockchain and become a “node” for the network. In the same way that anyone can connect to the internet.
On most blockchains, we have what we call a “cryptocurrency” that is the native payment method, or the native data transfer tool for the network. The same way that your computer transacts in megabytes, or you pay your phonebill in “carrier minutes” these blockchains have their own units of measure. The two most famous are “Bitcoin” and “Ethereum”
When using a blockchain, you get two keys.
One called a “public key” — this is the same as your bank card number, or a phone number. It’s not private information, but it is a bit sensitive, its used to identify you uniquely and to send cryptocurrency to you.
The other is called a “private key” — this is basically a super complicated password that you use to access and use your funds.
Collectively, when you use your public key, and private key to connect to the network we call this your blockchain “wallet” — it is your stored balance.
Just like the money in your online bank account, Bitcoin doesn’t exist. If someone sends you 1 Bitcoin, the only thing that has changed is their balance on the ledger has gone down by 1 Bitcoin and yours has gone up by 1 Bitcoin.
We call this transfer “a transaction”.
But, as we mentioned earlier — it is really important to be able to verify changes in a ledger, so that we know people aren’t changing other people’s balances.
How does a blockchain process the transactions?
The blockchain processes transactions between addresses through different models we call “consensus” this is basically all of the different blockchain “nodes” (people who host a copy of the blockchain) looking at the records and agreeing that a transaction took place.
There are a number of methods of “consensus” but the two most popular are ones called “proof-of-work” and “proof-of-stake”. At the end of the day, they both involve computers performing complicated math and analysis, to verify (in an irrefutable way) that a transaction took place.
The nodes performing these transactions are often called “Miners” as they process the transaction for the chance of finding a fee, and that process is called “Mining”
Because they know the public key of each user involved in the transaction, they are able to look up the entire history of that address and prove mathematically how much of a balance each user has.
How does a blockchain verify a transaction?
So we know how the processing works, but, how do they actually verify the transaction?
This comes back to your “public key” and “private key”
The private key is not just a random complicated password, but it is actually related to your public key through a complicated mathematical formula that gives us the basis for what we call “encryption”.
Encryption is the process of encoding (or applying a code/set of rules) to something in a logical pattern.
Those of you who are old enough to remember cereal box prizes may remember decoder rings as the best basic example of encryption.
A decoder ring helps us to create a special code that goes:
A = 1
B = 2
C = 3
and so on, throughout the alphabet.
So if I wanted to take the message “hello” and encode it with our code, it would be “8 5 12 12 15” because H = 8, E = 5, L = 12 and O = 15.
Unlike decoder rings, the encryption method between the public key and private key is so complicated that ONLY the private key can be used to encode & decode, and the public key can ONLY be used to DECODE. The messages, are so well encoded, that it would take modern computers 0.65 billion billion years (yes that’s two BILLIONS in there — not a type) to decode it unless you had the keys.
This means, we can do something very special.
I can send a message like “Hello” encoded with my private key that I keep safe.
If I tell you what my public key is then you can decrypt/decode the private message and read that it says “Hello”. My public key is the tool that helps you decode it.
But, because you don’t have my private key, you cannot encrypt a message that is decoded by my public key. You can only use your own private key, which can only be decrypted by your public key.
This means, I can send a message that could only possibly be sent by me.
So when I initiate a transfer and say “I want to send 1 Bitcoin to Paul’s Address” I, basically, encrypt that message with my private key and send it to the blockchain. The nodes on the blockchain are then able to use my public key to decrypt and verify the message, they know it had to come from me as no one else could encrypt the message in that way.
Because there is no company that runs these blockchains, we have to create an incentive for people to run nodes. So, each transaction has a small fee.
It’s often called the “transaction fee”, “gas fee” or “miners fee” depending on which blockchain you are using.
It’s the same as paying your internet service provider or your cellphone carrier to use bandwidth or send text messages. You are paying for people to process the transaction.
These transaction fees are paid in the native coin of the blockchain.
So on Bitcoin’s blockchain they are paid in small portions of Bitcoin — the smallest unit of which is called “Satoshis”. Kind of like we have “cents” for “dollars”
On the Ethereum blockchain they are paid as small amounts of Ethereum — the smallest unit of which is called “Wei” (pronounced ‘way’). But, a “Wei” is so small that we actually pay Ethereum fees in “Gwei” which is 1000 wei.
Coins vs Tokens:
Bitcoin was the first blockchain based cryptocurrency to be created and a lot of others follow suite. Each of these blockchains, in its basic state only supports one type of currency, its’ “native” currency.
For example, the Bitcoin blockchain only supports Bitcoin.
But, over the years, some more complicated blockchains have emerged, such as Ethereum.
Ethereum doesn’t just have a currency in their blockchain, they’ve got an entire computer network system.
So Ethereum is kind of like a new internet that has its own built in currency. Users are able to deploy applications and websites to this decentralized network using scripts known as “Smart Contracts”
But this also means that users can create their own currencies in Ethereum, and we call these “tokens” — a token is any assets that is the non-native cryptocurrency of a blockchain.
You store the tokens in the same wallet/ledger as Ethereum — but since they are non-native, when you transfer them you still need to pay the transaction fee with a little bit of Ethereum.