The article presents the blocksize debate as Americans vs. Chinese. I see it more as an effort by payments companies (some of which are US-based) to capture the bitcoin protocol.
Oh yea we wouldn't want those parties who benefit from growing Bitcoin usage to influence Bitcoin protocol decisions, because then Bitcoin might see mass adoption and that would be a terrible fate because ???
As someone who has been closely following Bitcoin since 2011, I do not think that article captures the current situation very well. Yes, there is a concentration of mining power in China, owed to their low costs of electricity. But it does not seem like the Chinese have found a way to use that power yet. In practice, it is a number of Western developers around Gregory Maxwell and Blockstream that calls the shots, aided by /r/bitcoin admin Theymos who recklessly removes posts that do not fit their agenda (I've received two temporary bans myself for mentioning ethereum in a comment).
I really hope that the Chinese miners start to make use of their power and move Bitcoin back towards its original vision. The block size limit of 1 MB was a temporary hack and the core devs who oppose an increase are in an obvious conflict of interest: if Bitcoin can scale the way its inventor envisioned (namely by simply increasing the block size limit every now and then), the business case of the company they work for falls apart. (Blockstream, who develops the Lightning Network, which aims at scaling Bitcoin by building another layer on top.)
What makes me hope is this sentence from the article: "He said in an email this week that if the core programmers did not increase the number of transactions going through the network by July, he would begin looking for alternatives to expand the network." Recently, I spoke to an executive of another large Chinese mining company, and he shares that opinion. If the "core team" continues to refuse to increase the block size limit, they will stop applying core's updates. For that case, some members already threatened to go nuclear and change the proof-of-work protocol, making all existing mining hardware obsolete - which is quite worrying and shows that Bitcoin development currently is not in the best possible hands.
> if Bitcoin can scale the way its inventor envisioned (namely by simply increasing the block size limit every now and then)
It's not nearly that simple. There are two main reasons why "simply increasing the block size" is neither safe nor simple:
1. Centralization. Running a full node is already quite a commitment. The bandwidth requirements are high, the storage requirements are high, and it takes many days to sync the full blockchain. Many people already do not bother doing it because it is such a bother. Running a VM in the cloud as a full node is not that cheap. All of these problems scale linearly with increased block size. A really large block size that causes most existing full nodes to give up and stop relaying would not be worth it for the network in the end.
2. Bitcoin is vulnerable to (and has been subject to) attacks by way of computationally expensive transactions that scale polynomially with the maximum size of a block. This has not been completely solved yet. Right now the worst possible block verification time is on the order of 10-30 minutes for an average CPU acting as a relaying node. "Simply" increasing the block size a great deal without first fixing this issue (and it's a hard issue to fix) could potentially lead to entire network collapse if a single attack block gets mined and then chokes all nodes for days.
> Centralization. Running a full node is already quite a commitment.
The problem is not the resources needed to run a full node. The problem is a lack of incentives. If you want to have lots of full nodes running in the long run, you need to focus on those that do not do so for idealistic reasons, most notably the miners, payment processors, and exchanges. They all have advantages by doing so. Blockchain.info, for example, runs a full node to be able to display incoming transactions and to monitor the network. Adopting this view, the way forward is to grow Bitcoin as much as possible. The more users there are, the larger the ecosystem becomes and the more players there are that benefit from running a full node. We can't rely on the early enthusiasts. We need growth.
> Bitcoin is vulnerable to (and has been subject to) attacks by way of computationally expensive transactions
If you are referring to what I think, then there is a simple fix: do not allow larger transactions than before when increasing the block size. AFAIK, this is what Bitcoin Classic does.
There is no maximum transaction size, other than that imposed by the fact that it has to fit into a block. You would additionally need to hard-fork to add a new transaction size limit. More info here: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015...
Note that that is just one potential problem that we are aware of. I think a conservative approach is reasonable. Look at what has happened with Ethereum and the DAO.
Many people argue that Bitcoin was designed with headroom in mind, and pays out handsome block rewards in exchange for subsidized bandwidth, so the "conservative approach" would not be to run headlong into the block size limit.
It is equal to the maximum block size. One simple fix is to simply decouple the maximum transaction size from the maximum block size and not raise the former when raising the latter.
Why does it need lots of full (non-mining) nodes? Unless you are mining, adding a node to the system just adds network traffic for little benefit.
More full nodes don't provide a better service for bit coin, nor do they provide better security. (If your full node spots a double-spend, so will everyone else). It is just duplicating work that is being done elsewhere. Sure, if you really want to analyse all the blockchain, go ahead and run a full node, but IMO it's ridiculous to want to add incentives for people to do this.
People talk about how running a full node improves decentralization, but they don't prevent any extra attacks on the currency. If there was/is a worrying concentration of mining power, that is a problem, but adding more non-mining nodes does nothing to alter this.
You're right, full nodes sitting on the network don't do a whole lot. It's important that many economically active users (e.g. wallets) are fully verifying though. Wallets based on a fully verifying node are less susceptible to attacks from miners.
>It is just duplicating work that is being done elsewhere.
This is the whole point of Bitcoin. If you only want the transaction to be centrally verified, you can use a federated model instead.
Context: A full node is about 80GB right now. I deleted a full node just the other day that was 94GB, but that had a lot of cruft. Storage is most definitely not an issue unless you're trying to run a full node on your laptop SSD.
I think I understand the points you are making, but wouldn't they be mitigated by a decreased number of blocks because more transactions are fitting into a single block? Or is the point that increasing block size strictly in order to increase network throughput has non-obvious flaws?
Some increase is warranted but constantly increasing the block size is not scalable and the block limit incentivises the payment of fees which makes it harder spam the the network. There has to be a price for using the main bitcoin blockchain.
The proposal to be able to increase the fee by creating a child transaction is needed and means that real transactions can still get processed, if they pay for it.
Anybody with small transactions not worth paying the market fee for should do it off-chain using the lightning network or other exchange. Yes, that means reliance on centralised exchanges but most users don't care and they can be regulated which most people prefer. If you are a diehard libertarian you can still stay decentralised and somewhat anonymous if you are willing to pay the price or take the volatility risk of using another blockchain like LiteCoin.
This is a level where fees start to hurt by destroying previously viable business cases. It is also equivalent to costs of 500'000 USD per GB of storage on the block chain. I agree that block chain storage should not be given away for free, but 0.25 USD per transaction is too much. Everyone would win if we would allow for more. More users could use Bitcoin, more startups could build on Bitcoin, and the miners would earn more money (thanks to more transaction). The only ones who would not benefit is blockstream, as the demand for their competing solution is reduced.
Blockstream isn't competing with the blockchain. Their's is one solution to the problem and others are needed as well, the lightning network being another, which is a competitor.
Competing off chain solutions to the scaling issue is exactly what we need providing that the main chain is kept secure. Once the extra off-chain capacity comes online fees will reduce again.
Interesting, at 0.25USD/transaction it's starting to approach the same rough order of magnitude as credit card fees. It's still cheaper, but not vastly so. I recall one of the benefits of Bitcoin was supposed to be that transaction fees would be greatly reduced. Are they independently discovering that fees actually need to be higher, or is this just an anomaly?
This is because the bitcoin network can currently only process 1MB of transactions every 10 minutes. 1MB is an arbitrary limitation that could be changed easily, but there is strong resistance against increasing this limit. Its a fairly safe assumption that increasing the limit will decrease the fee amount roughly proportionally. The worry is that there will be unintended consequences for increasing the 1MB block size.
I don't know a huge amount about bitcoin but I know that China has a large number of wealthy individuals wanting to move capital out of the country in various ways.
Turning influence or Renminbi into power, turning that power into bitcoins and then into dollars/Western currency would look like a good deal to a significant number of people regardless of the exact rate.
I have assumed that this is the basic story. Bitcoin has provided a way to move funds out of China, and has provided a place to store value that can't be easily seized by law enforcement.
Ultimately, Mr. Armstrong said, “We were unable to convince them.”
Brian Armstrong from CEO of Coinbase along with some other major Bitcoin startups proposed a hard fork in the protocol to increase throughput. This proposal was to raise the block size.
The Bitcoin core developers rejected this along with a lot of the Bitcoin community as it may cause decentralization.
An alternative proposal was created that would not produce a hard fork but still allow an increase in transactions per second. A further proposal called the lightning network is in testing to allow for thousands more transactions per second that then get settled on the main Bitcoin blockchain.
In my opinion consensus won. Everyone will get what they want with out taking any risks with centralization.
The Chinese miners were right to stay on the main branch. If they had forked and the Bitcoin economy didn't follow them, they would be out of business.
The Bitcoin block size debate is like the Brexit. Only this time everyone wins.
If the chinese miners adopted the fork, then everyone would follow them because they are the consensus. That's why he tried so hard to convince them.
The lightning network (or any other private side chain) are not a solution because it still requires the bitcoin network to verify, which means they can't scale for users.
Example: It takes minutes for a side chain to process 20 million transactions for just 2 people, but it takes over a month for a side chain to process just 2 transactions for 20 million people.
>Ironic that Bobby Lee calls the Americans imperialistic
He doesn't:
He said the American companies failed to understand the power dynamics in the room that day. “It was almost like imperialistic Westerners coming to China and telling us what to do,”
almost like
And as the article states Chinese firms are hardly a hive-mind. But even if they were, "taking control" by virtue of mining the most coins is a feature, not a bug. And not "imperialistic."
I don't really follow bitcoin but the NPR podcast that linked to this NYT story claims that 'some bitcoin transactions are not getting processed at all.'
Yes, it is. Bitcoin transactions pay a transaction fee which the person creating the transaction can specify. It can be any amount INCLUDING ZERO. The theory is that paying higher transaction fees will get your payment processed faster. Recently, low fees have not even been being processed and many are paying around 3% for prompt processing
So I pay someone in bitcoin, it doesn't get processed. I say ok, then I put another transaction through and this time pay a fee to get my transaction processed. Now, that one gets processed, but later on my initial transaction also was processed. It seems like these problems would make it more and more difficult to really use bitcoin.
Yes, this happens regularly. It's very difficult to prevent, because unconfirmed transactions are not guaranteed to expire after a known time. Your first transaction has been broadcast across the whole network of nodes, all of which have different retention settings. Even if one node drops your transaction, it is possible that another node will re-broadcast it again.
There have been unconfirmed transactions that got into a block after a week. All it takes is for one node to keep it a little bit longer. Also, if the node re-broadcasts it, other nodes might put it back into their pool.
jooster's comment says that if you broadcast a transaction to the network and it doesn't confirm, it might confirm any time in the future - which is true. You need to assume that any of the transactions you issue will confirm - e.g. if you issue two with differing fees, you don't know which one will confirm until it happens. But once one is confirmed, all other transactions that spend the same coins can no longer be mined.
So I think both comments are right, we just interpreted your question differently.
The developers are planning to add support for actually replacing transactions by a new version with a higher fee soon, along with allowing the recipient to pay a fee to make the transaction process faster (think that might already be in now, actually).
There is a back log for short periods yes, but if you pay a high enough fee your transaction will go through earlier. When things quiet down or more blocks are mined in a given time the back log goes down.
It's a supply and demand issue. If you want to use the blockchain to process transactions you have to pay more the higher the demand until demand levels out.
If you didn't pay high enough a fee and get stuck at the back of the queue you are stuck until a proposal that will let you increase the fee for an existing transaction is implemented or the queue goes down.
The segregated witness change will increase the capacity by 40% which should be enough to last until lightning nodes take some of the strain.
There is no centralized-decentralized fork in the road. We need to have both.
Early adopters promoted bitcoin as 'fast' and 'free'. So it's not surprising that people are getting annoyed when transactions can take ages to be confirmed and the fees are growing large.
Worse still is that dynamic fee calculation is a hard problem. You can look at past fees to try and guess a fee for a fast confirmation, but as more and more people do this, the guesses will get worse and worse. It becomes a silly game of trying to guess what fee other people are going to pick for new transactions, and then adjusting your fee accordingly.
Just look at one of the most popular fee calculation page: https://bitcoinfees.21.co/ - it's far too complicated, and has a bewildering range of numbers. Just to make it worse, they mix up bitcoins, satoshis and dollars to confuse people further. On top of that, fees have to determined based upon your transaction size. So users have yet another complication to the fee selection.
You need a calculator and a deep knowledge of game theory to make a transaction work. Currency of the future!
Don't think that banks didn't take calculators and game theory to their currencies many decades ago.
I don't see how anyone could have claimed Bitcoin was free, while having even a basic understanding of it. The entire system relies on proofs of work and transaction fees are part of the original paper.
I missed that point. I argue exponential compounding interest is not so simple and certainly not flat.
The US Federal government has required banks to produce standard term sheets that supposedly more clearly describe a bank's particular fee scheme. That is how bad "they" are.
To follow in the best way possible Bitcoin's situation, don't use /r/Bitcoin because it's censored. Only positive propaganda is allowed there. Use /r/btc instead!
I was surprised by the photos because I thought that these days most mining was being done via USB-connected ASICs, but the clear implication of the photos was for CPU mining. Perhaps this is just a case of "we're not showing how it really works" but it was a surprise nonetheless.
I think it's important to note that it's unclear that Bitcoin Core will ever allow for a block size increase to occur: several influential Core developers have publicly stated that that are still very much opposed to any increase, and the team uses a consensus process that makes it easy to veto change.
That's not true. At most, the amount of data in a block stays the same but attaches an associated data structure to the block that is estimated to equal, at most, 1.7mb.
That's a best case scenario once every piece of software that created Bitcoin transactions has been altered to use the new transaction format. That software upgrade process could take years.
Most of the comments here are missing the point. Read the article more closely. From the Bitcoin miner in China perspective, Bitcoin is an investment vehicle and a way to get yuan out of China. Bitcoin for retail transactions is irrelevant. More capacity for small transactions is a nuisance, not a feature. The big miners are thinking wholesale, not retail.
Read the view of the CEO of Huobi.[1] He sees the functions of Bitcoin as 1) a global financial asset, and 2) a financial tool for improving money transfer. (By "money transfer" he means reasonably large transactions, comparable to wire transfers.) As a payment network, he wrote "Bitcoin already works as a payment network today, but relative to competitors like PayPal and Visa, Bitcoin is very small." A bigger block size is useful mostly for the payment network application, which is not a priority for the big miners.
Bitcoin miners don't have any incentive to make possibly risky changes to the software. Recent congestion and changes have increased fees which seems to me a strong incentive to keep the status quo of limited scalability.
As a network Ethereum is much more scalable, fast and more decentralised by design, Buterin has learnt from bitcoin's problems (but obviously Eth has it's own problems).
73 comments
[ 2.7 ms ] story [ 108 ms ] threadI really hope that the Chinese miners start to make use of their power and move Bitcoin back towards its original vision. The block size limit of 1 MB was a temporary hack and the core devs who oppose an increase are in an obvious conflict of interest: if Bitcoin can scale the way its inventor envisioned (namely by simply increasing the block size limit every now and then), the business case of the company they work for falls apart. (Blockstream, who develops the Lightning Network, which aims at scaling Bitcoin by building another layer on top.)
What makes me hope is this sentence from the article: "He said in an email this week that if the core programmers did not increase the number of transactions going through the network by July, he would begin looking for alternatives to expand the network." Recently, I spoke to an executive of another large Chinese mining company, and he shares that opinion. If the "core team" continues to refuse to increase the block size limit, they will stop applying core's updates. For that case, some members already threatened to go nuclear and change the proof-of-work protocol, making all existing mining hardware obsolete - which is quite worrying and shows that Bitcoin development currently is not in the best possible hands.
No miner with any significant amount of hash power would install such a release.
It's not nearly that simple. There are two main reasons why "simply increasing the block size" is neither safe nor simple:
1. Centralization. Running a full node is already quite a commitment. The bandwidth requirements are high, the storage requirements are high, and it takes many days to sync the full blockchain. Many people already do not bother doing it because it is such a bother. Running a VM in the cloud as a full node is not that cheap. All of these problems scale linearly with increased block size. A really large block size that causes most existing full nodes to give up and stop relaying would not be worth it for the network in the end.
2. Bitcoin is vulnerable to (and has been subject to) attacks by way of computationally expensive transactions that scale polynomially with the maximum size of a block. This has not been completely solved yet. Right now the worst possible block verification time is on the order of 10-30 minutes for an average CPU acting as a relaying node. "Simply" increasing the block size a great deal without first fixing this issue (and it's a hard issue to fix) could potentially lead to entire network collapse if a single attack block gets mined and then chokes all nodes for days.
The problem is not the resources needed to run a full node. The problem is a lack of incentives. If you want to have lots of full nodes running in the long run, you need to focus on those that do not do so for idealistic reasons, most notably the miners, payment processors, and exchanges. They all have advantages by doing so. Blockchain.info, for example, runs a full node to be able to display incoming transactions and to monitor the network. Adopting this view, the way forward is to grow Bitcoin as much as possible. The more users there are, the larger the ecosystem becomes and the more players there are that benefit from running a full node. We can't rely on the early enthusiasts. We need growth.
> Bitcoin is vulnerable to (and has been subject to) attacks by way of computationally expensive transactions
If you are referring to what I think, then there is a simple fix: do not allow larger transactions than before when increasing the block size. AFAIK, this is what Bitcoin Classic does.
Note that that is just one potential problem that we are aware of. I think a conservative approach is reasonable. Look at what has happened with Ethereum and the DAO.
Many people argue that Bitcoin was designed with headroom in mind, and pays out handsome block rewards in exchange for subsidized bandwidth, so the "conservative approach" would not be to run headlong into the block size limit.
There is a maximum transaction size:
http://bitcoin.stackexchange.com/a/35882
It is equal to the maximum block size. One simple fix is to simply decouple the maximum transaction size from the maximum block size and not raise the former when raising the latter.
More full nodes don't provide a better service for bit coin, nor do they provide better security. (If your full node spots a double-spend, so will everyone else). It is just duplicating work that is being done elsewhere. Sure, if you really want to analyse all the blockchain, go ahead and run a full node, but IMO it's ridiculous to want to add incentives for people to do this.
People talk about how running a full node improves decentralization, but they don't prevent any extra attacks on the currency. If there was/is a worrying concentration of mining power, that is a problem, but adding more non-mining nodes does nothing to alter this.
>It is just duplicating work that is being done elsewhere.
This is the whole point of Bitcoin. If you only want the transaction to be centrally verified, you can use a federated model instead.
(Honestly asking. I only know the basics.)
Resistance to doubling the block size once to wait out good, solid alternatives suggests other motivations on the part of the resistors.
The proposal to be able to increase the fee by creating a child transaction is needed and means that real transactions can still get processed, if they pay for it.
Anybody with small transactions not worth paying the market fee for should do it off-chain using the lightning network or other exchange. Yes, that means reliance on centralised exchanges but most users don't care and they can be regulated which most people prefer. If you are a diehard libertarian you can still stay decentralised and somewhat anonymous if you are willing to pay the price or take the volatility risk of using another blockchain like LiteCoin.
https://blockchain.info/charts/transaction-fees-usd?timespan...
This is a level where fees start to hurt by destroying previously viable business cases. It is also equivalent to costs of 500'000 USD per GB of storage on the block chain. I agree that block chain storage should not be given away for free, but 0.25 USD per transaction is too much. Everyone would win if we would allow for more. More users could use Bitcoin, more startups could build on Bitcoin, and the miners would earn more money (thanks to more transaction). The only ones who would not benefit is blockstream, as the demand for their competing solution is reduced.
Here is how Satoshi saw scalability: https://bitcointalk.org/index.php?topic=149668.msg1596879#ms...
Competing off chain solutions to the scaling issue is exactly what we need providing that the main chain is kept secure. Once the extra off-chain capacity comes online fees will reduce again.
You should've seen r/Bitcoin following the DAO debacle, nothing posted/discussed but that.
It's actually due more to the low costs of building a datacenter. The electricity prices in WA state, for example, are lower.
Turning influence or Renminbi into power, turning that power into bitcoins and then into dollars/Western currency would look like a good deal to a significant number of people regardless of the exact rate.
Brian Armstrong from CEO of Coinbase along with some other major Bitcoin startups proposed a hard fork in the protocol to increase throughput. This proposal was to raise the block size.
The Bitcoin core developers rejected this along with a lot of the Bitcoin community as it may cause decentralization.
An alternative proposal was created that would not produce a hard fork but still allow an increase in transactions per second. A further proposal called the lightning network is in testing to allow for thousands more transactions per second that then get settled on the main Bitcoin blockchain.
In my opinion consensus won. Everyone will get what they want with out taking any risks with centralization.
The Chinese miners were right to stay on the main branch. If they had forked and the Bitcoin economy didn't follow them, they would be out of business.
The Bitcoin block size debate is like the Brexit. Only this time everyone wins.
How so? Not in disagreement I honestly just don't see the connection (but I don't follow bitcoin)
Isn't a core aspect of bitcoin decentralization? Or am I missing something
The lightning network (or any other private side chain) are not a solution because it still requires the bitcoin network to verify, which means they can't scale for users.
Example: It takes minutes for a side chain to process 20 million transactions for just 2 people, but it takes over a month for a side chain to process just 2 transactions for 20 million people.
He doesn't:
He said the American companies failed to understand the power dynamics in the room that day. “It was almost like imperialistic Westerners coming to China and telling us what to do,”
almost like
And as the article states Chinese firms are hardly a hive-mind. But even if they were, "taking control" by virtue of mining the most coins is a feature, not a bug. And not "imperialistic."
Is that really true?
So I think both comments are right, we just interpreted your question differently.
It's a supply and demand issue. If you want to use the blockchain to process transactions you have to pay more the higher the demand until demand levels out.
If you didn't pay high enough a fee and get stuck at the back of the queue you are stuck until a proposal that will let you increase the fee for an existing transaction is implemented or the queue goes down.
The segregated witness change will increase the capacity by 40% which should be enough to last until lightning nodes take some of the strain.
There is no centralized-decentralized fork in the road. We need to have both.
How high, out of curiosity? How do these compare with banks and other traditional fund-transfer services?
I guess you could take a picture of a check and send it to someone else to deposit through their phone. But that's limited to $1000 at a time.
Worse still is that dynamic fee calculation is a hard problem. You can look at past fees to try and guess a fee for a fast confirmation, but as more and more people do this, the guesses will get worse and worse. It becomes a silly game of trying to guess what fee other people are going to pick for new transactions, and then adjusting your fee accordingly.
Just look at one of the most popular fee calculation page: https://bitcoinfees.21.co/ - it's far too complicated, and has a bewildering range of numbers. Just to make it worse, they mix up bitcoins, satoshis and dollars to confuse people further. On top of that, fees have to determined based upon your transaction size. So users have yet another complication to the fee selection.
You need a calculator and a deep knowledge of game theory to make a transaction work. Currency of the future!
I don't see how anyone could have claimed Bitcoin was free, while having even a basic understanding of it. The entire system relies on proofs of work and transaction fees are part of the original paper.
The point is that banks use a relatively simple / flat fee structure now because user expectations are important for payment transactions.
This whole "Banks had this problem centuries ago" doesn't make a strong argument for bitcoin's competitive use as a currency.
The US Federal government has required banks to produce standard term sheets that supposedly more clearly describe a bank's particular fee scheme. That is how bad "they" are.
Motherboards aren't used for CPU mining, but for controlling GPUs that mine Ethereum. There aren't ASICs for Ethereum.
its almost kind of weird how my transactions get mined immediately in the next block as if there was absolutely nothing different going on
My experience using bitcoin between addresses is the same as it was in 2013
That's a best case scenario once every piece of software that created Bitcoin transactions has been altered to use the new transaction format. That software upgrade process could take years.
It's true that to reach the maximum capacity, all Bitcoin software has to be upgraded. But that's also true for a 2MB bump hardfork.
Read the view of the CEO of Huobi.[1] He sees the functions of Bitcoin as 1) a global financial asset, and 2) a financial tool for improving money transfer. (By "money transfer" he means reasonably large transactions, comparable to wire transfers.) As a payment network, he wrote "Bitcoin already works as a payment network today, but relative to competitors like PayPal and Visa, Bitcoin is very small." A bigger block size is useful mostly for the payment network application, which is not a priority for the big miners.
[1] http://www.coindesk.com/bitcoin-in-china-an-insiders-view/
As a network Ethereum is much more scalable, fast and more decentralised by design, Buterin has learnt from bitcoin's problems (but obviously Eth has it's own problems).
https://www.cryptocoinsnews.com/ethereum-announces-unlimited...
Bitcoin is the slow moving Java to Ethereum's c# or scala.