February 10, 2020·Deryk Makgill
I’m ‘open-sourcing’ some research I’ve been doing on the early scaling debates.
I’ve spent a lot of time reading old Gavin Andresen posts, mostly on Bitcoin Talk but also on some other sites, and I find it fascinating to see how intelligent, well-argued and predictive Gavin was about the need to raise the Bitcoin block size and the fallacies used by the then small minority who thought blocks should be locked at 1mb forever.
There was a time before the censorship, lies, blacklisting and propaganda where big-block Bitcoin was the consensus position by nearly everyone who had been involved with Bitcoin since the early days, and the quotes from Gavin I’ve gathered here are a reminder of that.
If you like this and want to support the many hours that went into gathering all this, send me a tip!
BCH address: bitcoincash:qpz6g6f9xqx8ja7s2hn623lprpqmd4arncwz7ftfg0
BSV HandCash: $makgill
The problem people are worried about if the maximum block size is too high: That big miners with high-bandwidth, high-CPU machines will drive out either small miners or I-want-to-run-a-full-node-at-home people by producing blocks too large for them to download or verify quickly
An adaptive limit could be set so that some minority of miners can ‘veto’ block size increases; that’d be fine with me.
But it wouldn’t help with “I want to be able to run a full node from my home computer / network connection.” Does anybody actually care about that? Satoshi didn’t, his vision was home users running SPV nodes and full nodes being hosted in datacenters.
Source: Re: Bitcoin 20MB Fork
Very Bad Things will happen if we get to 100% full 1MB blocks.
Source: Re: Bitcoin 20MB Fork
I spent last week talking to some of the largest Bitcoin businesses (much bigger than Paymium/Bitcoin-Central or anything anybody in #bitcoin-assets is involved with), and they all want the maximum block size to increase.
Source: Re: Bitcoin 20MB Fork
Why do you want miners to have an incentive to make smaller blocks?
Smaller blocks means fewer transactions, so fewer opportunities to collect fees, so less profit.
Miner profit in fiat currency = number of transactions * average transaction fee * btc-to-fiat exchange rate
Experience (and common sense) says that more usage of Bitcoin means a higher btc-to-fiat exchange rate, so if you want to maximize miner’s fee revenue then increasing the number of transactions is the obvious way to do it.
If you think that putting an artificial cap on the number of transactions will increase overall miner profit, then I urge you to find a Real Economist and talk to them about the wisdom of trying to use production quotas to keep prices artificially high.
There is no tragedy-of-the-commons race to zero transaction fees, because miners do not have infinite bandwidth, memory or CPU to accept and validate transactions.
Assuming network bandwidth is the eventual bottleneck, and assuming there is demand for transactions to fill the available network-wide bandwidth (even if that demand is transaction spammers), nodes will start dropping transactions before they relay them. Prioritizing them based on fee paid and dropping the lowest fee/kb transactions will result naturally in a working market for fee-paying transactions.
I see one big problem that needs solving:
Supporting lots (millions, eventually billions) of people transacting in Bitcoin. Ideally at as low a cost as possible, as secure as possible, and in the most decentralized and censorship-resistant way possible.
It is hard to get consensus on HOW to solve that problem, because no solution is obviously lowest cost, most secure, and most decentralized all at the same time, and different people assign different weights to the importance of those three things.
My bias is to “get big fast” – I think the only way Bitcoin thrives is for lots of people to use it and to be happy using it. If it is a tiny little niche thing then it is much easier for politicians or banks to smother it, paint it as “criminal money”, etc. They probably can’t kill it, but they sure could make life miserable enough to slow down adoption by a decade or three.
“Get big fast” has been the strategy for a few years now, ever since the project became too famous to fly under the radar of regulators or the mainstream press.
The simplest path to “get big fast” is allowing the chain to grow. All the other solutions take longer or compromise decentralization (e.g. off-chain transactions require one or more semi-trusted entities to validate those off-chain transactions). I’m listening very carefully to anybody who argues that a bigger chain will compromise security, and those concerns are why I am NOT proposing an infinite maximum block size.
Source: Re: Bitcoin 20MB Fork
I will remind everybody again of Satoshi’s second public post where he talked about scalability.
If you didn’t do your homework and thought that Bitcoin == 1MB blocks forever, well, that’s your fault.
I signed up for a Bitcoin that would scale.
Source: Re: Bitcoin 20MB Fork
Quote from: davout on February 01, 2015, 09:05:16 PM What’s the problem with paying 10 bucks instead of 10 cents to securely transfer a million dollars?
Lets say those million dollar transactions are 250 bytes. That is 4,000 of them in a 1MB block.
So $40,000 total reward to the miner – about eight times current block reward.
BUT YOU ARE SECURING TRANSACTIONS WORTH SOMETHING LIKE 2,000 TIMES MORE VALUABLE THAN TODAY’S TRANSACTIONS (estimated average transaction USD value for today’s average transaction is about $380). And I GUARANTEE that attackers would have a much easier time pulling off a double-spend of one million-dollar transaction than 1,000 $1,000 transactions.
The math for “large value transactions will generate enough fees to secure the chain” just doesn’t work. The math for “lots of small transactions will generate enough fees to secure the chain” might.
Source: Re: Bitcoin 20MB Fork
When I first heard about Bitcoin, it was small enough I could read everything, and I did, including all of those mailing list posts. The promise of a system that could scale up to rival Visa is part of the vision that sold me on Bitcoin.
Source: Re: Bitcoin 20MB Fork
If y’all are interested in keeping Bitcoin an exclusive little club… then okey dokey, we have a fundamental difference of opinion on where the project should go.
With absolutely no artificial limits to supply (like a maximum block size), transaction fees would drop to the marginal cost miners pay for hardware, electricity and bandwidth, plus enough net income to motivate them to keep on mining rather than investing their time and money in something else. Fees would be very small, but not zero.
Source: Blocksize Economics
If the number of transactions waiting gets large enough, the end result will be an over-saturated network, busy doing nothing productive. I don’t think that is likely– it is more likely people just stop using Bitcoin because transaction confirmation becomes increasingly unreliable.
I believe that if people want a secure network, they will figure out a way of getting it. My justification is the same as my belief that if people want clean, cheap, safe drinking water they will figure out a way of getting it.
I don’t claim to know how, and it is very possible the how will offend the sensibilities of either (or both) of the “PRIVACY AT ANY COST!!!!” or “DECENTRALIZATION AT ANY COST!!!!” factions. Just like government regulations and institutions around clean water offend the “INDIVIDUAL LIBERTY AT ANY COST!!!!” faction.
I can imagine a lot of possible futures, from big merchants and exchanges investing in mining to save themselves on transaction fees and ensure that their transactions are confirmed securely, to assurance contracts, to a cartel of miners regulated and funded and licensed as a global public utility.
I hope that last one doesn’t happen…
There is a small minority of people who believe that it would be BETTER if transactions moved to fiat currency, an altcoin, or some more-centralized off-blockchain solution. I strongly disagree.
Because network bandwidth, CPU, main memory, and disk storage (the potential bottlenecks) are all growing exponentially right now, and are projected to continue growing exponentially for the next couple decades.
Why would we choose linear growth when the trend is exponential growth?
Unless you think we should artificially limit Bitcoin itself to linear growth for some reason. Exponential growth in number of users and usage is what we want, yes?
I don’t believe that even an infinite blocksize would drive fees to zero forever.
Commodity prices never drop to zero, no matter how abundant they are (assuming a reasonably free market– government can, of course supply “free” goods, but the results are never pretty). The suppliers of the commodities have to make a profit, or they’ll find something else to do.
Individual miners (or sub-majority cartels) can unilaterally create smaller blocks containing just higher-fee transactions, if they think it is in their long-term interest to put upward pressure on transaction fees.
Source: Re: A Scalability Roadmap
Raise the block size too slowly and you discourage transactions and increase their price. The danger is Bitcoin becomes irrelevant for anything besides huge transactions, and is used only by big corporations and is too expensive for individuals. Hurray, we just reinvented the SWIFT or ACH systems.
Source: Re: A Scalability Roadmap
I am much more worried about transaction fees right now than “selfish mining”.
Miners have a natural incentive to want to be closely connected to as many other miners as possible (to reduce orphan costs).
Consensus is the block size limit will have to rise.
Us geeks were/will/are arguing over how and when, not if…
Set an arbitrary constraint (“bids must be in multiples of a tenth of a penny” – or whatever it is these days) and you often get unintended consequences.
I still plan on writing up why I disagree with the idea that a larger block size will lead to centralization, but I’m working on some higher priority things first. I really don’t understand why you would think that our current, arbitrary 1MB limit is the Best Size For All Time. I think that arbitrary constraint will have bad unintended consequences.
Yes, let’s eliminate the limit. Nothing bad will happen if we do.
And if I’m wrong, the bad things would be mild annoyances, not existential risks, much less risky than operating a network near 100% capacity.
Did you mean “Peter Todd has convinced some big mining pool operators not to increase the size of the blocks they create” – then great! That’s the free market at work, big mining pools should be free to create blocks that are as large or as small as they like, and to accept or reject other’s blocks for whatever reason they like.
The block size will be raised, that is the overwhelming consensus among the people who are actually writing code and using Bitcoin for products and services that it needs to happen.
And there is a tiny minority of people who will loudly proclaim that isn’t true and that the core developer are going to destroy Bitcoin if the block size is raised.
Central planning is why I would like to eliminate the hard, upper blocksize limit entirely, and let the network decide “how big is too big.”
The plan from the beginning was to support huge blocks. The 1MB hard limit was always a temporary denial-of-service prevention measure.
“Small mining pools will go out of business” – give me a break! My back-of-the-envelope calculations say that anybody willing to spend a few hundred dollars a year on a dedicated server with a high-bandwidth connection can support a MUCH, MUCH larger block size.
We can speculate all we want about what is going to happen in the future, but we don’t really know.
So, what should we do if we don’t know? My default answer is “do the simplest thing that could possibly work, but make sure there is a Plan B just in case it doesn’t work.”
In the case of the block size debate, what is the simplest thing that just might possibly work?
That’s easy! Eliminate the block size limit as a network rule entirely, and trust that miners and merchants and users will reject blocks that are “obviously too big.” Where what is “obviously too big” will change over time as technology changes.
Nothing stops a merchant who wants more network security from either subsidizing miners (maybe in exchange for a promise to prioritize transactions to them) or mining themselves.
If you think that the block size should stay at 1 megabyte forever, then you’re saying the network will never support more than 7 transactions per second, and each transaction will need to be for a fairly large number of bitcoins (otherwise transaction fees will eat up the value of the transaction).
If transactions are all pretty big, why the heck do we have 8 decimal places for the transaction amount?
Don’t get me wrong, I still think the bitcoin network is the wrong solution for sub-US-penny payments. But I see no reason why it can’t continue to work well for small-amount (between a US $1 and $0.01) payments.
I start from “more transactions == more success”
I strongly feel that we shouldn’t aim for Bitcoin topping out as a “high power money” system that can process only 7 transactions per second.
I agree with Stephen Pair– THAT would be a highly centralized system.
Oh, sure, mining might be decentralized. But who cares if you either have to be a gazillionaire to participate directly on the network as an ordinary transaction-creating customer, or have to have your transactions processed via some centralized, trusted, off-the-chain transaction processing service?
I’m on the “let there be no fixed maximum block size” side of the debate right now.
I think we should let miners decide on the maximum size of blocks that they’ll build on.
Source: Re: The MAX_BLOCK_SIZE fork
Once upon a time bitcoin.org called Bitcoin “anonymous” but that was a mistake, and for at least two years “we” (core developers) have tried to be careful to say that, at best, Bitcoin is pseudanonymous.
I tell reporters that Bitcoin is more private than using any other online payment method, but less private than cash (unless you know a lot about how it works under the covers and jump through several hoops to keep your identity secret).
The Bitcoin ecosystem consists of more that just miners, and even if miners decided to try to form a cabal to increase inflation merchants, users, and exchanges could all veto their block-chain by simply refusing to recognize it.
Source: Re: TX replacement and nLockTime
I’ve got a nagging feeling that all of the pure Proof-Of-X (where X != Work) systems would set up a dynamic of “the rich and powerful get more rich and more powerful.”
The more coins you have, the more you get, as far as I can see in all of the proposed schemes (another disclaimer: I only vaguely pay attention to all of the Proof-of-X schemes, so feel free to tell me how I’m wrong). Seems to me that would end up being a destructive feedback loop, where your decentralized currency naturally gets more and more centralized over time.
The “network effect” is really important for money. Any form of money gains value as more people use it.
It is possible that Bitcoin (or any future crypto-currency) will never be able to gain enough use to overcome big, existing currencies, that already enjoy huge network effects.
But… the potential users for Bitcoin is greater than any national currency because Bitcoin doesn’t care about arbitrary political borders. So maybe at some point in the future a distributed, borderless crypto-currency will have a bigger network effect, and will start to replace zlotny or euros or dollars.
My advice to anybody thinking of raising funds via an unregulated IPO would be “don’t do it unless you want to do it as a protest against our broken system and are willing to face the likely consequences.”
I’ll cheer you from the sidelines, but I’m either not stupid enough or not brave enough to go up against the SEC.
In my humble opinion, the block size should not be arbitrarily limited as it is now (1MB is the limit; typical blocks these days are 30-250K big), but should ‘float’ – miners should collectively decide how large a block they’re willing to validate and build on top of.
Obviously a miner wants to include as many fee-paying transactions in their blocks as possible, until the fee paid is less than their cost of validating and including the transaction (which is a small cost).
But miners also don’t want to spend a very long time validating other miners’ blocks, so they have an incentive to ignore blocks that are outrageously big. If they were willing to build on a 10-gigabyte-big block that took ten minutes to download and signature check, then they’re shooting themselves in the foot– an evil miner could mine a huge block, and then get a head start on mining the next block while the rest of the network was busy validating it.
BUT: moving to a floating maximum block size determined by miners will be really hard; it will require everybody– merchants and miners and users– to upgrade. It may never happen, because other ways of supporting very high transaction volumes might develop before then.
If I were King I’d fast forward to a couple years from now when there were several mature bitcoin clients and bitcoin.org would not list any directly at all
What do I think of ASICs hitting the “mining scene?” Meh.
It shows that Bitcoin is considered stable enough for a company to invest a LOT of money on design and production on it, which is very good. ASICs were bound to happen if Bitcoin survived long enough.
The long-term outlook for mining is “mining will happen with very specialized hardware, in places where either electricity is free or generating lots of heat is a benefit and not a cost” (and probably both; I still think Iceland will be a big mining hot-spot eventually).
I’m not worried about Butterfly Labs deciding to take over the blockchain with their superior hashpower. They’d be idiots to do something like try to mount a 51% attack– they don’t want to kill Bitcoin, they want it to get more successful so they sell more hardware.
And if they are successful they will very quickly have competitors.
Of course fungibility is important. But fungibility isn’t all-or-nothing, and, in my humble opinion, it isn’t all-important. Refusing to accept dollar bills or bitcoins that you believe were obtained illegally makes them less fungible, but so what? It’s the right thing to do.
So far, I think the pace of technological change has outrun governments’ ability to figure out how to use it to exert control.
Maybe governments will get more nimble, but I’m going to continue betting that entrepreneurs and individuals will continue to widen the gap between the new freedoms that technology enables and what the law allows.
I worry a lot more about incentives than I do size; if the “naturally big” players have the right incentives, then they’re not bad for the network. So far, I think the incentives are working nicely.
I hate to inject gloom and doom into a fun topic like vanity bitcoin addresses… but y’all should be aware that one of my longer-term goals for the Bitcoin system is to make bitcoin addresses disappear. I hope Bitcoin software 10 years from now tells users “You’re about to pay 11 micro-Bitcoins to Amazon.com” and not “2mRwtf8blahblahblah”. And I’m not alone, I know Mike Hearn feels strongly about making bitcoin addresses go away for ordinary users.
If you do spent lots of time creating The World’s Best system for mining vanity bitcoin addresses, please don’t be upset or surprised if you find it is obsolete when “Bitcoin 2017 Turbo++ Enhanced Edition” is released.
It is hard to be anonymous when using Bitcoin, and I’d urge you not to do anything with bitcoins that would prompt The Authorities to bother getting subpoenas/warrants to try to figure out who you are.
Source: Re: tainted bitcoins
If I thought that downloading and installing software onto your computer is the way to go then I’d be helping make it better.
I don’t. I think 90-something-percent of future Bitcoin users will be using it on an iPad or mobile phone or on their computer in a web browser.
Incentives matter. Yes, it is true that we cannot be absolutely, positively safe against a 51% attack unless we are absolutely certain 50% or more of the world’s entire computing resources are dedicated to Bitcoin mining.
So what? The natural incentive for somebody with lots of hashing power is to profit by playing by the rules, NOT to cheat.
And if you assume that your attacker is Rich and Powerful but Economically Irrational, then any alternative system that you propose will almost certainly be at least as vulnerable as Bitcoin. Create a system that requires 500 semi-trusted “mintettes” that all agree on a transaction log and then imagine 251 Special Agents infiltrating and corrupting the organizations that run those mintettes.
Increase the number to 40,000 mintettes to make it harder… and you’ve just re-invented Bitcoin.
I expect the bitcoin network will look very different from the way it looks today, and I expect there will be several different solutions for how to scale up. If (when!) Bitcoin gets that successful, there will be serious money hiring the same smart people who figured out how to scale up PayPal and Visa.
I’m really pleased to see very smart people thinking hard about the incentive structures built-in to Bitcoin. I think most people see all the digital signatures and peer-to-peer networking technology but miss that much of the brilliance of Bitcoin is how the incentives are designed.
Honestly, I don’t think the future of bitcoin is running “heavy” nodes on our personal computers. I think the vast majority of people will be using bitcoin through web or mobile apps in the not-too-distant future. So I’m not personally inclined to put a lot of effort into splitting the node and wallet, unless that makes creating lightweight web and mobile apps easier.
I want to squash the “Satoshi mined a bunch of bitcoins on his own before releasing the bitcoin chain” idea. He publicly announced bitcoin version 0.1 six days after he generated the genesis block: January 9, 2009.
According to the block chain history, he generated about 10 blocks total before the announcement. And we know that he didn’t pre-generate blocks because the genesis block contains a quote from the January 3rd Financial Times newspaper.
Putting illegal content in the block chain and announcing it as an attempt to undermine Bitcoin seems like a good way to get yourself arrested.
You’ll have both law enforcement and techies trying to track you down, and given that people are already deploying de-anonymizing tools it seems pretty darn likely that you’d get caught.
Bitcoin’s technology is unstoppable, like p2p filesharing has proven to be unstoppable. But “the Bitcoin Project” could fail in a bunch of different ways.
If mainstream people think “Oh, bitcoin is that internet thing used by criminals”, that is bad for bitcoin. It might be bad enough to kill the project (note that I said “the project”, not “the technology”).
If bitcoin really does turn into an internet thing only used by criminals then I’ll personally consider it a failed experiment and will find something else to do.
Ask yourself why anything has value.
Tools, like hammers or cars or pants, have value mostly because they’re useful and it takes effort to create them.
Some things have value because they’re beautiful or rare.
Bitcoins have value because they are useful and rare. As more and more people use them, they’re useful for more and more things– so their value will increase. A lot of the current value of bitcoin is people who realize this and are trying to ‘buy in early’ – they think that bitcoin will be used for more trading next year, so the value will be higher, so they want to get some now before the price rises.
I have no idea what the “right” value for bitcoin is, but I am very encouraged by all of the fantastic, innovative ways people are using bitcoin. I expect most of those experiments will fail, and I hope that everybody realizes that there will be lots of failures along the way to what I hope will be a huge success.
I think the goals of this project are to create a better currency, create a more competitive and efficient international payment system, and give people more direct control over their finances. And I don’t think any of those goals are incompatible with the goals of government.
Source: Gavin will visit the CIA
If more bitcoin adoption means bitcoin mining replaces actual, physical gold and silver mining then that should be a net positive for the environment. Gold mining is dirty, dangerous, and destructive; if bitcoins eventually become “a better gold”, then there will be less pressure to dig up virgin wilderness.
Right now, bitcoin mining is inefficient, but natural economic forces will make it become increasingly efficient. We’ve already seen that, with more efficient GPU mining replacing CPU mining because you get more hashing for less electricity.
Eventually, I’m confident you’ll see big commercial-scale bitcoin mining operations in places where either electricity is clean and cheap to produce, or where the waste heat from bitcoin production is put to productive use (maybe we’ll all have network-connected bitcoin-mining space heaters to warm our offices in 10 years).
Before then, we probably will see bitcoin production using cheap, dirty electricity in poorer countries. If history is any guide, as that helps to make those countries richer their citizens will demand better environmental standards. Even if we all decided that is unacceptable, I don’t see any way to prevent it– there’s no way to tell if a bitcoin was generated using solar panels in the Sahara or dirty coal in Pennsylvania.
Saving for the future: bitcoins are designed to be like gold: durable, only a limited supply. They have some advantages over gold– they’re much easier to store safely (you don’t have to buy a bank vault or hire guards or trust a storage company) and, because they’re electronic, they can be backed up. And when it is time to sell them the transaction costs are very, very low.
Buy some goods online: I don’t think bitcoins have any significant advantage… yet. Transaction fees are lower once you get bitcoins, but the transaction fees to get bitcoins probably eliminate that advantage.
I think Bitcoin’s real, hidden advantage is the fact that you don’t have to ask anybody’s permission or fill out any paperwork to start doing creative, innovative things with them. Lots of people are doing lots of innovative things with bitcoins, and while most of those innovative things will probably fail (most startups fail), I’m optimistic that some will succeed and in 5 years we’ll be using bitcoins in some way we haven’t even imagined yet. I’m not going to pretend to know which market niches bitcoin will fill– maybe it will be migrant workers using bitcoin to send money back home and avoiding international wire transfer and currency conversion fees.
Maybe teenagers in China will use them to buy stuff online because they can’t get a credit card.
Maybe big multinational corporations will decide to use bitcoins to pay their supply chain to avoid currency exchange risk and save 0.1% on their transactions. Who knows? Even if bitcoin turns out to be just “a better store of value than gold” it will be hugely successful.
Making it easier for merchants to accept bitcoins, and users to pay using them, aught to be priority number 1.
There’s a great talk by the CTO of Facebook available on Youtube, and I think he gave the right advice on scaling: Don’t worry much about it until just before it becomes a problem. Don’t overengineer, because you’re likely to waste time doing something that turns out to be irrelevant.
I think Satoshi has done an amazingly fantastic job.
Source: Re: Scalability
By the time Bitcoins replace the Euro I think most people will be running lightweight clients on wireless smartcards in their (physical) wallet that don’t pay attention to every single transaction.
Source: Re: Scalability
If you have more good posts from Gavin please let me know.
Made with ₿ around the world.