Rethinking PoA Consensus Algorithm - PoG Algorithm
Hello everyone, my name is Konstantin, I am a programmer from Kazakhstan. Now I'm creating my own blockchain platform and would like to share my thoughts on the existing consensus algorithms and what I came up with for my network. Perhaps my idea is not new, I will be glad if you share with me information about where you have already seen a similar implementation.
So, on the topic. Everyone who is even a little familiar with blockchain technology and peer-to-peer networks knows about consensus algorithms. In short, the consensus algorithm helps to come to an agreement in a network where all nodes are equal. This is vital when working with information, as there may be intruders on the network who will try to fake data. To protect against this, the nodes need to somehow determine which data is correct and which is not, and for this, they came up with consensus algorithms.
At the moment, the most common are the following implementations:
1. PoW (proof of work)proof of work. The correctness of the data is confirmed by the node that performed a certain work to solve a complex task, the result of which is easy to verify. The algorithm provides security by the fact that if an attacker wants to trick the network, he will need computing power that exceeds the power of the rest of the network. This algorithm has drawbacks and opponents, there is a lot of material about this on the Internet, now we will not stop there.
2. PoS (proof of stake)proof of ownership. The data is confirmed by a random node that has coins of this network. The more coins, the higher the chance that you confirm the data. In my opinion, this is far from the best algorithm, because the rich will become even richer and as a result, almost all power can be concentrated in one hand. Maybe I didn’t understand something, you can correct me in the comments.
3. PoI (proof of importance) proof of importance. In fact, the same PoS is only taken into account, in addition to the number of coins, the number of completed transactions and the duration of the network are taken.
4. PoA (proof of Authority)proof of authority. Only those nodes that were initially given the right to generate a new block. And here, as you know, there can be no talk of complete decentralization. But is it so bad?
Anarchy will not bring to good
There has always been a leader in any community: in the tribes of the leader, in the cities of mayors, in states rulers, presidents, parliament, etc. They are simply necessary to maintain order and further development of society. Another thing is that the manager can abuse the authority and this, in my opinion, is the main problem of the PoI algorithm. That is, the nodes that confirm the data can be programmed as you like. This does not mean that they will steal your money, no, it means that they can ignore some data (transactions) or confirm the data in a favorable order for them, well, or anything else.
I thought for a long time about how to organize the network so that it remains decentralized (at least partially), but at the same time it was impossible to abuse power. Although when you consider that people voluntarily give their money to banks and don’t really think about what happens to them, the dictatorship in financial matters doesn’t really concern people. But back to the topic.
PoG (proof of genesis) proof of origin
As you probably know, the first block in the blockchain network is called genesis. I decided that it would be logical to give the right to confirm the correctness of the information to the creator of the network, because if you do not trust the creator, then why use this network? It is the developer (creator) who works to maintain and develop the network and it makes no sense to try to deceive the participants. All he needs is stable transparent operation of the network, its further development and ... A small fee for transactions. This by the way already refers to the monetization of the platform, because money is needed to develop and maintain the system. The commission will also help get rid of DDOS-a. If someone wants to spam the network with a bunch of transactions, he will have to pay well for it.
PoG is simple: 2 addresses are indicated in the genesis block - the first will sign the blockchain blocks, the second is necessary for protection. If in some way the signature of the first address is reproduced or stolen, then the next genesis block is issued, where the second address will become the main address, the additional address will be created again and the time stamp to cancel all the blocks created after it.
The fact that the blocks are not signed by a specific node, namely the owner of the genesis, will make the network more fault tolerant, since blocks can be signed from any node in the network. So if the main node fails, or it is blocked, or something else happens to it, I just start generating blocks from another computer on the network.
What we have
- There is a peer-to-peer network whose members send transactions.
- Transactions diverge over the network and hang in unconfirmed.
- At a certain time interval, a block of unconfirmed transactions is formed and is also sent over the network.
- The nodes that received the new block verify that it is valid and signed by the genesis and, if everything is correct, delete the transactions that have already been entered into the block from the unconfirmed ones.
- Transaction fees protect your network from spam.
- The absence of a tight binding of the signature to a specific node makes the network more fault tolerant, because a new block can appear from different ends of the network.
- If the genesis of the signature is stolen, a new genesis block is issued that cancels the fake blocks.
- Rejecting the transaction to the developer does not make sense, because he will lose commission and user trust, and he will not be able to fake data, because when a block is received by other network nodes, it is checked.
Afterword
I will be glad to answer your questions and