Vite CEO Charles Liu Interviewed by Odaily

Introducing snapshot chain on the basis of DAG to ensure the efficiency and security of the ledger

Khun Sir
Vite Labs
5 min readSep 23, 2018

--

The article was originally posted on 36Kr Odaily Channel. Click here to review.

The number of public chain projects are endless, and the way each finds the balance between performance and security are solved in various ways.

Current common methods are as follows: First, change the consensus mechanism, such as Hyperledger’s PBFT and EOS’s DPoS. Second, change the network structure (for example, IOTA, Byteball and Nano all use DAG, which is actually different from the blockchain because of the data structure of the acyclic graph). Third, the direct use of off-chain solutions such as sub-chain/sidechain, state channel, or even cross-chain middleware under the chain. The fourth is sharding.

Vite (a public blockchain project) was recently contacted by the Odaily Planet Daily, and they explained why chose the second path described above — the use of the DAG ledger structure.

When Odaily Planet Daily reported on similar domestic projects (including Trustnote and InterValue, etc.), it was previously explained that in the data structure of IOTA and Byteball, transactions are linked to each other to form a DAG graph. The new unit can choose to link to any one or more of the old units, verifying through the new transaction and citing the old transaction to complete the verification, referred to as “DAG Consensus”.

This allows for a temporary small difference between the user’s books, which weakens the consistency of the data block throughout the network for a short period of time, and thus is less prone to blockage, which in turn increases transaction concurrency. Therefore, the larger the DAG chain network node size and the larger the transaction volume, the shorter the transaction confirmation time will be.

Vite founder Charles (Chunming) Liu explained that what distinguishes IOTA’s Tangle ledger is that a transaction randomly selects two precursor transactions. There are multiple paths in the ledger that traverse the transaction. Different paths may enter different states and cannot guarantee consensus.

This uniqueness makes it difficult to introduce smart contracts onto IOTA. Vite’s ledger structure, on the other hand, takes Nano’s block-lattice ledger (in which each account has its own chain) and records the sending and receiving transfers (in the case of smart contracts, requests and responses). The receiving status needs to refer the sender’s transaction to determine the order of the related transactions.

In the block-lattice structure, a transaction only affects the state of an account. If the recipient does not generate a status for receiving the transaction, the transfer funds will remain “in transit”. Although the entire network will synchronize the latest status of each chain, only the owner of the account chain can sign and broadcast the block to the entire network. This design is feasible in the transfer scenario.

However, in the smart contract scenario, it means that once the node is dropped, the services deployed will be unsustainable. Therefore, Vite allows the account to choose the node that sets the block permission itself and use a specific number of nodes, or Vite’s global consensus group, to ensure the availability of the service.

Vite’s White Paper argues that block-lattice maintains less partial ordering and is more suitable as a ledger for high-performance decentralized application platforms; however, its tamper-resistant features are poor and pose a security risk. So far, no other project has adopted this technique except for the Nano.

Charles pointed out that maintaining the order between transactions in the ledger has two effects. First, the order of transactions is different and affects the state of the system.

For example, in the case of a ticket purchasing service, the order between two ticket purchase requests may determine the final vesting of a ticket. Secondly, the order between transactions provides tamper-proof features. To tamper with a historical transaction, you need to reconstruct the hash of all the blocks that were produced before the transaction.

“The blockchain is safe because it is growing. Over time, a transaction is being referenced by other transactions more and more, so the possibility of being tampered with is getting smaller and smaller. So, waiting for enough confirmations (for example, 6 confirmations) can guarantee that the probability of the transaction being falsified falls below the security threshold.” Charles explained that some accounts in the block-lattice may not be traded for a long time, resulting in the last transaction being quoted insufficiently and prone to being tampered with.

To compensate for these shortcomings, Vite introduces a Snapshot Chain structure. The Snapshot Chain takes a “snapshot” of the entire end of the ledger every second and writes it to the snapshot block.

The latter snapshot block references the hash of the previous block to form a blockchain structure. The status of each snapshot block storage includes: the balance of the account, the Merkle root of the contract status, and the hash of the last transaction in each account chain.

The DAG ledger may be forked, but the global status is based on the Snapshot Chain being written. Writing a snapshot means the transaction is confirmed. If the snapshot chain itself forks, the nodes choose the longer Snapshot Chain to reach consensus.

The way in which resources are allocated is also somewhat similar to that of EOS — quotas are allocated based on the proportion of Tokens held by the account, but non-holders can also obtain the minimum quota through PoW, and the TPS of each account must not exceed a certain quota. If a business is facing a spike in activity, the user can also temporarily increase the quota by paying with Tokens or increasing the PoW difficulty.

Charles concluded that Vite improves system throughput through three aspects of asynchronous design, which includes separating requests and responses, writing and confirming separation of transactions, and using message communication rather than function calls between contracts.

Charles believes that the current TPS of the public chain is not only limited by the ledger structure and consensus mechanism, but the virtual machine is also an important performance bottleneck. Therefore, contract language and virtual machine optimization will also be some of the priorities of Vite’s future work.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Official: https://www.vite.org/

Telegram:

Twitter:https://twitter.com/vitelabs

Discord:https://discordapp.com/invite/CsVY76q

--

--