Blockchain Consensus Mechanism- Innovative Thinking

Blockchain technology, the innovative part involves four aspects

  • consensus mechanism
  • distributed storage
  • smart contract
  • Cryptography

(PS: I personally think that the two directions that are better for innovation are consensus mechanism and smart contract. For research, if you are partial to theory <such as a master's degree), it is recommended to consider the consensus mechanism; if you are partial to engineering <such as a professional master's degree>, it is recommended to consider smart contract )


Evaluation criteria for blockchain performance, generally two attributes

  • throughput
  • consensus delay

Innovation

We cannot "innovate for the sake of innovation". The purpose of innovation is to improve the performance of the system, so we must aim at improving system throughput and reducing consensus latency.

The following only introduces the innovation direction of BFT: (mainly my research topic is in this direction)

First, summarize the pain points of PBFT

  1. The communication complexity between the primary and secondary nodes is high
  2. The view switching process is complicated (view change)
  3. No penalties for Byzantine nodes
  4. Poor system scalability

Reduce the communication complexity of primary and secondary nodes

Existing mechanism:

  1. zyzzyva
  2. SBFT

Reduce the communication complexity of view switching

Block verification time is long

Existing mechanism:

  1. Select the block publisher first, and then publish the block
  2. In PBFT, consensus nodes are elected, not all nodes participate in the consensus

How to remove Byzantine nodes

There are several ways as follows:
1. Introduce the integrity mechanism, Byzantine nodes will be cleared
2. Introduce the security deposit mechanism, the evil nodes will be cleared and the amount will be confiscated

Improve consensus efficiency:

To be perfected

Node Privacy

In order to prevent Byzantine nodes, you can consider introducing a security deposit mechanism. The security of the security deposit needs to be guaranteed. At this time, you can consider ring signatures or group signatures, but introducing group signatures or ring signatures will affect efficiency|-ring signature- but will affect
consensus efficiency
|-groupsignature

Privacy of Transaction Data

  • The person who uploads digitally signs, even if the non-data owner downloads the data, it is encrypted
  • You can also restrict access (restricting access to people with certain attributes)

Improve system throughput:

Control the number of consensus nodes

(Add weight attributes to consensus nodes, dynamically change the number of participating consensus nodes according to changes in business volume and physical resources - increase the penalty mechanism) (allocate blocks that require consensus according to the physical state of consensus nodes)

Rules for generating control blocks:

Is it generated according to time or according to the number of transactions (it seems that it is not very good, some solidification)

The algorithm of selecting consensus nodes based on integrity value and credibility will have the problem of accumulation of integrity value. It is not friendly to new nodes that join the system, and the leader is always the leader. How to solve this problem?
|-Consider that the integrity value is cleared regularly, after clearing, the integrity value of all nodes in the network is the same, all 0; |-Consider,
half of the old consensus nodes are randomly reserved, and half of the newly applied consensus nodes are added! (The old-to-new ratio can be changed!)
|- How to select the only node that generates a block from the consensus nodes (hereinafter referred to as the bookkeeping node)? Pick one at random! But in order to prevent this node from cheating, limit the time interval for it to be elected as a bookkeeping node.
|- For nodes that do not act (Byzantine nodes, lazy nodes), penalties, lower trust, and even lifelong bans from becoming consensus nodes (several times of non-response) |
-

However, if the consensus node is randomly selected based on the integrity value, what if the credibility is low, what if a Byzantine node is selected?
|- cannot be randomly selected

Improvements to the consensus algorithm

(Remove Byzantine nodes) Improve the security of the system:

(1) It is proposed to introduce the "guarantee deposit" mechanism and "credibility evaluation". For inert nodes, if they do not act once, their reputation will be reduced by one level. If they do not act three times in a row, the consensus network will be eliminated and a part of the deposit will be deducted; (
2 ) For Byzantine nodes, detect their malicious behavior, kick them out of the consensus network, and deduct all the deposits they paid;
(3) For nodes with excellent performance, improve their "credibility"
; The mechanism "has a disadvantage: for a node that is elected as a consensus node at the beginning and always performs well, its reputation value will always accumulate, which means that this node will always be elected. In order to solve this problem, this article considers to clear the "reputation value" after a fixed period of time, that is, the reputation value of all nodes is 0. In this way, it is more fair for new nodes to join the network; but for the sake of safety, the
next The selection of a round of consensus nodes will randomly retain some of the current round of consensus nodes to prevent the influx of Byzantine nodes, and the remaining consensus node positions will be selected from the candidate consensus nodes that have submitted deposits.

Improve the consensus efficiency of the system:

(1) Narrow down the scope of the consensus, refer to the "DPoS" election mechanism, vote by the nodes in the network, select a certain number of consensus nodes (nodes with high reputation are easy to be elected), and these selected consensus nodes will verify " Transaction" legitimacy, and packaged into blocks, that is, each consensus node can package blocks, and after packaging into blocks, send the block to the master node; the number of nodes selected each time should be based on the time period Different, make appropriate changes
(2) At the same time, the master node considers that the physical status of each consensus node selected is different, and the amount of "transaction" data allocated to each consensus node is different, that is, the amount of "transaction" data for each consensus node The workload of packaging is different to prevent "data blocking".
In the end, the work of forming a block into a chain is completed by the master node.

Guess you like

Origin blog.csdn.net/Sanayeah/article/details/124183038