Live data from Hacker News

An analysis of Bitcoin's throughput bottlenecks

github.com

211–220 of 234 posts

Re: An analysis of Bitcoin's throughput bottlenecks

#211

Earlier quoted context omitted.

> This analysis is complete nonsense First of all, thank you for being pretty much the only person who actually wants to talk about the paper, and not something tangential : ) > assumptions that are entirely arbitrary and biased toward the argument of not scaling Bitcoin I do mention in the paper that the assumptions are up for debate, but I did try pretty hard to justify those assumptions so they are certainly not a…

>>I do mention in the paper that the assumptions are up for debate, but I did try pretty hard to justify those assumptions so they are certainly not arbitrary. Where in the paper did you justify those assumptions? I see them as not only totally arbitrary, but wrong according to any common sense analysis of threats or weighing of priorities. >>If by "biased" you mean that I decided what results I wanted to get, and th…

> Where in the paper did you justify those assumptions?

I have a whole section on available machine resources which cites a ton of sources. I also wrote down specific goals and an exhaustive list of "Failure-Mode Considerations". The assumptions and requirements are based on matching available resources with the stated goals and preventing the listed failure modes. If they don't match up, I'd love to debate that. If they do match up, but you think the goals are off base, I'd love to debate that too. I'm curious what specifically we disagree on that leads to our disagreement on the acceptability of the assumptions.

> It makes absolutely no sense to massively inhibit Bitcoin's utility, in order to make running a Bitcoin node possible for a population who this inhibiting action prevents from using Bitcoin.

Ok. So I hear you saying that my assumptions lead to a primary bottleneck that can be loosened by reducing the requirements. You're saying that assuming that 90% of Bitcoin users should be able to run a full node alongside the goal of everyone on earth using bitcoin leads to a situation where there is not enough on-chain space to support that number of users. I think that's a valid line of thinking.

However, I don't think analysis of that is in any way "trivial". How do you know how much on-chain space is needed by a full world of users? What assumptions do you make there? Are you someone that thinks the lightning network won't scale and so all transctions must be on-chain? Or do you think the lightning network will scale? If you think the lightning network will be able to scale to a world-wide payment network, how much on-chain traffic is needed to support it? Will people batch their transactions? How well will schnorr signature aggrigation work to reduce traffic in practice? Etc etc.

This paper don't really use any of that kind of thinking in its assumptions. Instead it chooses goals and finds what requirements satisfy those goals. Do you think my analysis likely finds the right requirements to satisfy the given goals and assumptions?

> any one who runs a full node is a committed individual

