Preface: You will be interested to read this old mailing list post. The same issues have been rehashed for years, in a thousand different forms.
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-June/008844.htmlThank you to those who have contributed their time responding. I am still reading and absorbing what I can regarding the off-chain solutions.
What is bugging me now is the question of why.
Why is segwit not being adopted en masse?
Why will people open channels and start hubs on the LN?
When I started mining the incentives were simple. Distrust of the financial system/federal reserve, and need for additional income. I am a firm believer that parties generally will act in the manner that directly benefits them most.
The direct short term incentives for segwit seem to be a reduction in fees? Yet it seems like adoption is slow? And from what I am seeing there are arguments about LN adoption due to incentivization issues.
The incentive for retaining 1mb block size seems to be keeping the barrier to full node operation as low as possible. The more I research the more I understand the importance of this. So it seems that the issue is now a combination of the technical implementation of layer 2 solutions, but more importantly, the incentivization of their adoption. For the same reason you don't want to just hardfork a 2mb increase and rule out the raspberry pi folks, you can't just FORCE people to start transacting on layer 2.
I think Segwit adoption has been slow because (0) client software support has been slow in developing, (1) there are organized anti-Segwit FUD campaigns on forums and social media (did you notice?), and (2) several major players desire forking and centralization of Bitcoin (“divide-and-conquer”/“unite and rule”). Those last will play politics and apply extra fee pressure to their own users, for as long as they themselves can afford to continue doing so. As the rest of the market adopts Segwit, that can’t be terribly long—competition being what it is.
As for incentives to adopt Lightning:
Hey, I heard that some people have been complaining just a wee little bit about on-chain fees. That will be an incentive for people to use Lightning instead, for the transactions for which Lightning is more appropriate. (Ironically, the offloading of transactions from the blockchain will then apply downward pressure on fees—albeit, as increased total Bitcoin usage and LN channel opening/closing transactions apply upward pressure, until fees reach some sort of new equilibrium.)
And people really do want to buy cups of coffee. Speaking for myself, I
love coffee. I, too, want to efficiently buy cups of coffee with Bitcoin. Coffee may be the best Lightning incentive of all!
As for incentivizing hubs, Lightning will also have fees, albeit drastically smaller fees. You know the Bitcoin motto,
“Be your own bank.” My own observation: On Lightning, anybody with the capital to provide liquidity for a busy hub can take up the motto,
“Be your own mini-Visa.” Visa takes a small cut every time somebody buys a cup of coffee with it; and most people still deem it fit for buying cups of coffee.
Now imagine if instead of a few centralized payment networks (Visa, Mastercard, and a few others), you could open payment channels of your choosing into a decentralized constellation of cooperating/competing Lightning payment hubs for your small-value consumer purchases. I see plenty of incentives on all sides, there: For consumers, for merchants, for hub providers.
By the way, one technical correction:
The incentive for retaining 1mb block size seems to be keeping the barrier to full node operation as low as possible. The more I research the more I understand the importance of this.
You are absolutely right about that importance. But please be advised,
there is no longer a 1MB block size limit. Indeed, there is no more block size limit at all! Segwit replaces the block size limit with a
block weight limit, set to 4000000 bytes:
/** The maximum allowed weight for a block, see BIP 141 (network rule) */
static const unsigned int MAX_BLOCK_WEIGHT = 4000000;
The total “weight” of transactions is limited as
specified by BIP 141:
Blocks are currently limited to 1,000,000 bytes (1MB) total size. We change this restriction as follows:
Block weight is defined as Base size * 3 + Total size. (rationale[3])
Base size is the block size in bytes with the original transaction serialization without any witness-related data, as seen by a non-upgraded node.
Total size is the block size in bytes with transactions serialized as described in BIP144, including base data and witness data.
The new rule is block weight ≤ 4,000,000.
It sounds complicated; but this is actually designed to
avoid making transaction selection more difficult for miners.
The way bytes are weighted, best estimates are that with full Segwit adoption, we will see blocks a bit over 2MB in actual size. That’s just fine for the network, including nodes run on modest hardware and residential Internet connections.