Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Since the mining loop was never signed, it was possible for a mining pool to write its own software such
that it communicates with its users to do a majority of the mining work and then submits back to the pool
owner for the final block signature before block submission. To prevent this from occurring, a new
mining algorithm was created. The algorithm is a two step approach as follows:
Mining using utxos just as legacy mining.
Mine using a new 64 bit nonce and combine with the block signature to create some mud. Throw the mud thru
a sha256 hash function and check if the hash meets a new threshold.
The validator will check to make sure that the signature in (1) matches the signature in (2) that was used
to sign the work and that both parts meet the thresholds for acceptance. Since the signatures must match,
the private key must be shared between (1) and (2). Sharing private keys will eliminate mining pools because all
trust is now lost.
The other attempt at pool formation will be to have the users only perform (1) and then send back to the pool for the
pool to finish doing (2). This will fail because the amount of work to do (1) is about 1% of the total work and the
remaining 99% of the work is in (2). This means that users would send work back to the pool and sit idle for 99% of
the block time on average waiting for new work. Users have no benefit of using a pool and the pool will not form,
it they do form, they will be very unhealty pools that do not offer benefit to the users nor the pool owner.