Introduction to EOS: the Epic (blockchain) Operating System
TL;DR: EOS is a consensus blockchain operating system that provides databases, account permissions, scheduling, authentication, and internet-application communication to massively improve the efficiency of smart business development that uses parallelization to make possible blockchain scalability to millions of users and millions of transactions per second.
Disclaimer: Most of what follows is my cliffs notes summary of Dan's Consensus presentation, and I've also (crudely) redrawn some of his key slides. Anything and everything contained herein should be properly attributed to Dan, @dantheman.
EOS: the elected, epic, enterprise, consensus, blockchain operating system.
In order to introduce EOS, we first need to understand the current state of blockchain tech, and how we got here. Bitcoin of course introduced the idea of a public ledger system and Ethereum proved the demand for decentralized applications more generally. However, in order to see blockchains truly go mainstream, we need to address the sheer volume of traffic and operations occurring on real world business applications. For example, credit card networks need to be able to process 20,000 transactions per second. Facebook processes 52,000 likes per second, and that doesn't include actual posts and other activity. The financial industry processes 100,000 transactions per second, potentially per market.
In contrast, Bitcoin is currently limited to ~3 transactions per second because of blocksize, and Ethereum is limited to ~30 transactions per second due to gas restrictions. The most important restriction of current blockchain technology is the single-threaded performance of all major blockchains.
EOS has already attracted significant interest and investment.
How did we get here?
In 2013, the decentralized exchange Bitshares was built, and in 2014 Bitshares was launched. It used delegated proof-of-stake giving 3 second confirmation times with very predictable, reliable block production. The first version of Bitshares was built off of some of the same ideas as Bitcoin and shared some technology, but still didn't meet the performance requirements of an exchange. In 2015 Graphene was created, and Bitshares was completely rewritten. This was able to achieve 100,000 transaction per second on a single machine, and decentralized global stress testing achieved 18,000 transactions per second on a distributed network. Account names were also introduced with Bitshares (advanced hierarchical dynamic threshold multisig), which separated accounts from keys, allowing organizations to be structured and permissions to be delegated to other users. In 2016 Steem was launched which had new conceptual issues. Social media users don't want to have to pay for every vote, they need account recovery options, etc... Steem also took the block rewards which are wasted in mining and redistributes them to people who are posting on the blockchain, enabling thousands of people to become active participants through massive decentralization allocation of funds. Steem went from concept in January to working blockchain in March to working website in July. At this point, Steem and Bitshares have more real world transactions occurring every day than the rest of the major blockchains combined. Steem also has a higher female-to-male ratio of users than any other blockchain. However, both Steem and Bitshares are application-specific blockchains. If you want to run multiple apps on the same blockchain, there are significant scalability issues that need to be solved.
There are still significant barriers to mainstream blockchain adoption.
If you look at the blockchain industry, everyone wants to build smart businesses, decentralized organizations, etc..., and in the process developers built decentralized computers from the ground up which can run their smart apps. In this process, all app developers have to solve many of the same problems: account systems, recovery processes, multi-sig, manage challenges, and what they're missing is the operating system, which could provide all the common features that every application depends upon, allowing applications to focus on what makes them different. For example, there is a huge commonality between Bitshares and Steem in terms of functions, and relatively a very small difference in terms of application business logic. EOS aims to provide this operating system to provide all the core functions to app developers and allow them to focus on just the business logic that makes their apps unique.
EOS provides an operating system and a decentralized computer to radically improve the efficiency of smart business development.
What do DAPPs require?
In order to be successful, DAPPs need to be accessible from a web browser (downloadable apps are nice as well), need to scale to millions of users in order to monetize and earn a return on investment, they need to be free for users of the app (especially for social media), they need to be responsive with fast confirmation times, they need to be upgradable, be accessible with human friendly account names, have account recovery, and have a strategy for fixing bugs. EOS provides all of these to application developers.
EOS provides parallel processing of smart contracts through horizontal scalability, asynchronous communication, and interoperability. It will provide databases, account permissions, scheduling, authentication, and internet-application communication. For example, both Bitshares and Steem can be run on EOS in parallel, and because of the asynchronous communication, additional nodes and entire clusters can be thrown behind the processing of transactions to scale up to any transaction volume you want.
EOS is the first blockchain operating system. It provides your application with databases, a schema, multiple indices so you can have sorted data that's easy to manage. it gives you account permissions and a whole set of users, account recovery, handles all the complexities of scheduling multiple tasks across CPU cores or even clusters, handles all the authentication and key management so you can focus on business logic and not cryptography, and it handles all the internet-application communication. EOS is the operating system that we've been waiting for that allows us to focus on building the apps that our users need without getting in the way, without forcing gas, without requiring users to purchase anything before using, and it dramatically accelerates the rate at which developers can build apps.
EOS aims to be scalable, flexible, and usable.
Scalable: EOS can support 1000s of commercial-scale DAPPs through parallel execution and asynchronous communication. It separates the authentication from the action. For example, a transfer is a simple action of reducing one account's balance and increasing another, but all the authentication steps are validating signatures, checking to make sure that are sufficient funds, etc... but authentication steps only need to happen once when the block is produced. After a block is irreversibly added to the blockchain you never have to authenticate again. EOS puts the source code on the blockchain so that it is human readable what the contract says, and everyone can see it and developers can optimize it and compile on different machines, all without breaking consensus. It also eliminates gas to eliminate the extra operations that are required to count the important operations.
Flexible: Because EOS will use delegated proof-of-stake, if an app is broken or fails, elected block producers can freeze the application until a bug can be fixed and then update the code. So if the DAO had been implemented on EOS, for example, it could have been frozen, fixed, and updated, all without ever having to hard fork or disrupt any other application on the chain. EOS is also flexible in the sense that you only have to run the applications that you need. If you are running an exchange, you don't have to run the social media apps, and you can configure your local node to process only the data you care about. Not every node needs to run and maintain the full state of the blockchain. EOS also publishes source code, not assembly, and provides generalized role-based permissions.
Usable: EOS will include a web toolkit for interface development, self-describing interfaces (data that goes on the blockchain can be read by humans but is also compressed), self-describing database schemas, and a declarative permission scheme. This allows a fine-grained level of permissions in which you can easily delegate specific account permission to other accounts.
Governance: Delegated proof-of-stake has elected block producers. A legally binding constitution (think decentralized peer-to-peer terms of service) establishes a common jurisdiction for disputes and dispute resolution. EOS will also include self-funded community benefit apps that are selected through stake-weighted voting. Ever account will have to sign the constitution. One idea is that every transaction may include the hash of the current state of the constitution. The constitution itself is something that can be modified and evolve, and captures the intent of what the blockchain is trying to express and guides the way when trying to resolve disputes. Signing the constitution expires if you do not use the platform just like other apps updating their terms of service.
EOS has a token called EOS, which works on the same principles as Steem. Unlike other systems there are no fees, it's not consumed. If you own 1% of the network, you have access to 1% of the computational power, 1% of the bandwidth, and 1% of the network storage. You can then lease it out to other parties or use it for your own app. Once you fund your app with enough EOS to support its usage, you don't have to worry about topping it off or paying any fees, because it's an "own" model, rather than a "rental" model. You then figure out how to monetize your app by charging the user. Network bandwidth can be allocated and delegated paying customers through a free market hosting ecosystem. Block production is controlled through stake-weighted voting as in traditional delegated proof-of-stake. There is also a constitutionally limited 5% annual increase in EOS supply which woulc be lowered to 0%. This supply is distributed to three different smart contracts which are selected based on stake-weighted voting. The additional supply may be simply destroyed by locking them away in a smart contract which prevents them from ever being used (eliminating inflation), or they can be distributed to decentralized administration (such as Steem), or centralized administration (such as the Ethereum foundation, EOS foundation, etc...).
Current Development Team:
Brendan Blumer: CEO
Daniel Larimer: CTO
Kokuei (Guo) Yuan: President
Andrew Bliss: CFO
Michael Cao: partner
Ian Grigg: partner
Brock Pierce: partner
Li Xiao Lai: partner
Wendy Lee: CLO
Bo Shen: partner
Project Status and Roadmap:
The project was started a couple of months ago, and code will be released on github after the Consensus 2017 conference. Code will be tested out this summer. Visit eos.io to sign up for the newsletter. The EOS team is trying to treat project information very sensitively so that there is no inside group with access to key information before the greater community, so make sure to sign up for the mailing list!