Introduction To the Eos Blockchain Project

Introduction to EOS
EOS is one of the stormy ICO projects in blockchain, the ICO lasted for a year and I heard that 4 billion magnesium was raised through ETH Token. Both Steam and Bit shares use DPoS as the basis for their consensus mechanisms, and in my opinion... DPoS is a way to create a centralized ecosystem of services without a centralized delegation mechanism, hence EOS is called a weakly centralized blockchain.

Open-Source Software EOS.IO
The EOS ICO was raised through block.one, a company registered in the British Cayman Islands, with the intention of using the funds to develop the EOS.IO open-source software. Block.one was only responsible for the development of the EOS.IO software, not the launch of the EOS public chain, not the launch of the EOS public chain, not the launch of the EOS public chain!
EOS.IO is open source and anyone can take this software and the Genesis block to launch the public chain, so who would want to be responsible for launching the public chain? Of course, it is the shareholders who participated in the ICO in the beginning and want to convert their Tokens into native EOS coins as soon as possible. In order to avoid a GG fork at the beginning, the EOS public chain must be recognized by 15% of Tokens.
Therefore, the Tokens issued in ETH during the ICO fundraising phase have no value and will not be converted into EOS native coins once the EOS public network is not live, which is fortunate now. Anyone can take EOS.IO and create their own private chain, and conceptually EOS is the first public chain to use EOS.IO. After some twists and turns, it was not until mid-2018 that the EOS public chain went live.

EOS uses the DPoS consensus mechanism
The consensus mechanism and algorithm used by EOS is the DPoS (Delegated Proof-of-Stake) mechanism invented by EOS author Daniel Larimer. The blockchain is currently divided into three ecosystems - Bitcoin, ETH and Graphene - and EOS achieves a high-throughput trading environment through the Graphene technology developed by the Crypto Nomex team, which is actually a practical implementation of the DPoS concept (Bitcoin Bit shares also uses Graphene), used to make the super-nodes responsible for the blockchain network work properly and not mess up. The super nodes in charge of the blockchain network work well and don't split up or become independent (bifurcation or attack).

The 21 super nodes and VMs of EOS
The 21 elected nodes get 50% of the mining revenue, while the 100 alternate nodes get the other 50%.

If any of the 21 nodes misbehave, they may be voted out of the super node, and the candidate node will take over the job. These 21 nodes are responsible for the entire EOS blockchain network, so it is clear that EOS is a centralized architecture, or weakly centralized, but with a centralized DPoS mechanism to support a trustworthy and reliable EOS execution environment. In fact, in addition to the block-generating nodes (super nodes) being rewarded, the most popular smart contracts will also be rewarded, which is supposed to encourage DApps to get off the ground. Currently EOS supports WASM and Ethereum EVM execution, next time we will cover how to make an EOS Smart Contract. The EOS Smart Contract

EOS Economic View and Scarcity Features
Unlike ETH, the basic concept of EOS is that it is free to use, but you must pledge an equal percentage of EOS coins. Assuming you own 1% of the total issue of EOS, you have access to 1% of the entire network, which can be used to develop applications such as DApps. In addition, unlike Bitcoin, which issues new coins every year (through mining), EOS has an inflationary mechanism in the whitepaper to maintain its scarcity, so that these popular EOS are reduced by 5% (the current inflation rate) every year, which can be used to offset the proceeds sent to mining nodes. As to whether such a mechanism will be effective in maintaining the value of EOS, and whether there is a god in that, time will tell.

EOS Blockchain Account and Permissions
EOS provides a standardized, fine-grained, high-level account and permission mechanism that specifies which accounts can be used and when. What can be done at what time? The entire smart contract permissions are built on this one mechanism. The basic operation on EOS is an account, which must be applied for by an account, so it's a bit of a pain to apply for.
Each account has its own database, and once you enter the EOS world, you must have a small amount of EOS coins to maintain your account information. Accounts can pass structured messages to each other through EOS, a bit like a Message Queue, and can also publish smart contracts and bind permissions to execute them, with permissions supporting a namespace hierarchy.
In addition, EOS also provides an account rescue mechanism where you can regain control of your account with an Owner Key that was valid 30 days ago through the support of the Owner who created your account in the first place. In fact, many of the mechanisms used by EOS are the same as those used by Steam, such as the composite key permissions design.


EOS Storage decentralized storage
To introduce the EOS storage technology, here is the EOS Storage white paper, which can be read in English to help with sleep. Since the execution of DApps requires file storage, EOS implements file storage through IPFS technology. In order to provide storage and management, there is a smart contract issued by the @storage account on EOS, which manages the use of storage by issuing TOK Tokens in EOS. When you want to store a file, you need to lock a certain number of TOKs and they will not be released until you delete the file. When storing a file, you can specify which EOS block producer (super node) you want to upload the file to, and the node will broadcast the file after upload. However, the actual copy algorithm is not known to me, and if you look at it in terms of the native IPFS nature, there is actually a chance of data loss, for example if the super node you uploaded is ranked very far back and becomes not super anymore and the node shuts down. So how would the whole EOS network handle this, I don't see any clear practices here from EOS, so I look forward to hearing from someone who can answer.
How will storage space be priced? The pricing will be dynamically adjusted by a CRR value (Noah's Ruler). Each node can adjust its own CRR to attract EOS users to upload files. Since only the first 25 nodes can offer storage services, the node that wants to become a block generator will also heavily advertise its storage capacity and get people to vote for it, and when it becomes a super node, it can share in a lot of rewards for getting blocks out, and with rewards it can buy more hard drives!? Provide cheaper services!? Seems like a positive cycle, provided of course that people use it...

EOS Network Bandwidth
Storage space is paid for by the uploader locking TOK, what about download bandwidth? The current design also requires the downloader to lock the TOK for the duration of the download. Because TOK is also inflationary, and the current 5% inflation rate is used to pay the nodes that provide storage, applying the concept of the "time cost" of TOK. In this case, as long as there are enough people using EOS and enough TOKs locked at any time, there will be enough TOKs to generate inflationary revenue to maintain the storage network and bandwidth costs. math + economics + psychology is really awesome .......

EOS Illegal Information Management and Privacy
How is EOS managed for illegal information management and privacy? Subject to the law, EOS nodes can simply remove files if there are legal issues with the uploaded files. Of course, to avoid white-eye nodes cutting files indiscriminately, users can also gather to vote against a node to get it out in case of an anomaly. As for privacy, EOS Storage is not responsible for encrypting the content, so users should encrypt it themselves.


EOS Constitution and Constitutional Amendment System
As the EOS network operates on a small number of nodes with the top votes (weak centralization), it is important to establish a secure mechanism to avoid blockchain bifurcation should EOS.IO require a software update. This is why EOS was designed from the start with a mechanism to amend the constitution to avoid the bifurcation problem. The whole process of software updates is as follows.
1. The block producer proposes a constitutional amendment and it is approved by 17/21
2. Block producers maintain the 17/21 approval for 30 consecutive days
3. Full switch to the new Constitution Hash for signing
4. Change of Code-to-code submission via GIT Hash
5. Block producer maintains 17/21 approval for 30 consecutive days
6. The new constitution will come into effect in one week and will be upgraded within one week
7. Nodes that are not upgraded will be automatically shut down


So it looks like the whole upgrade process will take at least two months. I guess there is a reason for maintaining the 30-day approval, if there is a "north-south cabbage patch" where 21 nodes try to cheat together, there will be enough time for everyone to vote against the node to remove it. But then I thought, if these 21 nodes also hold the majority of EOS coins, then wouldn't that constitute a North-South conspiracy?