When people think about blockchain they probably think of one thing: Bitcoin.
Bitcoin was the first known application of a blockchain, developed by the anonymous Satoshi Nakamoto. Today, Bitcoin is by no means the only blockchain or the only application of blockchain. However, Bitcoin’s mechanisms inspired all blockchains that followed in some way. Today, blockchains can be either public or private, but they all share roughly the same characteristics with Bitcoin:
- Contain a record of transactions, often – but not always – financial transactions
- Are replicated across systems in near real-time
- Exist in a distributed network, though the level of distribution may vary
- Use cryptography and some kind of digital signature to prove identity, authenticity, and to enforce access
- Make it nearly impossible to change historical records
Public Versus Private Blockchains
Bitcoin is an example of a public blockchain where anyone who downloads the software can participate in writing (validating blocks, also known as mining) or reading (viewing and/or using the blockchain’s technologies without mining).
Public blockchains are more decentralized than private blockchains which makes them less vulnerable to attack or failure, but allowing anyone to have read/write access requires complex procedures for conflict resolution. In this case, we don’t mean interpersonal conflict – conflicts on blockchain usually involve two or more miners (users who “write” the blockchain by validating blocks) submitting the same block to the chain at roughly the same time. Private blockchains, as the name implies, are only open to a limited group of participants – usually people within a company or otherwise known to each other. This opens the chain up to more vulnerabilities as it is more centralized, but private blockchains eliminate a lot of the conflict resolution issues that arise in public blockchains. Private blockchains may still have conflicts and rule changes, but these are usually reviewed and approved/disapproved by an appointed validator – someone trusted in the network to resolve conflicts.
Transactions On The Blockchain
Before getting into how Bitcoin handles these conflicts – a process that has been carried over into many blockchains – let’s first dive into how a Bitcoin transaction actually works:
- A sender chooses the public address (public key) where they want to send Bitcoins and then signs that transaction with their private key
- Nodes that are a part of the blockchain’s network receive the transaction and validate it using the public/private key pair supplied by the sender
- The transaction is then spread through the network and added to a pool of verified transactions that need to be added to blocks
- Users (miners) collect these transactions from the pool, prioritize them according to a mathematical ratio, and then add the transaction to a block
- To add the block to the chain, the user must solve a mathematical puzzle which is solved when the user’s computer finds a number, called the nonce, which contains a certain number of zeros when input in the puzzle
- Once the nonce is found, the user then has proof of work that the has been solved and the block is added to the chain
- The user who correctly solved the puzzle and added the block to the chain is rewarded with Bitcoin. The process of solving blocks and adding them to the chain for reward is known as mining
Resolving Conflicts On A Blockchain
As previously mentioned, conflicts can arise when two miners solve the same block at roughly the same time. How do you decide which block is the official block? To solve this, the Bitcoin network has agreed to something called the “longest chain rule”. As the name implies, the longest chain is the official chain. Imagine two users push block 12 at the same time, making block 12a and 12b. Under the longest chain rule, if block 13 is added to block 12a before another block is added to 12b, block 12a becomes the valid block and the user that submitted it earns the reward.
In order to establish rules like the longest chain rule, public blockchains like Bitcoin need to get buy in from all of the users on the network. As you can imagine with a public blockchain with thousands of users, getting every single one to agree to rule is almost impossible. This is the basis of how blockchains become “forked”, or split. In the event of a rule change, all members of the chain that agree to the change will begin working on a new chain (the fork). All members who don’t agree will continue working on the old chain.
These conflict resolution techniques first introduced by the Bitcoin community are now common across public blockchains, with some localized tweaks and changes.
To learn more about the blockchain community, join our Mobilechain community on Telegram!
Posted by Dana Cohen