Decentralized Application (dApp) Platform Selection
In the past few months the Reputaction team has worked a lot on software development in parallel to business development. After being close to release the first Minimum Viable Product (MVP) based on a Web application with cloud-based storage, the next step is to store information on a public blockchain to reach an unprecedented level of transparency regarding trustworthy product information including supply-chain, workers, buyers, sellers and reviews information. Related competitors, such as TripAdvisor, are known to forbid access to its reviews information, only sharing some information through a closed Application Programming Interface (API) to few external partners. Worse, TripAdvisor reviews are known to be flawed because no verification of the customer experience is done. For example, a number of fake restaurants have succeeded to be ranked first on TripAdvisor in the recent years. In order to increase transparency and trustworthiness, Reputaction relational value product information will be stored publicly on a blockchain. We have worked on defining which blockchain seems to be the most appropriate for this task. Below we first discuss how the most promising decentralized application (dApp) platforms compare. Then, we explain our current roadmap for the Reputaction dApp implementation.
Ethereum, NEO, Cardano, ICON and Hashgraph (Hedera) Comparison
Ethereum has been the first dApp platform to be created. Following its success, a number of challengers appeared: NEO, the “Chinese Ethereum”; Cardano, the “Japanese Ethereum”; ICON, the “Korean Ethereum” and Hashgraph (Hedera) a patented solution related to blockchain but technically different. We have compared in detailed these different dApps in several videos on the YouTube Reputaction channel. We summarize below the main advantages and disadvantages of each of these dApp platforms:
- Advantages: open-source; largest community of blockchain developers; several dApps already running in production; attack-resistance with Proof-of-Work (PoW)
- Disadvantages: difficult to program (new Solidity programming language with high-level checks as older traditional programming languages); fewer developers than for traditional programming languages; cost of each blockchain operation or storage; uncertain attack-resistance of the newly planned Proof-of-Stake (PoS); energy cost of PoW; no Know-Your-Customer (KYC)/Anti-Money-Laundering (AML) of initial token holders; low transaction speed compared to other competitors, especially as long as PoW is still used
- Advantages: peer-reviewed by a good number of academics regarding its attack-resistance and other properties; KYC of initial token holders
- Disadvantages: it has still many building blocks to be developed before being able to deploy a dApp on its blockchain; it is built with a programming language (Haskell) that is not well-known by many developers [edited after comments below and on Reddit] however its smart contracts will be able to be written not only with Plutus (not well-known too) but potentially also with other well-known languages (C++, C#, Java, Python… or even Solidity); no AML of initial token holders
- Advantages: easy to program because based on a well-known traditional development platform with many developers, i.e., .NET C# (Java and other languages also possible); several dApps already running with a medium-size community of open-source developers and real private blockchain projects linked to OnChain in China; no cost for blockchain operations and storage below 10 GAS; average transaction speed compared to other competitors
- Disadvantages: strongly linked to China and OnChain private company; doubts concerning its attack-resistance and decentralization technical properties; expensive deployment initial cost of the dApp smart contract, i.e., 100 GAS plus 400 GAS if storage is required and plus 500 GAS if dynamic call is needed (1 GAS costs 15$ at time of posting); no KYC/AML of all token holders
- Advantages: should be easy to program when the English documentation is ready because based on Python, which is a well-know programming language with many developers already; several real private blockchain projects in South Korea developed on its Loopchain core engine; high transparency of its tokens because all token holders have had to pass KYC/AML checks; average transaction speed compared to other competitors
- Disadvantages: strongly linked to South Korea and Loopchain private company; currently lack of English documentation; doubts concerning its attack-resistance and decentralization technical properties; the cost of smart contract deployment and use is unknown yet
- Advantages: easy to program because based on a well-known traditional development platform with many developers, i.e., Java (in addition they say they will also provide a Solidity version); very high-speed compared to competitors; formally proven in permission-based settings, i.e., private blockchain
- Disadvantages: unproven attack-resistance in permissionless settings, i.e., current public Bitcoin or Ethereum blockchain (even if they argue their PoS-like approach is attack-resistant, it hasn’t been peer-reviewed); strongly linked to the Swirlds private company, which has patented hashgraph; not ready yet for production as the Hedera ICO hasn’t been done yet
Choosing the most appropriate dApp platform for a MVP
A MVP means that it is a first version of a product with the minimal number of features. Usually, it is also part of an agile development approach meaning that the goal is to release the MVP as soon as possible. If the dApp platform requires a lengthy learning-curve by the available developers, then releasing soon cannot be done. Another usual requirement of a MVP is that it shouldn’t be too costly to build and run. The attack-resistance, transaction speed and decentralization aspects don’t need to be stronger than what the current market expects, especially if the MVP doesn’t have to use the blockchain for too sensitive or fast operations and storage. Later on, if other features must be added to the MVP along with more resources and time, it may still be possible to port it to another dApp platform.
Based on the above comparison between Ethereum, NEO, Cardano, ICON and Hashgraph (Hedera), NEO seems to provide the best dApp platform for a MVP. First, the learning-curve is short because it is integrated in the well-known .NET development platform. Second, although the cost of initial deployment may be high for some project, the fact that operations and storage below 10 GAS are free may be interesting for projects that rely on many small operations and storage. Third, attack-resistance, transaction speed and decentralization aspects may not be perfect but they are currently accepted by a good number of stakeholders and are sufficient for MVP without sensitive operations and speed requirements.
It is the reason that Reputaction, which has no high-speed requirement, is currently developing its MVP with NEO. We are still in good discussion with ICON for further developments, especially because all its tokens are linked to token holders who passed KYC/AML, which is important from a long term legal point of view. So far, Ethereum hasn’t been considered further, mainly due to its difficult programming language, associated learning curve and long-term cost of each operation and storage.