Components of a Bitcoin Application
The blockchain technology behind bitcoin isn’t just going to change financial industry. It’s going to revolutionize everything from contracts to voting through the construction of internet applications. But, what exactly are the components of a bitcoin application?
Joel Monegro took the time to identify the most common patterns and trends that made up the architecture of bitcoin applications, which he calls the ‘Blockchain Application Stack.’ This stack includes the following components;
Miners and the Blockchain
As Joel reminds us, “miners are the nodes in a network of computers who, together, verify all Bitcoin transactions. In exchange, the algorithm rewards them with Bitcoin.”
Bitcoin Wiki provides us with a little in-depth explanation of the process of mining and how the blockchain is involved;
Mining is the process of adding transaction records to Bitcoin’s public ledger of past transactions. This ledger of past transactions is called the block chain as it is a chain of blocks. The block chain serves to confirm transactions to the rest of the network as having taken place. Bitcoin nodes use the block chain to distinguish legitimate Bitcoin transactions from attempts to re-spend coins that have already been spent elsewhere.
Mining is intentionally designed to be resource-intensive and difficult so that the number of blocks found each day by miners remains steady. Individual blocks must contain a proof of work to be considered valid. This proof of work is verified by other Bitcoin nodes each time they receive a block. Bitcoin uses the hashcash proof-of-work function.
The primary purpose of mining is to allow Bitcoin nodes to reach a secure, tamper-resistant consensus. Mining is also the mechanism used to introduce Bitcoins into the system: Miners are paid any transaction fees as well as a “subsidy” of newly created coins. This both serves the purpose of disseminating new coins in a decentralized manner as well as motivating people to provide security for the system.
Bitcoin mining is so called because it resembles the mining of other commodities: it requires exertion and it slowly makes new currency available at a rate that resembles the rate at which commodities like gold are mined from the ground.
Mining bitcoins, and it’s alternatives, can be expensive. As we’ve previously discussed, you’ll have to invest in a mining system and handle transaction fees. In some cases, it may be too costly to mine coins.
In its simplest definition, an overlay networks is a computer network built on top of another network. For bitcoins Joel writes, “Developers are starting to build networks that work in parallel to the Bitcoin blockchain to perform tasks that the Bitcoin network can’t, but that make use of the Bitcoin blockchain to, for instance, timestamp or validate their work.”
Sidechains, which are “private or public networks that may or may not be based on the Bitcoin protocol,” are an example of overlay networks. This includes exciting production sidechains like Liquid and Chromaway.
“Whatever form these overlay networks take, the one thing they have in common is their connection to the Bitcoin blockchain, and how they benefit from its network effects to achieve liquidity without having to bootstrap their own alternative cryptocurrency and/or blockchain like alternative solutions such as Ethereum require.”
“Thanks to the Blockchain, for the first time we can develop open source, decentralized protocols with built-in data (thanks to Overlay Networks and The Blockchain), validation, and transactions that are not controlled by a single entity.” Mongero says. The best example “of a decentralized protocol on top of a Shared Data Layer is Bitcoin”
The potential of decentralized protocols is that they can “undo every single part of the stacks that make these services valuable to consumers and investors.” For example, a common and decentralized data set could be created to allow for peer-to-peer-transactions that are powered by bitcoin. OpenBazaar has been using this component for its P2P marketplace.
Open Source and Commercial APIs
To help the average developer build stacks, it should be “quick and easy for developers of any skill set to quickly build an application and experiment on top of these decentralized protocols.”
Examples of this are Chain.com’s APIs and Coinbase’s Toshi for Bitcoin.
However, there is a slight difference between the two that should be kept in mind.
Open source = decentralized software development
Open APIs = decentralized business development
Toshi would be an open source example, while Chain.com would be an open API.
Mongero says that this is “the consumer-facing part of the stack.” He adds, “Applications built atop this architecture will, in most cases, work very similarly to the ones we have today – just like Coinbase works similarly to PayPal.”
The difference between, however, is that because they’re built on decentralized protocols, “they will be able to talk to each other, just like different e-mail applications and bitcoin wallets can interoperate.”
Joel likes that this stack is “growing from the bottom up,” which will allow for an unlimited amount of innovative technological advances.
Blockchain Architecture Considerations
Vamsi Chemitiganti adds that when “one examines the architecture of Blockchain, a few important design aspects that need to be discussed are –”
- The Blockchain platform itself
- The role of Nodes in constituting the overall blockchain & the Node discovery process
- Transactions that make up the blocks running in the Nodes
- Security implementation that generates the Blocks
- The process of adding newer blocks to the Chain
Knowing how this architecture works will determine how transactions and blocks will be completed by an application.