Technical Debt in Cryptocurrencies
This article was first posted on http://cryptoeconomics.asia on 28 October 2017 [https://cryptoeconomics.asia/2017/10/28/technical-debt-cryptocurrencies/].
Technical Debt
Before we discuss about Technical debt there’s a need to share about what’s coming up immediately. The cryptocurrency community is now waiting for an upcoming contentious split of its leading cryptocurrency Bitcoin. The event which is expected to occur on 18 November 2017 is termed the “Segwit2x” and has many up in arms.
What exactly is Segwit?
Segwit stands for Segregated witness. There are ample videos and explanations out there for the keen reader. However, to summarize. Segwit is a conceived solution to solve the ever-increasing throttling issue due to the increasing adoption of Bitcoin. Imagine trying to fit an elephant into a 1 by 1 ft box. It would technically be impossible. The elephant is the number of transactions, and the box is the processing limit of the Bitcoin blockchain. In short, Bitcoin was facing a SCALING issue that needed to be resolved immediately.
What does Segwit2x mean? And why is it contentiousness?
In a seminar on 23 October 2017, at the Singapore University of Social Sciences Charlie Lee, the founder of Litecoin shared his stance on Segwit2x. He opined that Segwit2x differed from the original Segwit as ti was the miners (those who process transactions using their computer[hashing] power) who preferred solutions to be provided on the Bitcoin blockchain itself rather than executing Segwit.
The miners felt threatened by the creation and development of Lightning Network which was a solution provided by several programmers to solve the throttling issue of Bitcoin.
Fast forward a couple of months and it was the miners that wanted an increase to the block size [note that Bitcoin currently processes block sizes of 1MB in comparison to Bitcoin Cash’s 8MB ]. Why is there such as a need to constantly increase block size?
The rationale is simple, as more as more users start to use Bitcoin the number of transactions skyrocketed. This meant that the 1MB limit was actually sabotaging the usefulness of Bitcoin as a payment solution and store of value. The miners who had enjoyed the benefits of Segwit wanted a longer-term solution. Segwit2x promises ever increasing large block sizes 1MB to 2MB with increases become more and more likely. Thinking rationally, Segwit2x paves the way for the scalability and adaptability of Bitcoin by consumers and firms.[/vc_column_text][vc_separator type=”normal”][vc_column_text]Before we continue there’s a need to explain the roles of the players. The four players within a blockchain ecosystem / cryptoeconomic framework:
1) Users — Users of the blockchain that are active participants of the network. They transact using the blockchain framework and hold value in that cryptocurrency.
2) Developers — Are those that contribute to the code of a cryptocurrency. In the case of Bitcoin, it is the Bitcoin Core developers. For Ethereum it would be the Ethereum Foundation development team that examines zero-knowledge proofs and Casper.
3) Businesses — Includes exchanges such as Bitfinex, Coinbase, CEX.IO and user-facing blockchain services such as CoinDesk, CoinTelegraph, Brave NewCoin. It also includes businesses that sell hardware wallets such as Ledger, Trezor, Keepkey. It might not be 100% true but many universities and academia fall into this category too.
4) Miners — are those that run full nodes or framework that allows for pool mining to occur. Earliest versions of miners are i.e. Slush pool. Individual mining has been made impossible since the increase of computing power on several blockchains such as Bitcoin. The result is a combination of computing power in the form of a “pool,” solving rewards if obtained are then split between the participants that have contributed to the computing power [hash rate] of the pool.
We are assuming that economic intelligence such as AI are agents within the specific player groups and do not serve as independent players within the ecosystem.
Benefits & Doubts
Segwit2x benefits everyone:
1) Increases in blocksize allows consumers like you and me to send our payments using Bitcoin at a faster speed
2) Increases in blocksize empower miners to benefit more from it as they are needed to process more
3) Increases in blocksize allow firms to reduce cost. Imagine the cost required to fight over slots of a small block
4) Finally, increases in blocksize allow for future scalability and adaptability.
It is actually more sinister than that:
An increase in blocksize from 1MB to other sizes increases the load of common folks. What does that mean? The full blockchain of the cryptocurrency Bitcoin is now approximately 130 GB [yes gigabytes]. The blockchain is a connected chain consisting of 1mb blocks from end to end, tons of blocks form this blockchain.
An increase of blocksize might not pose a problem right now, but it could eventually reach a situation for which normal retail users like you and me will stop having access to the blockchain. Rather we must rely on firms and corporations to help us “view” the blockchain.
Why do I say so?
Right now any user who is interested in confirming and validating transactions can open their Bitcoin Core wallet, the wallet act as a storage for Bitcoins and at the same time help validate transactions. But if the blockchain adds 8mb blocks, the full blockchain would be more than 1 TB in size very soon. When it comes to that point, consumers will not be able to validate transactions and the number of “nodes” [validators] will fall. This is a dangerous trend and a slippery slope which can lead to a situation which a few conglomerates deciding on the direction of the cryptocurrency Bitcoin.
The developers of Bitcoin realized the danger of the Segwit2x posed to the system and campaigned very hard to get the word out. They cite the potential for the erosion of User Consensus [see Nakamoto Concensus] as a huge motivator for what they are doing.
After taking a look at both sides of the argument I have to say that there is no right or wrong. It isn’t as simple as a “you are right” and “you are wrong” Developers, users, firms should realize that we are all in this together, and no one has definitive answers. The concept of blockchain is new and requires testing and constant re-development as observed by the rise of other alternative currencies such as:
- Monero [focuses heavily on privacy that Bitcoin will never be able to match]
- Litecoin [The Silver to Bitcoin’s Gold and which is expected to do Bitcoin’s heavy lifting]
Technical Debt
Back to Technical Debt. Technical debt is a term used in computer science to signify the inability of current programmers to fix or improve on the code/project due to the method or execution strategy of the old/retired programmers.
In simple terms, a blockchain that cannot work with older versions of itself is said to have Technical Debt it will not be surprising that the amount of technical debt that Bitcoin has right now has been slowly accumulating. It is actually impossible for past programmers to forsee ALL future scenarios. And they must do so in order to ensure that a project has ZERO technical debt.
In Cryptoeconomics, technical debt carries the same weight as per actual financial debt. Both financial and technical debt are:
1) Intertemporal [Across time]
- Both technical debt and financial debt can be owed in the past</em?>, be owed now, and continue to be owed in the future.
2) Subject to Systematic Risk
- Both technical debt and financial debt are subject to the macroeconomic conditions and scenarios of the real economy. Crypto economic conditions are not too different from the real economy. Although markets are more volatile and regulations are few and far between [due to cryptographic nature of blockchains] they are still subject to the same economic laws.
Differences:
1) Financial Debt can be forgiven or resold to third parties but Technical Debt cannot
- Developers MUST stick with the code that was implemented in the past, and work around it. Bankers and accountants, however, can write off bad debts.
- In terms of Bitcoin economics, one cannot simply slice the history of Bitcoin off. The blockchain is an inviolable ledger that must be accounted for at all times
- In terms of Ethereum economics or Blockchain economics, it is slightly more flexible.
2) Financial Debt is flexible but Technical Debt is inflexible
- Financial debt can be re-structured as they are owed to an individual or an entity, but technical debt is simply owed to the past instead of any one individual or entity.
- Although participants of cryptocurrencies can form corporations to limit liability. Unlike the real economy, they themselves are not as important. In Institutional Cryptoeconomics/Industrial economics. It was important that there exists the separation of principal and agent. But within the cryptocurrency framework and global environment. There is no true separation, in fact, it usually follows that the principal is the agent. And although they might be limited in liability in the eyes of the law. They remain fully responsible for their actions on the blockchain.
The issue of technical debt cannot be resolved immediately, but it is important for us to examine and point out the implications of such an existing debt. Depending on the view that an economist has, technical debt can either be incorporated into the picture or simply modeled as an externality. Either way, it is important to be aware of such an intertemporal issue and account for it in crypto macroeconomics and crypto microeconomic evaluations.