Introduction to EOS: the Epic (blockchain) Operating SystemsteemCreated with Sketch.

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.

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 Token:

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...).

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!

So, I'm not an expert, just a guy who is interested and trying to answer the same question as you. Basically, there will be many similarities to Bitshares and Steem, just more general. So, the system will be delegated proof of stake, which means (as far as I know) that only the witnesses are actually running the full EOS blockchain. Then many different users who are interested in specific apps (like Bitshares or Steem) can run significantly reduced code on their computer that interacts with the blockchain, but only with the data from the app they are interested in. That's my naive understanding. I need to learn more.

I assume STEEM is a more "application specific" blockchain, and EOS will be more Ethereum based and generic, to run many kinds of apps.
To me, it's very interesting that Dan wants to work with Ethereum at all. Here is someone that has "rolled their own" blockchain and is now working with Ethereum, so I'm thinking he learned something from Brenden and BAT?

Good points. I wouldn't say EOS is ethereum based though. The only connection to Eth is the ico, and that was simply because Eth is pretty much the only smart contract platform that would allow an auditable distribution. Once the initial token distribution is settled, the Erc-20 tokens will be locked on the Eth network and there will be no connection at all.

The OS concept comes from the provision of aggregated common services used by the applications that will sit "on top" of EOS. With a form of directory services complete with delegated rights model, database services etc. , the term OS comes closer than maybe any other label, unless you want to call it something like "Common Services Abstraction Layer for Blockchain" :)

Thanks for commenting! It's hard to say about ultimate potential, but it sounds like in terms of sheer network capacity, EOS should be able to handle orders-of-magnitude more transactions than the Ethereum network. I think that probably app developers will also come to see it as a much more efficient platform for building apps on, since they can focus on just the business logic and let EOS handle the crypto.

An extremely informative and "stupidly" simple to understand article. I had not "digested" very well what EOS meant so far. Thank you very much!. I would like to request permission to translate this article so that the Spanish-speaking community that does not speak English can also know what EOS means. Of course you would be mentioned as the original author of the article with a link to it and I also propose to send you 50% of the SBD generated. Many greetings and a big hug. @efrageek

I haven't heard much about when we'll be able to buy the tokens. I know the roadmap includes testing the code over the summer, and the timescale for development for Dan's projects has been quite fast in the past, i.e. Steem was built and launched in a matter of months.

Excellent summary, overview and recap of an important section in this evolving crypto ecosphere Dr. Trogdor. I'm glad Princeton allows you to be let loose into the Steemworld ;-) Looking forward to many more of your contributions. Just hit the follow button ;-)

Thank you so much for writing this all down, I watched the video of Dan's presentation last night and had a hard time hearing everything he said. Having read all this, I'm even more excited about this project, it really sounds amazing!

Perhaps you could elaborate a bit regarding smart contracts. Or just point me in the direction of some reading. I really don´t get the concept. This is the paragraph I refer to:

"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...)" .

This sounds like an interesti ng twechnology. If, we are to go by the edges it has compared to Ethereum, then Ethereum better improve on their tech or EOS has a chance to take over.
Am looking forward to this.

Great introduction to EOS! We are happy to say that Embermine, Inc. has committed ourselves to helping in the funding, research, and development of this excellent and needed platform.
We look forward to showing the world our smart contract deployment environment backed by the quick and powerful EOS! We were already well on our way working with both the Graphene and BitSharesDEX, now we have a chance to easily merge that development track with the development of the Smart Contract deployment module.
Very much looking forward to the Testnet launch!

@trogdor thanks for postig this and the video on YouTube, where I got the chance to know EOS. Actually I posted your video here on Steemit, if you have any problem with tha, I´ll take it out, thanks and congratulations.