Author

Topic: P2P block template checks (Read 974 times)

hero member
Activity: 555
Merit: 654
December 12, 2012, 06:48:05 PM
#3
Who gets to vote? Can't I just make lots of cheap nodes. Operate them honestly so that they are in everyone's good books and then abuse their voting power to double-spend. Swap IP addresses, rinse, and repeat.

True.
Maybe only the last x miners with differen prog_ids are able to vote.

E.g.: If the last miners were:

Block n-5: A SatoshiClient 0.7
Block n-4: B XClient
Block n-3: C YClient
Block n-2: A SatoshiClient 0.7
Block n-1: C YClient

Then a miner working on block n collects votes only from A,B,C.

legendary
Activity: 1050
Merit: 1003
December 12, 2012, 09:24:17 AM
#2
Who gets to vote? Can't I just make lots of cheap nodes. Operate them honestly so that they are in everyone's good books and then abuse their voting power to double-spend. Swap IP addresses, rinse, and repeat.
hero member
Activity: 555
Merit: 654
December 12, 2012, 08:57:59 AM
#1
What about using the P2P network to do the work? It's more like the Bitcoin way.


The protocol would be like this:

1. A Miner X creates a block B with (reduced) PoW = Target / 50 (50 times less PoW). This ensures very few "template" blocks will be broadcast.
2. Miner starts working o the real target difficulty on block B (does not wait for votes)
3. The miner X spreads the block B in the network (with reduced PoW)
4. Nodes emit votes in a new type of message saying whether B is valid/invalid, specifying also their software/protocol version.
 Vote = < hash(B), prg_id, True/False >  (aprox. 30 bytes long)
5. Votes are relayed for a short period of time after block B was received (e.g. 30 seconds). Afterwards votes are discarded.
6. Miner collects votes and estimates the acceptance ratio.
7. If acceptance ratio is good, keeps working on the target PoW, if not, drops the block B and starts with another block.


The acceptance ratio could be computed filtering for noisy/forged votes (e.g. if for the same prog_id 90% votes are positive, then it's considered 100% positive).
Jump to: