Global Pool Mining Proposal and a fast light tx verification system

Pooled mining is a mining approach where multiple generating clients contribute to the generation of a block, and theminingn split the block reward according the contributed processing power. Pooled mining effectively reduces the granularity of the block generation reward, spreading it out more smoothly over time.

A share is awarded by the mining pool to the clients who present a valid proof of work of the same type as the proof of work that is used for creating blocks, but of lesser difficulty, so that it requires less time on average to generate.  []

I’m thinking of the idea of a protocol change to allow the possibility (and encourage it via incentives) that all Bitcoin miners form a Global Pool, without requesting additional trust:

1. Each share contains a PoW and a coinbase (to be sent a partial block reward)
2. Shares are included in a block as transactions (but they must go at the end of the list).
3. Shares contribute to the PoW of the block. For example, 10 shares, each containing 5% of the difficulty target contribute as 50% of the requested PoW of the block. (for the sake of simplicity I may be overlooking the correct way account for partial PoWs taking account probabilities)
4. Each share miner is also payed proportionally to the contributed work.
5. Shares are constructed as blocks and the only difference is the target difficulty. Normally, each miner tries to solve the block and during this process, a number of shares may be produced and transmitted.
6. Each share (like a block) includes a root of a Merkle tree of transactions.
7. The share lists the first 10% of the transactions specified on the merkle tree. Miners can never surpass this limit. The partial list cannot include references to other shares. The Merkle tree can be fully sent (but only the hashes and not the txs or some txs can be sent and the rest of the tree is supplied by terminal hashes).
8. Each share PoW is no less than 10% of the total PoW required.
9. A miner has the obligation to include in the block the transactions listed in the share in order to use the share.
10. Whenever a share is transmitted, it’s split in two parts: header and partial transaction list specified by the merkle root. If the destination node already has the transaction list, only the header is transmitted. The transaction list is defined by the merkle root hash. This allows miners to send many shares using the same transaction list, without incurring on the network overhead of seeding the same list multiple times.
11. A miner should never produce two shares with conflicting transactions (it goes against his own interest)
12. A miner may include his own shares in a block.

Using these properties we can make a system where transactions are “lightly verified” by the network 10 times faster, without reducing the block interval and so avoiding rising parallel chains competition probability. This light verification system emerges because miners have an incentive to include in the block whatever share they see.

So a merchant may accept a payment of low value if:

1. It is confirmed OR
2. It sees it listed in the merkle tree of a share and 10 seconds have elapsed (time for the share to arrive to every miner)

The drawback is that network bandwidth consumption is doubled. The PoW target of a share does not affect the protocol much, since only partial merkle root lists are sent (in the same proportion). E.g. Share with 1% target PoW would only send 1% of the transaction list.

One possible alternative is that the share gets paid not by the PoW percentage but for the fees contained in the transactions specified by its partial list. Nevertheless I see this alternative lees attractive.

Note than work each miner has to do remains equal to the work done by a normal Bitcoin miner, nevertheless the overall difficulty increases, and so the protection from a 51% attack.
Also note that since shares do not contain other shares in the partial transaction list, there is no share-chain competition.
Note that the minimum percentage chosen for each share is unimportant: it could be as low as 1%. The network bandwidth use is always doubles with respect to a normal Bitcoin node, and does not depend much on the share percentage chosen. (with the exception of the small header overhead, and the hash operation to verify the PoW).

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: