Bitcoin Cash: Why It's Forking the Blockchain and What That Means
coindesk.com
coindesk.com
I understand the reason for a larger block - it seems like it's pure profit for the miners (should we just refer to it as greed?), but I do not understand the objection to SegWit which is essential for lightning to work.
I am fairly convinced at this point that off-chain transactions as described in the lightning docs [1] is the future. The block chain cannot possibly support all the transactions, there could be millions per second if micropayments do take off, and that will most likely happen via the channels as described in the lightning docs.
[1] https://github.com/lightningnetwork/lightning-rfc/blob/maste...
Edit: If you're not familiar with lightning, you should read up on it. The gist of it (my understanding, I am not exactly a bitcoin expert) is that if I trust someone, there is no need to announce to the whole world that I just gave my kids ice cream money, it's between me and them. And it's instant. The blockchain is used only as last resort, when one of the parties does not cooperate as as agreed.
And for someone that cannot afford a 100$ drive every 5 years, toss the old blocks after saving a checkpoint and just keep the last X months plus UTXOs?
How does this improve with offchain transactions? What's the point of validating the blockchain if it's no longer a peer to peer network? That can't be any better than validating from checkpoints.
How long would it take you to download the initial data? I don't think a 2 channel ISDN link could ever catch up.
But again, you can't compare this to going offchain! You can never catch up with the private networks doing settlement on BTC. But if you just want to validate going forward, then you need 2GB of UTXO data, plus a checkpoint hash and you can validate from there on out.
From a Bitfury paper on the subject [1]:
8MB blocksize requires: 411GB/year extra space, 1184kB/s average bandwidth, 35.4TB/year bandwidth, and 32GB RAM.
If that isn't enough to scale, which it won't be if Bitcoin is to fulfill its goals of being able to compete with the currently leading payment networks, take a look at something like 32MB blocks:
32MB blocksize requires: 1643GB/year extra space, 4736kB/s average bandwidth, 141TB/year bandwidth, and 128GB RAM.
Although these numbers are possible to meet, it's obvious that not everyone is going to have hardware like this just to run a Bitcoin node. So it's predicted that so many nodes will be excluded for larger blocksizes (90%+), that the decentralization will take a huge blow.
[1] http://bitfury.com/content/5-white-papers-research/block-siz..., page 4
The BW calculations are misleading - that counts transmitting the blockchain to other nodes. To validate transactions and participate, you don't need to upload it, only download. Also, if we consider transaction history irrelevant since Lightning or other offchain solutions are OK, then all that is needed is the last few blocks and UTXO.
As Satoshi said, once client-only is in, it doesn't really matter, and the answer is to not care how big it gets. (Sure, quoting him isn't an end-all, but it shows the original design goals.)
Also, none of this explains why an increase to say, 2MB was never done, unless it's a game of chicken.
I guess it was just a matter of time until this happened, though ideally it would've been many years rather than two years.
https://www.engadget.com/2016/10/06/comcasts-1tb-data-caps-s...
It's "only" $50/mo extra to get unlimited, but if you don't have it then it can cost up to +$200/mo.
> I understand the reason for a larger block - it seems like it's pure profit for the miners
Bigger blocks = more supply. Wouldn't the cost go down?
Not that it will do them a lot of good, what matters most is what the exchanges and other important economic entities handling bitcoins consider "the real bitcoin", having a majority of nodes won't do much.
There's simply not enough incentives for Bitcoin users to spawn a node so most people prefer to use a light wallet.
Furthermore ~400GB per year is not particularly insane, you can get a 6TB drive for less than $200 and that'll be enough to store more than 15 years worth of blockchain.
As for bandwidth it amounts to less than 14kB/s on average.
>there could be millions per second if micropayments do take off, and that will most likely happen via the channels as described in the lightning docs
Maybe, but I'm a bit surprised that so many people believe that LN will be successful when we have so little data on how it'll actually work. But I'm going to repeat myself, I already explained my concerns here: https://news.ycombinator.com/item?id=14759965 (with some insightful replies).
In particular I can't really imagine how LN could reach a Visa-level number of transactions without having a few mega "nexus nodes" concentrating most of the open LN channels. That would give those nodes some power as they could decide who they pair with (which channels they open) which would be a big blow to the decentralized nature of Bitcoin.
The idea that every bitcoin user would each end up having a handful of channels open and we'd keep routing around the graph (with all the balancing issues it involves) to pay everything seems rather optimistic and aligns poorly with real-world incentives.
Bitcoin users are important economic entities.
There is no distinction between a "consumer" and a "business" in Bitcoin. Everyone is a user. Everyone sends and receives payments.
That way you still get to keep control of your keys, and you get a little control over the consensus rules you think are valid, but you don't have to sync the entire chain.
This is what most users are likely doing.
If that's not the case, then, well... that's what they should be doing.
Just because Coinbase has X amount of customers doesn't mean that many people are using Coinbase as a wallet. I'm a Coinbase customer but I don't use Coinbase as a wallet.
And I say this as someone that dislikes Coinbase and was burned by them (one day they seized all my coins until I verified ID on login, then erased my bank account connections and refused to delete my PII that I only provided to withdraw my coins in the first place.)
The CPU and bandwidth resources are trivial. Torrent traffic from a decade ago is many orders of magnitude more bandwidth than what bitcoin or even all currencies combined are. It is literally a non-issue.
What coinbase and other exchanges consider to be the "true" bitcoin matters a whole lot more than what some guy who just installed a bitcoin node on his raspberry pi thinks is the true bitcoin.
In the end bitcoin is worth what people are willing to pay for it. Even if you have the majority of the nodes if nobody accepts your forked bitcoin then it's worthless.
I think that's a valid point, but we won't know how it will play out until we actually get there. It seems to me that the "large block" crowd is of the "let's not go there" opinion, but I think they're resisting the inevitable.
That sounds like a terrible plan. Let it play out on Litecoin or some other toy blockchain.
The large block crowd wants the easiest most straight forward way of scaling now. Which isn't to say other solutions aren't welcomed. But it's strange that the Core team has made it an either or.
It's weird how in certain forums there seems to be overwhelming support for blockstream - but everyone I meet in real life doesn't have that same enthusiasm.
That seems to be the consensus and that's my main issue with the entire ordeal. We're talking about a $40 billion market cap currency, not a bittorent tracker. Maybe it would be worth taking a bit more time to run some simulations and figure out the long term plan?
IMO looking mostly from the outside (I'm not heavily invested in any cryptocurrency) it would've been more reasonable to bump the block size a little bit in the short term (maybe 2 or 4MB) to let the current architecture carry its weight for a few more months or even years and take that time to come up with something better than "back of the envelope calculations", to cite what I read in some LN papers.
When the lightning network is up and running you can bet that I'll be using my full node for that too.
120GB of disk space is a big hit. My drive is a 500GB SSD. Bitcoin runs a lot slower on an HDD. But mostly people saying "oh it's only $5 a month" I feel aren't actually running nodes. It's inconvenient already, the sizes are already hurting adoption, and making the chain bigger is definitely going to make that situation worse.
And once it's actually synchronized HDD or SSD doesn't matter much in my experience.
I don't think it's really a factor in adoption, most users don't feel the need to run a node already. People running nodes are enthusiasts first and foremost.
That's a big part of the issue. Already people prefer to run lite clients for convenience. There are heavy systemic risks that get worse and worse as the number of full nodes decrease. Back room deals become a lot easier for those who do run full nodes, because there aren't enough people running full nodes to prevent unfavorable network changes.
One you have synced your node, an HDD isn't a big deal but if you only run your node every few weeks or months you have thousands of blocks to sync each time. Then it's a pain, and SSDs are nicer. (This is my personal situation). I typically only boot my node if I intend to spend or receive coins, the sync time is already frustrating to me on an SSD and i7.
You don't want an ecosystem where only enthusiasts are verifying transactions. That's abusable, and if it forms a significant part of the economy it absolutely will be abused.
For $20 a month someone could easily run a large-block full node and that price will only come down.
Also, would you pay $20/mo for a credit card? That's a big expense to participate in a financial system.
How many independent nodes do we need to ensure it keeps working?
It's true but as I pointed out in a sibling comment those risks are pretty slim as long as it's highly unlikely that all node runners could be colluding. It takes only one "uncorrupted" node to raise the alarm publicly, then anybody can spawn a node and check for themselves if they want.
>You don't want an ecosystem where only enthusiasts are verifying transactions. That's abusable, and if it forms a significant part of the economy it absolutely will be abused.
Okay but that's the way bitcoin works, with or without SegWit, with or without big blocks. There are not enough incentives to run a full node already. I don't think that will change unless you manage to create an incentive somehow.
What can you make against bitcoin with that?
However, in my experience any node accepting incoming connections will have many more than the additional 8 incoming connections we might expect. I throttle total connections at 64, but unthrottled I've seen it go over 100, admittedly after a few days of uptime.
Simply spawning 10 thousand nodes would not allow someone to take over the network in any sense.
In practice as long as you have at least a few thousand nodes run by a variety of uncooperating users around the globe it should be enough to handle all the transactions and raise an alarm if anybody attempts something foul. The amount of coordination required to carry an attack by taking over the node network seems rather implausible.
For one thing you'd have to convince all the big exchanges and the miners to play along and then you'd have to hope that none of the people running the thousand of nodes would see the fork and raise the alarm publicly.
It might however make it easier to run "transaction malleability" attacks however but that's an other issue altogether and ought to be fixed in the short term.
> As for bandwidth it amounts to less than 14kB/s on average.
Fourteen kilobytes a second is quite an understatement of the bandwidth needed to operate a bitcoin full node. Remember, nodes don't just download the chain: they also relay unconfirmed transactions and blocks to other nodes, which increases bandwidth requirements by a few orders of magnitude.
When I ran a full node a while back it was eating a couple of TB a month. Nowadays that blocks are full I suspect that it's quite a bit more than that.
Anyway, that's not even my main point. I just thing that I think this particular problem is overblown and used as a bogeyman by the opposing party. Not that "big blockers" are without blame, there are insane conspiracy theories on both side and even in between.
Hacker news is basically one of the only places where I've seen people being able to discuss these issues on a technical level without going full "the illuminati freemason bankers are trying to destroy bitcoin".
Not doing those things actually weakens the network. If most users operated a node like the one you described, there would be several negative effects on the overall network's health:
* It would take longer to relay transactions: full nodes would be less interconnected and there will be more "hops" between any two nodes. This in itself can cause many problems: it gives miners an incentive to centralize geographically (latency increases orphan rate) and can make a 51% attack slightly easier.
* The network will become more vulnerable to DoS attacks, because only nodes that relay transactions need to be targeted.
* Full nodes will have even higher bandwith requirements, because they will have to relay transactions to more nodes (that don't relay in turn), like a torrent with many leechers.
It's kind of like how the development of popcorn time is bad for the health of torrent networks (not the same though, different reasons).
> Anyway, that's not even my main point. I just thing that I think this particular problem is overblown and used as a bogeyman by the opposing party. Not that "big blockers" are without blame, there are insane conspiracy theories on both side and even in between.
I get it, but I don't think this problem is overblown.
It's true but it's not exactly in the same category. I was mainly considering attacks that would attempt to mess with the ledger, not a denial of service. DoSes are a problem of course, but it's transient and can be fixed "in hindsight" if it actually becomes an issue. Successfully tampering with the blockchain on the other hand would be a massive shitfest and non-trivial to fix.
I'm not really worried about the number of nodes becoming insufficient to relay the transactions because clearly people who are invested in bitcoin have all kinds of incentives to keep it running. That means that big exchanges and "whales" could easily invest a few dollars a month to run a full node on a high bandwidth VPS. Keeping Bitcoin usable would actually be a good incentive to run full nodes if that ever became a problem. If Bitcoin really keeps growing eventually banks, big companies and governments will want to run nodes and I presume they won't host them on a raspberry pi connected to a 56k landline.
On the other hand if your internet connection is too crappy to support 8MB blocks (14kB/s, remember?), I can't really imagine that it'll do a lot of good as a backbone for the bitcoin network. If anything you'll end up eating up bandwidth from external nodes as they forward you the blocks and transactions while not really contributing much yourself.
I currently run a full node since I have a gigabit connection but I will definitely stop if I need to increase storage space by that much. The current growth rate is maybe a tenth of that.
You also need to keep in mind that most residential usage limits are around 400 gigabytes per month. After this change, within a year the vast majority of people will not be able to run nodes outside a datacenter.
Within a few years when the blockchain is multiple terabytes it will be nearly impossible to download on a residential connection due to size and especially usage limits.
Also disk usage arguments still apply to SegWit. For instance: see this 3.7MB block on the test network, containing 468 transactions.
https://testnet.smartbit.com.au/block/00000000000016a805a7c5...
so if we're extrapolating from worst case scenarios, that's 658GB per year!
Discussions around block size always include someone obsessed with storage, and that argument can go both ways. But storage is the least interesting aspect. Increased transactions per second means increased validations per second, which has a number of implications including increased latency in the peer to peer network. This affects mining protocols, orphan rates, mempool size, throttling algorithms etc. There are several interesting aspects, and storage is very far down the list.
A lot of work has been done for the past few years to improve that situation, look at the new crypto library for a few concrete examples. This kind of work is what led the developers behind segwit to provide for a quadrupled block size. I am not familiar enough with the details to have an opinion if that is somehow an optimal block size, but that's where we are now that segwit locks in.
I don't know what it is about block size that makes everyone and their mother so desperate for an opinion about it. People who have no clue about the underlying protocol or the various scaling properties of the involved algorithms pull a number out of the air and somehow that's their opinion of the matter. There are probably very interesting things to discuss here but it's completely drowned in noise of one single constant.
I completely agree, my point is that even with full 8MB nodes the barrier of entry is not much higher than it is today with 1MB node. Or to put it an other way I don't think we'd have 10 times more nodes if block size was at 100kB. I postulate that the main barrier of entry right not is simply bothering to actually set up a node.
At least in the "first world" the average joe has the resources available to run a full 8MB node without having to starve himself, both in terms of bandwidth[0] and storage[1]. So while there's some discussion to be had about what constitutes a safe amount of nodes online (Taek has some interesting points about that elsewhere in this thread) I still think it's pretty irrelevant in this blocksize debate.
>But storage is the least interesting aspect. Increased transactions per second means increased validations per second, which has a number of implications including increased latency in the peer to peer network. This affects mining protocols, orphan rates, mempool size, throttling algorithms etc. There are several interesting aspects, and storage is very far down the list.
That's a very interesting point and something I hadn't really thought about. I'm surprised though, given that nowadays the rule of thumb is "wait for 5 confirmations before accepting a transfer" it seems to me that the latency between the moment I issue a transaction to the network and the moment it's "mined" into a block is not that significant? I mean, at a rate of 8MB every 10 minutes you have the time to do a lot of crypto work on the nodes...
[0] https://www.statista.com/statistics/204952/average-internet-... [1] https://www.newegg.com/Desktop-Internal-Hard-Drives/SubCateg...
Not everyone has access to such resources. You and I do, but many people run their lives on PCs with 32GB EMMC soldered to the motherboard, mobile devices, netbooks, public school computers with limited network-based storage, and internet connections that can barely allow a couple gigabytes per month. If a technology is not inclusive of the median hardware possessed by that (large) community, it will not gain traction beyond hackers with like us.
Also, the vast majority of people I know do not use desktop computers. Lugging around a 6TB external drive just to deal with payments, and then dealing with backing up that drive, is not exactly a good sell.
So the question is: amongst the people running full nodes today, how many wouldn't be able to cope with 8MB blocks?
Also note that 8MB is the max size and blocks could be smaller, I don't expect that 8MB blocks would get fill up in the short term.
It should mean lower transaction fees for users, but more transactions are possible so the miners make it up on volume. Win-win.
> I am fairly convinced at this point that off-chain transactions as described in the lightning docs [1] is the future. The block chain cannot possibly support all the transactions, there could be millions per second if micropayments do take off, and that will most likely happen via the channels as described in the lightning docs.
If you trust your counterparty you wouldn't be using bitcoin in the first place. SegWit/lightning seems to undermine most of the point of bitcoin; certainly moving to transactions happening off-chain would be a radical change and it's not clear it would preserve bitcoin's positives (e.g. decentralization). Whereas increasing the block size is a simple, well-understood change.
Isn't this inevitable? Once demand of anything increases beyond a certain threshold, individuals can no longer supply enough of that thing to satisfy that demand, because they are overwhelmed by the costs of logistics, storage, maintenance and so on.
In the case of bitcoin, I imagine that soon you'll need to have dedicated machines for this task. Not a lot of people can afford to have one - or several, for redundancy - machines to do it.
Hence, the "power" - like in anything else - is in the hands of those that are willing to make a significant investment to keep things running. The payoff for them is that they can profit from providing this service. If I understand correctly, this comes in the form of transaction fees.
Or did you think that bitcoin could rise to the level of, say, Visa or Paypal on the backs of volunteers? Bitcoin isn't even "mainstream" yet, and the network is already buckling.
I think this outcome was more than predictable.
No. You provide no stats, no costs, to justify why 8MB is prohibitive while 1MB is fine. In reality 8MB blocks remain easily affordable. The limit where it starts being quite costly for an individual to run a full node is around 100MB:
https://news.ycombinator.com/item?id=14825934
And by the time we get to 100MB, computing, networking, storage technology will have improved and let us go even further.
Let's talk about the realities of Lightning for a minute. Lightning is an interesting technology solution to scaling transactions and settling on the blockchain. But realize that there are significant drawbacks.
In order to spend anything on the lightning network, you need to have funds locked in a channel with a hub. And you can only spend the maximum that is in your hub. Likewise, you can only receive up to the maximum that the hub has put in the channel. In other words, your net credit or debit balance can't exceed the maximum put in by the other side.
There are some significant user experience drawbacks to this approach. I want to send someone $100, but I only have $50 in my channel. So now I need send $50 more of bitcoin and wait 20 minutes for confirmations. Then I can send the $100. It is even worse if I want to receive $100. Now the hub (bank?) has to approve my request to "receive" $100 because it costs them fees and capital to fund the channel. Make no mistake, the hubs will pass these fees on to you, the consumer.
Suddenly this starts to look a little more like Paypal then we want. Granted it is a better version of Paypal - there can be multiple, interoperable hubs - but with small blocks, funding transactions will not be cheap.
In a small block world, Lightning network fees will likely be more than you think. It could easily cost $10 worth of bitcoin for both sides to fund a $1000 channel. Why would I want to tie up $1000 to use this. I'd rather just pay the 3% to send via Paypal.
If you have a huge "bank of america" hub connecting to hundred of thousands of entities through large channels on one side and a small "mylightninghub.io" with a dozen of people through $10 channels you better hope that they're extremely competitive on fees to make up for it.
It's almost exactly like the credit card business currently. If I come to you and tell you "Here's the SimiasCard, it has extremely low fees and great advantages! But you're limited to $5 a day and it's basically accepted nowhere." Would you take it?
As space in blocks becomes crowded we should expect transaction fees to grow, and indeed they have: https://bitinfocharts.com/comparison/bitcoin-transactionfees...
If space in blocks is abundant then transaction fees should settle at the approximate per byte cost to the miner of the additional transaction.
I would expect smaller block sizes to be more profitable for miners, all else being equal (e.g. ignoring that high transaction costs make BTC less valuable).
2) 8TB drive is $175 on Amazon. That alone can hold ~1 thousand days of full blocks. That's almost 3 years worth of blocks. By then the HDD prices will likely be even lower.
3) If some regular user will want to mess with the whole blockchain (which is such a strange argument, most don't care for it), downloading 8TB of data takes less than 18 hours on a gigabit connection. It will take years to get to 8TB.
4) There's no real objection to SegWit, as long as it comes with the large blocks. But consider what happened with Segwit2X - as soon as Segwit support solidified, a talk of ditching the 2MB extension started, a classic bait and switch. It's all over /r/bitcoin.
Others want Bitcoin to become a settlement layer, and certain backers have said that $1000 tx fees would be great, since that means BTC won as a settlement layer. This kills the peer to peer aspect though, and end users would rely on offchain third parties to actually get transactions done. This group has fought to keep small blocks, despite recent congestion and increasing fees. The argument is that increasing blocksize can't solve all problems so why even start, and that increasing it even a bit would somehow prevent regular people from validating the chain.
Complicating matters a bit is that some miners have an optimised way of mining, exploiting Bitcoin block header layout to get an optimisation during hash calculations (AsicBoost). This is a 20% advantage but also encourages mining occasional empty blocks. AsicBoost is incompatible with many suggestions of changing the Bitcoin protocol, giving economic incentives to object to such things. This muddies the water.
On the other side, companies have invested a lot into becoming clearinghouses (Coinbase) or inventing ways to do offchain tx (Blockstream) casting doubt on their intentions of killing P2P and making BTC just for settlements.
It's not clear to me why an increase to 2 or 4MB wasn't done though. Perhaps to force the issue?
> It's not clear to me why an increase to 2 or 4MB wasn't done though. Perhaps to force the issue?
Yes, and it seems also out of spite. They could have increased to 2MB in order to avoid the horrible congestion on the network for a couple years. Once that was in place, they could have continued the SegWit work.
In fact, originally, everyone was in support of SegWit. Even the big-blocks camp (we can see that from the New York Agreement, where virtually the whole industry supported both big-blocks and SegWit). The only reason so many like Bitcoin Cash are against it today is because the debate has become emotionally-charged and us-versus-them. SegWit is an all-around good idea.
But the Core developers held out from a blocksize increase because, once they had declared that going from 1MB -> 2MB would be the end of the world, the network would become "centralized", etc, they didn't want to walk it back and simply compromise.
IMO, this is the main reason the ecosystem is migrating to Ethereum. It's not because of the Turing-complete scripting that is possible on Ehtereum, it's because development has been a lot more sane.
Despite the problems they've had (e.g. the DAO), the Ethereum ecosystem is more diverse and professional. They rationally discuss problems and make tradeoffs. They encourage alternate implementations, whereas the Core folks have engaged in baseless fear tactics to ensure theirs is the only implementation on the network[0] (and not talking about protocol changes--simply alternate implementations of the same protocols and consensus rules).
I think unless these leadership problems are addressed somehow, Bitcoin is going to fade into obscurity as others, like Ethereum, lead the way.
[0] https://web.archive.org/web/20160316061949/https://blog.conf...
---
EDIT: Corrected "Bitcoin ABC" to "Bitcoin Cash"
This statement demonstrates a very shallow understanding of the blocksize debate. There are a large number of reasons to object to any hardfork (causes instability and chaos, breaks compatibility, is a point of control for the people dictating the hardfork, is potentially opposed by many users, no easy way to measure support), and even more reasons to oppose a block size increase hardfork (doubling the blocksize worsens bottlenecks that are already significant, buys only a few months of time, is not a repeatable strategy to achieve real scalability, and the fight seems much more about control and pride than the actual block size - otherwise segwit would have been adopted immediately).
As bitter as the fighting has been, the opposition to a block size increase hard fork stands on very solid ground.
The recent multi-sig wallet hack was due to some bad refactoring by one of the developers on the Parity node/wallet team. Gavin Wood wrote a post about it, and instead of blaming his employee, he blamed himself, that he didn't put enough security into the Solidity language itself. And then he proposed some changes to make it safer.
There definitely was some ugliness with the ETH/ETC fork and controversies, but now we have pull requests from ETC developers that help improve ETH.
There seems to be a lot less ego in the Ethereum developer community. The fighting inside the Bitcoin community leads to attacking other communities too. Whenever there is a setback or hack or just the Ether price drops a bit, the threads are full of Bitcoiners coming in to laugh, attack, 'concern troll'. But you rarely see the reverse. Usually the attacks on Bitcoin come from the people who think all cryptocurrencies are a scam, they target everyone equally. Of course there are exceptions, there are amazing people in Bitcoin and horrible people in Ethereum. I'm just making a broad generalization on the feeling someone gets when reading and talking in their communities.
It's no wonder that Ethereum has the largest developer interest, it's just a really nice place to work.
This is why I agree with Mike Hearn that the "Bitcoin experiment has failed"[0]. In fact it already did so in late 2015.
He makes technical arguments there which you could debate (some of his technical arguments have been shown to be misleading[1]).
But I think where he hits the nail on the head is that Bitcoin is now simply a circus. Unless the community can be united again, it won't last.
The Reddit censorship, DoS attacks, "scaling" conferences where solutions are not allowed to be proposed. It's childish, and almost shocking that people have stood behind their ridiculous behavior for so long, when they are on the verge of changing the world economy.
[0] https://blog.plan99.net/the-resolution-of-the-bitcoin-experi...
No particularly special Bitcoin knowledge is required to figure out why, just careful study of that post with a critical and analytical mind (and not the mind of a "fan"). I wasted far too much of my life dealing with people Peter Todd had deliberately confused back in those years - it's a Sisyphean task that simply never ends if you let it - so I don't wish to write out a long rebuttal now, especially as I don't know you. But see if you can figure it out. Like I said, you don't need me to explain if you study things carefully.
As I said to Peter Todd in that thread, I'm a neutral observer and a fan of both of yours. Having been a programmer for over a decade, it's a shame that even someone like me can get so lost in the rhetoric of this debate.
Thanks for all your blog posts, I point people to them all the time. My greatest wish (something I tried to communicate to Peter Todd) is that Core would write some thoughtful, clear, well-argued posts like yours.
But I suppose it doesn't matter, because as we both agree, the experiment has already failed.
During that crisis it got quite ugly though. Maybe it could be argued Bitcoin is going through a much larger, multi-year ugly period, and that things will settle down and cooperation will happen in another couple years. But many of the people claiming leadership and some of the core developers are outright toxic, and that 'trickles down' into the community.
Segwit, which activates on Bitcoin soon, already increases the the block size to ~2MB. Because Bitcoin Cash doesn't implement Segwit, increasing to merely the same size as Bitcoin wouldn't have been compelling.
It's possible for a non-SegWit miner to accidentally mine an invalid block after the soft-fork. Here is how.
The "backwards-compatibility" of SegWit comes from the fact that it looks like an anyone-can-spend transaction. Meaning, on the old blockchain, those coins would be up for grabs.
Nodes that support SegWit know that it is not really an anyone-can-spend transaction, because they have extra data not included in the blockchain.
But a node that doesn't upgrade doesn't know about this. So here's what could happen:
1) Bob sends sends a SegWit transaction to Alice
2) The non-SegWit node sees it as an anyone-can-spend transaction where Bob is basically giving up his coins
3) Eve wants to mess with the non-SegWit node, so she sends it a (valid!) transaction which spends Bob's coins and sends them to Eve
4) The non-SegWit miner mines a block with that transaction, and the block is consequently rejected by the SegWit nodes
So SegWit needs 51% of hashing power in order to work, just like a hard fork. Without it, they wouldn't be able to reject the block with Eve's transaction, which would've been valid on the old blockchain.
The only difference is that the above edge-case exists for a soft fork, whereas for a hard fork, non-upgraded nodes would simply be split into a smaller network instead of being tricked.
Actually, since BCC is a hardfork, they can make the Bitcoin Cash spending rules whatever they want. They could have made SegWit transactions totally unspendable if they wanted. They could have made all Bitcoin Cash corresponding to the Bitcoins sent to Blockstream spendable by anyone, etc.
Note this is by far not the first soft fork Bitcoin has done. P2SH, CSV, and CLTV for example were also soft forked in. The original design even included 10 blank opcodes designed for soft forking in features.
Yes, what I was pointing out is that in a soft-fork there is a risk of an eventual re-org, whereas in a hard-fork there is not. It's a minor risk, but it exists.
I also believe that any non-SegWit miners will be pushed out of the network using the mechanism I described. It would be pretty easy to trick them into mining invalid blocks.
This is dramatically misconstruing the legitimate points made by the anti-big-blockers. The simplest fix would be to say "Others _are content with Bitcoin becoming a settlement layer_".
Making changes is always dangerous given the fact that Bitcoin is fundamentally a consensus-driven protocol. So far, none of the block size proposals has managed to garner a significant consensus. Here I mean "consensus" in a general version of Satoshi's "one CPU one vote" consensus; that's the only consensus here that is resistant to Sibyl attacks.
In addition there's the argument that increasing the block sizes necessarily entails increasing the orphaned block rate, which decreases network security. This happens because the larger the blocks are, the longer it takes for the network to recognize a legitimate block, and thus begin mining on top of it -- any mining that takes place after a block is found is wasted power and does not contribute to network security.
There's also the notion of long-time viability of the decreasing block reward without developing and addressing the problems on forming a fee market to ensure that miner compensation is commensurate with their costs so that subverting the network will always be dramatically more expensive than helping the network.
Finally there's the argument that block size increases make it more expensive to run full nodes by increasing space requirements.
These are real concerns, not just some notion of "increasing blocksize can't solve all problems why even start".
It happens that I disagree with this view; the first argument (forks are tricky) is, in my mind, the only valid one, and if Bitcoin Core threw their efforts behind finding a good, non-gameable, non-spammable block increase implementation, then we could get consensus.
Cryptocurrency developer: "Hold my beer"
So while disaster has been avoided for now, and Bitcoin Cash is unlikely to garner much support, they could become the longest chain within a year or two if they keep at it. As the Bitcoin Cash developer said in the article:
> If the Segwit2x agreement fails to implement the 2x part, which is not entirely unreasonable, and only ends up being being basically SegWit without the 2x, many miners will likely defect to Bitcoin Cash.
He's right. The Core-versus-the-world battle is far from over.
Proposals from the core development team have widespread support from businesses and exchanges [1].
Saying it's bitcoin core versus the world is a tad bit hyperbolic.
But what I would call "most of the industry" supports a block size increase, in addition to SegWit[0].
As I said in the parent comment, rather than making a compromise with this huge portion of the community, Core has discussed changing the proof of work algorithm in order to shut them out.
I don't think "Core versus the world" is hyperbolic at all.
EDIT: To add to that, remember that Core had to propose a soft-fork which risked a chain split in order to force SegWit into activation. Many were holding back support for the promise of a block size increase. That is why SegWit is now going to lock in: because the New York Agreement folks rallied together, compromised like adults, and agreed to implement both SegWit and a block size increase.
[0] https://medium.com/@DCGco/bitcoin-scaling-agreement-at-conse...
What is the argument for the other side?
A Reddit post has the quote here, but I recommend the whole interview.
https://www.reddit.com/r/Bitcoin/comments/6fhmge/nick_szabo_...
However, I think it's incorrect to say most developers disagree with increasing the block size or a hard fork. Segwit increases the block size, as do hard forks proposed by some Bitcoin Core developers like Spoonnet [1]. There is just a general dislike towards the existing technical proposals.
[1] https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017...
This topic seems technical but at it's core it is about self interest, fear and money.
That's quite telling, isn't it? There's this huge debate, but his argument is that it's obvious?
From a 'tradition' or 'legacy' standpoint, the blocksize limit was never meant to be a persistent thing. It was not present in the whitepaper or the initial implementations, and when Satoshi added it, it was explicitly stated that the limit should be raised as needed and as computer hardware and network capacity increased. When Satoshi left, the project was handed to Gavin, who has gone to great lengths to support blocksize increase. Similarly, other early developers like Jeff Garzik and Mike Hearn strongly support on-chain scaling. I think it is quite fair to say that the original intention for the limit was simply an anti-spam measure, and was not intended to limit network usage, for whatever that's worth.
Larger blocks require more cost to run a node. It costs more network capacity, more storage, more time to spin up a node, etc. The argument is that these costs will decrease node count to a dangerous degree. More network use could, however, create incentive for more people to run nodes. Clearly there's a trade-off between extremes, so a careful consideration must be made about where the best trade-off occurs.
Larger blocks are a liability to miners as they increase the chance of orphaned blocks. This has two primary effects: it places a natural limit to the block size miners are willing to mine, and it creates incentives for miners to have excellent network access to the rest of the network. This later issue can mean mining centralization. This is one of the core arguments against increasing block size, but it's a very complicated issue. One of the primary confounders is ASIC development, which means rapid capital turnover and short investment timelines for mining. As ASIC development reaches state-of-the-art node sizes, and also as the Bitcoin price stabilizes, mining investment looks very different. This is very difficult to predict.
Small blocks greatly limit what Bitcoin can do. It places a hard cap on transaction throughput. The formation of a transaction fee market greatly discourages small transactions, making Bitcoin inaccessible to a wide range of people. It makes any address with Bitcoin less than the txn fee effectively unspendable. In the extreme, it limits Bitcoin to the role of digital gold, a speculation vehicle with little use as a medium of transaction.
There are two big open questions:
* Will larger blocks lead to dangerous centralization?
* Will 2nd layer solutions provide effective scaling solutions?
In the end, all of this deals with trade-offs, but worse, trade-offs with difficult-to-quantify risks at either extreme. I simply would not trust anyone that is dogmatic about their favored approach.
My personal view is that the conservative approach with least risk is to permit moderate blocksize increases while 2nd layer solutions are being developed, and to continue the debate as the network develops. This is, in effect, exactly what the '2X' compromise does.
You can monitor https://www.btcforkmonitor.info to see when the forks take place.
(The site was discussed in https://news.ycombinator.com/item?id=14809259)
Exactly what power is that? The power to collect smaller mining fees?
Honest question - what's the status of Lightning? Core promotes it as the solution to scaling and it's essentially a page on github. Litecoin already has Segwit and no one is using Lightning. Am I missing something here?
* Lit: https://github.com/mit-dci/lit * Eclair: https://play.google.com/store/apps/details?id=fr.acinq.eclai... * lnd: https://github.com/lightningnetwork/lnd * lightning-c: https://github.com/ElementsProject/lightning
Do these projects have the nicest UX? No. Is it fairly trivial to hook up a shiny UI to their RPC interfaces? Yes.
It's going to take a bit to roll out the infrastructure necessary, but a 1.7 MB block size is good enough until then. Especially if miners stop using ASICBOOST and mining near-empty blocks.
What does that mean exactly? Bitcoin being open source and anybody being able to connect to the network means that anybody can fork the client if they want to, doesn't it?
After all that's exactly what this Bitcoin ABC fork is doing.
What they're trying to say is they'll support multiple implementations of the software on the same network (unlike Bitcoin ABC, which is a fork of the software and a fork of the network).
But Bitcoin already supports that too. There is bitcoin core, bitcoin knots, bitcoinj, btc1, bitcore all running on the same network.
But you're right - it's merely a suggestion from a portion of the developers, and it certainly doesn't stop anyone.
https://hackernoon.com/how-to-move-money-from-coinbase-to-yo...
Here is why you need to move from Coinbase to your own wallet before Aug 1st: https://keepingstock.net/move-your-coins-out-of-coinbase-to-...
This statement needs a lot of asterisks added to it imho.
BCC has been trading at $600K USD volume in the past 24 hours [0] compared to Bitcoin's trading volume topping over $600M USD in the same time period.
BCC futures have only been trading on a single, unpopular exchange, that does not allow withdrawal of the coins being traded until only after the fork takes place.
If you can send them BCC to trade before the fork, I fail to see why you can only cash out after the fork.
I'm all for Bigger Blocks, but claiming that BCC has 18% support of the community based on that single price valuation is extremely misleading imho.
From a volume standpoint, I would argue that it has less than 1% support of the community at large.
What I've also wondered about though is multiple chains combining into one. Does anyone know if this has happened before?
I believe there is a strong analogy here to how company stock can evolve, when companies are either split out as separate entities, or merged into one, respectively.
And technically, I think it must remain possible as long as you can always simply issue a new token with a certain starting distribution.
I don't think it happened on any meaningful chain. It could be donetechnically through a proof-of-burn on the giving chain, and the corresponding minting on the receiving chain.
Something loosely comparable would be conversion from a token to another within the same blockchain, and this must have happened quite a few times on Ethereum; but that's within a single blockchain, so arguably doesn't count.
However when you see how difficult it is, in terms of governance, to address such an obvious issue as Bitcoin's tiny throughput, I can't imagine two distinct chains agree, in a timely fashion, both on the principle of a merge, and on the way to execute it. Maybe on-chain governance, as proposed by Tezos, will fix this problematic indecisiveness on blockchain evolutions, we'll see.
I do think there is a lot of potential room for improvement in how blockchain governance works, especially in terms of delegate voting.
Maybe it is more reasonable to expect a majority portion of one chain and a majority portion of another chain to merge, leaving behind two stragglers, and then allow those who continue to hold the old tokens to buy in later at a decreasing discount.
https://steemit.com/bitcoincash/@bitbizke/bitcoin-cash-imple...
How do I access my Bitcoin Cash coins after the split? Is there another wallet I need to install?
Also, is there any news on what exchanges will trade Bitcoin Cash?
Anything that moves transactions off of the network or decreases the number of miners queried per transaction is therefore antithetical.
If you are a miner, lightning and segwit just hurt you. The only way you'll allow them is if you believe that to do otherwise would slay the golden goose.
Edit: Source: I run a crypto hedge fund.
Also, altcoins present a real competitive risk; failure to maintain an advantage over them will see network value approach zero.
It's quite possible that this fork is negligible for awhile. But because parties such as Core will likely refuse to let the segwit2x part of segwit happen [1, many others], if the miners follow through on their promises, then this could be real entertaining to watch if the larger miners start switching to BCC during this later period.
Just like when ETH split into ETH and ETC, it seemed as if almost everyone dumped their ETC coins as quickly as possible. But contrary to what most predicted, the chain ended up having real value. It seems like quite a few Bitcoin holders are planning on doing this as well, although many are being more cautious this time around and holding their BCC instead.
You don't want to sell your stash of the next Bitcoin, just in case you're wrong. These things are impossible to predict for normal investors.
If you think that the price will first crash and then bounce, you might want to sell your stash and then buy it back at a lower price. To keep the price up it wouldn't be enough to have many who wait and see; you also need lots of buyers for all the BCC that will be sold by those who have BTC and will want to get something out of their BCC as soon as possible.
Unless of course this tanks the system entirely, but that seems unlikely.
If you care about one token over the other, the best thing to do is let the dust settle, then sell all of your non-preferred token for the preferred token. Financially, this should not set you back even if you prefer the minority token - you just end up with a bunch of them, and the total value of your wallet is still about the same.
Bitcoin isn't worth $2500 per Bitcoin by magic. It's worth that because of supply and demand.
The only change might be that some of the demand shifts to BitcoinCash instead of Bitcoin, meaning the price of both will be lower than the price of Bitcoin now, but they'll likely add up to about the same amount.
I'm hoping it decreases the overall level of conflict, as both groups will be able to get what they want here.
Who is this? who can "decide" to make changes in the original BC protocol. As far as I can see, no one can.
If there is a hard fork, are they just going to wait until the dust settles and then give people access to both coins? I.E. BCC would magically appear in your account. Or do they seriously intend to not support one of the chains and just have all their users holding BTC worth X% less?
Here's what they say: https://support.coinbase.com/customer/portal/articles/284421...
Notably:
> Coinbase will not support the new blockchain or its associated coin.
Now would be a good time to get your BTC out of Bitstamp, to ensure you get access to your BCC coins when the fork takes place.
Idealism vs pragmatism.
Who would want tx malleability?
One thing is for sure, that there are many dynamics at different levels in conflict around this situation.
But don't trust any third party with your coins, especially Coinbase which isn't sharing the private keys with you.
Take your money out of an exchange, it should not be kept there in the first place! If you don't own the private keys, you don't own your bitcoin. If it is on coinbase, you don't control it, you are just asking them for permission.
So I'd have to figure out a wallet strategy that made sense. Maybe I'll make a paper wallet this weekend? Hrm, security is hard.
They can create a bank that cannot control printing of money by cryptographically publically proving the held amount and all transactions, backed by proof-of-work as a proof that they are revoking the rights to change their own books. How would such a bank look like?
It would look like BitcoinCash(currency)+Viabtc(interface of the bank)+Bitmain(guards)+this particular dev group(sales) all of them owned by JihanWu. This is a prelimn form of the ultimate bank of the future. Epitome of centralised money.
Will it succeed? Well for most people when they are asking this ques they are asking "will it rise in price?". Well I know there are shit ton of shitcoins that trade in the market, and this here is something that is the best form of something historically considered useful vs a group of people who are saying history was wrong and wanting decentralization but this group feels lost in this group noise of speculators.