"Version Control on the Blockchain"
Don’t worry I laughed too. The joke is that you can put anything on a blockchain and make money. Version control in terms of computer science, generally speaking, is the maintenance of code by recording all changes and allowing developers to annotate their changes to remember why they made them. Furthermore, if two developers were working on the same project independently, they could merge their codes to include changes from both versions/branches. The most popular version control is git.
Sorry back to the joke. So now that you know version control, it seems silly to add this to blockchain since the nature of a blockchain is about maintaining the whole chain and all of its changes, so in a sense there is already version control. What’s interesting is that git has a very similar architecture to a blockchain, yet it is has grown immensely outside of that world (see this blogpost for more info: http://pnijjar.freeshell.org/2019/git-blockchain/). One of the most important differences is that branches/forks are highly encouraged in the world of git. For obvious reasons, forks in a blockchain are bad. But what about DApps built on a blockchain?
How is the data for DApps built on a blockchain (like Augur on Ethereum) stored? Well it depends on the blockchain. If external (meaning the data is not intertwined with blocks as a package when you want Augur), then to preserve the nature of a blockchain (i.e. no forking), then perhaps there should be version control for different versions of the DApp without a central authority (git is owned by Microsoft). If it was internal, forking of DApps would directly interfere.
Andreas Antonopolous stated that one of the most interesting byproducts of the blockchain would be the sharing of ideas and building off of them as much as we like without permission. If you wanted to add something to Paypal, you don’t have to build a whole online financial banking system to test it, you could just add your extension to an existing one on the blockchain (paraphrased from Andreas’ speech). As a result, it should be easy to fork DApps without impeding the blockchain.
Additionally, if a platform like this already exists that basically creates another mini “blockchain” per DApp, then I am sorry, but I do think it is worth mentioning that Git should be replaced. In China, mass protests have been silenced on social media, thus they transferred to an unorthodox place- Github. However, in 2013 China’s government shut it down briefly and then again in 2015 when Unicom, a Chinese Telecom Agency, launched a DDoS attack and made certain repositories inaccessible. China currently allows Github, but for how much longer? If a new version control existed as a pure blockchain (open, public, neutral, borderless, and censorship resistant; see this amazing talk for more context on these terms: https://www.youtube.com/watch?v=qlAhXo-d-64), then restrictions and attacks would be minimized. Cutting or censoring any part of Github, poses serious issues for developers. Hence, I propose GitBlock.
Though I skipped over an interesting conundrum hinted above by my quotes around mini “blockchain”. It can’t be a traditional blockchain because it needs to allow forking. In a sense, multiple blocks could be added at once but to their respective branches. It would be like git but with the integration of pseudonymity, transparency, and smart contracts.
Anyways, I am still playing around with this idea because I don’t have all the details yet and it is very code intensive so I don’t really address too many ethical issues as some other proposals I have read. I am open to feedback and I will think of a couple back-ups.