A lot of people know what cryptocurrency is, a lot of people don't.
This post is for the people who don't know what a cryptocurrency is and how it works. I'm hoping that I can de-mystify the system a little bit and help people to understand what's going on under the hood without necessarily needing to be a computer programmer. I’ve tried to answer as many of the common questions and misunderstandings as I can.
1.What are the terms?
Ledger: A list of transactions and account totals
Block: A chunk of information on the ledger with that has been validated and signed by the network
Nonce: a random piece of information added to a block to change hash code of a block
Distributed Ledger: A copied and synchronised list of transactions shared across nodes
Wallet: A program a user uses to interact with their account and submit transactions
Transaction: A message
User: A real person who wants to store and interact with data on the network
Node: A computer operating the network software and storing a copy of the distributed leger in exchange for tokens
Miner: A person who sells processing power to nodes in exchange for tokens
Network: All of the nodes working together
Block-Chain: Synonym for ledger but also used to refer to the underlying technology as a whole
Token: A specific type of information attached to an account on the ledger (bitcoin, eth, nft,…)
Base token: A specific token used by the network to pay for transactions
Smart contract: A program that runs on the network and uses the ledger as a hard drive
Consensus: A system by which every node on the network proof checks information and a democratic vote is taken on the results of proof checking
Byzantine Fault Tolerance (BFT): How many nodes, as a percentage, of the network must malicious and co-ordinated to defraud the network in the exact same way at the exact same time
Encryption: A method for scrambling and unscrambling information using a password
Encrypt: scramble a message with a password
Unencrypt: unscramble a message with a password
Asymmetric Encryption: A method for scrambling information using a password and unscrambling using a different password
Man in the middle attack: An hack where the hacker intercepts communications and changes the message
Encryption Key: Password
Seed: a random number or piece of information used to pre-scramble the computer program that produces encryption keys so that the produced keys will be unique and reproducible
Private Key: A password the user keeps to themselves
Public Key: A password the user shares with everyone and is registered as a receiving address on the ledger
Receiving address: a unique number that tokens and information is stored inside under (Tokens, data for smart contracts)
Hash Algorithm: A program that creates a unique signature for a piece of information of a given size where the process is destructive so that the final output can’t be used to determine the input, such as SHA256, Scrypt, Ethhash,….
Hash Code: A unique signature generated by a Hash Algorithm
2.What are the steps involved in creating an account on the network and why is it considered secure?
In order to create an account on the network the user will typically use a program called a wallet. The wallet will give the user a list of words to write down and store physically. These words will be used as a seed in the asymmetric encryption program to generate a private key and public key. The wallet will then send the private key to network nodes to be registered as an account/receiving address on the distributed ledger.
Alternatively, sending tokens to a random string of numbers creates an account no one has access to and effectively locks the tokens away forever where no one can reach it.
Either is immune to user harm from a man in the middle attack, and would actually save the user in the case of sending money to a bad address.
3.How do I store my tokens?
You, personally, don’t. The nodes store a list of every time you’ve received or sent tokens. Your wallet program reads the list and presents you with the sums.
What you actually store is your private key. Keep it safe. Any one who gets it has “hacked” your account and there’s nothing you can do about it. Hard core cryptocurrency people use wallet where they have to type in their key manually each time they want to submit a transaction….
4.Okay, so how do I “send” cryptocurrency then?
You create a transaction using your wallet. The transaction is short and simple, usually something like “X of tokens->Receiving Address”
The wallet takes this transaction and creates a hash code for it and uses the private key to encrypt it and then sends it to the network.
The network receives the encrypted transaction and the hash code. The network then unencrypts the information with an account on the ledger and calculates the hash code for it’s unscrambling guess. If the hash codes match, it used the correct account number and has determined the sender of the message, if not, it tries the next account number on the list. The network then adds the message to a list of messages.
Nodes check that the transactions make sense, that account 0xABCD actually has 1 BTC to send to account 0xWXYZ, and tries to make thing work out so that if account 0xABCD only has 0.75 BTC and someone is sending it another 0.75 BTC it receives the 0.75 BTC before sending 1 BTC.
Nodes then looks for a nonce that results in a hash code that meets a specific condition like: Begins with X number of 0s. Once a node finds a nonce that works. It proposes the block of transactions to the rest of the network for consensus.
If the block passes consensus, the block will be added to the distributed ledger and the account totals are re-summed.
5.Where does the value come from?
It a synchronous and extremely redundant and secure information tracking system. The idea is for people to want to use it to track information in a secure manner. To incentivise random people across the world to use their computers for this purpose tokens were created. Utilising the network requires spending tokens. People running the network receive tokens for the use of their computers, they sell them to people who want to use the network.
At the end of the day, what really determines the value is the usefulness of the system and how many people want to use it. As long as the system is useful and people want to use it, they will need tokens.
Those are the conditions for a market. The value of the coin is simply the market price of the coin: supply and demand. Real world market economics.
This is why is cannot be said that the value of a currency is based on nothing.
It is based on the real world market economics of something that is used to access and use something else.
6.If they shut down the internet then won’t I just lose all of my bitcoin?
Not unless they also erase all of the hard drives on all of the nodes.
7.What is proof of work then?
This is a way of making it be a measurable level of difficulty to reproduce a hash-code for a block. By asking for more and more zeros at the beginning of the hash code for a block, you make it harder and harder to find a nonce to add to the block to create the hash code.
This is important because the network uses the total difficulty of all the has codes on a ledger to determine which ledger is the correct ledger and which is a forgery.
The nodes can proof check the hash codes to make sure they are valid and then the assumption is that because “1000” computers ran for “3” years to make this ledger, if you wanted to make a forgery, you would need “1,095,000” computers to run for a day to make a ledger that could have a sum total work to replace the accepted ledger.
This means that the older the network is, the more stable and secure the past history of the network becomes.
Proof of work provides a BFT of 50.00…1% as it is done via democratic proof checking.
8.Why proof of work, doesn’t it require a lot of power?
Yes, while it is not the only factor, the power consumption of the network is directly proportional to the security level of the network.
Proof of work exists in order to tie node/miner income to real world limitations, logistics and engineering problems. This means that the billionaire can’t just take over a network because he may be able to afford 1 million graphics cards, but he can’t outcompete the 500 million graphics cards already on the market.
9.Well what is proof of stake then?
Essentially you lower the difficulty of the network until it’s trivial, then you force people to put up collateral. Nodes are assigned to create a signature on a frequency based on how much collateral they put up. If a node proposes a bad block, the collateral is docked a fee penalty.
This requires more complicated algorithms to oversee and validate the co-ordination of nodes so that there is no central co-ordinating PC, or it requires a central co-ordinating PC. Either way, when the math is said and done, the BFT of these projects tend to reach the 33-48% zone.
10.What the hell, why proof of stake then?
Because it uses less power, it’s a green technology thing.
11.What is a hybrid network? This is a network whereby multiple networks are blended together and blocks have to pass multiple layers of consensus in order to be validated.
Let’s take the consider a precautionary example of a hybrid network: Example Coin (EXC) User creates transaction and sends to network Network consists of 5 sub networks SHA-256, SCRYPT, ETHHASH, AUTOLYKOS2, Proof-of-Stake Subnetworks individually reach consensus Subnetworks communicate to reach shared consensus Block added to ledger
In the example above you a malicious entity would need to overtake 3 of the 5 systems in order to corrupt the network. One merely need to corrupt 50% of 2/5th of the network on the proof of work chains and 33% of the proof of stake chain.
This would mean that the true BFT of the network is ((0.2*0.5)2)+(0.20.33))*100%=26.6%
Not all project are made equal. Something to watch out for. More complicated project have more complicated problems.
12.Why bother with hybrid networks then?
If the above example was well designed, they can reach BFT ranges in the high 80% to low 90% range. It is impossible to reach 100% as adding layers has diminishing returns on security.
13.Who makes cryptocurrency?
It depends on the project. For the most part, it tends to be teams of software engineers and the projects tend to be open source.
In the case of Bitcoin, no one actually knows who is the man behind the pseudonym. In the case of the runner up Ethereum, it was a skinny, broke autistic teenager of 1st generation Russian immigrants living in his parents basement.
Both projects have since exploded.
14.What is open source?
This is a method of distributing software in which the human readable code is the what is actually being distributed. The person wanting to use the software can read the code and change it if they want to or just read it to audit it. Either way they then are responsible for compiling the code into a program or “binary code” that computer can run.
Most modern open source projects are nice to end users and will also provide a download link to a “pre-built binary” code file, an “abc.exe”
15.If any one can change the code and build it, won’t that allow people to hack into the cryptocurrency?
No, that just means that specific node is malicious and will never pass consensus
16.What about the asynchronous encryption algorithm, if they know my public key, can't they just work out my private key?
Yes they can, which is why it's important to choose the best and most modern algorithm. The keys are mathematically related and the engineers know its. It's absolutely possible to mathematically find the private key from the public key. So they make the keys so big that it actually going through the process of cracking the key is impractical from a processing standpoint.
Because my ego is not in control.
We already established that you are a gambler. ;)