That is true today becauase its a pain in the ass to run a full node. You need to keep it on all the time, it sucks up resources on your computer, it takes some research to configure it correctly or buy the right hardware (so that it isn't a potato). It is not neccessarily the case that running bitcoin is only for the minority that are "committed individuals", but instead its, in part, a function of how much resources running a full node takes. In other words, the number of people likely to run a full node is not independent of the resources a full node takes to run. More wallets could integrate a full bitcoin node, however they aren't doing that because it is so resource intense. If every desktop wallet ran a full node, then I'm sure you would agree that a lot more people would run a full node.

> The assumption that normal people need to be able to run a full node without buying hardware is not justified

Part of what underlies that goal is that we need to maximize the number of people running public full nodes. The Bitcoin network is massively underserved by public full nodes, see the section on Sybil and Eclipse attacks: https://github.com/fresheneesz/bitcoinThroughputAnalysis#syb... . We can't rely on just "committed individuals" to run public full nodes. There just aren't enough of them.

> It's not very inconvenient to buy and plug in a dedicated machine for running a full node.

I disagree. Do you think 10s of millions of people are willing to do that? I very much doubt it. I certainly don't think we can rely on that to happen.

> If even 0.5% of that 80 million do, that's 400,000 nodes

I calculated that we need 5 million honest public full nodes to have enough security to resist state-level sybil attacks. Again, see the Sybil and Eclipse Attacks section.

> In a scenario where .. the richest 1% of the world .. is .. using .. a Bitcoin full node .. sufficient to prevent the rules of the network from being changed.

I disagree, as I said in my previous comment. And in the next paragraph.

> I challenge you to describe a situation where Bitcoin throughput is 1000X greater than is now .. and yet the rules of the network can be changed without a massive outcry / pushback from the ordinary Bitcoin user.

Lack of outcry is not what I'm claiming. I'm claiming that if >50% of the economic activity on the network is done via SPV nodes, rules can be changed in a way that will instantaneously affect those SPV nodes. People do not react instantaneously. Outcry doesn't happen instantaneously. An attack (or mistake) like that could cause massive massive damage in a very short period of time.

Lets say 45% of world's economic activity (the 1%) is done using full nodes. The rest is on SPV nodes. A 51% group of miners could create a hard fork and release it. Let's further say the group also has a large sybil network they use to propagate their blocks more quickly (which may be useful in honest mining) and these nodes also serve SPV nodes. Up to 55% of the network (all the SPV nodes) could follow that hard fork as soon as its release, more if the fork has support among others running those full nodes. This would in turn give the rest of the miners who weren't party to this an economic incentive to follow that fork, since it has the majority of both hashpower and economic activity. Even if outcry then happened, it would be impossible to undo the damage done. Another hardfork could be done to reverse the change, but the forks could never re-merge. This would split bitcoin into two currencies and cause massive economic chaos and friction that would probably be numbered in the billions of dollars in disruptive damage.

You could say that its unlikely that 51% of the miners could put together such a hard fork without people knowing about it, and I agree (although its certainly in the realm of realistic possibility). However, I think its not clear that enough outcry would happen such that miners wouldn't end up doing it anyway. People in the world generally don't pay much attention to large-scale things like this, especially things like monetary policy and technical security related things. Its quite likely I think that >95% of people simply wouldn't pay much attention to it until it happened.

Regardless, even a 1% probability of that happening per century is far too high I think.

Even if 55% of the world's economic activity ran on full nodes, miners wouldn't necessarily know that. Its very hard to measure those kinds of things precisely, and wishful thinking could bias them to thinking more people are on SPV than in reality. A hard fork would still have massive negative consequences.

The way SPV is currently designed, a hard fork like this could be harmful to anyone running an SPV node. However, if the fraction of SPV nodes is low enough, the incentive to attempt such an attack would be subtantially lower.

So that's one situation and one aspect of it. There would also be bad consequences for the vulnerability of mining to attack if the blocksize limit was 2GB.

> SPV node operators would be made aware of this attack, and not rely on SPV data servers that recognize the invalid chain

How long would this take? How many SPV users (ie 99% of the population in your ideal scenario) would actually put in the effort to make any change whatsoever?

> Such an attack would be extremely conspicious, and there would be a strong social reaction to it

I agree with both of those things. But conspicuousness of an attack doesn't prevent it from happening and causing massive damage in the time while the attack is able to operate.

> SPV data servers that are cooperating in the attack being completely discredited in favor of ones that serve accurate data.

Wallets are likely to connect to random SPV servers on the network in the future, just like full nodes connect to random nodes. While yes, SPV servers could be blacklisted, this would hardly be a painless or easy process. And it would be too late to stop the hard fork in my scenario above from happening. The economy would have already switched onto the hardfork, and the transactions on that fork would be irreversible without even more massive disruption and damage.

> on the basis of a highly unlikely threat where a majority of the world population have their Bitcoin activity coopted by a centralized authority through a coordinated attack by the majority of hashpower and SPV data servers

A centralized authority is not strictly necessary. This may simply be a contentious change that miners want. Maybe there's a loud minority of users on board too. Think about the bch fork. That's exactly the scenario where something like this could happen. Rash decisions, lots of contention, emotions flaring. No centralized authority was needed for that scenario to cause problems. And if SPV nodes could simply be coopted to whoever had majority hashpower (or even minority hashpower in the cases where SPV nodes are mostly tied to specific SPV services rather than a distributed network of SPV server nodes), that would be no bueno.

Re: An analysis of Bitcoin's throughput bottlenecks

#212

Earlier quoted context omitted.

> This analysis is complete nonsense First of all, thank you for being pretty much the only person who actually wants to talk about the paper, and not something tangential : ) > assumptions that are entirely arbitrary and biased toward the argument of not scaling Bitcoin I do mention in the paper that the assumptions are up for debate, but I did try pretty hard to justify those assumptions so they are certainly not a…

