Let’s start with a little caveat: web3 is many things to many different people, exactly like web 2.0 was. Web 2.0 is also very different now from what it was meant to be and web3 could follow down a similar path. What’s interesting though, is that it could also end-up very good!
What should you read this?
I have been exploring the Open Web for 15+ years at this point. I built a whole company around RSS feeds which, I believe are still one of the core building blocks of said Open Web. I wrote a W3C spec called Websub whose purpose is to standardize how webhooks could work accross the web so that machines could subscribe to each other without the need for API keys.
One thing became slowly and yet painfuly obvious to me over the year: the open web is weak and getting weaker. I blame its business model, mostly centered about attention (ads): it is so much easier to monetize 1 billion eye balls when they are on the same platform than when they are on many small websites (what RSS enables). This fact alone means that Facebook, Google, and a few other tech giants have infinitely deeper pockets than all of the well-intended indie-web developers in the world.
3 years ago, I left Medium after having sold Superfeedr to them to create the Unlock Protocol which aims at building a way for creators, brands, and communities, to deploy their own memberships, in a fully permissionless way (no API key, no 3rd party host/domain that needs to exist, no terms of service, or no approval required) in order to monetize it.
As I embarked on this journey, I found what the web3 could be and I’ll try to explain by answering the questions asked by Dan Abramov.
1. what is bitcoin’s plan to solve its energy consumption problem? is that on the radar of the team/community? is that considered a non-problem / “worth it”? asking specifically about bitcoin
— Dan (@dan_abramov) December 23, 2021
This question begs a clarification : “bitcoin” is not anyone in particular, or even a specific organization that we can point to. Bitcoin does not have plans for anything. However, some folks in the bitcoin community have plans to reduce the energy consomption, but none of these folks have the ability to change the consensus mechanism (proof of work) without the consensus from the majority of nodes. It is made as a network of nodes who are forced to collaborate, and it looks like, at least for now, the vast majority of network participants are not actively pushing for a change on that front.
What some network participants are doing though, is use renawable energies. Their rational is generally that it is cheaper for them to mine using renewable energy than it is for other node participants who use other forms of energy.
2. why is there a lot of skepticism around ethereum’s move to PoS? is it because it’s been continually pushed back, or is there skepticism that it will work at all? both?
— Dan (@dan_abramov) December 23, 2021
First, Ethereum is already using proof-of-stake, and has been for a bit over a year now. It is in fact using both proof-of-stake and proof-of-work at the same time for a little while as a way to transition smoothly. On top of that, some other chains, like Tezos have been running proof-of-stake based consensus for years with no major hiccups (at least nothing that would make the Ethereum community reconsider). My belief is that the Ethereum community, who is the one that has the most to lose if that fails, is pretty optimistic about Proof of Stake. A lot of the skepticism comes from communities who are generally hostile to Ethereum.
3. would ethereum’s energy usage still be concerning after move to PoS? why or why not?
— Dan (@dan_abramov) December 23, 2021
No, it would not ne concerning. The thing that consumes a lot of energy in proof of work is the need to run cryptopgraphic hashing algorithms constantly to “find” a hash that starts with a large number of zeros. With proof of stake this does not need to happen anymore. As such, it is expected than 99.95% of the energy consumption will be gone, and, more importantly that there is no incentive anymore to consume more.
4. give me an example of an interesting smart contract that already exists today, and explain how it’s used
— Dan (@dan_abramov) December 23, 2021
“Interesting” is obviously highly personal and subjective but I’ll try with a popular one: Uniswap provides a way for anyone in the ecosystem to “swap” tokens between a currency an another without requiring 3rd party interventions and without the need for an “order book”. So if you wanted to swap GBP for EUR.
Fun fact: one of the most popular apps on iOS in 2008 was iFart. Blockchains are new “kind” of computing: one that is meant to be run “collectively”. Smart contracts are only apps on these kinds of new computers.
5. give me an interesting example of a smart contract that doesn’t exist today but that could be built in the future and represents the longer-term vision
— Dan (@dan_abramov) December 23, 2021
That’s even more subjective! What if there was a contract that could be used as a way for people to borrow more than what they have for example?
6. why do people get .eth names? doesn’t that expose their balance and transaction history to everyone? and even if they use a private wallet, isn’t it easy to trace where they move the money to? or is being open about your balance a cultural thing?
— Dan (@dan_abramov) December 23, 2021
We’re finally entering the web3 world. There are 2 ways to think about a physical wallet: either as a “money” holder, or as an “id card” holder: usually they have both. I think this “mixed-use” is a skeumorphim that we’re barely starting to move away from. Of course, ENS (the .eth
names) is about just the identity part and yes it makes tracking funds easy… but nothing says that your wallet where you have the ENS names need to hold the funds.
7. how do you patch a buggy smart contract that’s already in the wild? do you just proxy to the latest deployed version? do SDKs automate this or do you write this code yourself?
— Dan (@dan_abramov) December 23, 2021
If the contract is not upgradable: you don’t. It is in some way the “contract” part: it contains its own code for upgrades, or not. No external force can come and change it arbitrarily if it was not explicitly and visibly set as “upgradable” previously. OpenZeppelin is one of the most talented teams in the ecosystem and they designed the patterns for upgradability. When a contract is upgradable, the chain shows who can upgrade it, and how it can be upgraded.
8. what is the state of language evolution for writing smart contracts? are the risks associated with using a bespoke high-level language that hasn’t had the scrutiny of a general-purpose one? how do you know compiler/runtime bugs won’t screw you over?
— Dan (@dan_abramov) December 23, 2021
At this point, in the Ethereum ecosystem, Solidity is the most widely used language but others do exist there (Vyper, Serpent…). Other ecosystems use many different languages from Rust to Javascript! I don’t know enough about these to provide the best answer but my mental model is that of a VM where all state changes are “atomic” by transaction and I would expect “blocks” (new state) to not be valid when a transaction fails, for any reason.
9. what is an example web3 app that you actually want to use for non-ideological reasons? tell me what makes it special
— Dan (@dan_abramov) December 23, 2021
This site! I am a blogger. I want to write content on my own site and be paid for it (this post is actually the only one that’s not for members only, right now). It would be impossible to do that without Ethereum and that is what makes it special. Another thing that’s special about it is that the membership status exists completely outside of any website or application. Even if I shut down this blog, my members would still have their members cards in their wallets and be able to use to join my Spkz for example or be featured in my video calls.
10. aside from the constitution thing, what is an example of a DAO that is doing something interesting with its DAO-ness? (and is not a glorified discord server)
— Dan (@dan_abramov) December 23, 2021
I actually don’t think the Constitution thing is a “real” DAO, but that’s an aside. The truth is, for now, DAOs are still pretty theoretical.
At Unlock we shipped one. Here is the core idea: our protocol for memberships, like any protocol, needs to be governed, as it will need to evolve and be upgraded so support the future. We don’t want this to be a unilateral upgrade or process: I want every member in the community to be able to contribute their opinion and their code so that if the majority of other adopters of the protocol agree to it (and even if I disagree to it), it becomes the new normal. For this, we have our own governance token (think of it like airline miles): everytime someone uses the protocol, some new tokens are minted and these tokens are then so many votes on the “DAO”.
Let’s maybe take a theoretical example: React is open source software, but there is still a core team of contributor who decide of its future unilatteraly. Now imagine the React code base inluded a mechanism for every developer who uses it to “earn” voting rights and that upgrades could only happen if a majority of these voting rights approved it. That would be a DAO and it would e interesting IMO (but maybe not a great idea?).
I actually think that DAOs are the future of open source.
11. how do immutable blockchains protect against the transaction records being used to host e.g. child porn, and special clients being built to access and spread it? does the transaction size limit prevent sharing files? is this a consideration in the protocol design?
— Dan (@dan_abramov) December 23, 2021
That’s a really tough question and the anwser is: they can’t. Practically speaking you can’t really store files in a blockchain, but I think the underlying question remains valid: how can we prevent stuff that’s universally recognized as bad. I want to believe that, like cameras what matters in the end is the people who are using the technology and what they want to do with it. We have already seen communities move away from nefarious technologies because they did not want to be associated with it.
It’s also an important departure from web2 where too often governmemts have delegated the role of content filtering, moderation and censorship. I believe this is a dangerous model where corporations are able to aquire and immense power with little to no accountability.
Blockchains are inherently collaboration tools: they can make a group of people more efficient, more democractic, more open… but they can’t change individuals in the group.
12. who controls ethereum? i.e. who needs to have a consensus to designate a fork as the “legitimate” ETH chain?
— Dan (@dan_abramov) December 23, 2021
Nobody. I mean it: nobody can arbitrarily decide of anything (exactly like Bitcoin above). However, exactly like any group of people, some folks are collectively deciding on what they each want to work on with the expectation, that if everyone agrees to what they’re proposing, a majority of nodes will embrace the change they submitted by upgrading the software they use.
13. i’ve read a story that goes like “i connected my wallet to a smart contract and it quietly syphoned all my savings a few days later after the transaction”. is that possible? if yes, whose fault is this? what is the vision for how people are supposed to be protected from this?
— Dan (@dan_abramov) December 23, 2021
I am not sure this story is accurate : a contract cannot do things that it was not explicitly allowed to do by the user who’s impacted. Now some malicious contracts do exist, and the weak point is actually often time the front-end that the user “blindly” trusts when it has been compromised or is a fishing site. Who’s to blame? the attacker and only them. An attacker could always choose to not steal someone’s funds and/or to disclose issues.
Now, that does not mean we don’t need better wallets that are empowering the users to make safe transactions. Both Ledger and MetaMask announced new features on that front in December alone.
14. when people buy hardware wallets to store private keys, they have to set up a seed phrase. if i understand correctly, seed phrase lets your recover if you lose physical wallet. does this mean private key is generated deterministically? if yes, what is hardware good for?
— Dan (@dan_abramov) December 23, 2021
Yes the seed phrase is a deterministic generator for private keys. I am not sure I understand the second part of the quesion?
15. has mining actually stopped in china after the government intervention? what was the impact?
— Dan (@dan_abramov) December 23, 2021
No. Some facilities have been shutdown but it is likely that others have openeded as well. In practice, it is quite hard to idenity “miners” when they only have one or two mining devices.
16. what are the biggest realistic legislation risks to crypto?
— Dan (@dan_abramov) December 23, 2021
I am not a lawyer, so I don’t know. It is possible that some states will try to keep control of their currencies and will want to make transacting digital versions of them illegal? It is possible that some tokens could be classified as securities and hence be prevented from being purchased by people who are not already wealthy… etc.
What’s interesting to realize though is that governments are normally working for the people… A lot of crypto projects could actually be considered to be public goods in the same way that some transit systemts, or public infrastructures. In these it is also very likely that governments actually embrace them as such.
17. do i understand correctly that today with ethereum you have to pay £20 just to transfer money to someone
— Dan (@dan_abramov) December 23, 2021
Yes. I don’t know that it’s £20, but the ballpark seems right. It is both great and bad news. It’s bad news because it means that Ethereum’s mainnet is barely usable. It’s good news, because it means that it’s actually used “at capacity”. Blockchains are like single threaded computers with an auction mechamism for code to be executed. So if the fees are high, it means that everyone else is willing to bid just below this price to get their transactions executed.
18. what exactly is L1, L2
— Dan (@dan_abramov) December 23, 2021
An L1 is considered to be the “lowest” level of execution. As some chains like Ethereum of Bitcoin are reaching high usage, many people have started to think of ways to scale these blockchains by operating applications are a “higher” level of execution, often called L2. These days, a lot of people talk about rollups. The core idea of these L3 is that if I send you 5 and you send me 3 in a short period of time, we can insead combine these 2 transactions in one where I just send you 2. Of course, you and I can both “verify” that this final transaction is the result of the 2 other ones and none of us could resubmit the previous ones.
That’s a wrap!
One critically important thing to realize is that, like most things in life, the best way to form an opinion is to actually use it. There is no need to spend real money: some test networks do exists and some chains are actually pretty cheap. I am also more than happy to guide anyone who’s willing to explore!
Another point that I want to make is that web2 turned out to be disappointing because I think of lot of engineers, designers, product managers and entrepreneurs have not pushed themselves hard enough to make the web a better place. Web3 could be no different if we decided to abandon our ambitions and hopes for a better web too fast…