Have you ever considered Bitcoin as a dApp? If you think about it Bitcoin is an awesome MVP idea to showcase a trust-less decentralized application technology. Its basic use cases are easy enough to implement and by getting value through markets without getting hacked and proving its resilience to other types of attacks, it clearly demonstrates the security such a technology can provide without using trusted parties. So what else can we decentralize?
An array of dApps come to mind but as someone explores the technology they soon find out that it comes with several limitations and peculiarities. In this article we analyze the most prominent blockchain protocols right now for dApp development and ebakus. Ebakus is a new blockchain we have been working on for a couple of years where we try to combine the best attributes of the above solutions. Along with our additions we help developers build decentralized applications that are usable and accessible, like their centralized counterparts.
Finality : N/A
Throughput: 25 transactions/sec
Write requirements: token balance to pay for transaction fees
Ethereum is the most popular smart contracts platform and a pioneer in blockchain technology as it was the blockchain that introduced the smart contracts concept. Ethereum introducing a Turing complete scripting language, Solidity, allows developers to deploy immutable, unstoppable programs without having to worry about consensus and networking. Ethereum’s smart contracts introduced the Operating System concept for the blockchain and was initially marketed as the decentralized trust-less world computer.
Ethereum uses Solidity as its scripting language, which is a high level programming language for smart contracts. As it has a been around for a while, there is strong community support and complimentary infrastructure software produced by the community to help developers build and deploy their contracts.
Deploying a smart contract on ethereum is limited to the gas needed which is usually quite cheap when compared to other platforms. From deployment and onwards there are no maintenance costs or capability for updating the smart contracts as they are immutable and cannot be stopped or reversed without a fork. A thing missing from ethereum is a way to perform data operations for large datasets.
Ethereum has high latency (15sec) and frequently enough issues with orphaned blocks which further increase latency as several confirmations are required until a state change can be trusted. It also has low throughput (25Tx/s) and it needs the client to pay transaction fees of variable cost for every transaction that changes the state of the blockchain. These restrictions hinder usability and thus make it a bad choice for use cases where parts of the business logic running on ethereum involve frequent user interaction.
Since ETH is quite popular, ethereum’s smart contracts are immutable by design and POW consensus is generally trusted by the community, ethereum is ideal for running ICOs, STOs and NFTs.
Finality : 85–90sec
Throughput: 4000+ transactions/sec
Write requirements: token balance to stake towards resources
EOS is a much younger protocol than ethereum that grows rapidly as the platform of choice for dApps due to its low latency of 0.5s, high throughput and free transaction system. EOS uses delegated Proof of Stake (DPOS) consensus that allows it to reach this performance. It’s led by Dan Larimer who proposed and implemented successfully the DPOS algorithm in his previous projects Bitshares and Steem. In EOS there are three resources; RAM that is used for storage, CPU for computation and Network for bandwidth. By staking(locking) EOS towards CPU and network for a minimum of three days, this appoints a percentage of said resource pro rata to the total supply with the usage resetting every three days. To acquire RAM, that serves as the storage in EOS, users have to buy it at market price.
EOS uses C++ as its smart contracts programming language and also has webasm support. C++ is a low level system language, which while being quite powerful, it also is hard for developers to pickup or transition to from Solidity and other high level programming languages that are commonly used today. On the other hand EOS provides a database and allows developers to update their contracts if they need to. In EOS storage as a resource is RAM where price is determined by the market. In order to deploy your contract, you need to have 10x the contract size available in your account, which can amount to significant costs. Additionally depending on how the contract was designed, it may need developers to actively manage RAM and the other two resources of the EOS protocol, CPU and Network by staking enough EOS tokens just to keep the smart contract responsive. Even though the developer can choose to drop their keys for a contract, in EOS smart contracts are not immutable by default and may or may not be maintenance free and unstoppable. In EOS developers also have the capability to pay for their users resources that lowers the bar for user adoption but drastically increases the cost for developers.
Due to its low latency, high throughput, database and the capability for free transactions, EOS is one of the best platforms today to build dApps, where users interact directly with business logic handled by the blockchain.
However its positives, EOS still problematic for user adoption. New accounts can only be created by an existing EOS account that has to cover the cost of RAM needed to store the new account object. In order for an account to interact with a smart contract powered dApp it needs to have enough EOS tokens staked towards CPU and Network and even though there are solutions that reduce these costs, they are not being eliminated any time soon. Users are used to interact hassle and cost free with applications and even though EOS enables dApps to feel as interactive with centralized counterparts it performs worse than ethereum in user onboarding.
Finality : 85–90sec
Throughput: 23000+ transactions/sec
Write requirements: transaction fees through Proof of Work
Ebakus is the protocol we propose to improve developers experience, while enabling them to reach mass adoption by building usable and accessible dApps. Ebakus uses the DPOS consensus algorithm that allows it to keep low latency while retaining high throughput. Its main novelty is that it doesn’t need a token balance to interact with its blockchain, which in other solutions it was found to be a key blocking point for on boarding new users. Instead in ebakus transaction fees are paid through proof of work; in order for the client to send a transaction they perform low difficulty POW and include it in the transaction object. If the POW difficulty is higher or equal to the one required by the network, the tx gets included in the next block. To mitigate spam Network transaction difficulty adjusts based on network congestion. To allow less powerful clients to interact, they can optionally acquire EBK tokens and stake them so their transaction can get included with lower difficulty. This novelty allows transaction fees to be transparent to the users as the resource used to pay for transaction fees is CPU time that exists in abundance in user’s computers. Additionally ebakus provides developers with an embeddable version of its wallet that can be embedded in the dApp and make the blockchain part completely transparent to the users.
Ebakus uses solidity as its smart contracts scripting language and it also retains the same API as Ethereum. This way everything built on or for Ethereum can very easily work with ebakus. Additionally ebakus extends Solidity with ebakusDB, a schema driven transactional database that makes handling large datasets very easy and cheap. By building on existing knowledge and modernizing it with ebakusDB, it really helps developers onboard with minimum learning curve and enjoy the low latency and high throughput that ebakus provides. Additionally not requiring a token balance to interact with ebakus based dApps allows them to reach larger audiences than any other solution and monetize their dApps easier.
(you can read more on how ebakus enables mass adoption in our post https://medium.com/ebakus/ebakus-focusing-on-mass-adoption-b32636c0abb4)
Ebakus is ideal for dApps that have a lot of user interaction and want to reach large audiences. Reducing the friction enables them to market their dApps to conventional audiences without experiencing huge drop offs, all while remaining completely decentralized and secure. Ebakus is ideal for ethereum developers, that have built their dApps on ethereum and cannot compete with EOS dApps, as it enables them migrate with minimum effort and remain competitive.
If you are a developer working on a dApp and like us find these limitations are holding you back, stop reading and go check out Ebakus. On our website you will find our boilerplate and relevant documentation to get you started and you are always within reach on our discord and telegram channels.