Distributed overeenstemming finding inbetween untrusted knots is the key ingredient ter blockchain systems. Whether mining “proof-of-work” or minting “proof-of-stake” algorithms are used, the overeenstemming established algorithmically ensures a consistent view of the gegevens stored ter the blockchain, e.g. who possesses which bitcoins on the bitcoin blockchain. Overeenstemming algorithms ter itself are not a necessarily fresh, but their unique setting and the way they contribute to blockchain systems were a technical novelty when bitcoin arrived (learn more te my older posts, e.g. here and here). But beyond this “technical” layer of overeenstemming, there are more layers of overeenstemming directly involving humans — and wij don’t have a good technical solution ter place for thesis layers. This is proving to be a problem, and is presently leading bitcoin to the brink of puinhoop te their debate about blocksize. Let’s take a look at the different layers before wij terugwedstrijd to the case of bitcoins current turmoil. After all, this situation is not unique to bitcoin, but spil the largest, most mature system and community it seems natural that the bitcoin community encounters the problems very first.
I will distinguish three concerns of overeenstemming: (1) overeenstemming on the gegevens, (Two) overeenstemming on the use and usefulness of gegevens, and (Trio) overeenstemming on the communication of gegevens.
Voorwerp (1), the overeenstemming on the gegevens, is dealt with by the overeenstemming finding algorithm. It is the reaction to “What gegevens is included te the blockchain?” and answered by the miners or stake-holders ter the distributed network.
Voorwerp (Two), the use and usefulness of the gegevens is the response to the questions along the lines of “Why is the gegevens valuable and why do wij store it?”. Te the case of Bitcoin, it is the function of Bitcoin spil a currency, e.g. spil a way to conduct transactions, or a way to store value. Without some overeenstemming on the value of a Bitcoin, the distributed ledger of Bitcoin does not make sense. The response to this question is often taken overheen by a supply/request differential te markets, but it can also take very different forms. Ter Ethereum, it is not the value of the units of currency, but the value of automated contract execution that drives the value of the network.
Voorwerp (Three), the overeenstemming of the communication of gegevens, is very critical: Every blockchain system specifies a distributed network that needs to communicate and execute a collective algorithm. To do so, it needs to speak the same language, e.g. broadcast and receive messages inbetween the network participants, and needs to agree on the same gegevens format. It ranges from very trivial formatting issues (e.g. imagine someone storing date ter a dd/mm/yy format and someone else ter a mm/dd/yy format) to fundamental questions like “What messages are valid?”, “What messages need to be broadcasted?”, or “What makes gegevens on the blockchain valid and how to identify illegitimate gegevens on the blockchain?” (e.g. double-spending attempts ter Bitcoin).
The reaction to thesis questions is typically hard-coded te the source code of the software. The answers were pre-defined by the developers and their implementation. This gives the developers a very central and significant role te most blockchain systems. Yet, many implementations are open source. Everyone can make switches and run their own, switched version. But without other knots accepting, acknowledging and respecting the modification, the fresh implementation will not have any effect: If it switches the gegevens format on the blockchain, all participants running the original software will discard the gegevens. If it switches the network communication format, other knots might misunderstand or flat-out discard messages from the modified client. It comes down to the spread of the modified software: If a majority of participants adopt the fresh software, it will prevail and determine the gegevens on the blockchain spil well spil the communication protocols involved te determining the gegevens. This process will lead to a “fork”: The blockchain will split into two chains, each chain only valid on the software used to create it. For Bitcoin it would lead to two parallel currencies. If you receive coins on one chains, they will only be valid on one chain, but not on the other chain.
How does this relate to Bitcoin’s problems? Bitcoin’s blockchain records transactions inbetween users, i.e. transfers of coins. Transactions are grouped into blocks, and about every 15 minutes a miner will find a solution to the proof-of-work puzzle and will append the block of transactions. So far so good, but the Bitcoin protocol prescribes an upper limit for the size of each block, and therefore and upper limit on the number of transactions that can be processed te a immovable amount of time (the current version can process around 7 transactions vanaf 2nd). The more popular Bitcoin gets, and the more transactions it treats, the more gegevens needs to be appended to the blockchain. Just now Bitcoin is at its capacity limit: it hardly manages to include all published transaction and execute them. Soon the amount of transactions might be too large to gezond into the blocks will lead to a backlog of non-executed bitcoin transactions.
There are numerous contesting proposals to solve this problem. The two most famous one are called segregated witness (SegWit) and bitcoin unlimited (BU). But how to determine which solution to use? The developers of bitcoin vowed to remain neutral and to not modify the core protocol on their own. The decision is delegated to the miners: With each block they mine, they can also signal which proposal they choose. If version gets a significant majority, the problem is solved—but if not, the Bitcoin blockchain might fork into separate, non-compatible versions of Bitcoin. But ter a proof-of-work protocol, the miners are not necessarily the stake-holders and users of the blockchain. At the uur, Bitcoin unlimited is favored by many mining pools, indicating a significant amount of mining power. But many Bitcoin users choose the SegWit solution. You can read more about the ongoing fight overheen here.
What’s the takeaway for blockchain systems te general? Once deployed, a blockchain system needs to keep evolving, whether te case of uncommon, unforeseen situations or for regular feature updates. Despite the decentralized nature of blockchain, the need to speak a collective language, i.e. use the same communication protocol ter the distributed network, leads to a central point. Having provisions to treat overeenstemming finding and prevent fighting inbetween users, miners, stake-holders and other parties is vital to maintain trust ter the blockchain. Whether the best or keurig solution is to introduce a central authority, a distributed voting protocol, or deferring the response to thesis questions to the majority choice by miners and users is up te the air — there is very likely not a single onberispelijk response, just like ter politics.
Please share and recommend my article if you liked it. Sign up for my newsletter down below for future updates on my dearest topics.