Detailed list of changes made to EOS Technical Whitepaper

in #eos7 years ago

Introduction

On March 18, Greg Lee pushed commits to the EOS.IO documentation repository on Github to update the technical whitepaper from version 1 to version 2.

The new version of the whitepaper can be found at: Whitepaper V2. Line by line differences between version 1 and 2 of the whitepaper can be seen at Whitepaper Differences.

We will now analyze the new changes made to the whitepaper in each section:

Background

Minor changes to flow of sentences.

Requirements for Blockchain Applications

New declarations for importance of low latency of transactions and software/smart contract upgrades in the EOS.IO platform.

Consensus Algorithm

EOS has integrated Delegated Proof of Stake (DPoS) with Byzantine Fault Tolerance (BFT) to use BFT-DPoS as a consensus algorithm.

A new block is now produced every 0.5 seconds, down from 3 seconds.

In the event of a skipped block, there is a minimum gap of 0.5 seconds in block production, down from 3 seconds.

Instead of 21 blocks per round, each round now contains 126 blocks distributed evenly between the 21 block producers at 6 blocks each.

The last producer is no longer chosen proportional to their number of votes relative to other producers, all top 21 unique block producers are now chosen by the vote of EOS token holders.

The order of blocks produced between the top 21 block producers is now determined by a scheduling consensus of atleast 15 out of 21 block producers.

Block producers are forbidden from producing blocks on two forks at the same time. In addition to potentially being voted out, the EOS.IO software may implement auto-kicking of block producers found to be double-producing using cryptographic evidence. This cryptographic evidence would be block producers signing two blocks with the same timestamp or blockheight.

The addition of asynchronous Byzantine Fault Tolerance enables all block producers to sign all blocks, thus allowing the EOS.IO software to provide confirmation of 100% irreversibility in under 1 second.

Accounts

Maximum length of account name is now 12 characters, down from 32 characters.

Account creator must stake for RAM until new account stakes it's own tokens for RAM.

Account access scopes for personal databases can now be executed in parallel.

Removal of ability for accounts to organize personal message handlers into named and nested groups.

Deterministic Parallel Execution of Applications

Modified sentences to reflect that parallel execution may not be available on the initial launch of EOS.

Threads have been renamed to shards. Messages have been renames to actions.

Added support for deferred transactions. Transactions can now be scheduled to be executed at a specified time, allowing for the creation of long-running processes.

Added support for Context Free Actions, actions which depend solely on transaction data instead of blockchain state. The EOS.IO software will process these actions in parallel, thus improving scalability.

Token Model and Resource Usage

Enforcement of resource usage constraints is implemented by block producers through custom plug-ins.

Added flexibility for dApp owners to choose their resource usage model. dApps can either provide bandwidth, computation, and storage from the dApp owner's staked tokens or require the user to stake their own tokens to use the service.

Introduction of Worker Proposal System. The Worker Proposal fund will receive a community-decided percentage from token inflation after block producer payments. Worker Proposals are designed to benefit the community and will receive tokens from the fund up to the amount approved by the proposal. While Worker Proposal contracts may not be functional at launch, the fund will still accumulate tokens.

Governance

Updated definition of governance to include the objectives of governance in the EOS community.

Freezing accounts requires consensus of 15 block producers, down from 17.

Replacing account code in the event of an unstoppable application requires consensus of 15 block producers, down from 17.

Changes in the source code and constitution requires consensus of 15 block producers, down from 17.

Non-producing nodes have 1 week to upgrade after changes in source code.

Scripts & Virtual Machines

Introduction of Generic Multi Index Database API. Aimed to ease retrieval of multi-index data in a consistently sorted or indexed fashion.

Removal of planned support for Ethereum flavored Web Assembly (eWASM) and Ethereum Virtual Machine (EVM).

Inter Blockchain Communication

Added explanations for lightweight proofs, where a hash-linked structure can be used to prove the existence of any transaction that has a size of less than 1KB.

Added explanations for proof of completeness, where sequence numbers for every action can be used to prove that there are no gaps in the transaction history.

Similar to Segregated Witness (SegWit), the 2KB of sha256 hashes used by merkle proofs are pruned for inter-blockchain communication to reduce disk usage and syncing time.

Note: The EOS Technical Whitepaper is still a Work In Progress, no changes are to be deemed final. Any information contained within this post does not constitute financial advice.

Sort:  

Good job! :)

Thank you so much Syed :)
I tried to go through the whitepaper myself but was too lazy to give it a read again. Your post came at the right time!
Cheers!

I'm still going through the white paper. Thanks for this

Congratulations @syedjafri! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

<p dir="auto"><a href="http://steemitboard.com/@syedjafri" target="_blank" rel="noreferrer noopener" title="This link will take you away from hive.blog" class="external_link"><img src="https://images.hive.blog/768x0/https://steemitimages.com/70x80/http://steemitboard.com/notifications/firstcomment.png" srcset="https://images.hive.blog/768x0/https://steemitimages.com/70x80/http://steemitboard.com/notifications/firstcomment.png 1x, https://images.hive.blog/1536x0/https://steemitimages.com/70x80/http://steemitboard.com/notifications/firstcomment.png 2x" /> You made your First Comment <p dir="auto">Click on any badge to view your own Board of Honor on SteemitBoard. <p dir="auto">To support your work, I also upvoted your post!<br /> For more information about SteemitBoard, click <a href="https://steemit.com/@steemitboard" target="_blank" rel="noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">here <p dir="auto">If you no longer want to receive notifications, reply to this comment with the word <code>STOP <blockquote> <p dir="auto">Upvote this notification to help all Steemit users. Learn why <a href="https://steemit.com/steemitboard/@steemitboard/http-i-cubeupload-com-7ciqeo-png" target="_blank" rel="noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">here!

which virtual machine is eosio supporting?

C++ Webassembly

Great! Thank you for your effort to work out the changes! Very helpful!

No problem, glad you liked it!

Great post...thanks

Feel free to ask if you do not understand anything!

Congratulations @syedjafri! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

<p dir="auto"><a href="http://steemitboard.com/@syedjafri" target="_blank" rel="noreferrer noopener" title="This link will take you away from hive.blog" class="external_link"><img src="https://images.hive.blog/768x0/https://steemitimages.com/70x80/http://steemitboard.com/notifications/firstpayout.png" srcset="https://images.hive.blog/768x0/https://steemitimages.com/70x80/http://steemitboard.com/notifications/firstpayout.png 1x, https://images.hive.blog/1536x0/https://steemitimages.com/70x80/http://steemitboard.com/notifications/firstpayout.png 2x" /> You got your First payout <p dir="auto">Click on any badge to view your own Board of Honor on SteemitBoard.<br /> For more information about SteemitBoard, click <a href="https://steemit.com/@steemitboard" target="_blank" rel="noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">here <p dir="auto">If you no longer want to receive notifications, reply to this comment with the word <code>STOP <blockquote> <p dir="auto">Upvote this notification to help all Steemit users. Learn why <a href="https://steemit.com/steemitboard/@steemitboard/http-i-cubeupload-com-7ciqeo-png" target="_blank" rel="noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">here! <p dir="auto">Do not miss the <a href="https://steemit.com/easter/@steemitboard/celebrate-easter-with-steemitboard-are-you-ready-for-your-next-surprise" target="_blank" rel="noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">last announcement<span> from <a href="/@steemitboard">@steemitboard!

Congratulations @syedjafri! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

Click here to view your Board

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @syedjafri! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!