When Ethereum became a reality in 2015, the promise of a decentralized computer allowing for unstoppable immutable programs to run on it was quite lucrative. Our imagination of what would be possible with such a platform, being able to natively support internet money got us excited enough to get our hands dirty and start learning how to build on it! Smart contracts were an awesome concept, they were allowing developers to launch decentralized applications without having to worry about handling consensus and networking but only focus on the application level. They were essentially providing the OS for a decentralized computer. During our technology research looking for the best platform to develop on, we thoroughly tested Ethereum, EOS and Tron as viable solutions.
We soon came to the conclusion that most of our ideas would not be viable due to technology limitations:
- Most solutions (except EOS) are plagued with high latency that can really degrade user experience when used to provide the business logic for interactive, user-facing applications.
- Access to interacting with decentralized applications (dApps) is severely limited for new users that aren’t familiar with blockchain concepts. It requires users to acquire tokens through trading, learn how to transfer them safely and in cases how to use special token functionality (staking towards resources) just to interact with the blockchain.
- The more performant solutions (EOS, Tron) require staking towards resources (CPU, network, RAM for EOS and Power, Bandwidth for Tron), in many cases in order for dApps built on them to keep being operational as intended they require developers to either actively manage resources or design an Artificial Intelligence (A.I.) that makes sure enough resources are available to be kept alive and remain self-sufficient. This practically makes them non-unstoppable. Moreover in EOS until the developer drops the keys, smart contracts aren’t even immutable.
- All solutions except EOS don’t have a database accessible for the smart contracts which in conjunction with how expensive storage and CPU time is in these systems, it makes data handling of large datasets practically impossible.
- The more performant solutions make it uneconomical for developers to develop and deploy their products on, as the cost of resources is an order of magnitudes more expensive than in their centralized counterparts.
- Additionally, blockchain networks are low throughput networks
The above limitations explain the reality we face today; after a huge influx of capital into the blockchain industry, destined to build an array of interesting business models, the only successful application we have seen to date either involves developing ERC-20 tokens and using them to raise money in various contexts or storing hashes in the blockchain for immutability to serve as proof of state.
Our vision on dApps
Among other things like trust-less gambling platforms and non-fungible tokens for game assets, one of our strongest use case we envisioned is to build user-facing, interactive applications, that leverage automated micropayments to create efficient markets for service providers. Uber, airbnb and other similar business models could be just a smart contract when blockchain technology becomes accessible to people. There is no need for huge back-office operations to handle receiving and sending payments in multiple currencies around the world as a digital token can be used for payments instead. No need to have international legal departments figuring out regulations in an international setting or having lobbyists pushing for positive local regulation in multiple municipals, that’s the responsibility of the service providers as they will have to file taxes about the profit generated with their local governments. Marketing could be easily crowdsourced as well by leveraging social networks through affiliate marketing. Decentralized applications allow service providers to efficiently capture the value of the service they provide, maximizing their profit while maintaining market prices.
To enable such a future we went back to the drawing board and started working on our own solution called ebakus. Ebakus was designed from scratch to cater for these types of dApps, by reducing friction for both users and developers. You can learn more about ebakus here; if you feel adventurous feel free to also check our whitepaper and devkit, any feedback positive or negative is welcome.