>>I do mention in the paper that the assumptions are up for debate, but I did try pretty hard to justify those assumptions so they are certainly not arbitrary. Where in the paper did you justify those assumptions? I see them as not only totally arbitrary, but wrong according to any common sense analysis of threats or weighing of priorities. >>If by "biased" you mean that I decided what results I wanted to get, and th…

> the best defense against a political attack is allowing Bitcoin to scale by 100 or 1,000 times in throughput

Ok, but are there different kinds of political attacks? What's the general description of a political attack? How specifically would bitcoin throughput solve the issue?

My brief thoughts:

One kind of political attack I can think of is one where some group decides they don't like bitcoin, and want to kill it. So they try to make laws that make bitcoin harder to use, or perhaps outright ban it. Increasing bitcoin's adoption would help reduce the number of people who don't have a stake in bitcoin, and thus reduce the number of people who would support such an attack. Increasing on-chain throughput may increase adoption (at what rate, I don't know), which would increase the rate at which we achieve some minimum level of adoption (perhaps 20%-30%?) to where an attack is unlikely to succeed.

Another kind of political attack I can think of is one where some group decides to advocate for some dangerous change to bitcoin. They convince a lot of people to want this change, and thus have the backing to attempt to get people to use that change. Adoption wouldn't really solve this problem, in fact, it might make this problem worse since the more people that adopt bitcoin, the more unsophisticated users (that aren't familiar with computer security, especially bitcoin security issues) there are that might support dangerous changes.

> convince me that the assumptions make any sense at all from the perspective of someone who wants to see people financially empowered by cryptocurrency

It sounds like you're asking me to bias my assumptions, or to explain to you how my assumptions are biased in a way you like. That honestly sounds a bit hypocrticial. My goal is to find the ideal tradeoffs that make the Bitcoin system be secure against adversarial attacks, not to find tradeoffs that maximize the adoption rate of bitcoin but as a result leave the system vulnerable to significant attacks.

> one has to assume potential malicious intentions behind writings

No one is forcing you to assume anything. I'm just going to ignore your accusations for now but if you continue to insult me I might just stop talking to you.

Re: An analysis of Bitcoin's throughput bottlenecks

#213
post #81
post #40

Earlier quoted context omitted.

this was the debate circa 2014/2015. Should the bitcoin network consist of many low fee transactions or few high fee transactions. Right now the incentive for miners to secure the network is produced with the block reward, but when the block reward runs out this incentive will be from fees alone. In order to provide miners with the same revenue as today when the block reward runs out, the average fee per tx will need…

>use block compression tech like xthinner to make blocks essentially 1mb (like today), then the average fee needed is only $2. Claiming that xthinner can reduce 100mb blocks down to 1mb is dishonest. It might reduce the network transfer down to 1mb (assuming you already the txes), but on-disk storage would stay the same. https://news.ycombinator.com/item?id=25688004

A single transaction costs more than the space to store the entire chain many times over.

Re: An analysis of Bitcoin's throughput bottlenecks

#215
post #111

Earlier quoted context omitted.

Those are on-chain transactions. Coinbase and many other wallets now support offline, or 'Instant Sends' which is more akin to the simple database update that PayPal/Visa performs. Sure those aren't purely decentralized but a decentralized settlement layer is probably where most of the value is anyway.

Why is that more novel than, say, intra-bank transactions?

Those intra-bank transactions that are still done via FTP, take 2-3 days to settle, and require owning a bank in order to participate?

