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

in #eos8 years ago (edited)

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

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!

Sort:  

Very exciting! Anyone remember when BitShares was "ProtoShares"?

It's been a while now :p I think with EOS we might see Bitshares 3.0 built on top of it.

Hello @trogdor & thank you for this very solid intro to EOS!
Your post has been featured in the latest issue of STEEMINT - The STEEM Intelligence Journal

Thanks! and thanks also for the shout out, I'll check out the post.

Time we add EOS to the popular crypto payment processor Poof Payments https://www.poof.io/

I still don't understand what this actually do. Will people running the nodes be actually running the OS?

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.

I see, I see, that's very interesting, and NOT OBVIOUS, even after I had read much of the white paper. Thanks for helping clarify that.

Trogdor, I have created an Ethereum account. How do I use that to hold EOS? Erc-20 is a new term for me, how does that work?

Heya trogdor,

You may also be interested in FriendUP. It is a full OS you can download or request from here:

https://friendup.cloud

https://github.com/FriendUPCloud/friendup

Peer to peer networking makes for an exciting time in terms of the next phase of internet development. This is especially the case when it is questioning perceived relationships between hardware and software - translating it all into code in the case if the Friend Unifying Platform (FriendUP).

If you want to know more just ping us at our Telegram group: https://t.me/friendupcloud

They are confusing me by calling it an operating system. For now I will just summarize it as a smarter Ethereum platform.
Thanks for your post.

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

Thank you for sharing @trogdor!

Thanks for reading, it's my pleasure!

The constitution element is really interesting. Haven't been this interested in a project for a while.

I definitely agree. I'm going to be following this one closely.

@trogdor Thank You 4 the time & work You put into creating this post !!

UpVoted & Following... please consider following me. Thanks again !!

Thanks! I'll check out your page.

@trogdor Thank You >> : ~ ))

Well written. Congratulation for serving this to the community. Upvoted...this surely need tips. The function is coming soon and it will make it easy to tips a post. thks

Thanks! I hadn't heard about the tip function yet. I need to spend some time looking into the updates coming up soon.

Desperately waiting to test EOS , once it gets released....I think this will be a game changer for blockchain based technologies with some superior features.

I definitely agree! Thanks for commenting.

I have signed up for this mailing list! I love the scalability factor of EOS! Do you think this becomes bigger than ETH?

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.

It continues to get better in the blockchain world!

It makes sense that developers would rather not have to focus on the crypto side!

Definitely!, I wish I would have thought of it.... haha

That makes two of us! haha

I`m new to this, but it seems better than Ethereum.

wow, great job with this - it's almost like a complete transcript + images of Dan's EOS intro. gonna include this in my Consensus2017 / EOS highlights post.

Thanks so much! I'll definitely be looking out for your highlights post, because all I'm getting is little pieces here and there on other Steemit posts :)

nicely written. and adding the video presentation for ease of access for other readers:

https://www.pscp.tv/w/1YpJknevAnEGj

Great, thanks for adding the video! Fun fact about Brock Pierce: he once starred in the Mighty Ducks :)

Oh, a nice movie!