May 18, 2018

Blockchains and Algorithms
Blockchain is the latest tech craze and has attracted a lot of
attention. Before blockchain, computers operated in a client/server
relationship, where one central authority (the server) is contacted
by a client (your laptop, phone, etc.) and is requested to send
back information. An example of this is when you use Netflix. Your
TV connects to a Netflix server, which has preloaded movies and
shows for you to choose from. Once you select your show, it then
streams the video content to you. That’s fine, until Netflix
removes the show you want to watch, and you let out a big sigh.
Well, it could be that their contract for sharing that show
expired, or they needed the space to upload a new show. Either way,
it is too bad for you.
What if there was infinite space, lots of bandwidth, anyone
could upload a movie or TV show, and nobody was in charge, so your
favorite show could never get removed? Sounds too good to be true,
right? Well, that’s essentially what blockchain is: A network of
ordinary computers, sharing resources, all working together with no
master. The only control is the code shared by all these computers,
which make the blockchain.
Every blockchain (network of computers) is designed to do
something different. There are video distribution service
blockchains being created right now, but there are many different
uses for this technology, and ways to go about creating this
network. No one way is perfect right now, and there is a huge race
to evolve into the best overall solution. To have a blockchain,
computers called miners must create new blocks which are then
accepted or rejected by the network. Blocks are rejected if they
are invalid, malicious, or incomplete. There have to be certain
rules and guidelines set in place in order for the network to
function properly. It wouldn’t make sense if a Netflix blockchain
suddenly allowed someone to upload a book, or even a podcast, or
upload a movie claiming themselves as the director or producer.
Here’s a brief overview of the Top 10 most used algorithms, and
a sample of which popular blockchains use them:
- Proof of Work - Bitcoin, Ethereum, and
Monero
Bitcoin’s founder created Proof of Work, where miners configure
their computers to solve very intense puzzles, competing to create
the next block. When they solve that puzzle (once every 10
minutes), they are given a reward (coins). Bitcoin has become so
valuable, entire countries are setting up huge factories to create
blocks and claim rewards. Places that have free power have a
tremendous advantage, as the machines required to mine these blocks
suck up unbelievable amounts of power. A decommissioned power plant
in Australia was recently purchased solely for the purpose of
Bitcoin mining. Video cards from NVIDIA and AMD have also been in
exceptional demand. They are selling above MSRP, often sold out the
same day a retailer has them in stock.
- Proof of Stake - NEO, DASH, and NavCoin
Instead of mining, people who hold the coins belonging to the
network have the option of being “minters”. A designated third
party creates the blocks, then the minters run software on their
computers that act as validators. It’s much less energy intensive
and requires no special hardware, just coins. The more coins you
have “staked” in the blockchain, the higher the chance you have at
being selected (at random) to validate a block.
- Delegated Proof of Stake - EOS, Bitshares, and
Lisk
There is a major difference in this system compared to the previous
two listed. Instead of everybody having a chance at validating a
block, only a small number of machines on the network are selected,
by a vote. This way, it is much easier for a handful of computers
to talk to one another to compare blocks and validation, in a much
more efficient way. If one validator starts to fail, they are voted
out of circulation and replaced by another computer on the network.
Instead of miners competing with each other, in DPoS they all work
together to solve the block puzzle, creating blocks much, much
faster.
- Proof of Authority - POA Network, Ethereum’s Kovan
Testnet
This consensus algorithm is pretty much the same as
the client/server relationship. There is one authority in charge of
everything, and the clients can just read the information (if
allowed). This is best used in private corporate chains. Additional
conditions to become an authority can be specified, including
identity management and verification, in contrast to the previously
mentioned algorithms, where the only identity on the network is
often a wallet address or IP address/port.
- Proof of Activity - Decred
This is a combination of both PoW and PoS. Currently only Decred
uses it. Pros and Cons remain to be seen.
- Proof of Burn - Binance Coin, Counterparty,
Slimcoin
Instead of being rewarded for solving puzzles, you are supposed to
send coins to an irretrievable address, to be lost forever. The
concept is by decreasing the supply of coins, the value of the
remaining ones increase. More often than not, the practice of
“burning” coins is something done by the developers rather than the
community. Blockchain ICOs often burn any unsold tokens remaining,
as they cannot be allocated to any other area in an honest way.
Binance burns some of its profits every quarter, to ensure its coin
gains value.
- Proof of Elapsed Time - Hyperledger Sawtooth
Every participant in the network is assigned a random
time in each block. Whoever’s time runs out first, gets to create
the next block. Clients on this network must be identified, and
their code must have passed verification trust, to avoid simply
exploiting the time on your network node to trigger sooner. Pros
and cons are yet to be determined.
- Directed Acyclic Graph - IOTA, Hashgraph, and Nano
Participants in this network that want to send a
transaction, are first required to do a small proof of work, in
which they verify two previous transactions that occurred before.
In theory, this tangle can accelerate to near-instant speeds.
Unlike traditional servers, the more users that are logged on, it
gets faster instead of slower. Each of the networks has their own
unique take on how to organize transactions, so read into each
project more if you desire.
- Byzantine Fault Tolerance - Ripple, Stellar, and
Dispatch
Pre-selected validators are in charge of the network. No miners or
community contributors are required. With that said, Stellar allows
anyone to become a validator, while Ripple itself decides who
validates blocks on their network. These are centralized services
using blockchain technology.
- Proof of Space/Capacity - Burst
Although, only one coin currently
uses this, it is a fantastic algorithm. It allows people to mine
using spare hard drive space, instead of CPU/GPU cycles. Your hard
drive space is filled up with small amounts of random files that
act like lottery tickets. The network elects a winner every defined
number of seconds (or minutes) and gives them a coin reward. It
takes tiny fractions of energy (5 watts) to power a hard drive,
compared to 100+ watts of a single GPU or 1200+ watts of an ASIC
(specialized mining hardware developed just for Bitcoin and other
major coins).
There are still many more algorithms out there, including:
- Proof of Importance
- Proof of Reputation
- Proof of Weight
- Proof of Evolution
- Tendermint
- CASPER
- Distributed Byzantine Fault Tolerance
- SPECTRE
If you’re thinking of creating a blockchain of your own,
continue your research! It will be time well spent.
Listen to this episode of Crypto and Blockchain
Talk
SUBSCRIBE to our channels and never miss an episode:
SPOTIFY
iTunes
Stitcher Soundcloud
Google Play Music Tunein
Castbox
Pocket Casts
Overcast iHeartRadio
PlayerFM Twitter YouTube
LinkedIn