Learn You Some Crypto for Good
TL;DR. We live at a time when states and companies tend to get more and more powerful at the expense of individual rights, when government and corporate surveillance becomes the status quo, when people always have to sacrifice privacy for convenience, when Keynesian school of economics seems to be kicking the can down the road all the time. Cryptocurrency and its related technologies can potentially offer alternatives that make the world a more balanced place.
In the past few days, the market has crashed hard on basically everything, including Bitcoin. Financial losses naturally come with negative emotions and usually clueless justifications. Is coronavirus really the culprit? Is it the oil war? Or are they just distractions for something more fundamental? Perhaps most of us will never know since we don’t pocess the higher dimensional insights required to decode it. Surprisingly, I wasn’t that much affected emotionally by the price this time like the roller coaster feeling I got from 2017 to 2018. Perhaps it has to do with the fact that my growing appreciation to the crypto space (primarily Bitcoin) over the years makes it much more than just a financial investment. As someone works in the IT space, it not only fascinates me on the technical side, but also serves as a forcing function for me to learn a bit more about other disciplines such as politics, economics, finance and philosophy, etc. In retrospect, I feel this learning experience is very rewarding and a journey well worth taking. In this post, I will try to argue about why learning some crypto during this extraordinary times is important from three angles: Importance of Alternatives, Self Sovereignty and Facinating Technologies.
Importance of Alternatives
People have vastly different perspectives when it comes to crypto space. For some it is yet another vechicle for financial speculations. For others, it is an emerging financial infrastructure that will ultimately disrupt and replace the dysfunctional legacy one. Many view it as a promising tool that can help disintermediate third parties and improve efficiency for a range of economic activities. Others use it as an asymmetric weapon to protect their privacy in the world of massive corporate and government surveillance, or even a path towards anarchism.
It is fair to say that for many dynamic and complex issues, no solution will be the most optimal one in all scenarios all the time (aka a “silver bullet”). This can be applied to many things such as system designs, business models, environmental issues or even the forms of governments. One mental model is that complex issues most likely have structures that’re comprised of sub-components interacting with each other in nuanced and subtle ways. Given that these structures might be constantly evolving as well, solving them fundamentally requires constantly responding with different compromises and tradeoffs.
However, at a particular point in time it might seem that a single solution is dorminating the entire solution space of a problem. One example is the business model of most of the internet companies today. By owning users’ identity and harvesting users’ data through “free” services, those companies are able to massively profit from that. With the current state of mainstream technologies this seems to be inevitable since it is incentive compatible for most of the participants in the system. Majority of the users value convenience and immediate benefits over the low perceived risk that one day their privacy will be breached. Internet companies will always be incentivized to accumulate more user data since it could generate more profit for them. What we end up with are companies that have amassed so much power that they need to remind themselves “don’t be evil” and most users are effectively left with little to no alternatives.
We are living in the world of capitalism where wealth and power has the tendency to get more and more concentrated, often at the expense of the individual rights. This trend is certainly not sustainable. What blockchain technologies bring on to the table, the decentralization of trust, could potentially offer valuable counterbalance to that. Cryptocurrencies such as Bitcoin offer alternatives to Fiat currencies. DAOs can potentially provide other ways to organize economic activities. DeFi shows the possibility of building more inclusive and efficient alternative financial systems. Web3 promises a competing ownership and incentive structure that could hopefully fix some of the privacy and data concentration issues of the existing status quo. For many people, maybe the idea of anarchism is never about actually realizing it but always about reminding us that there exists alternatives. If we shoot for the star, we might land on the moon.
Self sovereignty is the idea that people should have ownership and control over their own bodies, time, properties and responsibilities. It is at the core of many political philosophies that underlines individualism. Self sovereignty is important since it is essential to personal freedom, self determination and liberty. On the other hand, the forming of societies or any other artificial combinations means that individuals need to surrender part of their self sovereignty to the collective goal of the group, which in many case are actually beneficial both personally and as a whole. After all, humans are by nature incentive driven social animals that try to survive as a race. There are many literatures about the relationship between individualism and collectivism, but it is fair to say that it’s a spectrum rather than binary.
Even though the absolute individualism is perhaps neither desirable nor possible, it has become much more difficult to exercise one’s self soverignty as governments and corporations are making great strides to capture it for their own benefits. Nowadays, we need trust and permissions to use our own identity, our own data and to transact with our own money. Consumerism and the culture of debt also lure people into sacrificing their long term freedom for instant gratification, therefore perpetuating the deprivation of self sovereignty and social stratification.
As digital bearer asset, Bitcoin offers a technology and network that enables and encourages self sovereignty of money. Andreas Antonopoulos famously coined the term “not your keys, not your coins”. Holding your own private keys is the first step towards self-sovereignty in Bitcoin since it cryptographically ensures your property rights to your coin. This of course comes with a lot of responsibilities as well since if the key is lost, your coin will be lost forever. Running a full node is the next step. It not only contributes to the overall consensus of the network, but also gives you the ultimate self-sovereignty within the network since you don’t need to trust any one else when it comes to what happened to your coins or ask for permission as to what will happen to your coins. Even though Bitcoin and other cryptocurrencies were painted as magical internet money that’s used by criminals to buy drugs on the darknet, or a ponzi scheme that will burst at any point in time, what really happened in the past 10 years is that it managed to create a global wealth pool of hundreds of billions of dollars that are borderless and censorship resistent, which helps dissidents in rogue states take a piece of their self sovereignty back and be more likely to fight against the corruption and tyranny knowing that they can take their wealth and move somewhere else by just remembering a bunch of English words.
Bitcoin also encourages a culture that promotes low time preference and delayed gratification. As a sound money and store of value, the long term price of bitcoin is generally expected to rise over time against the constantly inflating fiat currencies despite of the short term volatilities. When money actually keeps or increases in value, it encourages saving and re-investment instead of debt and immediate spending. This shift in mindset might be the key to get us out of the current situation where the economy is powered by over-consumption, debt with artificially low interest rate and quantitive easing.
Self sovereign identity and the processing of encrypted data also attract a lot of research and development to combat the encroachment of privacy. I do think a lot more work needs to be done in this area to really change the consumer behavior, not only in terms of technology but also inventive engineering, to really put the sovereignty of identity and personal data back to the users.
Blockchain is fascinating from the technical perspective. It was invented to solve the double spend problem in a decentralized setting without requiring a trusted third party. It achieves that with the interplay of two components: First, a modification resistent data structure to store all the transactions. It turns out that an efficient implementation is to organize transactions into a sequence of blocks, each of which contains a cryptographic hash of the previous one, resulting a chain of blocks, hence the name blockchain. Second, a method to reach consensus among a set of networked computers of certain topology as to who should have the right to append the next block onto the blockchain, called a consensus algorithm.
A key contribution of Bitcoin as the first blockchain is that an incentive structure is built right into the consensus algorithm through the use of proof of work, which coordinates the economic activities in the Bitcoin ecosystem of miners, merchants, engineers, exchanges, users, etc. The result is the world’s first dencentralized autonomous organization. This is a significant milestone in computer engineering. It is the first time engineers can program trust and incentives without relying on any centralized entity (even for the “money”), which basically gives engineers the power of genesis creation in whatever “world” they want to create. Consensus algorithm is an active area of research in the crypto space, with a lot of thought provoking debates and exploration. The most notable alternative to proof of work to achieve byzantine fault tolerance is various forms of proof of stake.
There many other difficult technical problems in the crypto space. One of them is blockchain scalability, which is hard to achieve without also sacrificing its security and decentralization properties (see scalability trilemmas). Ethereum’s response to that seems to be leveraging clever constructions of proof of stake and sharding, while the answer from the Bitcoin community at the moment is mostly second layer solutions such as Lightning Network. In recent years, solutions based on zero-knowledge proof such as ZK-Rollups were also proposed as a scalability solution. In general, since the value proposition of a blockchain is security and decentralization, sacrificing too much of these properties is generally not desirable (e.g. blocksize debate).
Privacy is another important area of research & development in the space. Satoshi Nakamoto famously said in the Bitcoin white paper that The only way to confirm the absence of a transaction is to be aware of all transactions. There is always a tension between making everything publicly verifiable and the need for obfuscation. Bitcoin does not have good privacy built into the protocol layer, many technologies have been explored to improve that ever since its inception. Other blockchains try to introduce certain privacy features into the protocol layer. Monero, for example, leverages ring signatures to obfuscate the transaction graph and confidential transaction to hide transaction amount. Zcash uses zk-SNARKs to make all of its shielded transactions completely private. Both of them sacrifice scalability to a certain degree and have more cryptographic assumptions than Bitcoin. Mimblewimble also uses confidential transactions to hide the transaction amount, but through a mechanism called cut-through, it keeps the blockchain very compact thus achieves privacy and scalability at the same time (scalability is more nuanced due to the ever growing transaction kernel). Zero knowledge proofs is another approach that can potentially improve both the privacy and scalability. Zcash focuses primarily on privacy, but projects like Coda and zkSync are developed with both privacy and scalability in mind.
Programmability is also an area of contention in the crypto space. Bitcoin’s scripting system allows the creation of smart contract and is purposefully not turing complete to avoid the halting problem. It is still fairly powerful, as demonstrated by the development of lightning network in the past few years. This design choice is very much in line with the philosophy where blockchain is not for computation but for verification. Even though Bitcoin script is intentionally kept simple, there are still many improvements making their way into the language, such as Schnorr signature, Taproot and Graftroot, etc. Things like Miniscript are also invented to making writing Bitcoin script easier. On the other hand, Ethereum is the first among many blockchains to offer a turing complete programming language. The idea is to enable developers to easily express and execute any programs across all the nodes in the network to make them “unstoppable”. This expressiveness does come with many tradeoffs: A fee model now needs to be developed for computational resources on the platform. The blockchain usually gets a lot bigger as a general purpose computing platform, affecting its scalability and decentralization properties. A “user friendly” turing complete language potentially opens up much larger attack surface and is much easier to be abused. Neverthelss, these dApps platforms have certainly attracted a lot of the developer mindshare and we start to see applications especially in the DeFi space start to gain momentum. Zero knowledge proof is also a promising direction when it comes to programmability since computation can now be done offchain, with a proof of its correctness submitted onchain for verification. This might point to a future where blockchain becomes a zero knowledge proof verification engine and the program can be written in any language that generates the proofs.
Crypto also offers a set of unique challenges when it comes to software engineering. Deploying software updates in a decentralized p2p network is very difficult, especially when consensus over a shared state needs to be maintained by different versions of the software at the same time (see Forkology). When money is quite literally on the line and the cost of introducing and fixing bugs could be extremely high, move fast and break things is definitely not an option. In fact, the development of systems such as Bitcoin should go through the same level of scrutiny and testing as aerospace software and its deployment should be analogous to shipping hardware. Formal verification, a technique that hasn’t seen much adoption in many software projects due to its formidable cost, becomes much more economically feasible in crypto space considering the amount of value at stake. MakerDao, for example, formally verified all the core contracts in its MCD system.
This is just a tip of an iceberg. We have also seen the basic research of cryptography, which is one of the building blocks of blockchain, made a lot of progress in the past 10 years because of the crypto industry, especially in areas such as Zero Knowledge Proofs, Multi-party computation, Verifiable Delay Functions and Homomorphic encryption, etc. Other difficult challenges include the oracle problem, the design of governance models and more. Crypto is inherently multi-disciplinary, which means that even a seemingly pure technical change might butterfly effect its way into causing significant consequences, which makes the problem extra interesting and challenging.
In summary, learning crypto to a certain degree changes the way that I experience and interact with the world. I feel it is an experiment that could be leveraged to potentially do good for the society by providing a balancing force to a lot of the social economical problems that we have right now.