By GUEST COLUMNIST JACK TANNER
Jack Tanner explains perfectly the difference between EOSIO the software and the chains that use the software like EOS Public Network and Europechain in his article.
He is writing this article because there seems to be a lot of confusion about the difference between EOSIO and EOS. Unfortunately, there are problems with EOS and the biggest problem is that people associate this with EOSIO which is not the root of the problem.
A free, open-source software that can deploy highly customizable blockchains on which developers and entrepreneurs can run high-performing blockchain applications.
The software is created and maintained by Block One (B1).
A deployed blockchain powered by the EOSIO software.
The blockchain was deployed and is managed by the EOS blockchain community.
The problems of the EOS blockchain come from its specific blockchain customizations not by the underlying EOSIO software that powers it. I currently do not encourage projects to use the EOS blockchain unless they have a specific part of the EOS blockchain that they need to interact with. I generally advised to deploy a new and customized EOSIO chain or use an existing chain (there are currently over 12 public deployed chains and even more private ones to choose from).
I have been technically involved in the blockchain and cryptocurrency space since 2015 as a developer and educator. I have worked the closest with Ethereum and EOSIO and continue to research and develop with a range of blockchain technologies like Hyperledge, Corda, Tezos and more.
When comparisons are made such as “ more flexible” it is in reference to other blockchain technologies, to the best of my current knowledge.
The EOSIO Software
Chain consistent characteristics
Every blockchain powered by the EOSIO software has the following technical characteristics and features:
- Scalable aBFT consensus — makes every chain UX friendly and industry ready
- 0.5s block time
- Approximately 10,000–20,000 transactions per second capacity depending on the type of usage*
- Consensus governance agnostic (see below)
- Up to 125 block producers (BPs)
- Note that EOSIO does not use Delegated Proof of Stake as it’s primary consensus, this is one of the many different consensus configurations that can be chosen by each EOSIO blockchain
- Objective and standardized protocol upgrade mechanisms — makes protocol upgrades easier to manage and more transparent.
- Human readable account names (e.g. “jack”) — make blockchains easier to use with fewer human errors.
- Scalable smart contracts written in C++ — makes it accessible to a wide base of existing developers in one of the most powerful, flexible and efficient languages.
- On-chain contract Application Binary Interfaces (ABI) — making contracts more transparent and easy to use by client software.
- Built-in support for contract upgradability — making contract administration easier and more transparent.
- Flexible resource accounting — allowing for free** transactions and for resources to be paid for by smart contracts instead of its user.
- Flexible and hierarchical role-based permissions and key management — making key management and data permissions easier, with fewer errors and greater transparency.
- WebAuthn and biometric hardware security key support — improving compatibility with existing web infrastructure and security.
- Flexible and modular node customizations — making node management flexible and easier, with the ability to create public/private networks and network access permissions easily.
- Http support for clients — making client application development easier.
* This approximation is valid for standard token transfers. Smart contracts with greater complexity take more time to execute and therefore there is less capacity to process as many. Other factors affect a chain’s capacity.
** A transaction does not deduct money from a user’s account every transaction.
The impact of the above is that EOSIO blockchain applications:
- Are easier, cheaper, safer, and faster to develop and operate.
- Are easier, safer and more accessible for usage by people.
- Have more flexible and transparent, and easier to administrate governance that is run centrally or is fully decentralized.
- Are able to manage data privacy and permissions in a variety of ways (wait for my next article).
Chain customizability through the system contracts
The rules of engagement for each EOSIO blockchain are defined in smart contracts called the system contracts.
These rules, along with those that maintain and enforce them (also defined in the system contracts) is called the “governance” of the chain.
This is different from most other blockchains (e.g. Ethereum and Corda) which have these rules built into the protocol itself making them hard to customize or change if they aren’t right. Some blockchains do take a similar approach (e.g. Hyperledger Fabric and Tezos), but the EOSIO protocol is still distinguishable due to the very broad scope of the rules that are customizable through smart contracts.
Each EOSIO chain is able to define the following customizations through smart contracts:
- Block consensus — who can run the blockchain (make blocks) e.g. using Proof of Authority, Proof of Stake or democratic block producer governance is possible (see below templates). Default is Proof of Authority.
- Privileged actions — who can enforce and upgrade the system contracts. Default is Proof of Authority.
- Account allocation — rules around who gets to create accounts and how. The default is that anyone can create an unlimited number of accounts.
- Account names — who gets what names. The default is that’s anyone can get any account name up to 12 characters e.g. “jack”.
- Account permissions and keys structures — who and how accounts can create and update keys and authorizations to the blockchain. The default is that the account can create any structure of permissions and keys.
- Resource allocation — what resources accounts are allowed to use.
- Contract deploy/upgrading — rules around who can deploy and upgrade contracts and when. The default is that everyone can always deploy and upgrade their contracts.
Recommended for You
Additional features can be granted to the system contracts:
- System currency (token contract) — the rules for the resource accounting and payments currency.
- Asynchronous authorization — The ability for accounts to coordinate transaction authorization asynchronously (otherwise this has to be managed of-chain which can be difficult).
- Transaction authority bypassing — the ability for the system administrator to bypass authorization checks for transactions, allowing them to manage accidental or malicious blockchain usage.
- Block producer rewards, funding allocation, governance forums and other supporting governance tools.
Changes to these rules of engagements are on-chain, and therefore synchronize across the whole network at the same time. This makes chain upgrades much easier and feasible. Additionally, it means that each customized EOSIO chain maintains full protocol compatibility with each other (no changes to the node software are required), making multi-chain software like block explorers and wallets and inter-blockchain communication much easier. For example, this allows the block.io and eosauthority.com block explorers to communicate and read all of the different public EOSIO chains in spite of them having different rules of engagement.
EOSIO allows for a multi-chain ecosystem that is both highly inter-compatible and customisable.
To test and showcase the flexibility of EOSIO system contracts, the following repository contains a few templates for different customizations. They aren’t battle-tested, but the idea is there and sound enough. Importantly it took 1 day to make 4 consensus implementations:
- Democracy: 1 person 1 vote with 10 BPs
- Delegated Proof of Stake: 1 token 1 vote with 66 BPs
- Pure Proof of Stake: wealthiest 100 BPs
- Proof of Authority: Current BPs can add/remove BPs with 66% majority agreement.
The EOS Blockchain
The EOS blockchain was deployed by the community following the release of the first version of the EOSIO software.
The blockchain has been highly customized using the system contracts to give it the following summary characteristics:
- Delegated proof of stake block consensus where each token can vote for 30 block produces, the top 21 by vote count are then authorized to operate the blockchain.
- The system contracts can be upgraded by the top 21 block producers.
- Any account in the system can create an unlimited number of accounts.
- Any account in the system can deploy and upgrade contracts.
- All accounts have a permission called "active" that can authorize most transactions including sending tokens and updating contracts and a permission called "owner" that can be used to reset the "active" permission if it's security is compromised. The user is not able to delete these, but can make any other permissions they want.
- Accounts can choose any available 12 character account name, or purchase in a bidding system name shorter than 12 characters.
- An advanced system of staking, delegating and renting CPU and NET resources.
- RAM resources can be purchased on a one-sided market in which the price is controlled by the supply and demand for RAM.
- A system currency “token” used for both resource accounting and payments in which anybody can send tokens to anybody. This token automatically inflates its currency supply by 1% per year which is used to pay the block producers. This is separated between the top 21 block produces and other accounts that are ready to produce blocks in the case that the top 21 produces change.
- An asynchronous transaction authorization mechanism.
- A bypass for transaction authorization which can be used in consensus by the top 21 what produces.
The above features define EOS and show just one way to use EOSIO, but is not the definition of EOSIO as I see too many people thinking.
EOS is a very big experiment, with a lot of money held by the accounts in the system. If interested, please read The 8 worst issues and best features of the EOS blockchain to get my outdated but mostly still current views on the health of the EOS blockchain.
B1, the creator and maintainer for the EOSIO Software, does not own nor control the EOS blockchain, this is done by the EOS blockchain’s community. B1 participates very lightly in the governance of the EOS blockchain. B1 controls the “b1” account on the EOS blockchain which has nearly $200M worth of EOS token in it, so will continue to be financially interested in this particular EOSIO blockchain. B1 has announced that it would participate in the governance of EOS in November 2019 but has yet to follow through with any voting for block producers.
B1 supports and encourages broader use of all of EOSIO blockchains for different applications, and will launch their own EOSIO blockchain to power the social media platforms they are developing.
Other deployed blockchains
The EOSIO ecosystem is made up of many different public and private blockchains each with different governance and each targeting different use cases and markets.
You can see a full description of many of the public blockchains on ineos.io, but here is a quick list (alphabetical):
- BOSCore — a high-speed low finality blockchain for business and enterprise supporting parallel computing and IBC.
- Eosfinex — a blockchain that powers the cryptographically public and auditable Eosfinex cryptocurrency exchange.
- Europchain — a public permissioned blockchain using normal IT channels designed for supporting compliance with European regulation including GDPR.
- Liberland — (pending launch) a democratic blockchain to power the citizens of the Liberal Republic.
- Lynxx chain — a blockchain that simplifies the user experience by removing the need for users to know about resources and staking.
- Telos — a high-performance permissionless blockchain platform for decentralized applications with advanced data storage and chain governance features.
- Ultra — a blockchain targeting the gaming industry.
- Voice — (pending launch) a blockchain to power the decentralized social network built by B1.
- WAX — a purpose-built blockchain and protocol token designed to make e-commerce transactions faster, easier, and safer.
- Worbli — a blockchain designed for regulatory compliance with the financial sector including KYC verified accounts.
There are no lists available of private EOSIO chains because they are private.
If you are building a blockchain application you can choose one of these existing chains, or deploy your own customized public/private centralized/decentralized EOSIO blockchain to run on.
If you are interested in learning more about the EOSIO ecosystem I recommend having a look at the following resources:
- Learning EOSIO development (Telos, EOS and other blockchains)
- EOSIO Blockchain Developers Workshop March 2020
- Chain Customization and Governance