Long post warning
What is the vision of Aeternity?
As a coder looking into making apps with a provably secure backend infrastructure (aka “dapps”/“aepps”), and a fan of Erlang and functional programming, I have eagerly observed Aeternity’s progress. I have long looked forward to the day when the infrastructure, dev tools, and documentation become mature.
I speak only for myself, but I’m sure that there is a significant cohort of skilled engineers in a similar position. Erlang is not a popular language, and for good reason: for many years, it has been a “trade secret” in the distributed systems/big data/messaging/surveillance worlds.
It seems that with the release of Lima and FATE, and the Universe One conference, Aeternity is rapidly approaching maturity. And yet, I don’t find myself as excited as I expected to be.
As we all know, blockchain holds the promise of restructuring the internet, finance, government, and society. Yet, to date, the greatest impact of blockchain has been darknet markets.
As we all know, the primary obstacle to blockchain adoption is scalability. Ethereum, which promised to be “The World Computer”, was overloaded by CryptoKitties, a single game.
As we all know, most cryptocurrency transactions occur on the centralized databases of exchanges.
As we all know, even the most popular “decentralized” networks are not so decentralized when it comes to mining and core developers.
As we all know, Aeternity is even less decentralized than Bitcoin or Ethereum.
It seems as though decentralization and scalability are mutually exclusive. To date, there is no workable solution to the Scalability Trilemma, that one may pick 2 of
-
Decentralization
-
Scalability
-
Security
Aeternity’s scaling is focused on state channels, and unfortunately, it does not solve this conundrum. As I understand things – correct me if I’m wrong – state channels require
-
a node
-
that’s online
-
assets locked inside the state channel
Given the difficulty of installing a node (could your parents do it?), the resources required to have a server always online, and the limit that an off-chain transaction value cannot exceed the value of assets locked in the channel, state channels are not, on their own, the silver bullet for bringing millions of people into the blockchain.
Ethereum’s (initial) vision of being the World Computer, however flawed it is in reality, is a beautiful dream.
Until recently, I thought it was Aeternity’s vision too. I thought that the Aeternity team, composed of expert distributed systems architects and engineers, was on the path to achieving it. Then I read this thread:
It dawned on me that my vision of Aeternity is deeply in conflict with that of leading Aeternity team member, Emin. The conversation continues in this thread:
What is my vision of Aeternity? Or rather, what do I predict to be the purpose of the network that “wins” the Blockchain Battle Royale?
I believe that Distributed Ledger Technology, or Blockchains that run Smart Contracts, are the future of Cloud Computing. What is Cloud Computing? One could say that time-sharing a mainframe is Cloud Computing, or so is shared PHP hosting, and that is perhaps technically correct, but for discussion sake I propose to define Cloud Computing in the following generations:
-
IaaS = Infrastructure-as-a-Service (e.g., Amazon EC2)
-
PaaS = Platform-as-a-Service (Heroku)
-
FaaS = Function-as-a-Service (Serverless)
…
- CaaS = Contract-as-a-Service (Blockchain/DLT)
As I see it, the purpose of the Cloud Computing movement is to improve economic efficiency by reducing the amount of capital required to build scalable businesses. Before the Cloud, a startup had to buy and physical servers and networking.
Amazon and other Cloud providers streamlined development and brought down costs, enabling the emergence of many other “Unicorn” businesses.
Platforms like Heroku and Firebase brought the bar even lower, by handling server configuration, letting developers focus on the user experience.
Serverless computing was the next step forward, further abstracting away notions of resource scaling and deployment.
Ultimately, at some point in the near future, it will take just 1-Click® to go from a code repository (e.g. GitHub) to production.
I believe this is the purpose of blockchain. Now, to any experienced engineer, that sounds ludicrous. What about testing? What about security? These are problems to be automated by systems engineers, compilers, and AI.
I believe the point of blockchain is to let anyone write a contract, perhaps based on a template, and offer it to the world.
Ethereum and the ICO movement, of which Aeternity is a part, is the successful proof of this concept. In 2017, anyone could write a whitepaper and raise $5-50 million by copying and pasting some Solidity.
Ethereum has long since given up on being the World Computer, and today is focused on “DeFi”, DAOs, and “Radical Markets”. In other words, the Ethereum community has given up on reinventing computing, and is settling for disrupting finance, work, and government. In other words, the Ethereum community has given up on solving the scalability trilemma.
They have many initiatives that will be marginal improvements, but the current Ethereum roadmap schedules Cross-Shard Transactions for Phase 4 of Eth 2.0, predicted release: 2021.
…
Perhaps the scalability trilemma is as intractable as the CAP Theorem.
Security is a necessity; otherwise, there is no purpose to all of this infrastructural overhead.
Scalability is inherently valuable; each additional user increases the value of a network superlinearly.
Decentralization sounds good. Decentralization makes me feel good. I like the idea of it; that I don’t have to trust the operator of the platform[0].
But if there is to be a sacrifice of one of these values, then Decentralization is surely the sacrifice. At least until the invention of “Eventual Decentralization”, a la Eventual Consistency[1].
Indeed, Decentralization is more of a conceptual value than it is actualized. Bitcoin mining and development are arguably centralized. Ethereum research and specifications are the product of the Ethereum Foundation. And when it comes to Aeternity, the centralization of development is significant.
In fact, as a work-in-progress, a degree of centralization is good. Quite good, really! Indeed, leadership is a prerequisite of success in innovation.
I believe that Aeternity should lean into its centralization. Take pride in the fact that Aeternity employs the world’s most experienced distributed systems engineers. As I see it, that is the justification behind the ICO. Experts don’t work for free!
Bitcoin, Ethereum, and other “decentralized” projects suffer heavily from
- high latency communication
between
- poorly motivated developers
Because Aeternity is somewhat centralized, it avoids these plagues!
…
One misconception that advocates of Decentralization hold is that Centralized entities are antagonistic towards users/consumers/society, while Decentralized organizations are aligned with the people. This is a conflation of organizational structure and the degree of customer orientation.
To understand customer-driven development, I highly recommend reading this free short ebook, HYPERGROWTH by David Cancel.
To summarize, Customer-Driven Development makes engineers communicate with end users, short-circuiting the product feedback-and-iteration loop, accelerating development.
This is the opposite of how blockchains are developed! Blockchains like Bitcoin and Ethereum have protocol architects who write papers that specify code to be implemented by infrastructure developers. Then, (generally) junior devs write documentation which is read by “blockchain developers” who write libraries which are consumed by application developers who make dapps.
Critically, the architects, core infrastructure and library developers couldn’t care less about the end user. They primarily want to get twitter followers and watch the token price increase.
Cancel’s approach is to force his developers to be responsive to consumers. In the context of a SaaS platform like HubSpot CRM, this worked well, but it may be too extreme for a blockchain; I’m not recommending that Robert Virding take user feedback directly…
But I reference Cancel because he has led some of the most efficient product development teams, and I believe that Aeternity has the potential to be the strongest blockchain development team. But it will take focus.
Aeternity’s strength is in protocol development. But when it comes to dev tools, onboarding, documentation, design, strategy, and especially marketing, there is much room for improvement. Marketing and strategy are weak enough that I worry about the long-term viability of Aeternity.
First, given the quality of the development team, and the thoughtfulness behind writing the chain in Erlang, implementing Bitcoin-NG, including state channels and oracles in protocol, writing a functional smart contract language, writing a VM from scratch, and more, one has to wonder why there is near-zero coverage of Aeternity in the Blockchain Media.
I think that members of the Aeternity community and leadership have expected that superior technology would draw attention. Unfortunately, that’s not how our world works.
Blockchain is a competition to reinvent the most valuable institutions in our world, and the incumbents are not playing fairly, nor do they intend to in the future. Instead, they are observing Aeternity while they ignore it.
Do the leaders of Aeternity want to be “in” the blockchain scene? You know the deal: a twitter celebrity, attending conferences like big shots, with a crowd of journalists surrounding them and looking for a sound-bite. Perhaps they want to be approached by major corporations to “integrate blockchain into the supply chain”.
I hope we all realize that the only reason big corps support Ethereum is that Ethereum is no threat to them. A scalable blockchain is the opposite of what Microsoft, Amazon, JPMorgan, PWC, etc., want.
…
If there is anything to take away from my essay, it’s this point about strategy:
The goal of Aeternity should be to cannibalize the Base Aepp.
The Base Aepp is important, as it is the default mobile wallet for Aeternity. But the Base Aepp wants to be more than a wallet. It wants to be a browser or App Store. A Super-app. The idea is that every Aeternity aepp would be accessible inside of the Base Aepp.
On its face, this sounds like a good thing for Aeternity. But it’s actually a major limitation. Let me explain why.
Aeternity is extremely strong at infrastructure development, and relatively weak at marketing. So, when a developer makes an app on Aeternity, they are benefiting from Aeternity’s strength (infrastructure), but they actually are not helped by Aeternity’s marketing. On the contrary, a developer of an app would be marketing Aeternity to their users!
Now, this may sound ideal from Aeternity’s perspective. But from my perspective as a developer, it’s a nightmare. I, as a developer, want to Own The User Experience. I want to design the app icon. I want to design the app interface. I want to design the user onboarding process. As a business owner, I need to own my own brand.
In Aggregation Theory, Ben Thompson of Stratechery writes about the impact of the Internet on businesses:
This has fundamentally changed the plane of competition: no longer do distributors compete based upon exclusive supplier relationships, with consumers/users an afterthought. Instead, suppliers can be commoditized leaving consumers/users as a first order priority. By extension, this means that the most important factor determining success is the user experience: the best distributors/aggregators/market-makers win by providing the best experience, which earns them the most consumers/users, which attracts the most suppliers, which enhances the user experience in a virtuous cycle.
To succeed on the Internet is to “own the user relationship”, to paraphrase Thompson in his follow-up piece, Defining Aggregators.
This is just as true for Aeternity as it is for an application developer. And it is why I encourage Aeternity to evolve away from being an application developer. Instead, Aeternity should aim to Own the Developer Experience. To be the best platform to develop smart contracts on. The platform that makes developers the most money, with the fewest headaches.
Aeternity has the opportunity to power thousands of applications. This is a part of the vision upon which we all agree. It is what motivated the design of the Base Aepp as a browser/App Store. However, the browser/App Store, or Superapp, is putting the chicken before the egg.
Everyone wants to build The Western WeChat. The one app that does chat and payments and games and the Sharing Economy and banking and more. The reason why is that the makers of the Superapp become Masters Of The Universe. Indeed, with WeChat, Tencent is in the middle of the Middle Kingdom. And naturally, the Chinese Communist party is in the middle of Tencent.
I don’t believe that Aeternity’s leaders actually want all that would come with running a Superapp. Indeed, it would involve extensive communications with and regulation by government, intimate connection to clandestine services from all major nations, and being the target of elite hackers.
And even if it’s what Aeternity leadership wants, it is not in alignment with the needs of developers. One big reason why Toshi, Coinbase’s attempt at a Superapp, is disappointing, is “Real Estate”.
Toshi is a portal to all the Ethereum dapps. That means that gambling dapps and monster collectible games and Decentralized Finance and potentially healthcare dapps are all in the same location. This serves no one but Coinbase.
The other reason why the Blockchain Superapp is doomed to failure is “Nativity”. Or, the lack of a native experience. Plain and simply, Apple doesn’t want anyone to run a popular App Store for iOS but them. Apple will not play fair. The App Store is a cash cow; they take a 30% tax on every transaction! This is billions of dollars, billions that will not be given up without a fight. Even Google, which is more lax about these things, won’t just give up their tax.
…
Speaking of tax, Aeternity Foundation receives 10.9% of block rewards. (For what it’s worth, I support this sustainability measure. More on it later.)
…
On the surface, a Superapp seems like a way to kickstart the network effect. The thought would be that the more apps that are accessible by the users of one app, the more likely those users are to try out one of the other apps. And the more likely users are to try out a new app, the more likely developers will be to make new apps. That sounds like a virtuous cycle.
If you think so, it’s because you made a valid induction, but it requires a base case. That is, the network effect must be seeded; the flywheel must be kick-started. It can only be seeded by a quality experience, in which value is delivered to end users. Something that matters to people who don’t necessarily know or care about Aeternity.
The Killer Aepp.
I believe that the primary goal of the Aeternity Foundation should be to provide the infrastructure for hit apps.
But I don’t believe that the Base Aepp is optimized for this function.
Rather, the development, documentation, and promotion of Swift and Java SDKs for native mobile app development, along with the inclusion of Encoding and Decoding of contract call data in the SDKs, will encourage developers/businesses who focus on UX and marketing to build on Aeternity.
Speaking for myself, I am only interested in building native apps in Swift for iOS. I know that may sound wrong to Open Source activists, but it’s just how I prefer to invest my time.
It’s not my nature to tell people what to do, especially when there is much work involved in doing it. Yet, I do so now because I believe it to be in the best interest of this community and the broader world that the best technology win the Blockchain Battle Royale.
I do believe that most blockchains will not survive. A blockchain needs
-
protocol architects
-
miners (or stakers)
-
investors
-
application developers, and
-
users
to survive in the long term. Without one of these 5 stakeholder groups, the value of the network to the other 4 is diminished.
In the greater Blockchain Community, there is an abundance of miners, investors, and potential users, but scarcity among protocol architects and app devs. Protocol architects are leaders who create the base of the technology stack. As the supply of protocol architects increases, so will the number of different blockchains. But app developers must choose which platform to build on. So, the real Battle is for the hearts and minds of app developers.
Ethereum is clearly in the lead, in terms of number of developers. But the average Ethereum dev chose to work in Ethereum because it’s the most approachable for noobs.
Aeternity, with an ML-based smart contract language, cannot compete for bodies against the JS-like Solidity, or the entry-level marketing of Ethereum. Rather, Aeternity can hope to attract most of the best developers. “50% of the top 10%” has a nice ring to it.
With that in mind, it is still, I believe, inexcusable that Aeternity has an elitist attitude of “pro developers host their own dev tools”. The fact of the matter is that the documentation and tools around smart contract development are not mature. If Aeternity sees itself as akin to Bitcoin circa 2015, that’s fine. But if Aeternity is actually more like AWS Lambda, then it’s an EPIC FAIL for the browser-based dev tools to break.
As I believe blockchain to be the successor to Serverless computing, I take the latter interpretation, and I was sorely disappointed to see that “decentralization” was prioritized over developer adoption.
If you agree that the Blockchain Battle Royale will lead to concentration in which 90% of transactions occur on 2-10 different blockchains, and if you agree that users will use the hottest apps, which makes app developers the stakeholder group in highest demand, then you must agree that documentation, dev tools, and developer-directed marketing deserve a significantly higher investment than Aeternity is presently allocating to them.
Furthermore, I must express my ambivalence about Aeternity Ventures. While I support initiative to fund Killer Aepps, I worry that the projects that receive funding sort-of become employees of Aeternity, and thus subject to
-
favoritism over ventures that Aeternity does not fund
-
pressure to do things “the Aeternity way” against the interest of the project founders, users, and/or other investors, and
-
deadweight loss because Aeternity may fund unprofitable ideas that seek to expand the promise of Aeternity
It is my view that Aeternity should be unbiased with respect to applications built with it, and rather than invest heavily in funding the Killer Aepp before it is built, make it simpler for people to build the Killer Aepp, and this includes people whose project gets rejected by Aeternity Ventures. Indeed, if a developer pitches Aeternity Ventures and gets rejected, they may choose to build the app on another blockchain, or not at all.
Finally, on the subject of strategy: In Defining Aggregators, Ben Thompson describes 3 levels of Aggregators, where Aggregators are Internet-enabled businesses that modularize their suppliers and integrate many different user experiences into a sustainable and valuable user relationship.
Level 1 Aggregators: Supply Acquisition
Level 1 Aggregators acquire their supply; their market power springs from their relationship with users, but is primarily manifested through superior buying power. That means these aggregators take longer to build and are more precarious in the short-term.
Netflix is a Level 1 Aggregator
Level 2 Aggregators: Supply Transaction Costs
Level 2 Aggregators do not own their supply; however, they do incur transaction costs in bringing suppliers onto their platform. That limits the growth rate of Level 2 aggregators absent the incursion of significant supplier acquisition costs.
Uber is a Level 2 Aggregator
Level 3 Aggregators: Zero Supply Costs
Level 3 Aggregators do not own their supply and incur no supplier acquisition costs (either in terms of attracting suppliers or on-boarding them).
App Stores are Level 3 Aggregators
Thompson also describes Super-Aggregators, of which the only Western examples are Google and Facebook (Baidu, Tencent, and ByteDance are as well):
What makes Facebook and Google unique is that not only do they have zero transaction costs when it comes to serving end users, they also have zero transaction costs when it comes to both suppliers and advertisers.
As I believe that blockchain will concentrate into 2-10 (and likely < 5) networks, I believe they will all be a kind of Super-Aggregator. However, unlike Web 2.0 businesses which have free transactions and are supported by advertisements, the blockchain Super-Aggregators will be the networks that extract the greatest number of transaction fees.
Users, app devs, investors, and miners are all “suppliers” (of data, content, value, and security) to a Blockchain Foundation, and all of them except miners pay transaction fees[2]!
Aeternity can be a Level 4 Aggregator: Negative Supply Transaction Costs
The BRI, which awards the Aeternity Foundation 10.9% of the block rewards, is, I believe, a good sustainability measure. But wouldn’t it be better to index on transaction fees? This would make the Foundation directly incentivized to increase the scale of the network!
Today, the ratio of block rewards to transaction fees approaches infinity, but that ought to change as Aeternity grows more popular. And with the advent of Native Tokens (NTs) and the possibility of paying Tx fees in NTs, I think it would be good for the community if the Foundation was compensated in alignment with the miners.
There are 4 sides to the market that is a Blockchain: Investors, Miners, Developers, and Users. But Aeternity, or any blockchain that wants to survive thru 2035, would be well advised to focus on “developers, developers, developers”[3].
I worry that if the needs of app developers are not what drives the next stage of Aeternity’s development, Aeternity will not make it thru the Blockchain Battle Royale.
If the attitude of the Foundation and leadership is that Aeternity is for “professionals who host their own tools”, and the script kiddies, front-end designers, and bootcamp coders can go elsewhere, then when a truly elite developer discovers Aeternity, why would they even bother with paying the miners, and the 11% BRI to the Foundation?
If someone is building a Hit App, and they know it (say, if they are porting an already popular game to the blockchain, and they have it running on their own local testnet), why don’t they just fork Aeternity’s code, and self-mine?
For an Open Source Blockchain, code is the asset, and the account balances on the chain are a liability.
The major token holders, the Foundation and founders, ICO participants, miners, and other long speculators, are all dependent on high quality aepps to increase their token price. The developers and users of high quality aepps are the customers, the ones who pay the miners and Foundation, and whose existence the speculators depend to turn a profit.
As a technologist, I hope that Aeternity becomes foundational to the next generation of Internet infrastructure. And to do so, I hope that the Base Aepp, peace be upon it, is outcompeted by the blooming of a thousand unique aepps, each with their own UX, UI, branding, marketing, and strategy.
I hope that Aeternity focuses on developers because I know that finance, government, and society cannot be restructured without reinventing computing.
[0] And while I like having the option to not trust the operators of the platforms I use, I like to trust people I do business with. It makes me feel good.
[1] I hope that as the Erlang node reaches maturity, the development of the Elixir node can be resumed, and in a “decentralized” fashion, outside of the umbrella of the Aeternity Foundation
[2] In order to extract the greatest number of transaction fees, it is important to facilitate the ability for developers to pay for their end users’ transactions. This needn’t be default, but as an option it opens up many more kinds of user experience, such as subscriptions or payment in fiat for blockchain transactions.
[3] Focus on Supply