I have to excuse myself for the inability to make a summary of this essay. This essay is long and I made it as short as I felt possible.
I Have Gambled and Lost
Some of you might have seen or participated in my poll:
The poll was also posted on Reddit.
The outcome was:
- 99/124 yes votes. I needed 200 yes votes
- $726.41. I needed $1500
All donations have been returned. I withdrew my participation.
Notice that 25 votes were against Pipeline, without giving any feedback as to why. This is a lot. I am inviting you all to tell me what I am doing wrong technically!
Why 200 Votes, Why 3 Days
Many of you have said that 3 days were not enough for the poll to be retweeted and seen by 200 people voting yes. Especially that Berlin Blockchain Week and Dappcon were happening. Or enough days for raising $1500 in a bear market.
I chose 200 votes because I consider it to be a minimum threshold of interest, at least for user-facing projects presenting at Dappcon. Other types of applications may need less.
I chose 34% ($1500) from the Devcon5 estimated travel costs as the minimum threshold, because this would have signaled real interest from the community. I was ready to pay for the rest from my own pocket if the community wanted Pipeline to be presented. Otherwise, I could have spent up to $4500 to attend a conference where not enough people would be interested in my projects. Some would say that the exposure given by Devcon would be worth such a sum. Maybe for a company that has funds, but not for an individual. And exposure is not guaranteed — especially for workshops, which may not even be live-streamed.
Why 3 days? 3 days should be enough for an interesting project to gather attention and to go somewhat viral. There was also a deadline on September 1st, for submitting workshop presentations. I wanted to leave enough time in case another workshop would be given my spot, especially considering the Berlin Blockchain Week & ETHBerlin events.
Why So Last Minute?
Some of you suggested that I should or should have applied for various other grants or sell NFTs (non-fungible tokens). I assume some of you also thought: why haven’t you prepared with multiple grant proposals earlier?
Another answer is: Where can we go to ask for funds for a project that wants to benefit Ethereum and not only a specific project? Our projects were created with the scope of enhancing interoperability between ecosystem projects. All of our efforts go into this direction. If the Ethereum community did not see value in them after all our demos and articles, it is highly unlikely that we would receive proper funding for the right reasons, even if we would spend our time applying left & right.
I have received sponsorship & donations offers after the poll has ended, to fund the Devcon trip. The poll results were clear: I did not deserve to go, therefore I could not accept. I withdrew my workshop immediately after the poll ended, to make this point.
Meditations on Why I am Here
I shortly mentioned in A Vision of a System Registry for The World Computer that Ethereum wanted to be The World Computer, back in 2016. That is when I first discovered Ethereum. The World Computer concept was what intrigued me because I saw it as a concept that fitted my ideal view of the world (a collaborative, machine-readable, open and transparent world) and it was in line with what I was working on at that time (open, machine-readable medical data).
What I Thought About the Ethereum Community
I viewed the Ethereum community as the closest community to the ideals that I consider important. Ideals that I presented in The Ethereum Unicorn.
I thought that the people who started Ethereum appreciated and wanted to preserve these principles:
- truth / transparency
- striving for perfection
- righteousness / meritocracy
- open collaboration
- freedom of expression
And I am especially talking about those who started building Ethereum from the ground up. Without knowing that it will have success, without being paid at that time. I saw in the Devcon0 videos people who were idealists.
How I Thought I Could Help
I initially started my Ethereum journey in 2017, helping a company to develop two payment channel systems, for almost two years. I enjoyed the work. I also implemented their smart contracts and oversaw E2E testing for their token sale. I can only hope that the projects I worked on will keep the promise made to their supporters — they have a good chance of doing that. Otherwise, I deeply apologize.
Pipeline was created in an attempt to interconnect and make the projects collaborate with each other. I have presented Pipeline multiple times, including at EthCC Paris. Until now, there was no project interested in having its contracts represented in our database, so people or other projects can use them independently. None of the people that knew about Pipeline truly wanted to collaborate. Some expressed interest. Some mentioned integrating Pipeline into their product but offered no real developer support. Some wanted to hire me, but there was no action from their part to collaborate after it was clear that the IP would not be theirs.
This is expected capitalist behavior, with which I would not disagree in the context of our current society. But Ethereum promised to be different.
Saying that you want to collaborate does not mean you really have the intent to collaborate. It is the actions that matter.
dType was started as a tool for collaborating on standardizing data types across projects, using the infrastructure that Ethereum provides. We created EIPs for dType, so our intention was clear: we do not view it as only our project, we view it as a project for the community and we wanted feedback. No one told us it was a bad idea. Some gave good feedback. Some attacked our incipient implementation without having an intention to collaborate and help us improve. From all the people that, for some reason liked or shared dType & Alias ideas, nobody had the intent to act and collaborate on ideas, implementation, adoption.
From the dType principles, we published the Master/Cache Shard idea — how shards can collaborate with one another and cache some of their most-used content on this Cache Shard, to avoid expensive inter-shard communication for public good data. Aside from initial good feedback on the idea, 52 likes & 13 retweets, nobody expressed any intent of collaboration. We proposed dType for a Devcon5 talk, for the Eth2 track. It got rejected. I can, therefore, understand that the idea has little value for the Ethereum core developers. I never got a technical explanation as to why.
I am trying to figure out the reasons why Pipeline & dType are not truly appreciated. Given a community that respects the above principles and therefore acts in the best interest of Ethereum, one would expect that novel ideas or effort would be noticed and appreciated through some form of support — collaboration on ideas & implementation, grants, exposure, etc.
If the Ethereum community’s interests are moral, then the fault lies with me and my projects. But I would have expected by now to receive proper technical feedback as to what the faults are — and in more than 1 year working on these projects, I never got it.
If the fault is mine, then the Ethereum community as a whole has a fault too: it is not capable of giving truthful, technically sound criticism.
If the fault is not entirely mine, then what are the principles that govern the Ethereum community as it stands today?
These are honest questions because my next steps depend on their answers. I cannot continue to contribute as a volunteer to a community that does not share my values. But if there are signs that at least part of the community adheres to the above principles and is active in its intent to achieve interoperability between projects and collaboration across standards, I will continue.
What Are the Signs of Change?
Open, Easily Retrievable Data
Smart contract sources are kept either in GitHub or in centralized hands. Block explorers take from the community and don’t publish their smart contracts data, though that data was intended for the public. But we all prefer to use them because it is easy.
There is no easy way to gather this data, so you can build on top of it. I started the ContractFinder project because I needed ABIs from deployed smart contracts, for Pipeline. And I open-sourced the data.
A common good project that solves this issue is EthPM. It was built as a tool to both open-source code and to aid in on-chain bytecode verification. There are only a few people working on it, with little support from other projects, which have not used it to publish their smart contracts data.
Transparency and Public Scrutiny
Thanks to GitHub and web2 tools (forums), there is transparency in development and EIP proposals. But not when it comes to administrative processes.
The process of adding new EIP editors is still unclear, with conflicting opinions and actions. No one wants to take the responsibility of writing such a process and at the same time, editors dismiss processes that are being proposed, without the intent of improving them, saying that a process is not needed, or would be too restrictive. In the meanwhile, things do not change and Draft EIPs pile up.
Hard forks do not engage the public enough. Yes, there is a limited number of people that truly understand the EVM and the problems that trigger EIP changes. And there are efforts from core developers to explain the effects of core EIP changes. But there is no standardized voting process to gauge the opinion of miners, developers, and users. You cannot have a well-formed opinion without this feedback. Stability, even for breaking changes can be reached through proper announcements and planning. The EF should support this process at least by announcing these voting events on all available channels.
The Ethereum Foundation’s processes are not transparent — from details about how it functions, who they employ, how much they pay their employees, to how it organizes Devcon, gives grants or handles the ethereum.org site.
How would a transparent process look like, for an organization that wants to change the world?
- have clear-cut principles, put under public scrutiny and feedback
- make the above information public
- have a feedback system
- make grant applications public, open to debate and voting
- make conference applications public, open to debate and voting (pre and post-conference)
- make it easy to contribute and expose your work at their events & conferences: tele/remote participation (not everybody has money for trips, not everybody wants to be tied in sponsorships, it is less costly), tracks with 5-minute pitches from projects that are good but did not make the cut
- use a meritocratic system, to protect from spam — at least start with ecosystem contributors
- have clear processes and deadlines, announced in advance, so you can plan
For Devcon, imagine being able to present your project or participate in important discussions from any place in the world.
Decentralization does not work without a meritocratic system in place — either public votes, effort & idea contribution points, even money contributions. But Ethereum has been building tools for these issues for years. Why is the EF not using them? How is the EF expecting that others will use them if they themselves don’t?
For the sake of being transparent:
- I applied for Devcon5 with a Pipeline workshop (accepted) and a dType + Master/Cache Shard presentation for the Eth 2.0 tract (rejected without feedback)
- I applied for an ECF grant for Pipeline in October 2018, where the only feedback was: we need to see interest in Pipeline from the community; no other technical feedback, no other offer
- Gitcoin wanted to discuss a grant for Pipeline in December 2018, but by that time we decided to work more on our vision and planning, to make sure we receive grants for the right reasons: our tech
- I applied for an EF grant to improve the existing ContractFinder in June 2019, entered the interview process on August 14th and was rejected without a clear technical reason, other than — you should collaborate with another project that is just starting now (I open-sourced our +4000 contract data; I think that is a good collaboration start)
What bothered me in the above interactions more than the refusal was the lack of clear feedback. If your project lacks technically, you want to know it. If you are going to be refused, it should not take 2.5 months to know it. And if the decision of awarding a grant is based on being supported and known by popular projects and persons inside the community, then why are you not having interviews directly with them?
I was not asking for money as a beggar who does nothing in return. I already put in $50,000 of personal effort into ContractFinder (part of Pipeline) by the time of this grant application. I was only asking for future expenses to be covered, for a production-ready version that would enable other Remix plugins to use it.
You can deny me the money, but at least show respect for my time and technical effort.
At this point, I decided to not apply for any other grants in the space. The little feedback that I got was clear: others need to acknowledge my work and think it is valuable. If so, they should propose to fund it.
This leads me to the following conclusions: The current grant system works well for companies. There is no reason for companies to disclose their grant applications because their interest is clear: the application needs to help the company and promote its brand.
EF is not a company. The existence of EF implies that it has the best interest of Ethereum at heart.
How should grants work for an organization that wants Ethereum to evolve?
It should scout projects that help & share the EF’s principles and offer support. Support can be anything from grants, development help, to exposure. But not alone. Such an organization should make its actions transparent. It can have a location where anyone can propose projects which follow Ethereum’s principles, discuss and debate them and also vote on them. For technical scrutiny, the organization must have proper hires to review proposals and leave technical feedback.
Less Unearned Profit
Considering the global effects that ICOs have had on the entire Ethereum ecosystem, I have changed my views on ICOs. I first viewed them as decentralized crowdfunding tools for public good products. But no one should receive money without being held accountable for their output and no one should contribute with money just to withdraw it soon afterward and make a profit. Not for products that target public good, because it has the potential to destabilize the project — bear periods bring job instability unless the project sold their crypto for fiat and helped destabilize the market itself.
The price’s ups and downs make it a wild west market for short term traders. Their only purpose is short term gains, at the cost of the long term vision. The HODL movement was a good start, but greed is ingrained in us and tarnishes Ethereum’s reputation. The effects of this mindset go deep into the minds of developers and change their intent and project ideas.
So my unpopular opinion is: if it is unearned, it will destroy your moral backbone and slowly corrupt the entire ecosystem.
Most technical collaboration across projects is done through EIPs. But even the existing standards for smart contract patterns (tokens, registries, etc.) have a hard time being discussed and accepted. There are just a few editors, who are not paid to provide the technical feedback needed to evolve an EIP and projects prefer to develop their own internal standards instead of spending the time to go through the lengthy EIP process.
The EIP process represents a core principle of Ethereum: consensus/collaboration. And the EF does nothing to support or improve it. They can pay some of their employees to offer (limited) technical feedback and help EIPs get in shape, so it is easier to reach consensus. They can announce on their channels that EIP editors are needed and what are the requirements for this.
I know the EF practices subtraction, but has anyone asked the Ethereum community?
However, there are few EIPs, proposals or projects that target project interoperability.
Good examples of projects that promote common standards and collaboration across projects and dApps are WalletConnect and Remix. WalletConnet is a protocol — it abstracts wallet-dApp communication, so any wallet can interact with any dApp in the same way, through a QRcode and this is gold for mobile wallets. The new plugins system from Remix enables plugins/dApps to collaborate with one another, not just with Remix. I would like to know other such examples if they exist. They deserve promoting.
But Ethereum remains mostly a collection of enclave projects, each following their own personal interest. If a developer wants to interconnect multiple projects, said developer needs to know each project’s custom APIs and ABIs after looking through pages of documentation. This is not scalable and will not amount to global infrastructure and general machine readability. Ethereum projects are making the same mistake that Web2 did.
Ethereum does not have mechanisms for achieving community consensus. Ethereum has Reddit, Twitter and GitHub.
The Ethereum community is bad at giving feedback. See those 25 votes against the Pipeline workshop without any written criticism. Feedback is crucial. It pushes you to do better.
Ethereum does not have systems for agreeing on data types used across projects, in the EVM. Still, dType is the only EIP proposal of this kind and there was no interest in it.
If Ethereum cannot acknowledge better design solutions and integrate them, they are in the same position as Bitcoin is with Ethereum: not recognizing a superior solution — which is a morally and intellectually corrupt point of view. One such example is Libra/Move’s resources and typed bytecode, which attested the need for rich types inside the EVM — and it gave me confirmation that the dType project is valid and needed.
I want to see where the Ethereum community’s stands on the above topics. If there will be no response, no discussion, then the message will be clear — we don’t share the same values. And I will not bring up these subjects in public anymore, because no one would be interested to hear them anyway.
To those that offered to hire me: after seeing the general effects of ICOs and enclave projects, I am reluctant to say yes and then find out that I am not working for the benefit of the Ethereum ecosystem, as I see it. I would rather see The World Computer come to life.
But, I will not rest. I will soon expand on the new generation of interoperable & composable dApps and I need your help to discuss the idea.
I have gambled and lost my participation, but I gained a vision of what Ethereum could become. Would anyone of you share into this vision?