Post
Topic
Board Wallet software
Topic OP
How all clients can switch to a p2p SPV system without decentralising Bitcoin!
by
bardi.harborow
on 14/02/2014, 06:11:23 UTC
Centralisation - The dread of (almost) every Bitcoin user, but we are currently on track to do just that. Even the bitcoin.org website recommends a SPV client. So, I've done some thinking and have come up with as system that will allow the whole Bitcoin network to operate on a form of SPV network and still be decentralised. I'm not going to go into what SPV is. See Satoshi's white-paper for info. Here is my idea:

Each client will first download the headers, just like in Electrum, but with one crucial difference, it will download them fro a p2p network. After verifying them and working out the best tip, it will then begin to download some of the transactions. Notice I said "some". It will randomly download a percentage of the transactions (the percentage being set by the user, those who want to run full nodes download 100%, for example I might download 1%, about 130 MB). The transactions it gets will then be verified. If it finds invalid transactions it ignores the block and sends out an alert to the network. Then everyone in the network downloads the tx, verifies it, notices that it is invalid and discards the block.

Think of this as each node running random spot checks on transactions and raising the alarm if it finds a problem. People who download a percentage help support the network, and ensure that no transactions are ever lost.

The other idea I had was to use a bloom filter to notify peers of what txs you had (can somebody tell me whether that is a possibility?).

I believe this would require a new protocol to implement. Therefore, we would get bitcoind owners to run this as well to keep both networks synced.

Hope this is of interest, if so give me a yell and I'll start to get a dev team together (volunteers welcome).