Summary of my brainstorming so far, before time for me to go to bed:
Step 1: Alterations in the reward structure with a purpose of establishing economic incentives that should result in the bitcoin network congealing into approximately N independent nodes, individually labelled (
pseudonymously), with any two nodes having approximately equal hashing rate (except for underpowered sham nodes), where N can be set to any desired value (100, or 1000, or variable depending on total network hashing power, or whatever). The nodes are further incentivized to organize into conglomerates. However, large conglomerates would be prone to fragment into smaller ones (achieved by setting them up for a prisoners dilemma) unless they were truly controlled by a single actor with a very firm, full control over every node in the conglomerate. Therefore, the number of large conglomerates is a good measure of the number of independent powerful actors engaged in mining, and also a good measure of how much hashing power each powerful actor controls. It would be possible for one actor to divide one conglomerate purposefully into multiple smaller ones, so that a single large actor appears to be multiple small ones, but this would come at a significant economic cost, and the only reason to pay this cost would be if you were a malicious actor planning an attack and trying to fly under the radar. It would also be possible for a small actor to set up multiple nodes in one conglomerate and appear to control more hashing power than is actually the case, but this would be expensive and would be unlikely to fool anyone for very long (nodes that never or rarely find a block are probably sham or underpowered nodes). These alterations would (I think) require a change in the bitcoin protocol, making a side chain possibly the most reasonable vehicle to try to implement it, although if I could think of a way to do this on top of the protocol, I would. The requisite changes in the protocol would not necessitate any alteration in the overall trajectory toward ~ 21M bitcoins by ~ 2140.
This does not solve the 51% attack problem, but it does do several things:
- it raises the cost of a 51% attack
- it provides a tool: transparency regarding how many independent powerful actors (one actor : one conglomerate) there are and how much hashing power each one has (proportional to the number of nodes in the conglomerate)
- it encourages miners to organize into stable pseudonymous nodes which form the elements of the social network and thereby laying the groundwork for step 2 (which actually may be much more important than step 1 all by itself).
Step 2: Layer a social network system on top of the above system of nodes, in which a small fraction of nodes voluntarily (incentive structure for doing so would need to be developed) identify their real world identities with the vast remainder of nodes remaining pseudonymous, and use the resulting social network backbone to implement a "SybilGuard" [1] type method to carve out malicious nodes in the event of an attack. (I need to learn about the process by which a new miner gains access to the bitcoin network. I think the bitcoin core has a default list of IP addresses where it "looks for the network" but I'm not sure what that means and I'm not sure who gets picked for the honor of being on that list of IPs. And whether that list is customizable.)
[1]
http://www.csd.uoc.gr/~hy558/papers/sybilguard.pdf