Yes, I suppose there's no room for improvement there.

Re: An analysis of Bitcoin's throughput bottlenecks

#216

Earlier quoted context omitted.

Wrong, they are opposed to changes that will stop them from profiteering off higher layer solutions they provide.

Devs are not profiting from 2nd layers, people who commit capital to these payment channels do! And even then it's tiny amounts.

MasterCard and Visa take tiny amounts, too.

DOGE and PRV (WSBCoin anyone?) don't require these layers.

Re: An analysis of Bitcoin's throughput bottlenecks

#217

Some of my congestion control research that helps large scale users make throughput/latency tradeoffs using simple "transaction templates": https://utxos.org/uses/scaling/ https://utxos.org/analysis/bip_simulation/ https://utxos.org/analysis/batching_sim/ https://github.com/bitcoin/bitcoin/pull/21702

Thanks Jeremy! Are all those links related to congestion control? In short, that's basically allowing transactions to be shifted from high-congestion times to lower-congestion times without delaying the transfer (eg the transfer from the sender, even if the receive won't get the coins immediately). Is that right? Or are there more benefits of it?

Re: An analysis of Bitcoin's throughput bottlenecks

#218

Earlier quoted context omitted.

Those aren't withdrawal fees, those are transaction fees for the network. Most cryptocurrencies cost next to nothing for each transaction, while bitcoin and ethereum cost from $20 - $60 USD for the average transaction.

No I'm not confusing it. My exchange and all other exchanges charge a fee to withdrawal money. Its usually quite large.

Again, that fee is not something the exchange is charging you. The fee doesn't go to them.

If it is bitcoin or ethereum there are very high fees for each transaction. The exchange is showing you those fees in your native currency. They aren't getting that money, it is going to the miners.

Re: An analysis of Bitcoin's throughput bottlenecks

#219

Take a look at "The Blocksize War" for a fantastic rundown of the events that led to Bitcoin not increasing its throughput. TLDR: Massively rushed changes, pushed by people with a lot of power on the network (miners and corporations), which ended up being largely antithetical to Bitcoin's decentralization thesis. Bitcoin's value is in its stability, its decentralization, and its lack of hurried change. It is in the c…

> led to Bitcoin not increasing its throughput Bitcoin did increase its blocksize and throughput. It about doubled it in fact. > Its value is not in its ability to pivot every few years like a startup to fulfill some new purpose. Yes, people don't realize that we don't want bitcoin to be agile, move fast and break things. We want it to be well considered, move slowly, and be safe and careful. Similarly, it aggrivates…

Of course, apologies. Should have been clear I was talking about 2MB+ blocksize rather than segwit. Some great points!

Re: An analysis of Bitcoin's throughput bottlenecks

#220

Some of my congestion control research that helps large scale users make throughput/latency tradeoffs using simple "transaction templates": https://utxos.org/uses/scaling/ https://utxos.org/analysis/bip_simulation/ https://utxos.org/analysis/batching_sim/ https://github.com/bitcoin/bitcoin/pull/21702

Thanks Jeremy! Are all those links related to congestion control? In short, that's basically allowing transactions to be shifted from high-congestion times to lower-congestion times without delaying the transfer (eg the transfer from the sender, even if the receive won't get the coins immediately). Is that right? Or are there more benefits of it?

Hi Billy,

yes they all are. 1 -> high level idea, 2 -> basic simulation, 3 -> batching improvements, 4 -> the PR to bitcoin core. I have a lot more material scattered around too :)

You understanding of the shifting from high congestion to low is spot on, but there are other benefits. The technique can also be used for more general smart contracts. I've been building a language, https://learn.sapio-lang.org, for expressing smart contracts. You can do vaults, synthetic derivatives, sidechains, etc with it.

One niche point I like to make too, btw, is that the delayed payouts can be into non-interactively initialized payment channels. So you could immediate begin spending/routing payments in the lightning network on open, and wait for low congestion to expand out your UTXO.

Post reply on HN