There has been a lot of discussion on why enterprises select Ethereum or Hyperledger or Corda when choosing a platform for their applications, and why EOSIO software is not on their list.
A simple answer is, because they are informed this way. Ehtereum Foundation, IBM and R3 are doing a lot to push their technology to the enterprises. A lot needs to be done to spread awareness of EOSIO protocol. Also a lot needs to be done to promote its features.
Distinctive features of EOSIO
- Transaction performance: EOS mainnet has been performing over a billion token transfers per week. They are generated by so-called mining contracts, which are basically polluting the network, but it’s still a significant benchmark. Also important to note that the blockchain continues to be functional, and other contracts get their CPU time to execute.
- Distributed architecture: those thousands of actions per second are pushed by hundreds of writing nodes across the globe. None of existing traditional databases can provide a multi-master setup that is comparable in performance.
- Versatile platform for smart contract execution. Smart contracts are compiled in WASM (currently C++ is used as primary programming language), and allow implementing virtually any kind of business logic. The RAM model allows storing and indexing complex data structures.
- Complex atomic transactions: a transaction can consist of multiple actions executed by multiple smart contracts. Also the calling party can add its own smart contract execution to the transaction. If any of those actions fail, the whole transaction fails. Every action is executed in an isolated virtual machine, which is an important feature of protocol security.
- Security features: first of all, the core EOSIO software has been running in public blockchains for two years, and has never been compromised. Also accounts and hierarchical permission model are something unique and not seen in other blockchain platforms.
- Scalability: the software allows building the networks of affordable scale. One does not need 21 validating nodes for a small application-specific blockchain, and can reliably start with 5.
- Distributed knowledge: there are several dozens of skilled and independent teams across the globe, able to operate EOSIO blockchains and develop software for them.
Challenges of EOSIO
- Accounts instead of addresses. Many people experienced with Bitcoin or Ethereum find it hard to understand that we operate with accounts, and each account can be managed by one or multiple private keys. But once they grasp the concept, they start seeing the benefits of it.
- System administration skills. The system requires more knowledge and thorough planning when deploying EOSIO servers, comparing to Bitcoin or Ethereum. Probably it’s still easier than Hyperledger, but I have no experience with it.
- C++ programming. People find it hard to learn C++ for writing the smart contracts. On the other side, many developers stepped in and educated themselves within weeks. Also the EOSIO developers community is very helpful and also well supported by Block.one engineers. The EOSIO Developer portal offers a great deal of documentation and tutorials.
- Negative PR. It has been noted multiple times that concurrent shops are distributing negative news about EOS, and that automatically projects to the underlying software. A lot needs to be done by Block One in this regard. Also some projects just promote their name without mentioning EOSIO, which is a valid approach.