Closed aivve closed 2 years ago
It appears to be compatible with karbo2 version 👍 in a testnet
It appears to be compatible with karbo2 version 👍 in a testnet
No, those two are not compatible but not due to these changes. The difficulty calculation needs to be compared and made compatible, especially when it comes to alt. blocks.
So, at first, we were using payment proof to prove that the specified miner address received the reward. But in this approach pool operator could give miners only secret spend key
but not secret view key
and without the last one miner can't really spend (steal) the reward. Therefore we replaced the reward proof with the miner's secret view key.
Consider ways to reduce stored data, because now we store signature, miner's public address and secret view key.
“Marathon Digital Holdings announced on March 30, 2021 the launching of the first Bitcoin mining pool in North America that is fully compliant with the United States regulations, including anti-money laundering and the Office of Foreign Asset Control's standards. The mining process will include an algorithm that is able to exclude transactions from personas that are named on the Department of Treasury's Specially Designated Nationals and Blocked Persons List".
This reminds us of the importance of censorship resistance and proves that any centralization of mining, including mining pools is bad.
Therefore, hereby we are introducing botnet and mining pools resistant solo mining approach, called “Signed Proof-of-Work”. The main idea behind SPoW is to sign header data with the private key of the miner and that the address in the coinbase transaction corresponds to this key. For CryptoNote this is a bit more complicated to implement but we made it.
Authors: @volbil, @aivve
Same as https://github.com/Karbovanets/karbo/pull/28
Blockchain dependant hash is used to strengthen botnets and pools resistance.
Instead of payment proof in initial Karbo2 proposal, the miner's view_private_key is used to prevent pool operator from issuing only spend_private_key to miners, because without view_private_key it's impossible to steal reward.