It's been quite a few years since I created a thread on the topic of cryptocurrency but I've noticed a trend lately where people are making a lot of
claims about Bitcoin and other coins without really knowing how they work, specifically the claim that it's a NWO plan to push us all towards a purely
digital money system. I will attempt to explain why these concerned are ill founded by explaining how blockchain technology works in simple terms that
anyone could understand.
It's important to realize that most dollars are already digital, just some data on a bank computer, and most payments are made electronically now.
There's absolutely no reason they need cryptocurrency to get rid of all cash money. However cash is unlikely to disappear any time soon because it has
utility, it's useful for making payments which should remain off the record (for both governments and citizens) and it's useful for making payments
when there is no technology available to make an electronic payment.
When Satoshi created Bitcoin he was trying to solve a specific problem, and that was how to create a virtual money system in a way such that people
couldn't simply duplicate their bitcoins and spend the same bitcoin twice but he wanted to do this without a central authority to keep track of the
currency. He wanted to create a decentralized money system so that people could be their own bank and send money anywhere in the world very quickly
with very low fees compared to the traditional banking system.
The way he solved this was with the blockchain and a very clever mix of cryptographic techniques. A block is essentially just a collection of
transactions and the first transaction in the block is the block reward transaction which is created by the miner of the block. A miner builds a block
by collecting transactions sent to them from other peers in the network and they "solve" the block by hashing the transactions along with some meta
data about the block such as the number of transaction it contains.
The hash value is basically just a large number (usually represented in hex), and if that number is less than a certain value the block is considered
solved. The meta data is called the "block header" and it includes a "nonce" value which is also just a number. The miner will increase the nonce each
time they hash the block and fail to solve it. A hash function is a cryptographic function designed to provide a fixed length "checksum" or
"fingerprint" which can be used to identify a specific set of data.
The idea behind a hash function is that you shouldn't be able to predict the output from the input and you shouldn't be able to recreate the input
from the output. For example before I posted this thread I wrote it up in a text document and if I were to hash that text file using a hash function
such as sha256 then I would get a resulting 256 bit number which can act as a unique identifier for that document and if I were to change even one
letter in the document the hash value of the document would change entirely.
Another important properly of a hash function is that we don't get "hash collisions", I shouldn't be able to find two different documents which
produce the same exact hash, at least not without an enormous amount of computing power. The higher the number of bits in our hash the harder it will
be to find a collision but it also obviously depends on the design of the hash function, a poor design could lead to security holes. Bitcoin tends to
use sha256 for anything that requires some security because it's well tested.
The block header also contains the hash value of the last solved block, this is how the block chain is formed, each block links to the previous block
in the chain because when the block is hashed it is using the hash of the last block as part of the data which is used to produce the hash. When a
miner has solved a new block they will then propagate that block around the network so that everyone else can add the block to the tip of their
blockchain. The deeper a block is in the chain, the higher number of confirmations it is said to have.
Solving a block requires some amount of computational work, because the miner has to keep changing the nonce value or some other data in the block so
they keep getting a different hash until the hash value they get is lower than the current "target" value. Others can hash a block they receive by
checking the hash value is indeed lower than the current target to verify it has been properly solved. They can also check that the block header
contains a hash value which points to the last block in the chain, if it does then it can be added onto their blockchain.
The target is what determines how hard a block is to solve at any moment in time, at the very start the difficulty was very low, meaning the target
was very high, because there wasn't many people mining Bitcoin. The target will change over time depending on how fast blocks are being solved. Each
node follows the same "protocol rules", so they all use the same equation to adjust the difficulty based on the rate blocks are being solved, allowing
them to all agree on a single target value.
If a bad miner where to not follow these rules and they computed the target to be higher than all other nodes, then their blocks would get rejected by
all other nodes because they wouldn't have a low enough target. The same protocol rules prevent anyone making bad transactions or doing anything
against the rules the majority of the network has agreed on. When two or more groups of nodes start following different rules this can lead to a
"fork" in the chain.
Each chain is still valid from the perspective of the people following the rules of each chain, but they are incompatible with each other so they
cannot coexist as a single chain and split into two, as if to create two separate coins. This is exactly what happened with Bitcoin Cash, the Bitcoin
blockchain was forked several months ago because some people believed the maximum block size should be larger so more transactions could fit in each
block, but the protocol rules of the original Bitcoin will not accept these larger sized blocks that Bitcoin Cash uses so it split into two chains.
Usually when a fork happens due to differences in software it's resolved rather quickly and people will tend to merge back onto a single chain quite
quickly once it has been fixed, however mini-forks are actually happening all the time because miners will often solve a block at the same time so
some people will end up accepting the block from one of the miners while everyone else accepts the block from the other miner, depending on which they
received first. So you'll have two different groups trying to extend different chains because the last block they have is different.
This may go on for several blocks but it will be solved fairly quickly depending on which of the two chains gets extended faster, nodes will switch
onto the longest chain once it gets far enough ahead and the other fork will die off and the blocks that weren't used will be "orphaned". When I say
"longest chain" it's not really the number of blocks but rather the cumulative computational effort expended on the chain. Remember that solving
blocks takes really serious computational effort, so the "best chain" is really determined by which ever has had the most effort expended on
edit on 11/12/2017 by ChaoticOrder because: (no reason given)