Bitcoin Forum
May 08, 2024, 08:29:13 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Safe Proof of Work  (Read 97 times)
atakanonur (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 4


View Profile
March 04, 2021, 05:29:43 AM
 #1

Abstract. Safe Proof of Work (SPOW) is a consensus algorithm blockchain that deals with the main drawbacks of the proof of work algorithm, This algorithm greatly solved the biggest security problem of the POW blockchain system, this is %51 attack. The standard POW is open to this attack. If someone wants to attack the POW blockchain, if it covers the cost, successfully hacks the blockchain. But SPOW blockchain offers a system that almost completely prevents attempting this attack. SPOW does this by sprinkling some unknowable and unity power into it.




Hello, I have been developing this algorithm for a while, I have prepared a pdf with detailed simulations, I want you from the forum residents to review this pdf and return. If this algorithm is used, there will no longer be any coins that will be subject to 51 attacks.


https://github.com/onuratakan/SPOW
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715156953
Hero Member
*
Offline Offline

Posts: 1715156953

View Profile Personal Message (Offline)

Ignore
1715156953
Reply with quote  #2

1715156953
Report to moderator
1715156953
Hero Member
*
Offline Offline

Posts: 1715156953

View Profile Personal Message (Offline)

Ignore
1715156953
Reply with quote  #2

1715156953
Report to moderator
1715156953
Hero Member
*
Offline Offline

Posts: 1715156953

View Profile Personal Message (Offline)

Ignore
1715156953
Reply with quote  #2

1715156953
Report to moderator
vjudeu
Hero Member
*****
Offline Offline

Activity: 678
Merit: 1560



View Profile
March 04, 2021, 07:27:32 AM
 #2

Quote
people will be asked to type a random number
Don't bet on it, people are terrible at picking truly random numbers.

Quote
The system makes miners do this randomly.
Your software may do this randomly, but what about people running custom software? And what about mining pools? Also, how it is checked that some other miner did it randomly? What if someone will start always picking the first block?

Quote
Transfer fees increase based on total hash power
Why? Also, as you look at Bitcoin fees, there is no such correlation. It is quite reversed in fact, the earliest non-zero fees were 0.01 BTC and the minimal accepted fee (in BTC) is getting lower and lower since that. Even if you assume paying one satoshi per difficulty and linear growth at one satoshi per difficulty, it would be around 10% coin supply transfer fee, assuming current difficulty around 21 T. Of course you can change allowed fees in more predictable manner, but still, is there any reason to enforce any fee at consensus level? In Bitcoin, any fee is accepted if some transaction is correct and is part of the chain, there are some restrictions about standardness only at mempool level (but any miner can change that).

Quote
All miners choose the same transactions from incoming transactions based on timestamp, so a partnership is established, and miners gossip between them to ensure this.
How you can be sure that some single transaction has some timestamp if it is not in some mined block?

Quote
When the other hash arrives, they check the blockchain block merkle root of their two hashes, if they are equal, the blockchain will be accepted and all nodes pass to this chain.
Two hashes can be equal only if they are based on exactly the same data. So, here it is needed to have exactly the same transactions in exactly the same order. And exactly the same coinbase transaction, so why the second miner is enforced to give up and give block reward to some other miner?

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
atakanonur (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 4


View Profile
March 04, 2021, 07:56:00 AM
 #3

Don't bet on it, people are terrible at picking truly random numbers.
Regardless, the best way to determine seed numbers

Your software may do this randomly, but what about people running custom software? And what about mining pools? Also, how it is checked that some other miner did it randomly? What if someone will start always picking the first block?
It makes no sense to do this, it won't pay off, the difficulty is the same on both hashes. Choosing one of the two hashes at random is to protect the network from potential attackers. A sane miner does this. The attacker is content with guessing to find two hashes, but this is very difficult, even after the scratch gets overwhelmed, the pattern of dispersion changes because new miners can be added.


Why? Also, as you look at Bitcoin fees, there is no such correlation. It is quite reversed in fact, the earliest non-zero fees were 0.01 BTC and the minimal accepted fee (in BTC) is getting lower and lower since that. Even if you assume paying one satoshi per difficulty and linear growth at one satoshi per difficulty, it would be around 10% coin supply transfer fee, assuming current difficulty around 21 T. Of course you can change allowed fees in more predictable manner, but still, is there any reason to enforce any fee at consensus level? In Bitcoin, any fee is accepted if some transaction is correct and is part of the chain, there are some restrictions about standardness only at mempool level (but any miner can change that).
Miners get the same fee for each transaction at the protocol level, so there is no need to choose a transaction, if they had chosen each miner could make a block of their own, which would result in the creation of child blockchains, as in bitcoin, at the same time think that the attacker is dealing with a single block. While using its power to try all nonce's starting from 0, honest miners both work on different blocks and they all start from 0 and try again nonce's that each other has tried but could not find before. So they don't use a clever distribution of power. This makes it easy for the attacker to reach its goal.


How you can be sure that some single transaction has some timestamp if it is not in some mined block?
People write the signature algorithm in time while making a transaction, and if the network is tried to be fooled here, the transaction is rejected, how? If the signed time is a certain amount away from the time it came to the miner then a minus time has been written. In this case, the transaction is denied. People who want to make a transaction must enter the time properly, and at the same time, the signed transaction must be sent to the miners without losing its validity.

Two hashes can be equal only if they are based on exactly the same data. So, here it is needed to have exactly the same transactions in exactly the same order. And exactly the same coinbase transaction, so why the second miner is enforced to give up and give block reward to some other miner?
A block needs two hashes to generate, and a block cannot be created with a single hash, so two hashes have a reward, and both hashes have the same difficulty.
If you say: if the merkle root of the hashes the miners found is different, the second miner's will be invalid

No, if the merkle root is different, it means that the consensus is broken and the chain has been attacked. In this case, the honest miners quickly get an order among themselves, according to protocol rules, the attacker's chain with incomplete transactions is not passed.
vjudeu
Hero Member
*****
Offline Offline

Activity: 678
Merit: 1560



View Profile
March 04, 2021, 09:05:56 AM
 #4

Quote
If the signed time is a certain amount away from the time it came to the miner then a minus time has been written. In this case, the transaction is denied. People who want to make a transaction must enter the time properly, and at the same time, the signed transaction must be sent to the miners without losing its validity.
In this way you close the door for any second layers for your coin. So, nothing like Lightning Network would be possible in your coin. Also, some scenarios would be impossible, for example in Bitcoin you can sign some transaction upfront, protect it with timelock and give it to someone. In your coin, such thing would be impossible, because that transaction would expire. And what about chain reorganizations? If there would be any such thing, then old transactions could not be "just picked and added to another chain". They will expire, which can be sometimes problematic and can cause loss of funds.

Quote
two hashes have a reward
To be identical, they have to contain exactly the same data (including coinbase). So, if the first miner will find some hash, the second miner would have to just repeat the first miner's hash. That's why two hashes will reward the same miner. So, what's the point in having two identical hashes after all? What's the point in trying to find the second hash when the first will be announced?

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
atakanonur (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 4


View Profile
March 04, 2021, 09:26:49 AM
 #5

In this way you close the door for any second layers for your coin. So, nothing like Lightning Network would be possible in your coin. Also, some scenarios would be impossible, for example in Bitcoin you can sign some transaction upfront, protect it with timelock and give it to someone. In your coin, such thing would be impossible, because that transaction would expire. And what about chain reorganizations? If there would be any such thing, then old transactions could not be "just picked and added to another chain". They will expire, which can be sometimes problematic and can cause loss of funds.
If the person who wants to do the transaction sends the transaction shortly after signing, enough miners will already keep that transaction in its transaction pool, if it cannot be added in that block, it will be added in the next block. So the transaction will not be lost. However, if he wants to cheat the network, he will not be able to get the miners to accept his transaction.

To be identical, they have to contain exactly the same data (including coinbase). So, if the first miner will find some hash, the second miner would have to just repeat the first miner's hash. That's why two hashes will reward the same miner. So, what's the point in having two identical hashes after all? What's the point in trying to find the second hash when the first will be announced?
The two hash's difficulties are the same, but the formulas are different, one has sha256 (1) and one has sha256 (2). The difference between these two mixes is to detect the mismatch of the aggressive miner. When the two hashes are combined with random selection, the aggressor does not know the dispersion rate, so tha attacker a hash is very likely to be lost to honest miners. Therefore, we detect consensus deterioration. In this case, the network enters the process of gossip and repairs itself in a short time. For more detailed information, see page 8 in the pdf.
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!