Bitcoin Forum
April 26, 2024, 06:39:00 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Next Generation Intelligent Consensus Algorithm | SPOW Consensus Algoritm  (Read 128 times)
atakanonur (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 4


View Profile
February 26, 2021, 09:39:46 AM
Last edit: March 04, 2021, 05:25:27 AM by atakanonur
Merited by ABCbits (1)
 #1

I would like to discuss this consensus algorithm with anyone who understands these algorithms. This idea has a mozilla public license so feel free to share it.

Illustrative Picture:
https://raw.githubusercontent.com/onuratakan/SPOW/main/What%20is%20the%20SPOW.png

PDF:
https://github.com/onuratakan/SPOW/blob/main/SPOW.pdf

Main Github Repository:
https://github.com/onuratakan/SPOW
1714156740
Hero Member
*
Offline Offline

Posts: 1714156740

View Profile Personal Message (Offline)

Ignore
1714156740
Reply with quote  #2

1714156740
Report to moderator
1714156740
Hero Member
*
Offline Offline

Posts: 1714156740

View Profile Personal Message (Offline)

Ignore
1714156740
Reply with quote  #2

1714156740
Report to moderator
If you want to be a moderator, report many posts with accuracy. You will be noticed.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714156740
Hero Member
*
Offline Offline

Posts: 1714156740

View Profile Personal Message (Offline)

Ignore
1714156740
Reply with quote  #2

1714156740
Report to moderator
1714156740
Hero Member
*
Offline Offline

Posts: 1714156740

View Profile Personal Message (Offline)

Ignore
1714156740
Reply with quote  #2

1714156740
Report to moderator
NotATether
Legendary
*
Offline Offline

Activity: 1582
Merit: 6687


bitcoincleanup.com / bitmixlist.org


View Profile WWW
February 26, 2021, 12:14:44 PM
 #2

There is an implementation difficulty in the SPOW picture. You say that large mining pools shouldn't reuse nonces of other large mining pools. But how are you going to strictly define "large" to something the protocol understands? How will you differentiate between mining pools, and miners (at the protocol level!) who are possibly using the same mining software?

Remember that this algorithm has to make it just as fair for tiny miners to find a block as it is for a miner with say 90% of the global hashrate. Since there are two hashes to be found and a miner has to pick one of them to find, it only takes two different miners like two S19's to find both hashes, since there is no protocol-level distance between mining pools and solo miners.

At any rate nodes cannot know about a mined block until it is submitted using an RPC call. By then it wouldn't be too hard to add a bunch of small-sized junk transactions to a mined block's merkle tree and defeat the stopgap measure for when two blocks have different merkle roots.

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
atakanonur (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 4


View Profile
February 26, 2021, 01:23:02 PM
Last edit: February 26, 2021, 03:48:18 PM by atakanonur
 #3

There is an implementation difficulty in the SPOW picture. You say that large mining pools shouldn't reuse nonces of other large mining pools. But how are you going to strictly define "large" to something the protocol understands? How will you differentiate between mining pools, and miners (at the protocol level!) who are possibly using the same mining software?

Remember that this algorithm has to make it just as fair for tiny miners to find a block as it is for a miner with say 90% of the global hashrate. Since there are two hashes to be found and a miner has to pick one of them to find, it only takes two different miners like two S19's to find both hashes, since there is no protocol-level distance between mining pools and solo miners.

First of all thank you for your comment


At the protocol level, large pools will follow the process of finding a hash to determine which nonce range will run, for example if the nonce is 500 and there is a pool among 400 600, that nonce will be found at normal speed. But if there were more miner pools operating in the 400 600 range, that means more power and that nonce would be found faster. In other words, pools can find the nonce range they will work in this way. Another way is for miner pools to clearly state this range, if the miner pools explicitly say this information will not lose anything, even more will get more because no more competitors will come in this nonce range, and new pools that know this information will choose another nonce range that suits them. This actually looks like this; There is a mine field in the middle and everyone is looking for the mine by buying some area from this field. The benefit of doing it this way is that honest miners work as if the total hash power is the same. If we were not using the normal mining system like this, the total hash power of honest miners would be divided.For example, if the total hash power is 100 and the number of large miner pools is 10, our hash power is actually 10 because all of the miners start from the same nonce. This means repeating the same job, and as a result, the union of forces is broken. If we distribute the nonce intervals in a certain order, as I said, we combine all our power.


The purpose of the two hash systems is to detect a potential attack or ofspring blockchain excess. If there is a baby chain enough to divide the miners into two, the merkle root in the hash found by the miners defending the a blockchain and the merkle root in the hash that the miners defending the b chain will find will not be the same. In this situation, a rumor process is started in order to stabilize the network. This can be called a kind of voting. However, no miner tries to do this without giving up the transactions they have. Another possibility is the 51 percent attack, if the attacker uses the hash power and targets the first or the second hash, or both are powerful for a certain amount of time, here the majority of miners choose the first hash as honest miners randomly choose which hash to try to find, and if the attacker has that. Honest miners will surely find a hash if the majority cannot guess correctly in percentage terms. In this case, as the miners find a hash, the attacker's block chain is on a rival chain, and in this case, the network enters the process of finding the right chain and rumor again, honest miners will not accept the attacker's incomplete chain, as the attacker wants to delete the existing transactions. , and all efforts of the attacker will be wasted So is there no probability the attacker won? There is, but very unlikely. The attacker needs to be able to find all the hashes to win, so that it is not a rival blockchain. He can only do this if he correctly predicts the dispersion rate of honest miners, but if the attacker is very strong (eg 80 percent) he can win, even if he knows the dispersion rate of honest miners with a bit of error. However, remember that 100 percent of the attackers wins when the cost of 51 attacks today is covered, there is always a risk for the attacker in this algorithm, and a high amount.




atakanonur (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 4


View Profile
February 26, 2021, 03:48:06 PM
 #4

At any rate nodes cannot know about a mined block until it is submitted using an RPC call. By then it wouldn't be too hard to add a bunch of small-sized junk transactions to a mined block's merkle tree and defeat the stopgap measure for when two blocks have different merkle roots.

When an attacker intends, it doesn't get anything because the protocol is designed so that each miner only passes to blockchains that have additional transactions to its own. Therefore, the transactions made cannot be reversed, that is, the attacker cannot reach the purpose of double spending.
atakanonur (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 4


View Profile
February 27, 2021, 03:28:54 PM
 #5

Remember that this algorithm has to make it just as fair for tiny miners to find a block as it is for a miner with say 90% of the global hashrate. Since there are two hashes to be found and a miner has to pick one of them to find, it only takes two different miners like two S19's to find both hashes, since there is no protocol-level distance between mining pools and solo miners.


Also, solo miners are not less likely to find them, they are still the same. However, as you know, the pow algorithm needs a pool structure, so solo miners are always unlikely to find hashes. In fact, the probability of winning when playing the lottery is higher than finding a hash. Also, the miner who finds any hash is rewarded, and the difficulty is the same on both hashes (don't get me wrong there is a dynamic difficulty change system just like bitcoin).
NotATether
Legendary
*
Offline Offline

Activity: 1582
Merit: 6687


bitcoincleanup.com / bitmixlist.org


View Profile WWW
February 27, 2021, 04:06:50 PM
 #6

At the protocol level, large pools will follow the process of finding a hash to determine which nonce range will run, for example if the nonce is 500 and there is a pool among 400 600, that nonce will be found at normal speed. But if there were more miner pools operating in the 400 600 range, that means more power and that nonce would be found faster. In other words, pools can find the nonce range they will work in this way. Another way is for miner pools to clearly state this range, if the miner pools explicitly say this information will not lose anything, even more will get more because no more competitors will come in this nonce range, and new pools that know this information will choose another nonce range that suits them. This actually looks like this; There is a mine field in the middle and everyone is looking for the mine by buying some area from this field. The benefit of doing it this way is that honest miners work as if the total hash power is the same. If we were not using the normal mining system like this, the total hash power of honest miners would be divided.For example, if the total hash power is 100 and the number of large miner pools is 10, our hash power is actually 10 because all of the miners start from the same nonce. This means repeating the same job, and as a result, the union of forces is broken. If we distribute the nonce intervals in a certain order, as I said, we combine all our power.

This bolded part would need to be coded in the mining software and not in the protocol, which doesn't control mining itself.

The extraNonce is a 32-bit value IIRC so a fair way to distribute all possible values equally between all the miners involves having them all go through the entire range of the other nonce, and something like 2^8 values of extraNonce as well, assuming a few million miners (the hardware) in commission and mining.

In reality the work won't be divided equally because miners aren't going to sit idly after they finish their range, because that isn't economical for them. A mining farm that pays X dollars for 5MWh of electricity a month, they're not just going to let that electricity they pay for sit wasted because it hurts their ROI.

Let's say you have a miner with double the hash rate of another miner, that faster miner will try more extraNonce values after its own range. It's this greediness around which you have to design an algorithm that completely mitigates the possibility of some other faction having greater hashpower other than the honest miners (who would also have to be defined and announced to miners via mining software).

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
atakanonur (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 4


View Profile
February 27, 2021, 07:48:46 PM
 #7

At the protocol level, large pools will follow the process of finding a hash to determine which nonce range will run, for example if the nonce is 500 and there is a pool among 400 600, that nonce will be found at normal speed. But if there were more miner pools operating in the 400 600 range, that means more power and that nonce would be found faster. In other words, pools can find the nonce range they will work in this way. Another way is for miner pools to clearly state this range, if the miner pools explicitly say this information will not lose anything, even more will get more because no more competitors will come in this nonce range, and new pools that know this information will choose another nonce range that suits them. This actually looks like this; There is a mine field in the middle and everyone is looking for the mine by buying some area from this field. The benefit of doing it this way is that honest miners work as if the total hash power is the same. If we were not using the normal mining system like this, the total hash power of honest miners would be divided.For example, if the total hash power is 100 and the number of large miner pools is 10, our hash power is actually 10 because all of the miners start from the same nonce. This means repeating the same job, and as a result, the union of forces is broken. If we distribute the nonce intervals in a certain order, as I said, we combine all our power.

This bolded part would need to be coded in the mining software and not in the protocol, which doesn't control mining itself.

The extraNonce is a 32-bit value IIRC so a fair way to distribute all possible values equally between all the miners involves having them all go through the entire range of the other nonce, and something like 2^8 values of extraNonce as well, assuming a few million miners (the hardware) in commission and mining.

In reality the work won't be divided equally because miners aren't going to sit idly after they finish their range, because that isn't economical for them. A mining farm that pays X dollars for 5MWh of electricity a month, they're not just going to let that electricity they pay for sit wasted because it hurts their ROI.

Let's say you have a miner with double the hash rate of another miner, that faster miner will try more extraNonce values after its own range. It's this greediness around which you have to design an algorithm that completely mitigates the possibility of some other faction having greater hashpower other than the honest miners (who would also have to be defined and announced to miners via mining software).


Yeah you are right for mining software.

For the second thing you said; We solve this part with the encouragement of miners. If the miner still has not found the hash after checking its range, it will look at other ranges. In this way, they will try to find nonce in greed and race.

for the third thing you said; Nonce intervals will not be equal if the miner is too strong we will expand his nonce range. And if nonce is not within its own range it will look at other ranges as well.

With this greed there will be no untested nonce range left

It is not possible to get what you said last, we cannot do it completely, but we can increase the cost and risk of not happening. In this way, we reduce possible risks (especially for small chains). In this algorithm it does exactly that. It unites the miners as if they were a single force and also detects and prevents the attack of the attacker. The attacker will need both 51 percent to win, and plenty of luck to find two hashes.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!