We’ve all seen how big Bitcoin and other cryptocurrencies have become. While this type of online currency is notoriously volatile, the technology behind it has the potential to disrupt every industry from the inside out. Because blockchain has an endless application scope, it’s being seen in new ways every day.
In this post, we’ll go into the architecture behind blockchain and how a distributed ledger works. Once you see it for yourself, you’ll see why so many developers are embracing blockchain as a new normal. We’ll also dive into a short tutorial for how to create your own (basic) blockchain sequence and use a proof of work (mining) system.
First, we all need to be on the same page about what blockchain is and how it works before we attempt it ourselves. The block has header information, and there is also a set or a “block” of data. This data is usually a transaction in the world of cryptocurrency, but it can be adapted. The chain then starts with a Genesis block, and new blocks are created depending on just how many transactions or sets of data are stored within a block.
Once that threshold is reached, a new block is created. This new one is linked to the previous one, and that’s where the term blockchain comes from. Blockchains are also immutable. This is because a SHA-256 hash is involved with every transaction or set of data. The content within the blocks is also hashed. This means there’s a unique identifier for every block, and the hash from the linked blocks are stored and hashed in the header as well.
Because blockchains are immutable, they’re incredibly secure. Messing with one is basically impossible. Trying to fake transaction data or property would be a challenge. Even more so, as the chain grows, it gets even more secure. The technology to disrupt this system just doesn’t exist yet, and that’s good news.
There are three types of blockchain:
Next, let’s talk about transactions within blockchain. Blockchain technology is distributed. Because they’re append-only, it’s easy to duplicate blockchains across nodes in the network. While nodes usually communicate peer-to-peer (like with Bitcoin), they can also be decentralized with APIs via HTTP.
A transaction can be anything. It could have an execution code or just store information. You can see this technology in action with the introduction of new smart contracts. Essentially, these smart contracts are computer protocols which facilitate and verify digital contracts. They’ll likely become more mainstream in industries like manufacturing, banking, and so on.
Let’s look at Bitcoin as an example. With Bitcoin, there is a transaction with a certain amount that is transferred from an owner account into another account. This transaction has public keys and account IDs to make sure it’s secure. These transactions are added to a network, and they’re pooled together. Though they’re in a shared network, they’re not in a block or within the chain itself.
How does this work? It comes down to the Consensus Mechanism. You probably already know of one such mechanism known as Mining, which is used by Bitcoin. There’s an endless list of Consensus Mechanisms and it would take too long to list them all. All you need to know is that they’re algorithms or patterns that gather transactions, build a block and add these blocks to the chain to validate.
As you read above, a blockchain is a chain or list of blocks. Each block comes with its own digital signature as well as the digital signature of the blocks before it. Some might also contain data like transaction information. The digital signature is known as a hash. Each block’s own hash is calculated from the previous one. One change will affect all of the hashes thereafter. By calculating and comparing these, we can see if a blockchain is valid.
Because any changes in data will result in a broken chain, let’s first create a class Block that will form the foundation for the blockchain.
#java #bitcoin #blockchain #cryptocurrency