Post
Topic
Board Development & Technical Discussion
Topic OP
maintaining zero-trust with low clean startup cost.
by
harik
on 15/04/2013, 13:31:40 UTC
Edit: It looks like ultraprune is more similar to this than I thought, so the only question is 'is it feasible to migrate the miners to signing that data every few hundred blocks so that it can be fully trusted no matter where the source?'

Right now, the proof-of-work (block headers only) runs ~20mb.  A full summary of non-zero-balance addresses is another 50mb.   If that balance summary could be generated in a fixed way, miners could include the hash of it as a transaction item and the 50mb summary wouldn't need to be passed around itself, since any node could recreate it from it's own data.

Full block header chain, recent balance summary, and full blocks since the balance summary.  That's on the order of 100mb download, instead of the current 6.5gb blockchain.

Am I missing an attack on this somewhere?  Network-wise, you can request full proof of any archived transaction by requesting the block from a peer, and since you have the sha256 of the merkle root as part of the headers nobody can feed you fake transaction data.  The proof-of-work only is exactly as hard to fake as the full blockchain, and it's trivial to verify that the hash of the balance summary exactly matches the generated balance data.

If the standard is 'sign the balance summary every 100 blocks' the overhead for mining would be insignificant.  Since it's just another transaction, no ASIC/GPU mining code would even have to know about it, and the overhead of running a single sha256 over data you already have to maintain to run a mining pool is insignificant.

This seems a fairly obvious proposal, so I'm sure someone has come up with it before - but googling for bitcoin 'balance summary' is flooded with descriptions of the client's user interface.