Exploring blockchain and smart contracts with Ethereum dev bootcamp, Blockchain@Berkeley
Background
A few months ago, Mayank convinced me to get some Ether (Ethereum cryptocurrency) because it was going to go on a bull run, thanks to high-profile companies backing Ethereum by joining the Ethereum Enterprise Alliance (EEA). So I did. And that event did happen – including Microsoft, Intel, MasterCard, Cisco, JP Morgan and the State of Andhra Pradesh, and yes, Ethereum went through a bull run (to $336 per ETH, as of this writing).
That’s when I started going down the rabbit hole of the cryptocurrency space 😁
What is blockchain, cryptocurrency and Ethereum?
The way I understand it is that cryptocurrency is digital money. So why is it different from PayPal or Paytm? Because this is not a national currency like rupees or dollars, this is a currency “for the people, by the people, of the people”. No government has sanctioned it or vouches for it. Sounds nuts, right?
But that’s what so exciting. Think of how people tinkering with technology can start a transformation like Steve Wozniak designing the Mac or Tim Berners-Lee creating the world wide web. People are now tinkering with creating a virtual currency that nobody can control, except by the participants agreeing to make changes, which makes it democratic and hence chaotic at the same time.
A good introduction to blockchain is this video by Gavin Wood, one of the cofounders of Ethereum:
For a visual introduction to the parts of a cryptocurrency, see this video by 3Blue1Brown:
To know what is Ethereum, see WTF is Ethereum?
Blockchain @ Berkeley
So all this got me curious about things at an implementation level (yep, it’s an ongoing theme with me). So, again, via Twitter, when I read that Blockchain @ Berkeley was hosting an Ethereum dev bootcamp, I signed up!
Note that I could have probably learned the same stuff online such as going through the Blockchain @ Berkeley’s Decal videos, etc. I just preferred a 2-day immersion, so I went to the in-person course.
The first day was an introduction and tons of questions by the audience. Everything from architecture to economics and incentives to security. Then we got an introduction to Solidity language and used the Truffle framework to practice writing a simplistic ecommerce shop smart contract.
It is scary that Ethereum-based software, i.e. software that is also money and a financial system is being built on Javascript. No wonder our instructor said “the worst language you’ll ever use”. If you thought Javascript ecosystem was wild, Ethereum gets even wilder. There is some hope in the form of best practices codified as a library and other such wonders of open source code communities.
Also, Ethereum founders are shifting focus from the solidity language which is javascript-y to a new language called viper (that also runs on the Ethereum Virtual Machine) which is python-y. Maybe there’s a moral in there somewhere…
The second day was an overview of oracles, web3.js, metamask, security (how not to ICO), authentication. There was so much to absorb here.
Special thanks to the instructors Ali Mousa and Collin Chin for a useful course. In fact, they had just finished a smart contract project on an internal supply-chain system for Airbus, and had plenty of practical advice to offer.
Dangers
There are many dangers lurking such as cryptos being disinflationary, so be careful with investing in ICOs.
What does it all mean
The idealist in me really wonders if all of this is really happening. People are actually working to decentralize the web and on top of that, raising more money democratically than traditional venture capital via Initial Coin Offerings (ICOs). Even creating new kinds of venture enablers. But I do wonder about actual user adoption though. I guess this is a “build it and they will come” excitement.
There’s still a long way to go to make the development tools and the ecosystem better and safer though. Every podcast I’ve heard describes the current state as the “dialup days of decentralized web (web3)”.
Even then, all the nerds are excited. Why? Because we are so used to accessing databases like Facebook or Google via the Internet, this is the first time that we have a database built as a protocol on top of the Internet, and hence it is decentralized. And this database can act as money and a financial system, which means money can be democratized which has never happened before. There’s a reason why kings and governments are the only ones who can print money – because it means power.
Now take decentralized database and decentralized money and put decentralized smart contracts on top of it (via Ethereum) and you can get two parties to do business with each other without the need for trusted third-parties, like banks! Smart contracts will destroy the current idea of a legal system, the current idea of a law firm and of a lawyer. Take it one step further and you can run entire companies on Ethereum – everything from cap table, governance, fundraising, payroll, accounting to bylaws and running entire communities. Maybe someday we can replace “don’t be evil” with “can’t be evil”. Consider me mind-blown. The proof in the pudding is that right now you can work with a freelancer via an Ethereum-based platform.
In short, the blockchain will replace networks with markets and the arc of the internet is bending back towards decentralization.