# Vite: Zero-gas Layer 1

By [Arya](https://paragraph.com/@aryaethn) · 2022-07-19

---

In this article we are going to talk about Vite (pronunciation: /vit/) project and analyse this project completely, from the fundamental aspect. Vite claims to be a layer 1 project which is EVM compatible and most importantly it is zero fee for transactions. The latest made me curious to analyse it to see how this project have reached zero gas fees. Is it like [IOTA project](https://www.iota.org/) or they have some other protocol?

TL;DR
-----

Since this article is a full analysis on the Vite project, it is pretty long. So If you want a very short version and my opinion, this section is for you.

*   Vite is using a [block-lattice](https://tokens-economy.gitbook.io/consensus/chain-based-dag/block-lattice-directed-acyclic-graphs-dags#:~:text=The%20Block%2Dlattice%20is%20a,which%20speed%20up%20transactions%20time.) instead of a linked list-like blockchain. (Block-lattice is pretty well defined in the text if you don’t have the time to read the link above)
    
*   Vite also uses a blockchain-like technology named snapshot chain which is the main responsible part to bring security.
    
*   Vite is using an HDPoS consensus mechanism that is designed by the team.
    
*   Vite virtual machine is pretty compatible with EVM and is using a smart contract programming language named Solidity++ which is the modified version of Solidity.
    
*   No big names in the team. Actually, there are almost no names in the team. The only member that is well-known is Richard Yan.
    
*   I found no investors.
    
*   Partners are only OK.
    
*   Roadmap is pretty great. They have thought on the future of the project very well.
    
*   Tokenomics. Well the tokenomics is fascinating. The managed to have no fees for the transactions but the token is inflationary, and will stay inflationary. No maximum is anticipated for it and it will grow for ever. This is both good and bad. But I am going to stay optimistic on it and take the good side.
    

Technology
----------

The project claims that after the birth of the Ethereum, the Ethereum community and other similar projects began to improve the system from different directions. From the abstract model of the system, the following directions can be improved:

*   Improving the system state
    
*   Improving the state transition function
    
*   Improving the structure of the ledger
    
*   Improving the consensus algorithm
    

### Improving the system state

The main idea of improving the state of the system is to localise the global state of the world, each node is no longer concerned with all transactions and state transfers, and only maintains a subset of the whole state machine. In this way, the potentials of the set S and the set T are greatly reduced, thus improving the scalability of the system. Such systems include: [Cosmos](https://cosmos.network/), [Aelf](https://aelf.com/), [Plian](https://plian.org/) and so on.

In essence, this side chain based scheme sacrifices the wholeness of the system state in exchange for the scalability. This makes the decentralisation of each dApp running on it be weakened - the transaction history of a smart contract is no longer saved by every node in the whole network, but only by a part of the node. In addition, cross contract interaction will become the bottleneck of such a system. For example,in Cosmos, interactions in different Zone require a common chain Hub to complete.

### improving state transition function

Based on improving EVM, some projects provide more abundant smart contract programming languages. For example, the smart contract in [NEO](https://neo.org/) is called NeoContract, which can be developed in the popular programming languages such as Java,C# etc; [EOS](https://eos.io/) is programmed with C/C++.

### improving the ledger structure

The improvement direction of the ledger structure is the construction of the equivalent class. The linear ledger with the global order of multiple transactions is improved to a nonlinear ledger that only records partial order relations. This nonlinear ledger structure is a DAG (Directed Acyclic Graph). At present, [Obyte](https://obyte.org/), IOTA, [Nano](https://nano.org/) and other projects have realised the function of encrypting money based on DAG’s account structure. Some projects are trying to use DAG to implement smart contracts, but so far, improvements in this direction are still being explored.

### improving consensus algorithm

The improvement of consensus algorithm is mostly to improve the throughput of the system, and the main direction is to suppress the generation of false fork. False fork is when a fork happens but the first state (block) in the different forks are happening to be the same. In this situation we call the fork a false one since both states are exactly the same and the fork must not happen in the first place.

Moving on to the project and how they tried to solve issues they have found in the Ethereum blockchain, we are going to firstly discuss the ledger used by Vite.

### Ledger

Vite makes use of a DAG ledger structure called block-lattice. Each account has its own chain. Each transaction refers to the hash of the previous transaction in the same account. Transactions are divided into two types: "request transactions" and "response transactions.” A response transaction needs to refer to the hash of the corresponding request transaction. This setup creates a grid-like DAG structure. This DAG structure that Vite uses is very similar to Nano project’s Block-lattice, and Vite is mainly inspired by Nano to get to this ledger structure.

![An Example of Vite Ledger and Comparison to Other Ledgers](https://storage.googleapis.com/papyrus_images/06bb75b396fd32c683b7f90d2557d2b430919716b5d76dceb30d72256d74b3b7.png)

An Example of Vite Ledger and Comparison to Other Ledgers

Such a structure allows parallel writing of individual transactions, reducing the probability of collisions and improving system throughput.

Note that this structure has an inherent deficiency in security. This is because transactions are grouped by accounts, and each transaction is only attached to the chain associated with the relevant account. Transactions generated by other accounts do not automatically become the subsequent nodes of the previous transaction. Therefore, for some transactions, the rollback probability of their reversion will not drop over time. To address this issue, Vite makes use of the snapshot chain technology which we are now discussing it.

![Snapshot Chain](https://storage.googleapis.com/papyrus_images/2f2f75ec0267b3528dbfea687146986deadfe850458de138e743f1e6b1a3ca34.png)

Snapshot Chain

A snapshot block is a block that stores a state snapshot of a Vite ledger, including the balance of the account, the Merkle root of the contract state, and the hash of the last block in each account chain. The snapshot chain is a chain structure composed of snapshot blocks, and the next snapshot block refers to the hash of the previous snapshot block. Snapshot chain is the most important storage structure in Vite. Its main function is to maintain the consensus of Vite ledgers.

In Vite, if a transaction is snapshot by snapshot chain, the transaction is confirmed. The depth of the snapshot block in the first snapshot, is called the confirmation number of the transaction. Under this definition, the number of confirmed transactions will increase by 1 when the snapshot chain grows, and the probability of the double spend attack decreases with the increase of the snapshot chain. In this way, users can customise the required confirmation number by waiting for different confirmation numbers according to the specific scenario.

The snapshot chain itself relies on a consensus algorithm. If the snapshot chain is forked, the **longest** fork is chosen as a valid fork. When the snapshot chain is switched to a new fork, the original snapshot information will be rolled back, that means the original consensus on the ledger was overthrown, and replaced by the new consensus. Therefore,snapshot chain is the cornerstone of the whole system security, and needs to be treated seriously.

Now it is time to understand how Vite consensus works.

### Consensus

The consensus protocol of Vite is HDPoS (Hierarchical Delegated Proof of Stake). In this hierarchical consensus has two independent process:

*   Local consensus generate the blocks corresponding to request transactions and response transaction in the user account or contract account, and writes to the ledgers.
    
*   Global consensus snapshots the data in the ledger and generates snapshot blocks. If the ledger is forked, choose one of them.
    

Since the ledger structure of Vite is organised into multiple account chains according to different accounts, we can conveniently define both the right of production of the blocks in the ledger according to the dimension of the account, and the production right of the snapshot block belong to a single group of users. In this way, we can put a number of account chains or snapshot chains into a consensus group, and in the consensus group, we can use a unified way to produce the block and reach a consensus. The definition of the consensus group, mathematically, is a bit complex. So, I’m going to give a little bit easier and more understandable definition of consensus group.

**Consensus Group:** Consensus group consists of four parts. Part 1 is the snapshot chain of the consensus group in the ledger. The second part is the user who has the right to produce block. Part number 3 is the algorithm used by the consensus group and the last part specifies the parameters used in the consensus group.

The **consensus group of snapshot chains** is called snapshot consensus group, which is the most important consensus group in Vite. The consensus algorithm of snapshot consensus group adopts the DPoS algorithm and corresponding to the local consensus in the hierarchical model. The number of agents and the interval of the block generation are specified by the parameter.

For example, we can specify snapshot consensus groups with 25 proxy nodes to produce snapshot blocks at intervals of 1 second. This ensures that the transaction is confirmed to be fast enough. Achieving 10 times transaction confirmation need to wait 10 seconds in maximum.

There exists two other consensus groups: private consensus group and the delegate consensus group.

The **private consensus group** is only applicable to the production of transaction blocks in ledgers, and belongs to the account chain of private consensus group. The blocks can only be produced by the owner of the private key of the account. By default, all user accounts belong to the private consensus group.

The greatest advantage of the private consensus group is to reduce the probability of fork. Because only one user has the right to produce blocks, the only possibility of fork is that the user initiate a double spend attack personally or a program error.

The disadvantage of the private consensus group is that the user nodes must be online before they can pack the transaction. This is not very suitable for the contract account. Once the owner’s node fails, no other node can replace the response transaction that it produces contracts,which is equivalent to reducing the service availability of dApp.

In the **delegate consensus group**, instead of user account, a set of designated proxy nodes is used to package the transaction through the DPoS algorithm. Both user accounts and contractual accounts can be added to the consensus group. Users can set up a set of separate agent nodes and establish a new consensus group. There is also a default consensus group in Vite to help package transactions for all the other accounts that haven’t established their delegate consensus group individually, which is also known as the **public consensus group**.

The delegate consensus group is suitable for most of the contract accounts, because most of the transactions in the contract account are contract response transactions, in which higher availability and lower delays are needed than the receivable transactions in the user account.

In the Vite protocol, the priority of global consensus is higher than that of local consensus. When the local consensus is forked, the result of global consensus selection will prevail. In other words, once the global consensus selected a fork of the local consensus as the final result, even if a longer fork of a certain account chain in the future accounts occurs, it will not cause the roll back of the global consensus results.

### Virtual Machine

Vite virtual machine is pretty EVM compatible. Also, there is a smart contract programming language named Solidity++ that is a modified version of the Solidity smart contract programming language in the Ethereum virtual machine. There very little differences between the two languages. If you are a developer and want to know what are these differences and how to deal with them, I recommend you to read their [documentation](https://docs.vite.org/vite-docs/contract/#) about this differences.

The last but not the least part that one must know about the Vite project technology is how the token and fee are handled. We are going to discuss this matter in the tokenomics section.

Team & Investors & Partners
---------------------------

### Team

The only significant team member that I found who is actively going to AMAs and other interviews is Richard Yan. Richard is a co-founder of Vite Labs which is the creator of the Vite project. Richard is also host of three shows according to his LinkedIn. He has been finance and BD lead in Scratch and he is a former Vice president of Two Sigma.

He has a bachelor in computer science from Dartmouth College and an MBA from NYU Stern School of Business.

Overall, I couldn’t find much of the team so I can give a good grade to the team. Sadly, even though the project, whitepaper, and documentations are somewhat great, the team in my opinion is not good enough to make Vite great.

### Investors

What? If you found any investors please tell me. I would really appreciate it.

### Partners

According to their own website, Alchemy, Ankr, BTC.com, Harmony, HashFin, OK blockchain capital, ChainLink, HashQuark, f2pool, and InfStones are Vite partners. I see good names here but not that much that I give this part a good grade.

Roadmap
-------

### Completed

Vite started its work in Q2 2018. They had a private sale in Q3 that year as ERC 20 tokens. In Q4 they managed to convert 56% of the ERC 20 tokens to native blockchain tokens.

Then in Q1 2019 they launched ViteX ,the native Dex of Vite blockchain, as beta test and also launched their Solidity++ compiler as beta test. Going on to Q3 2019, ViteX is launched fully and the mobile version of it is up, too. In Q4 that year, Vite mainly focused on ViteX and its marketing.

In Q2 2020, they managed to partner with Ledger as a hardware wallet. Q3 and Q4 of 2020 were full of minor upgrades and grants to dApps.

Q1 2021 was the first time Vite Bridge were mentioned. Vite Bridge is a Trustless & Universal Cross-chain Transfer Protocol. Q1 to Q3 2021 was to launch Vite Bridge and some minor upgrades to ViteX. Q4 2021, the first bridge to BSC testnet was launched on Vite Bridge.

Q1 2022, Solidity++ v0.8 launched on beta on the testnet. And Ethereum bridge is on the process on the testnet.

### Ongoing

Q2 2022, was full of big news. Solidity++ v0.8 was finally released on mainnet. Avalanche bridge is in deployment on testnet. One Vuiler (Vite Builder) hackathon is organised. And some grants were given to ecosystem dApps which was governed by Vuilder DAO using VITE tokens.

### Future

The future plans of the project looks awesome. Q3 2022 is the quarter of the first mainnet launch of Vite Bridge to BSC. And in Q4 node deployment becomes as easy as 1 click.

In one word: GREAT roadmap.

Tokenomics
----------

In order to quantify platform computing and storage resources and encourage nodes to run, Vite has built a native token ViteToken. The basic unit of token is VITE, the smallest unit is attov, 1 VITE= 10^18 attov.

### Token Allocation

![Token Allocation of VITE ](https://storage.googleapis.com/papyrus_images/429be45cc6d381ec9268b180122a8ec996a0375baa60c6099cee8bddc6b2550c.png)

Token Allocation of VITE

The snapshot chain is the key to the security and performance of the Vite platform. In order to incite node to participate in the transaction verification, the Vite protocol sets up the forging reward for the production of the snapshot block.

On the contrary, when users issue new tokens, deploy contracts, register VNS domain names and obtain resource quotas, they need to consume or mortgage ViteToken.

Under the combined action of these two factors, it is conducive to optimising the allocation of system resources.

### Snapshot Block Producer

To become a snapshot block producer (SBP), user must stake at least 1 million VITE. Knowing that the consensus mechanism is DPoS-based, more tokens means more votes. This staked amount will have a lock up of 3 months. After the locking period expires, the SBP's owner (registration account) can cancel the SBP registration and retrieve staked VITE tokens.

In the Mainnet, registering SBP, producing blocks and withdrawing rewards can be from 3 different addresses.

To register one SBP, the account shall send an **SBP Registration** transaction to Vite's built-in consensus smart contract. When the transaction is confirmed, the registration is completed.

Similarly, to cancel an SBP whose locking period has expired, the registration account needs send **Cancel Registration** transaction to the consensus contract. In this case, the node will be removed from SBP list once the transaction is confirmed.

A round is approximately 75 seconds. Voting result is re-calculated in every 75 seconds in order to select the SBPs in next round. Each SBP will have chance to produce 3 consecutive blocks in a round.

In each round, 25 SBPs are selected according to following rules:

*   23 SBPs are randomly selected from the top 25 (sorted by votes) supernodes. Ratio is 23/2523/25
    
*   2 SBPs are randomly selected from supernodes ranking from 26 to 100. Ratio is 2/752/75
    

How many SBPs are there now? According to [ViteScan](https://vitescan.io/sbps) there are only 46 SBPs at the time of writing this article. So becoming an SBP now and get some rewards is pretty easy.

An annual inflation of up to 3% of circulation of VITE are minted as SBP rewards. In the Mainnet, the reward for each snapshot block is 0.951293759512937595 VITE.

The rewards are equally split in 2 parts:

*   Rewards Allocated to SBP Who Produced Blocks
    

50% of rewards will be given to block producers in number of the blocks created, called **Block Creation Reward**.

*   Rewards Allocated to Top 100 SBPs
    

50% of rewards will be given to the top 100 SBPs, called **Candidate Additional Reward**.

### Fee (?!)

Vite project have adopted a quota based resource allocation protocol, which allows users to obtain higher resource quotas in three ways:

*   A PoW is calculated when the transaction is initiated; Just like IOTA
    
*   Mortgage a certain amount of VITE in the account;
    
*   To destroy a small amount of VITE in one time i.e. burn some tokens.
    

If a user holds abundant VITE assets, but does not need to utilise so many resource quotas, he can choose to rent his quota to other users.

The Vite system supports a special type of transaction to transfer the right to use an account resource quota. In this transaction, the number of VITE that can be mortgaged, the address of a transferee, and the duration of a lease can be specified. Once the transaction is confirmed, the resource quota corresponding to the amount of the token will be included in the assignee’s account. Once the lease time is exceeded, the quota will be calculated into the transferer account. The unit of leasing time is second. The system will be converted into the height difference of the snapshot block, so there may be some deviation.

The leasing income can be obtained by the user. The Vite system only provides a quota transfer transaction, and the pricing and payment of the leasing can be achieved through a third party smart contract.

In some scenarios, Vite tokens are "burned" and removed from the system. Here are some examples: the temporary increase of quotas, the issuance of new tokens, the payment of cross-chain transfer fees and the payment for matching of looped transactions, the access to VNS naming services, and so on. The consumption of tokens will reduce Vite’s liquidity, thereby offsetting inflation.

One important point to notice is that user cannot use the same VITE tokens to both becoming a snapshot block producer and getting bigger quota rate.

### Where can you buy VITE?

Currently, you can buy VITE tokens in Binance, ViteX, Bittrex, CoinEx, WazirX, Bitrue, Uniswap, SushiSwap, 1inch, and PancakeSwap.

Conclusion
----------

To get a conclusion and my opinion on this project, please read the TL;DR section.

---

*Originally published on [Arya](https://paragraph.com/@aryaethn/vite-zero-gas-layer-1)*
