Skip to content

Instantly share code, notes, and snippets.

@learner-long-life
Last active January 14, 2022 21:49
Show Gist options
  • Save learner-long-life/ea796ad989c351a9d2df3f455d5334e3 to your computer and use it in GitHub Desktop.
Save learner-long-life/ea796ad989c351a9d2df3f455d5334e3 to your computer and use it in GitHub Desktop.
A response to Moxie's web3 critique
In response to https://moxie.org/2022/01/07/web3-first-impressions.html
A well-stated critique is worth its weight in gold. I'm a fan of the work on encrypted text messenging by
anyone named Moxie Marlinspike, and acknowledge that it reflects a particular ethos, exhibited by Signal,
a project that Moxie co-founded with Brian Acton. This ethos is strongly opinionated on behalf of users,
makes the best choice for most people in a large variety of cryptographic
protocols and their parameters, and offers it in a tightly integrated desktop/mobile app and centralized
server infrastructure.
Marlinspike raises a valid gap between the decentralized ethos of web3, and a few centralized providers of its data.
I offer this disagreement on his main points:
"Most people don't want to run their own server": (my paraphrase) "most" does not mean "all". Most people don't want to edit
Wikipedia either, and yet we have a thriving knowledgebase which is the best encyclopedia by most measures, in the world.
Speaking as someone who runs my own email server, and
of the 10k's validator nodes currently running or staking across all blockchains, I am glad we have the choice to do so,
and we have a part to play, however invisible, in the open ecosystem of ideas and technologies that is the internet.
Moreover, I'm glad the technology is by default interoperable and server-agnostic. More on that later.
"The vast majority of web3 (he assumes the EVM ecosystem here) calls are made through two centralized providers." No one can
pull out his old man cane and wag it thusly faster than me. In 2016, I remember when there was no public Ethereum node except
Augur offering theirs for free to the develop community. Someone thought, "this is ridiculously central, we're web3,
let's get Consensys to plow some money and make it a proper service" so Infura started. Then around 2018 other people
thought, "this is still ridiculously central, we're web3, let's crowdfund a startup to make general queries" and so Subgraph
and Alchemy were started. We do need more nodes, full archival nodes, light nodes, and other kinds of nodes that haven't been
invented yet, to achieve the full promise of data being universally accessible and mashupable independently of a particular
client. Some would say this is the spirit of state synchronization protocols like Braid [1].
More people are spinning up Ethereum nodes all the time, there are between 2,000 and 5,000 currently, not all of them
public (able to serve API calls from third-party developers and clients), but in theory capable of serving the community
of clients for which they were designed [3]. This is a security consideration, not just one limited by the web3 movement
and its motives. There is a distribution to turn your Raspberry Pi into an Ethereum
node by flashing a particular image. [2] Can we do a better job as Ethereum developers to direct our users clients
to different API endpoints, or even better, take the majority vote of all of them? Of course. There is only thing
I respect more than this eloquent critique, in which Moxie clearly spends time writing an NFT dapp to better
understand the web3 community, is a critique which includes a proposed or implemented solution. And that more
respected thing, is to do what Augur, the Ethereum Foundation, Consensys, and the web3 community did and is doing:
continue to spin up nodes, and make them easily accessible to the public.
However, a beautifully integrated web3 service is unlikely to come from Moxie given the context of his considerable
previous work and the style of his public service.
Signal itself famously discourages people from decentralizing their own servers, and delivers a mostly great security
experience for the general public. Such a tight integration does save people time and labor, and is an approach that
Steve Jobs himself favored with Apple products. If Jobs were to guest lecture in Moxie's class, he might say,
"Signal users are busy people. They don't have time to understand PGP and keyservers. We let them get back to what
they are good at doing."
At the core of Moxie's disagreement with web3 is this tension between the current state of this young movement
and its stated ideals, as well as possibly the unsustainable amount of popular attention and financial investment that
cryptocurrencies (independently of web3) are receiving. My interpretation of this tension are the questions,
"who is a cryptographer?", "who deserves to use cryptography?", and "what should we be using it for?"
Most importantly, following Steve Jobs's wish for Apple users, what should we let people get back to doing, before web3?
I'll close by countering with a complementary tension.
If open protocols (let's use email) are run by a few, or only one, company, how should
users feel about their vulnerability to this company and its choices? Is our only option to help Gmail avoid being
a central point of failure, to grant Google even more data center real estate and trust them with even more of
our information? Open source licenses don't cover blocklists or relaying between
email servers, for example, the social and "in-flight" aspects of technological software, which often has a much
longer life in terms of maintenance than the software development process itself.
Who determines who is allowed to send mail? Does the IT staff of the thousands of universities
around the world deserve our support and admiration for continuing to run a few independent internet services,
the ones that haven't converted to the Google Business Suite yet? Or do they warrant criticism
for not accepting standard wisdom that Gmail *is* effectively email now, and instead refocusing their efforts elsewhere?
[1] https://github.com/invisible-college/braidjs
[2] https://ethereum.org/en/developers/tutorials/run-node-raspberry-pi/
[3] https://www.ethernodes.org
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment