...
What we are going to have to do is require peers to either do something useful, like relay valid fee-paying transactions and valid blocks to us, or expend some kind of limited resource, like perform a proof-of-work or just pay directly via micropayment. That'll make widescale DoS attacks prohibitively expensive, but it also impacts SPV nodes too that don't contribute to the health of the network. Of course, obviously if such an attack happens this code will be written and deployed very quickly, so don't get any ideas...
'Something useful' could be, among other things, being verifiable situated in a domain which is underpopulated. The domain could be geographical, political, implementational (meaning it works in particular way such as implementing an underrepresented overlay messaging protocol) or whatever.
Indeed - that's what we try to achieve with the current system of trying to connect to nodes with ip addresses in a varied set of /16's. Varying implementations is an interesting idea too, although one that's harder to actually verify.
If you can come up with ways to do more than that we'd love to know, but be warned it's a really, really difficult problem.
I started on a path to describing some of this stuff before I got more interested in running my sawmill:
https://sites.google.com/a/tcilgl.com/paracoin/home/depth_l1/network_mesh#TOC-n-space-characterization:
Several concepts which I've yet to attempt to describe would be
- multi-pass proof of work with non-predictable algorithms. So, for instance, head blocks are solved mainly by transfer nodes while legacy datasets are consolidated and locked with long duration (very high difficulty) md5 leveraging existing ASIC investments (at a frequency aligned with codebase releases.)
- dedicated hardware nodes which contain useful things (like FPGA for adaptable algorithms, TPM for certain node identity needs, POE for a reasonable balance of power, cost, and convenience.)
- node link rewards where 'close' peers are issues part of a reward which would foster a greater mesh
density health.
I hope that the nature, capabilities, and relationships between potential adversaries of Bitcoin are becoming more widely appreciated in these post-Snowden days. It is why I consider broadly defensive systems to be the most critical aspect defining value in a crypto-currency solution...or at least a 'reserve' one.
Whether there is the potential to adapt the existing Bitcoin as a value core in total and develop a robust supporting framework around it is debatable and I continue to feel that it is probably a long-shot. Most likely Bitcoin will evolve toward (if not 'remain') an element of something akin to PRISM.
edit: s/density/health/. By 'health' I mean diversity more than anything. The methods by which a 'healthy' node population could be engineered have some interesting parallels to how biological populations implement genetic material transfers.