Seg-Wit Is A Trojan Horse - Bitcoin Scaling Debate Explained
Let me begin by stating I am no programmer, and no expert on the code of cryptography. You absolutely should verify everything I am telling you and ask your own questions, just like any other issue. This is a confusing topic that requires a good deal of personal research to understand, more I would say than most issues do.
One thing I am fairly good at, however, is parsing information. And when it comes to Bitcoin, I try to parse as much information as I can get my hands on. I've kept on doing that, off and on (mostly on), since around 2011. I had an account at Mt. Gox, and I've tried my hand at mining. I've setup SLI and I've replaced fans burned out from use.
And from what I can tell, Segregated Witness, or SegWit, is the proverbial camel's nose under the tent for everything cryptocurrency, or at least Bitcoin, stands against. Let me try to explain why.
Lately, Bitcoin has been experiencing higher confirmation times and transaction fees, due to their being more demand for moving about Bitcoin than space in the blocks for the transactions. Some people think that this is a huge problem, and have dreams of reaching VISA levels of transaction speed and cost. For the moment, let's stipulate that this is a desirable goal, even though the white paper describes bitcoin in the first line thusly:
"A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network."
Notice there is no mention of fast transaction speed or low fees being critical, or even desirable components. Simply that the "electronic cash" should be "not go through a financial institution" and that "the main benefits are lost if a trusted third party is still required".
I encourage you to read the entire thing yourself, it is only 8 pages with several pages of the dreaded math-y stuff you can skip.
However, let's assume that decreasing transaction fees and times is desirable.
There are two potential ways for increasing the available transaction slots in Bitcoin. I say "slots" instead of "speed" because speed is currently dependent on both fees and the available space per block, which is currently 1MB. If the blocks were bigger, there would be a roughly linear increase in the amount of transactions that could be processed in each block, with relatively minor increases in drive space concerns given current technology, which would result in an overall lowering of fees.
Now, the main reason that Bitcoin currently has 1MB blocks, from what I can tell, is mostly technical. The smaller the blocks, the smaller the technical demands. Given this limit was set by Satoshi, the founder of Bitcoin, in 2010, it's fairly clear it was intended to be raised probably long before now. Here it is in the bitcoin.it Scalability Wiki article's words:
"Nakamoto’s subsequent statements supported raising the block size at a later time, but he never publicly specified a date or set of conditions for the raise."
"Statements by Nakamoto in the summer of 2010 indicate he believed Bitcoin could scale to block sizes far larger than 1 megabyte. For example, on 5 August 2010, he wrote that "[W]hatever size micropayments you need will eventually be practical. I think in 5 or 10 years, the bandwidth and storage will seem trivial" and "[microtransactions on the blockchain] can become more practical ... if I implement client-only mode and the number of network nodes consolidates into a smaller number of professional server farms""
Satoshi might very well see a 16x or 32x transaction speed increase by going to 16MB or 32MB blocks to be currently viable.
Now, you'll notice I said there were two options for making more room for transactions. Segregated Witness, or what is now going by SegWit2x, as it is bundled with a "future promise of 2MB blocks", is that second option. However, it directly violates the essence of Bitcoin it is design parameters.
The whole point of Bitcoin is to keep every transaction on the blockchain which is what makes transactions immutable and irreversible, and is critical to the elimination of counterparty risk.
SegWit may come with (either a delayed or instant) increase in blocks ize which "is predicted by experts to be in the range of about two to 2.1MB", however that pales in comparison to the simpler option of simply increasing the block size. There is however, another clear reason for why its proponents want it (from cointelegraph.com):
"SegWit eliminates what used to be a minor problem for Bitcoin itself, but a major barrier to implementing second-layer solutions on top of it. One of those solutions is the proposed Lightning Network. It is expected to allow for a massive increase in the network capacity by moving the bulk of transactions off the Blockchain for quick processing."
In other words, proponents of Seg-Wit want to move transactions off the blockchain so they can be trusted to selected third parties on a fast-and-jazzy sounding network that will not be monitored by network consensus.
Ah, so, the minor (aka non-) problem for Bitcoin itself of "moving the bulk of transactions off the Blockchain for quick processing", or in other words, completely violating the Bitcoin whitepaper and it's main unique competitive advantage, is the only possible reason to support SegWit in the face of better, simpler options.
My understanding is SegWit2x, if activated, is "supposed" to also increase to 2MB blocks after 3 months. In other words, we should "trust" these "counterparties" to comply with the block-size increase after we have already indelibly added SegWit into the main Bitcoin blockchain. I am not confident enough on the technicals to explain why, but I have seen a number of users claim that SegWit can't be easily removed (or perhaps at all) later once it is integrated into the chain, but it is possible to prevent the block size increases by some sort of consensus fork. At any rate, it sounds like a deal only Neville Chamberlain would consider, with better options on the table endorsed by Satoshi himself.
This has grave ramifications for the whole "industry", including Steemit, since it is still the case that most money flows through Bitcoin to get into the majority of alt coins, and vice versa.
Now, I realize most of us may not even have a vote in this "election", but I think we do have a shared stake in Bitcoin remaining Bitcoin, at least as long as it remains a critical underpinning for the whole cryptocurrency sector. As a result, we should do anything within our ability (legally) to encourage a Bitcoin scaling solution that maximizes Bitcoin's usefulness, stability, value and long-term prospects.
I do not believe Seg-Wit is that option.
I have no suggestions for what to do, and only try to do what I am capable of: disseminating hopefully accurately vetted research. Steemit, however, is full of programming geniuses and I hope they have an idea or two. I encourage those who can add well-cited additional information, especially on SegWit, to please do so in the comments.
If you wish to do more research, please see my post on decoding the r/btc and r/bitcoin subreddits, because those are good places to start:
Data Sources:
https://en.bitcoin.it/wiki/Scalability_FAQ#What_is_the_short_history_of_the_block_size_limit.3F
https://bitcointalk.org/index.php?topic=1347.msg15139#msg15139
https://en.wikipedia.org/wiki/Bitcoin#History
Many other Reddit and Bitcointalk.org threads over the years
https://www.bitcoin.com
https://www.Bitcoin.org
https://cointelegraph.com/explained/segwit-explained
https://www.reddit.com/r/btc/comments/6kra3s/peter_rizun_on_segwit_if_miners_steal_your_segwit/
Also, steemit posts like this one:
https://steemit.com/bitcoin/@profitgenerator/bitcoin-scaling-debate
Note: This is not an express endorsement of the quality of any of these sources
Image Sources:
https://www-tc.pbs.org/wnet/secrets/files/2015/09/
https://www.windtoons.com
https://denarium.com/product/uasf-hat
The Simpsons
A good post, but unfortunately can't answer your question.
In order to increase the block size you must hard-fork and that is quite a risk on a multi billion dollar production network, but even if that was risk-free it causes centralization.
Why? If every transaction is about 250 bytes and you have 4000 transactions in a 1mb block, that means that in order to statisfy 7 billion on-chain transactions per day (1 per person) that will be confirmed every 10 minutes (144blocks per day) you will need a 12gb block size and on each block around 50million transactions.
In a day you will have the blockchain increase by 1.7TB, do you know many people that can afford such a full node? That means that no user will be able to validate his own transactions by running a full node and will have to trust 3rd party services. That is a huge violation of Satoshi's white paper.
Bitcoin is a premium ledger, there is no reason to keep a coffee payment on an immutable premium ledger. Your home ownership might be a good idea to keep on the blockchain, but not your VOD subscription.
In addition, segwit is a malleability fix. Currently, you can create two identical valid transactions (using the same input and output) and have a different transaction hash since the witness is part of the transaction hash. As result, you can't create safe payment channels.
I realize that you want everything to be done on the blockchain, but how's that going to work, for example, for a pay-per-view service? You will have to pay upfront an hour before starting the service and then hope that no one will cheat you out of your subscription. Using a payment channel you will be able to safely pay per second of viewing the video and know that the other side can't just steal all your money.
Payment channels are extremely safe and so is the Lightning Network.
In addition, currently you trust your money with exchanges like Coinbase. Do you think that when you buy bitcoins from someone on Coinbase they do a blockchain transaction? They simply change values on a Sqlite DB. That is done because the blockchain is slow and expensive to use. Give them a safer and cheaper opportunity and both users and exchanges will be safer.
Peace and Love to all :)
You'll want to use the bitcoin-abc client (https://www.bitcoinabc.org/) which rejects Segwit blocks and will mine bigger blocks.
"In addition, currently you trust your money with exchanges like Coinbase. "
Incidentally, I trust Coinbase less than I trust LN.
I think your example of wanting a transaction per day for 7 billion people is a pretty high barometer, given I'd say less than 1% of people I know in the US even know what Bitcoin is.
"Bitcoin is a premium ledger, there is no reason to keep a coffee payment on an immutable premium ledger."
Exactly, these people shouldn't even own bitcoin, they should use Litecoin or something else.
"That means that no user will be able to validate his own transactions by running a full node and will have to trust 3rd party services. That is a huge violation of Satoshi's white paper."
(Virtually) Nobody is doing that now. Mining centralization just is, we can't stop it from what I see, unless we switch to PoS. The virtuous loop built in which keeps it in the miner's interest for Bitcoin not failing seems like the best we can do. Could you cite the part of the white paper in violation, so I can reread it?
Also, how is the SW alternative not a third party situation? I don't really see trusting the Nakamoto consensus of hashing power at present as "trusting a third party", plus it is all on ledger. SW is not.
I believe Bitcoin is for everybody. I understand your view of Bitcoin as digital gold but I think Bitcoin should be used for any payment and to store anything of value.
Even with Segwit you will be able to perform all transactions just like before, it will make no difference for people that wish to use the public ledger (only fees will be about 75% cheaper). But, it will add the possibility to create safe payment channels that will enable some people to use Bitcoin for small incremental payments like subscriptions. It will widen the adoption and will increase Bitcoin's technological value.
I think that increasing the block size will increase centralization and thus violate Satoshi's intent. Running a node is easily possible these days (without doing any mining just verifying transactions and blocks). If only miners run nodes no one will be able to make sure they are honest. In addition, very few miners will be able to handle the bandwidth, HD space and memory capacity that a large block size demands.
Segwit is just a malleability fix, it is still fully recorded on the blockchain. It enables payment channels that only create two transactions on the blockchain (funding and closing transactions) which you call 3rd party solution.
In addition, Segwit encourages lower fees for transactions that lower the UTXO set (more inputs than outputs) in order to ease the memory consumption on nodes. Currently, having more outputs than inputs is cheaper and that creates stress on nodes.
I suggest reading more about payment channels here:
https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch12.asciidoc
"I think that increasing the block size will increase centralization and thus violate Satoshi's intent."
Then why did he specifically suggest that we do so?
"Segwit is just a malleability fix, it is still fully recorded on the blockchain. "
This is not true. SegWit itself claims that it enables "off-chain transactions". Those violate the definition of Bitcoin. SegWit is not compatible with Bitcoin by definition.
He limited the block size to 1mb in 2010 and knew fully well that a hard-fork will be needed to change it.
It enables it. You don't have to use it and can continue doing all your transactions on the blockchain.
Note Satoshi's quote about it being fine to switch to client-only mode and have the nodes "on a server farm". The real Satoshi made exactly the same argument that Craig Wright made last weekend. Hmmm...
Hahahaha... I see what you are talking about..... man we have to see how things unfold
U may not be a programmer but u seem 2 he a good handle of d issues
Gr8 piece
Thank you, I do my best to be accurate! I do a lot of drafting and editing. =/
There's so much to learn. Thanks for bringing and sharing knowledge to the Community
Well it's interesting how can this affect bitcoin and all the other cryptos. Thanks for sharing this info.
Wow really opening my eyes on segwit here... I always thought it was good when LTC implemented segwit, but I guess it kind of going against fundementals of bitcoin is a big deal. I wonder if there will be a hard fork that breaks into 2 chains like ETH/ETC did... I also don't know all of the technicalities. Wish I did. I think this will deff cause a big stir in the whole community though as it approaches. I think they said something about August 1st?
Excellent post - Keep em coming!
very good article
plz answer my question
how much price of bitcoin come down in 1 august
I have to tell you, I've been wondering that myself. I think it's very unpredictable. If there is a split, you'd end up with coins on both chains.
I can only tell you what I'm doing now - I'd like to buy more Steem, but I'm waiting at the moment in cash to determine a good time. Bitcoins pattern is to pull back after the kind of surges we have seen, and I'm hesitant to jump in now because money lost stings worse than money gained soothes.
It could go as low as $1,600.
omg
tanx my friend
so helpful
Given me a different perspective on segwit. I had only thought good things. I forget why I remember hearing just increasing block size was said to be a bad idea