5 ms·
> You can run your "full node", but most nobody cares. Miners decide what goes or doesn't on the network. Limiting myself to BTC, this is not how it works. Mi
by samatman 4y ago
> You can run your "full node", but most nobody cares. Miners decide what goes or doesn't on the network.
Limiting myself to BTC, this is not how it works.
Miners can emit as much nonsense, noise, malformed information as they want. Full nodes perform validation: they decide what a compliant chain looks like, and only accept contributions from miners which have that shape.
This is why there was such a vicious fight about block size: the side which won the mindshare and economic value fought for a small blockchain so that running a full node remains feasible forever.
Validation is a huge problem with more profligate blockchains, some/many of which are de-facto centralized due to the excessive hardware requirements.
It is on an architecture and algorithm level a critical part of the decentralization of bitcoin, something I expect HN to get right regardless of their position on bitcoin's worth to civilization.
Edit for more detail: an object-level example is that miners cannot unilaterally start issuing larger blocks. These will fail validation by the full nodes, ergo, it is the full nodes which determine what Bitcoin is or isn't. Miners merely construct data which has that shape.
- simiones 4y agoSure, but it is very easy for the miners to also run full nodes and validate whatever they want - much easier than it is for someone running a full node to also mine (at any realistic hash rate). So miners can more or less trivially flood the network with full nodes that validate their preferred chains. > This is why there was such a vicious fight about block size: the side which won the mindshare and economic value fought for a small blockchain so that running a full node remains feasible forever. This is a tangent, but I wonder how this squares with the people claiming that Bitcoin's (terrible, horrible, no good, very bad) transaction rate is not limited by design, just by some temporary politics.
- samatman 4y agoWhat you're describing is a fork, clearly. The assertion that miners can unilaterally fork and get away with it hasn't been backed up in practice. The creation of a whole bunch of brand-new full nodes which do something besides validate Bitcoin is the creation of something other than Bitcoin. Happens with reasonable frequency, just not the way you've described it.
- simiones 4y agoRight now the Bitcoin network consists of ~59,000 nodes (according to the article), running various versions of the Bitcoin software, implementing the same protocol. If the biggest mining pools were to launch ~100,000 nodes of their own, initially running the exact same software as the other 59k nodes (until they get some reputation) and then modifying the software to allow larger blocks, that they would start sending to the network as well, what would prevent them from effectively changing what Bitcoin is, leaving the current nodes as a legacy fork? Especially if they were doing this together with the Bitcoin devs? Edit: more realistically, there are far fewer popular nodes, so the miners would have to create a much smaller number of nodes to achieve this effect.
- samatman 4y agoWhat you would then have is 100,000 nodes running one piece of software, and 59k which are doing exactly what they were doing, and in your scenario, the 100k chain also has a higher hash rate. What happens next is a social phenomenon. No one knows. But which chain is original is perfectly clear: it's the the 59k chain, which will still be mining blocks, and it all comes down to who wants to use which one more. But it is emphatically not the case that a majority of validators can force a minority of validators to choose a new protocol. It's nothing like mining.
- horsawlarway 4y ago> But it is emphatically not the case that a majority of validators can force a minority of validators to choose a new protocol. It's nothing like mining. Define "force". Because to me - if you are on a chain that has no future (as in the fork has more resources, better hash rate, better social support) then while you can continue to use the original, the odds that it holds any value is basically zero. Same is true in the inverse - creating a fork and then expecting to be able to move any significant value off the original chain, when the original chain holds better social support and more resources, is usually folly. Take bitcoin cash - which is a great example of this. They split in 2017 and began trading at ~240 USD to bitcoins ~2700 USD. So they started with the assumption that their fork had roughly 1/10 of the value of bitcoin. Today they trade at 119 USD, to bitcoins 21170 USD (and this is after the HUGE drop over the last month): Roughly 1/200th the price. Further - I strongly suspect that the reason BCH is still worth anything at all is that we're well into a crypto bubble - there are FAR too many completely worthless coins floating around that serve absolutely no purpose and still trade at ridiculous nominal USD values. The fact that a usable chain forked from BTC for genuine technical reasons (and a social disagreement over segwit) drops so much value is a BAD sign for that group of original folks on the 59k chain. They can certainly keep mining away on that chain, and if the goal is to still facilitate exchange only in that original chain, they're fine. The second they need to get off that chain and on to something else (whether it's another coin or USD) then they're probably fucked - their chain won't have held value, because value is a social construct, not a number on a chain.
- olalonde 4y agoYou are misunderstanding the meaning and purpose of running a full node. Coinbase[0] runs a full node to validate transactions. If miners start mining blocks that Coinbase considers invalid, Coinbase will reject the transactions. The number of full nodes on the network is more or less irrelevant, what matters is your own node. [0] You can replace Coinbase here with pretty much any Bitcoin participant, including individual users.
- simiones 4y agoIf the largest miners switch to emitting larger blocks, and Coinbase starts receiving almost exclusively invalid nodes, what will they do next? What if Binance starts accepting these blocks, and now users have some BTC balance on Binance, and another on Coinbase?
- olalonde 4y agoWe don't have to speculate, it has happened multiple times already[0]. What happens is the hard forks are either ignored or they are supported but under a different name to avoid confusion (e.g. Bitcoin Cash, Bitcoin SV, etc.). The only way I could imagine a hard fork succeeding (e.g. retain the "Bitcoin" name) is if it if it had an overwhelming community consensus, not only from miners but also from users (like Coinbase). [0] https://en.wikipedia.org/wiki/List_of_bitcoin_forks https://en.wikipedia.org/wiki/List_of_bitcoin_forks
- cormacrelf 4y agoI don't think this clarified it at all. The crux: miners can decide to OMIT transactions, REORDER transactions within a block, or DELAY them for later. All of those actions pass "validation", because they cannot be detected by a validator. Miners do so at the expense of lost transaction fees, or with reordering, for free, or with delaying, with the possibility that some other miner will reap the transaction fee first. There is a lot of money in doing this, called 'miner extractable value' / MEV, which is bigger when you are processing complex smart contracts with funky clauses to exploit. They are not able to INVENT new transactions (as that would be caught by a validator, miners don't know your private keys and couldn't easily forge a transaction). A validator cannot detect a missing, silently dropped transaction. Nobody can detect such a thing except whoever submitted it and doesn't see it in a block. Nobody at all can detect a reordered or delayed transaction; you just have to assume the miners will act according to their own interests as much as possible. The paper goes into this, of course. Miners are not even the only ones who can decide to omit transactions -- submitting a transaction is not secure, so any intermediaries between the transactor and the mining nodes also have a chance to silently drop it or MITM it for delay etc. It could have done more on high-end MEV though.
- samatman 4y agoWhich doesn't contradict a word I said. The things you describe are all on the miner side of the contract. Most of the problems you are describing are less relevant on BTC, which doesn't support complex smart contracts in practice, but yes, the miners are the only entity which can generate data of the valid shape, and only when they get lucky. So OMIT/REORDER/DELEY are privileges which a miner has to sweat to earn temporarily. If 80% of the hash rate hates you they can probably keep your transactions out indefinitely, presuming willingness to bear the cost, which y'know, war is hell, it could happen.
- cormacrelf 4y agoYeah, I wasn't saying you were incorrect, your answer just didn't dig much deeper than "miners do whatever they like, validators check it". The matter of centralisation is answered by what miners can get away with, not the mere fact that validators exist. You must examine this because miners are the ones that are subject to centralisation through efficiencies of scale at buying electricity and computing power. So attacks are possible that are plausibly deniable as accidents, software glitches, dropped packets, etc., but in fact involve coordination by majority miners. And further, MEV is a problem even if you ignore % of hash rate and centralisation of the mining market -- any single miner will exploit any opportunity you give them if they can, especially the undetectable/unprovable ones. So much of MEV is not a matter of adversarial voting but literally 100% of miners are incentivised to do it, independently and unanimously. It's just a matter of who figures out how to extract it, who has relevant conflicts of interest, or who has enough cash to snap up opportunities that arise. That's less about centralisation though. And the scope of this discussion was never just bitcoin. TrailOfBits' paper is about the technology generally.
- dale_glass 4y ago> Miners can emit as much nonsense, noise, malformed information as they want. Full nodes perform validation: they decide what a compliant chain looks like, and only accept contributions from miners which have that shape. That highly depends on who the full node is. A random joe with $100 worth in the wallet can be safely ignored. If their node refuses to see the new blocks as legitimate, the owner doesn't get to use their money for anything anymore. The likes of Coinbase though would have a lot more influence. There were plenty full node owners that were onboard with big blocks, but since they didn't have the pull, they didn't matter. They could reject validating the blocks all you like, but the network can keep on working fine without their approval. > This is why there was such a vicious fight about block size: the side which won the mindshare and economic value fought for a small blockchain so that running a full node remains feasible forever. No, the side that won is the side that wanted to make profit from selling L2 solutions and collecting fees. There's no technological reason for a 1MB limit that makes any sense. Bitcoin started in 2009. Since then there have been 4 main generations of the Raspberry pi, disks went in size from ~1-2TB maximum to ~20TB maximum, gigabit internet became fairly commonplace, and CPUs also improved greatly. Plus, the modern BTC is pretty much useless for small transactions anyway -- if you have any use for it, you can certainly afford decent hardware.
- jasode 4y ago>There's no technological reason for a 1MB limit that makes any sense. Bitcoin started in 2009. Since then there have been 4 main generations of the Raspberry pi, disks went in size from ~1-2TB maximum to ~20TB maximum, gigabit internet became fairly commonplace, and CPUs also improved greatly. Increasing the block size from 1MB to say... 20MB ... will inevitably reduce the number of participants able to run full validating nodes. Consider various discussions on network traffic patterns for existing 1MB blocks: https://bitcointalk.org/index.php?topic=3286296.0 https://bitcointalk.org/index.php?topic=3286296.0 So the question is: Is the reduction of participants from the higher technical requirements significant enough that it weakens Bitcoin? (I honestly don't know.) I guess someone can put together a spreadsheet model with some "reasonable" guesses for the ripple effects of a hypothetical 20MB block size and try to predict game theory of what might happen. Has anyone done such a math exercise? Sure, many participants already processing 1MB blocks today can easily switch to bigger 20MB blocks with no problems. But many can't and we don't seem to have a consensus prediction on what the percentage is.