7 Facts About YuanChain (YCC)

Yuan Chain (YCC)
3 min readDec 14, 2022

YCC High-Performance Consensus Algorithm

YCC consensus adopts the POS33 consensus algorithm. It completes the confirmation of transactions and blocks through draw lots and votes, which eliminates the resource waste of POW. During the draw lots, less than 25 consensus nodes are selected in each round, to reduce the block confirmation time. The vote is similar to the BFT consensus algorithm, and the purpose is to reduce blockchain forks.

Mortgage

Consensus nodes obtain the qualifications to participate in the consensus through platform points mortgage. Nodes participating in the consensus can obtain a certain amount of YCC through block rewards. For ease of calculation, a certain amount of YCC (such as 10,000 YCC) is called a ticket. The YCC amount staked in each node is an integer multiple of the ticket.

Draw Lots

Draw lots can be executed when the consensus node has a ticket. The purpose of the draw lots is to select the consensus committee of the current height. Draw lots start in advance and chooses 25 committee members. The early draw lots are to allow sufficient time to determine the members of the committee before the start of the block.

In each round, each ticket has one chance to participate in the draw lots. The draw lots use the VRF algorithm, which is hash, proof = vrf(input{height, seed, vi, sk}.

Seed selects the hash of the previous block, and vi is the vote index, which is the index of the vote tickets. For example, node A has 5 tickets, and the value of vi is {0,1,2,3,4}. Sk is the private key corresponding to the address of node A.

Proof is used to verify the input. Hash is a value that is uniformly distributed in [0, 2²⁵⁶). You can simply use hash / 2²⁵⁶ < 25/all_votes, to judge whether this ticket is chosen in this round, and then the node broadcasts the chosen ticket.

Vote

The consensus node receives the broadcasted draw lots result and first verifies the correctness of the draw lots. After the timeout period, it ensures that enough draw lots results are received. By sorting the draw lots’ hash values, the smallest 25 hash values are selected as the committee members. If your draw lots result is within the 25, you will sign with your private key and broadcast the 25 committee members you have selected. This process is called the vote. The number of votes that have been selected is used as the weight of the vote.

After the consensus node receives the votes, it accumulates the weight of each vote. When the weight exceeds 17 (more than 2/3), it can confirm that the vote is a committee member of the current round.

When 25 committee members are determined, the node with the smallest hash is selected as the block packaging node for this round.

Proxy Vote

Consensus nodes prefer nodes with better network and hardware resources. Some users are unable to participate in voting due to hardware resource constraints. Users can entrust YCC to other consensus nodes. Consensus nodes can obtain rewards in proportion to the number of entrusted votes. In this way, users can obtain YCC without deploying nodes, which is suitable for users.

The entrusted vote does not need to expose one’s private key to consensus nodes, and mortgage and entrustment can be more convenient and secure.

Delegated vote supports multiple users entrusting a single consensus node, and also supports a single user entrusting multiple consensus nodes. Users are free to choose consensus nodes and support the cancellation of delegation at any time.

Aggregate Signature

Because each block must contain a vote proof to prove the legitimacy and distribution rewards of the consensus node. 25 votes occupy too much space for the block. Therefore, aggregated signatures are used to reduce the size of consensus transactions.

Performance

Using the above algorithm, each round of block confirmation can be completed within 1–2 seconds, and the high-performance network can reach 5000tps, which greatly speeds up the block confirmation time and throughput.

Official Site: www.yuan.org

Twitter: https://twitter.com/yuanchain

Telegram: https://t.me/yuanblockchain

Business Inquiries: business@yuan.org

Instagram: yuan_chain

--

--