He misses the point that the developers do not control bitcoin; the miners control bitcoin. The developers suggest improvements which will only be adopted if the miners support those improvements.
The miner's interests are purely profit based, so they will not adopt changes which reduce their chance of profit.
Incorrect, I can sign or construct any type of cryptographic payment I wish. Miners trade their Proof of work to prevent double spends in exchange for coinbase (currency issuance) that the market values. If miners chose to mine on a chain that no one wants, no one will trade for their coinbase.
The game theory nuance is, how do you organize an economy around changes to blockchain consensus? The only guaranteed way to ensure that that happens (from a game theory perspective) is to have miners lead the change. If user wish to lead the change, they still can but they take a risk in that no one will join them on the new consensus chain ("hey you guys said you'd construct payments like this and now no one is!"). There are more improved ways of rolling out these changes.
At worst miners can execute a denial of service for new transactions entering into the UTXO or attempt to double spend funds, or release blocks in a manner that negatively affects the profitability of other miners but they have _no control_ over how users handle their UTXO.
Bitcoin is anti fragile, each time it goes through a market challenger it gets better at handling it, not weaker.
>If miners chose to mine on a chain that no-one wants, then everybody has to grudgingly go along with it
No, if the miners mine on a chain that doesn't meet consensus rules, users will not follow it. If miners decide that the coinbase issuance schedule isn't to their liking, and decide to revert it back to 50 bitcoins per block, users will reject those blocks. This is a fundamental governance property of a blockchain.
But the problem is that soft forks can do basically anything. Yes, even increase the block reward, in a roundabout way, (by using added extension blocks that have special rules, and then requiring all transactions to go through the extension blocks.)
Although from the perspective of a non-conforming Node, this would just look like a DDOS style mining empty blocks attack.
At this point the only thing that users can do is change the Proof of Work algorithm. .... But, if the big players in mining have a bunch of GPUs on standby... well, it is not even guaranteed that this will work.
You're also referring to a major weakness in the distributed consensus of bitcoin: the longest-chain-preferred mechanism is almost certainly a vector of attack on the chain.
Wouldn't you need to have a majority of the hash power to fork the chain and generate a longer one anyway? I think it's well understood that anybody managing to go above 50% of the hash capacity effectively "rules" the currency.
This is a common response to this but I don't think it's true in every case. I think if your goal is strictly to disrupt the Bitcoin service you can accomplish that by disrupting and attacking individual nodes in parallel and letting the resulting chaos from these cheaper attacks widen the scope of your disruption, stepwise.
If by strength you mean, "A clear methodology from which a sufficiently large ec2 buy can rapidly fragment the Bitcoin consensus" then yes, I suppose that's fantastic.
From the perspective of people transacting on Bitcoin's infrastructure I suspect they'd call it "an attack."
>a sufficiently large ec2 buy can rapidly fragment the Bitcoin consensus
You grossly underestimate the hashing capacity of the bitcoin network. The hashing capacity, at time of posting, is approximately 5,000,000,000 Gigahashes/second[1]. Spot measurement of the hashing capacity of an EC2 instance is 0.4 Gigahashes/second[2]. You would need 12 BILLION EC2 instances to 51% attack the bitcoin network.[3] Using EC2 to attack the network is impractical and inefficient.
In the OP, the author says there are "approximately 5,000 computers" in the bitcoin network. I'm curious if you believe this is right too? Those are some powerful computers... (yes, "duh" indeed, I'm still awed).
That could very well be true. All mining for BTC is done via ASICs now, specialized silicon that just hashes crazy fast, but can't even get a TCP connection up and running. For networking, a bunch of ASIC chips is typically connected to some embedded computer, and even that usually isn't a direct peer on the Bitcoin network, but only connected to a mining pool server with hundreds of other such ASIC controllers. And this server then is the first actual part of the Bitcoin p2p network, single-handedly representing a mind-boggling multi-Megawatt hash power infrastructure.
Even most BTC users do not run actual clients anymore but use exchanges or wallet services which bundle huge numbers of users behind few actual Bitcoin network nodes.
I'm happy to be wrong, but I feel like I don't have to overcome the entire network's hashing, I need to overcome several individual instances. If I could isolate and attack individual members of the cluster quickly, I could begin to leverage their role in the cluster as they join, convinced that a single block must be true.
I don't need to overcome the network, I need to invite the network to have arguments with itself, by finding a way to introduce widespread partitioning of the network.
In this, the preference to longer hash chains seems like a good idea in a unified clock model but a somewhat optimistic decision in a split clock world.
>If I could isolate and attack individual members of the cluster quickly, I could begin to leverage their role in the cluster as they join, convinced that a single block must be true.
To do this you would need to have the equivalent hashing power of the network. Peers expect an nominally equivalent amount of Proof of Work for the difficulty adjustment. You would also need to guarantee that the peer connects to _no other_ peers
Your thinking is good adversarial thinking but it's already covered in the protocol.
Only the longest chain that users consider legitimate. If users reach consensus on using rules that have lower transaction costs, it won't matter how long miners mine their higher transaction cost chain.
The big question is: can users achieve such consensus politically, or in practice do the miners lead the users because they need less organization to do so?
If miners chose to mine on a chain that no-one wants, they'll run into losses. Users will probably move to some other chain.
As an example: Bitcoin users might wanna switch to Litecoin. And guess what miners will do then ?
Thank you for pointing out that the users of bitcoin (and other cryptocurrencies) have effectively no say in the design of the system they have to trust. This will ultimately limit the very trust needed to keep it alive IMHO.
I would say that this is exactly why Proof of Stake seems to be in higher regard than Proof of Work for new currencies as well as Ether's eventual transition later this year. Among other reasons, of course.
It won't be like SegWit/Unlimited. The politics are very different and the technology is very different.
1. Politics. Ethereum has a leadership team which functions very differently from Bitcoin Core. For one, the creator of Ethereum is well known and outspoken. He and the other members of the Ethereum Foundation made it clear that their intention was always to move to Proof of Stake. Though there are some who may not support this move, the general community bought into the project knowing that this was the plan from the beginning. And there's a lot of trust of Vitalik.
2. Technology. Ethereum adapts much more quickly to mining difficulty than Bitcoin. Bitcoin can't survive with 90% of the hash power on one chain and 10% of the hash power on another chain. The smaller chain would take 10 hours to mine a single block and months to readjust the difficulty. It would be unusable. Ethereum has already shown its resiliency to a split during the DAO hard fork. The smaller chain adjusted quickly and survived. What this might mean is that with the change to PoS, there could be a dissenting faction that remains on PoW, and both chains will survive. This will allow the PoS chain to go ahead and push through with a split easily even without 100% support.
Ethereum has a difficulty bomb (mining becomes more difficult with time). This is a form of control from developers over blockchain. If miners refuse to cooperate, they are left with the blockchain which is more difficult to mine with time (and eventually unusable).
> how is that any different to the existing currency system
Fiat currency is governed by central banks, which are arms of government, and are accountable to the public in the same way as the issuing government. Obviously, the degree of accountability varies from government to government.
That is a pretty loose definition of accountability. If your bank screws around, are you going fix it by voting for a different candidate in the next election? I would say that my ability to purchase and run mining hardware, at a loss if necessary, gives me more control over my altcoins than my citizenship gives me over my bank.
> I would say that my ability to purchase and run mining hardware, at a loss if necessary, gives me more control over my altcoins than my citizenship gives me over my bank.
It's roughly similar to buying shares in a publicly-traded bank, which you can do as well as electing candidates for public office to whom the central bank, which is the entity making monetary policy decisions, is accountable.
So it gives you more relative power with altcoins only to the extent that those with more wealth are relatively uninterested in the altcoins in question compared to traditional banking; were a digital currency to succeed beyond a small niche, that would change and you would find yourself as drowned out by moneyed interests as you are in traditional banking on that avenue of leverage, and without the other avenues of accountability that exist with the governance of fiat currencies.
> It's roughly similar to buying shares in a publicly-traded bank
i dont believe that even owning a bank could you directly control monetary policy or procedures that the gov't legislates. You'd have to own either the majority of all banks, or own the gov't yourself (i.e., dictatorship), and even then, it's a hardsell.
ECB is an arm of the EU (a government, but not a nation-state) accountable, as I understand it, through the European Parliament primarily and secondarily through the Council; and it is also accountable to the people of Eurozone countries through the accountability processes of their individual central banks, since the national central bank chiefs are governors of the ECB.
The UK wasn't in the Eurozone - and I've been reading Yanis Varoufakis's books about his time as the finance minister of Greece and I've been fairly shocked at how fundamentally undemocratic (not to say unreasonable) a lot of EU institutions and the likes of the IMF are.
And I say that as someone who voted Remain in the Brexit referendum (note that Varoufakis actually campaigned on the Remain side in the UK).
Depends on how you define 'users'. Miners don't just make money out of thin air; they actually help maintain the ledger and provide value to the 'users'. Nobody is stopping you from start doing it yourself, too.
This is an excessively simplistic first-order explanation of the mining incentive system.
Consider that miners also lose money if the thing they are mining loses value. Therefore, if enough economic actors (besides miners) switch to version B that has some new feature, everyone will want to use version B instead of version A. The miners who are stuck mining version A lose money because the currency they're mining is no longer as valuable.
Realistically, the economics of cryptocurrency features work out quite nicely. You can't just say "oh, the miners make the blocks, so they have absolute control".
I don't see how this is a good thing? If what you are describing is true, it ends in those rich enough to buy the majority of nodes in the network, being able to control the entire blockchain. Pay-for-power doesn't seem like a good solution for governance.
Plain 'nodes' weren't even a thing back in the early days of bitcoin. The original design envisaged all participants to be miners. It was only when mining became out of reach of ordinary computers that people started running nodes. They do very little, just sending and receiving bitcoin transactions, a task which the miners could do just as well by themselves.
Nodes have no say in consensus, the miners can ignore them and decide which transactions they want to include. All a node can do about it is complain to itself.
> Satoshi from the Bitcoin white-paper chapter 12 'Conclusion' : The network is robust in its unstructured simplicity. Nodes work all at once with little coordination. They do not need to be identified, since messages are not routed to any particular place and only need to be delivered on a best effort basis. Nodes can leave and rejoin the network at will, accepting the proof-of-work chain as proof of what happened while they were gone. They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism.
First, you have to understand what 'consensus' actually means :
> A fundamental problem in distributed computing and multi-agent systems is to achieve overall system reliability in the presence of a number of faulty processes. This often requires processes to agree on some data value that is needed during computation. Examples of applications of consensus include whether to commit a transaction to a database (or, for example, committing blocks to a blockchain), agreeing on the identity of a leader, state machine replication, and atomic broadcasts. The real world applications include clock synchronization, PageRank, opinion formation, smart power grids, state estimation, control of UAVs, load balancing and others.
Nodes are the agents in a multi-agent system enforcing consensus.
Nodes accept incoming transactions and validate them. Miners don't. Nodes replicate transactions to other nodes. Miners don't. Miners take transactions from nodes, and order them in a block, and perform a hashing function on them (the only thing they do). Miners pass the new block to the node. The node validates the transactions in the block. Miners don't. The node validates the block. Miners don't. The node replicates the block to other nodes. Miners don't.
There is only one function that miners do. They take transactions, put them in a block, and hash them. As soon as a miner produces a block that any node determines does not obey consensus rules, it is rejected. It doesn't even matter if another node has already accepted, because consensus is aligned with all nodes. Any node that replicates non-consensus blocks or transactions is itself rejected.
So nodes accept the transactions, validate the transactions, replicate the transactions, maintain the mempools, validate the blocks, replicate the blocks, serve the blockchain, and store the blockchain. Nodes even define the PoW algorithm that miners have to employ.
Nodes maintain the protocol, not miners. It is thus. It has always been thus.
> A full node is a program that fully validates transactions and blocks. Almost all full nodes also help the network by accepting transactions and blocks from other full nodes, validating those transactions and blocks, and then relaying them to further full nodes.
You should probably question how such a fundamental misunderstanding of how bitcoin works comes about. Is there a source for your opinion?
The miner's interests are purely profit based, so they will not adopt changes which reduce their chance of profit.