TheCoinFinder



Offline



Activity: 938

Merit: 1001









LegendaryActivity: 938Merit: 1001

A solution to centralised pool ownership of the blockchain June 17, 2014, 07:06:43 PM #1 Hi,



I first posted this the other day on Reddit /r/bitcoin but didn't seem to get a response. Personally, I can't see an issue with this - so I would like some more opinions, ideally from more learned and knowledgable persons.



Note: This solution is only for legitimate pools (such as Ghash etc), and is not an intended solution against a compeltely private third party who controls all of the hashing power themselves.



Intentions: The solution should allow any pool to take over as much of the hash-rate for a particular block-chain as they can, without the centralised trust issues usually associated with such a status. Further, this solution does not in any way penalise the finances of such pools, so there is (IMO) no financial incentive NOT to use this solution. Potentially, there is more financial incentive to use this solution, as it removes the negative perception of such situations.



Details:



1) To simplify the situation, create a fork of the bitcoin wallet that contains only the getblocktemplate functionality, without submitblock or getwork functionality. Further, create a fork that contains no getwork or getblocktemplate functionality.



2) Create an API that allows for the disemination of the above template, with a hash in the coinbase (using the extra area) that identifies the providing source, as well as the blocktemplate. The hash is a full hash of the coinbase and all transactions. The API send call contains the information required for the vtx[0] (ie coinbase) block only - this would contain the pool's payout address(es) and payment values.



3) Create a peer-2-peer network for the above nodes, that the API can then be tapped into to.



4) Pools agree to use the wallets without getwork/getblocktemplate functionality, and on block-notify, they call the API for the source nodes, with their payment address(es). This block template is then the one that the pool serves to their miners.



5) When a pool finds a block, this block is submitted to their wallet, and becomes part of the blockchain. The "block provider hash" is also part of the coinbase-extra section, and can be used to verify the source of the hash, and whether or not the block was valid.



6) Finally, create an API for showing this validation, and pools can use this.



7) Add in the above checks to the mining software, such that it will not be allowed to connect to any pools who aren't providing a coinbase with the above "block provider hash" in.



-- This is a preliminary version no doubt with its own issues. But I'm interested to see what everyone thinks. --