There are a number of terms that I will be using, or have already used, that will be new to anyone who hasn’t looked into cryptocurrencies before. Terms like blockchain and fiat, mining pools and wallet addresses. I will try my best to explain them in simple terms, avoiding techno jargon. If there is anything I fail to make clear, please post a comment and I will clarify as best I can.
We have first generation cryptocurrencies. Bitcoin was designed purely for value transactions – a way to replace exchanging money. Litecoin is almost the same as Bitcoin, but offers a different algorithm, while Monero adds in enforced anonymity.
Next we have the MemeCoins – TrumpCoin, Clinton, DogeCoin, EtherDoge and more. These are pretty much first or second generation cryptocurrencies, but have just been cloned and renamed to suit a joke someone wanted to make.
And most recently we have a third generation – application based chains. Sia, MaidSafe and Storj were built to allow data to be stored and retrieved securely. LBRY was developed with the goal of an internet-wide, distributed content-sharing network.
There are hundreds of other coins (more than 700 so far) out there too, and each one has something that sets them apart – be it the technology, ideology, or end goal. One thing they all seem to have in common though, is blockchain technology.
At it’s core, blockchain technology is simple – a data storage system that is managed by hundreds of thousands of computers all around the world all processing the data and sharing it between them. No one computer has the last say on the data, and any data added must be validated a certain number of times before it is accepted as valid.
Data is sent to connected nodes, they prioritize it in a queue for processing, it gets checked to be valid, then added to a block, that block is then added to the chain and sent to other nodes, they validate it and its data.
There are a lot of process involved in validating the data – cryptography comes in to it’s own here. Hashes of the transactions, the data, everything, are generated and compared to previous transactions. This is done to prevent fraudulent transactions (double-spends) being forged by malicious nodes.
This whole process of validating the data is done very quickly. Each node is racing against the others to solve all these mathematical and cryptographic “puzzles” to be the first to form a block.
Once a block has been formed by that first node, it is officially part of the blockchain. If two or more blocks are created for the same spot on the chain at the same time, the first node to have their block validated by others gets their block accepted, and the other blocks are orphaned. Blocks are also orphaned if the other nodes refuse to validate the transactions within it – the most common reason for this is incompatible node software, but it could also be because the block contains a forged transaction that doesn’t validate correctly.
That’s the best I can do to simplify the blockchain technology, but I suggest you read a more thorough explanation than that though.
As blocks get added to the chain and validated by other nodes, the nodes that create the blocks are rewarded for their validation work. In addition to the transaction fees paid by the people sending the data, these nodes are often paid a reward for the effort of validating the transactions on the network. These rewards are called a mining reward. There are a number of ways these rewards are decided – Proof of Work and Proof of Stake being the two most common. I won’t go in to them here, but the links for each should give you an understanding of how they differ.
Transactions, in the context of this article isn’t limited to moving money from sender to recipient . And while cryptocurrencies are used for that, the transactions on the blockchain are really just data being sent and received. When I pay for my morning croissant and orange juice with Bitcoin, I am not actually transferring ฿0.0132. What I am sending is the data that increases the recipient’s wallet balance by ฿0.0132, and reduces the balance of my wallet by the same amount, plus transaction fees. That data is publicly available and verifiable, and can be checked and validated against the encryption keys I use to create the transaction. These keys are generated when I create my wallet.
In cryptocurrency, the way your “coins” are stored is more in keeping with a wallet than a bank account. There are a several properties wallets have, listed in detail below. These properties can be combined with others in a multitude of ways, each with their own pros and cons. One thing all wallets have in common is the ability to generate recipient addresses for transactions, and sign transactions to send data.
Online and air-gapped wallets refers to the method that the keys were generated.
Online generation is done with a computer that has (or has previously had) an network connect. This is okay, but if your computer has any malware – virus, worm, trojan or spyware – it shouldn’t be trusted.
Online wallets could also be a SaaS – MyEtherWallet and MyMonereo are two sites that offer wallets as a service – they are client side websites served to your browser that can interact with their blockchain through the website’s nodes.
Air-gapped wallets generate keys on a device that hasn’t had an network connection. This could be a computer that had the wallet software transferred via a USB drive, or a smart phone that had the software side-loaded on to it via an SD card or similar.
Additionally, you can generate a key yourself, with a pen and paper, if you’re a total math wiz. It’s not easy, and could take a long time though.
Software wallets are wallets you can download and install on any computer. Electrum, Mycelium, Breadwallet, Jaxx, Mist, etc. These are the wallets most of us use every day. They are fine for every day use, but they are not without their security faults. There are more and more types of malware that are targeting crypto wallets. These viruses allow attackers to steal you private keys in the same way they steal your banking details. Unless you can be 100% sure that your computer is virus free, a software wallet is only okay for hot storage of currency.
Hardware wallets are little gadgets like Trezor, Nano Ledger, and Jaxx’s Ice Cube. They allow you to store your private keys on purpose built hardware. This hardware is closed and secure and relies on software wallets to send the signed transactions to the blockchain nodes. Hardware wallets are much more secure than software wallets – your keys are kept safely on the hardware gadget.
Hot wallets are like your everyday wallet, the one you keep in your jeans’ pockets and use every day. It could easily be stolen because it is out and active all the time.
Hot Wallet examples:
- Mycelium running on your everyday smartphone
- Electrum on your desktop computer
Cold wallets are like your backup wallet, the one you keep in the shoe box under the bed and never use. This one is harder to steal, the thief would need physical access to the wallet.
Cold Wallet examples:
- Mycelium running on a smartphone that has had the battery removed, and is locked in the top draw of your office desk
- A Trezor locked in a safety deposit box in a Swiss Bank
- A key, printed out on paper as a QR code and laminated, then stored in the cover of the third book from the left, on the fourth shelf down, in your lounge room bookshelf
Single signature wallets are simple wallets that only need a single key to create a signature for a transaction. This means there is just one key protecting you coins.
HD wallets are a type of single key wallets that use a string of words to generate multiple single key addresses, and move your coins to new keys with every transaction. HD wallets protect your coins better than single signature wallets without the complexity of multiple keys.
Multisignature wallets need more than one. Say you have a 2-3 multisig wallet. That means the wallet has three keys, and needs two of them to be used to transfer data. This works well for businesses and superannuation funds, so no one person can do anything without the help of someone else.
Additionally, multisignature wallets are infinitely more safe than a single wallet. It would require someone cracking 2 out of 3 keys to access your wallet. Cracking a single Bitcoin key would take more than one trillion centuries, and the odds of cracking two are exponential.
Full nodes are applications that have fully synchronized the entire blockchain, and while it isn’t mining itself, it can broadcast the transaction to other nodes itself.
Lite wallets connect to full nodes, and store handle the transactions for the addresses in the wallet it holds.
Copay is an online, software, lite, multi-sig capable, hot wallet that is available on every platform. It can be used to create air-gapped cold storage wallets too.
Mycelium is an online, software, lite, HD hot wallet that is available on Android and iOS. It too can be used for cold storage, and it can sign transactions from hardware wallets.
Bitcoin Unlimited is an online, software, full node, HD hot wallet that is available for all desktop platforms. It can also be used for mining and to support the network.
My personal preference is Mycelium for my Bitcoin, Jaxx for my Ethereum, SimpleWallet for Monero, and the LBRY client for my LBRY credits. (Even though Jaxx supports Bitcoin, I wanted to keep it separate from my Ether to prevent any confusion with the addresses)
Creating a transaction from your wallet is simple. All you do is enter the address you want to transfer to, and the amount to transfer, and press send.
Each cryptocurrency has a different address format. These addresses are unique to that currency – you can’t send Ether to a Bitcoin address for example.
Be careful when picking a wallet. I have put more research in to my wallets than I did choosing my major at university. You need to make sure it was developed openly and has been through community audits.
Make sure the wallet you use gives you control of the private keys.
If you don’t control the keys, you don’t own the coins. If you don’t have a backup of those keys, you risk losing the coins.
Always ask community members if you have any concerns about the wallets available – either on Slack or Reddit. As a last resort, you could also ask on BitcoinTalk.org but remember, that place is full of trolls and ogres.
Well, that’s it for part two in this series. I am busy writing part three and hope to have it published in a week or two.