Cryptocurrencies and blockchains have gained popularity in several industries.
We’re going to discuss the things that you should probably know about cryptocurrency.
We’ll look at how blockchains can solve problems, that other tech struggles to achieve so that you can decide whether it is a technology you should be adopting.
What is a blockchain?
A Blockchain is a broad term; It is comparable to the word ‘Internet’, in the way it is a description of the more comprehensive concept rather than the actual technology.
A Blockchain is a chronological chain of blocks of transactions and data, bundled together and at the same time distributed across several nodes.
Traditionally, Blockchains used to be referred to as the specific data structure within a distributed ledger technology.
A lot of people still use the term ‘Blockchain’ to refer to anything, from cryptocurrencies to enterprise deployments of distributed ledger technologies.
Distributed data? (No single source of truth)
You can use Blockchains to move away from the centralised “one source of truth” monolith database, that most companies have.
For as long as software and databases have existed, there have been massive shifts between different models of how software and databases interact.
Most recently, there has been a big push to try and move away from centralised computing.
It is common practice to split the software into smaller chunks, with patterns like microservices and serverless.
Moving into the cloud improves reliability and scalability, but one thing that usually remains is a colossal monolith database.
Improvements can usually be made to a monolith database by using a decentralised system, but the ultimate goal would be a fully distributed system.
All users are connected to a central point, usually a database or a central server.
The owner stores data for others to access. Setting up a centralised system is easy and can be developed very quickly.
Decentralised systems do not have a central owner, but multiple. Each will usually store a copy of data.
A system designed in a decentralised way is likely to be more tolerant to faults because they provide resilience for if a server were to fail.
A distributed system is similar to a decentralised as it does not have a single central owner.
It goes further, though, to eliminate centralisation by having each node have a copy of all the data, with the ability to update in an eventually consistent manner.
What is a distributed ledger?
Another name for a blockchain is a distributed ledger.
A distributed ledger is a data structure which resides across multiple computing devices, typically spreading across various devices and regions.
Distributed ledger technologies existed before bitcoin, but bitcoin brought together some of the core ideas, with regards to time stamping, P2P, cryptography, and sharing the computing power.
Blockchain encompasses ledger technology by using data structures to capture the current state of a ledger and then use transactions to change the ledger state.
Creating a Simple, Low-Cost Twitter Bot, utilising Serverless Technologies.
People have a love-hate relationship with twitter bots.
Blockchain can be used with transactions.
A blockchain will track various assets transactions, and group them into blocks. There be any number of these transactions in a block.
Nodes on the blockchain network group upload the transactions and send them through the network.
The transactions are synced up by an agreement by all peers, and eventually, each node will contain an up to date version of the ledger.
Some blockchains also have a concept of smart contracts, we discuss this further very shortly.
How is the structure of a Blockchain built up?
A block within a blockchain is built up of 4 pieces of metadata, that are then used in continuation with the next block to form a chain.
- A reference to the previous block
- A proof of work (known as nonce)
- A timestamp
- A reference to the Merkle tree root of transactions
Because of the way that the data exists, it makes changing information earlier in the chain almost impossible, as the next block on chain depends on the hash of the previous block.
If a block were changed in any way, it would affect every other block upstream in the stream.
Why does blockchain technology work so well?
A Blockchain creates a distributed consensus between mutual distrustful parties while creating a shared instantaneous source of truth.
In comparison, some banks will reconcile at the end of the day, and some shops will process all sales at the end of the day and update stock levels, ready for the next day.
In theory, you view the entire chain of transactions, at any time, from any node and know the information you receive is consistently accurate.
How does a blockchain differ from a database?
A blockchain is a write-only, data structure, where the next record is always written at the end of the chain.
This is achieved by each block referencing the previous block, meaning there is not an easy way to have to edit or delete data from the Blockchain, and any attempt to do this would be straightforward to detect.
In comparison, a database can easily be manipulated and changed by a database administrator, or an application which may change the state of some data.
Blockchains we designed to be decentralised, where databases are usually designed to be centralised or tend to have a single “master” node, which controls the data.
These features tend to be the deciding factors of whether to adopt this technology.
Can Blockchains be used for more than just data storage?
Some blockchains work with the concept of ‘Smart Contracts’.
Smart contracts are pieces of code that execute predefined actions when certain conditions are met.
This allows the ledger state to be modified, or facilitates the transfer of some kind of asset, or can verify or negotiate a legal contract of some sort. They were made accessible by the Ethereum blockchain.
This effectively allows to not only store data, but act more like a traditional application, combined with some backing storage.
What is an example of a smart contract?
In an equity raise, a transfer is made with the amount of $100 from the investor to the company, but only on receiving the shares from the company.
The monetary value of $100 has been pre-validated by the company for the transaction. The amount is held by the smart contract until the shares are received.
- The smart contract encodes the agreement between a company raising funds and its investors.
- The smart contract sits on the Blockchain.
- Once an event is triggered, in this case, expiration date or a strike price that has been pre-decided, the smart contract executes its logic.
Three misconceptions about Serverless, and why Serverless is often misunderstood?
The trend of serverless continues, but there are still misconceptions, and these often this can lead to decisions to…
Why were these technologies created, and what problem do they solve?
Bitcoin was released in 2009, in response to the global financial crash at the time.
The idea was to transfer value, over the internet without an intermediary.
Bitcoin is essentially programmable money.
Ethereum was created in response to Bitcoin, and it has a more extensive set of APIs and allows for smart contracts.
At the core of the Ethereum blockchain are EVMs (Ethereum virtual machines), which run on the Ethereum network. Unlike Bitcoin, Ethereum does not just track transactions.
What are the security features of a Blockchain?
Blockchains and Cryptoeconomics are about building systems that have particular desired properties.
They use cryptography to prove properties about messages, that happened in the past while using economic incentives, defined inside the system.
Rather than imposing barriers to entry, permissionless blockchains, such as bitcoin are public and open. Although this can also mean they are open to malicious attackers.
This is prevented by having good behaviour incentivised so that:
- malicious attackers cannot take over the system with an escalated attack
- malicious attackers cannot undertake an organised majority attack
- the payoffs of securing are higher than the payoffs for attacking
The use of Consensus Algorithms
Consensus is the process of achieving agreement among network participants as to the correct state of the data in a system.
It does two things:
- Ensures data is the same for every node on the network
- Prevents malicious actors from changing the information.
Bitcoin mining is one example of a consensus algorithm, although there are others, that use different techniques.
Proof of work
PoW is used within bitcoin. To add a new block onto the Blockchain, a computational challenge must be solved.
The incentive for “mining” is an economic payoff. The work is hard to create but easy to verify; you could compare this to a combination lock.
It’s challenging to guess the correct sequence of numbers, but once you know the combination, it’s easy to verify, because it opens the lock.
Proof of work requires a considerable amount of energy, and mining is concentrated in countries where energy is cheap.
Proof of stake
In PoS, nodes are known as validators, rather than miners. When a node validates, it earns a small transaction fee.
Nodes are randomly selected to validate blocks, and the probability of selection is based on the stake already held. This saves the massive amount of computational resources involved to create the next block.
An example of how selection works: If node X already has validated and earned two coins, and node Y has one coin, node X is twice as likely to be called upon to validate a block of transactions.
Proof of elapsed time
PoET emulates the mining style of bitcoins proof of work, but instead of competing to solve a cryptographic challenge, there is a random lottery and works on a first-come, first-serve basis. Each validator is given random wait time.
The winner creates the next block on the chain.
Proof of Authority
PoA uses a set of authorities, which are designated nodes, who are allowed to create blocks on the chain. Ledgers using PoA require sign off by the majority of the authority nodes for the block to be created.
The Only Step You Need to Progress in Your Career as a Developer or Engineer.
I don’t usually like to write articles about myself, as it feels a bit self-indulgent, but I thought it would be useful…
What are the main challenges in adoption?
At the moment, there are a lot of challenges.
- Lack of Standards
- Regulatory challenges
- Lack of knowledge
Standards need to be in place to ensure interoperability and prevent a fragmented ecosystem. Standards do not just need to be created for the Blockchain, but also services used on it, like privacy, identity, and data governance.
Lack of regulation creates uncertainty for everyone involved. Highly regulated sectors, such as finance are treading very carefully with distributed ledger technologies, as there are no regulatory guidelines at this time for smart contracts.
Lack of know-how
Blockchain is general is gaining more traction, and people are becoming more interested in it, but there is still a lack of technical talent of people in Blockchain