As far as I can see, a billion tx/s blockchain can never work if the P2P network is sufficiently large.
Imagine a 10,000-node network, where each node has to handle 1 billion messages per second. Firstly, if we assume a single VM can handle 1 million messages per second, it would require that each node rent ~1000 VMs (for a total of 10 million VMs for the entire P2P network), which they obviously can’t do without compensation. And if you introduce compensation, you need to pay the same fee to each node, which makes it inherently 10,000 times as expensive as a centralized network.
So the question is not whether it’s possible, the question is whether it’s worth it: in how many cases would a user prefer a system that’s 10,000 times cheaper, albeit requiring some trust?
Merchants all over the world are willing to accept VISA credit in exchange for goods and services, but they could — in theory — demand trustless payments in the form of international bank transfers, which are less than 10,000 times as expensive as a VISA transaction.
Plasma is not for payments. It is a counterpart of Lightning Network, but for code. With LN you can do a lot of extremely cheap payments. With Plasma you can do the same for arbitrarily complicated code. Idea is - take some tokens to domain specific plasma chain, do your interaction with possibly byzantine actors, settle on parent chain when you are done.
Today even timestamping is expensive in decentralized world. Plasma actually allows you to do that cheaply.
> With LN you can do a lot of extremely cheap payments.
The cost of transactions on a Lightning Network has yet to be determined, because no working LN (with merchants accepting payments) exists yet. We all agree than LN is pretty fast, but the ultimate test is cost per transaction.
Allow me to remind you that if you want to send 1 BTC through 10 LN nodes, each of these 10 LN nodes need to bind 1 BTC in a payment channel (totaling 10 BTC in capital costs to transfer 1 BTC). And if just a single of these channels/hops are exhausted, and thus need to touch the blockchain, the LN payment is no cheaper than an on-blockchain one.
Right, LN nodes will eventually become big speciallized hubs, with great BTC capacity to attend as many channels as possible. Each channel is a source of revenue for the LN node, so LN nodes will try to become as big as possible (both technically and BTC-wise) to cope with greater audience.
Think that in a LN-node the profit will be proportional to capacity of open channels, so its very probable that we will see very-big-BTC-LN-nodes appear to serve demand
The reputation of LN-nodes will play a very important to the users (as it already happens with BTC exchanges - do you use a unknown-fishy-exchange or do you use a big-known-stable-exchange ?), and so that will incentivize LN-nodes to avoid/solve problems with channels to avoid teardown-to-the-blockchain (which as you mentioned, is abnoxious to the user for its fee and lock-time)
Let’s imagine an LN network with 1,000 payers all connecting to one, single LN hub, which routes all payments to a single payee (merchant).
How will the on-blockchain settlement transaction look like? It needs to redeem all 1,000 outputs provided by the payers, because each payer creates a new output when it funds a channel, which creates a huge settlement transaction (1,000 inputs) with a correspondingly huge fee.
A channel is committed to using one unspent transaction output (UTXO), settling it consumes only that UTXO and all of the other channels a given party might have are completely unrelated.
What is the use of the hub? You can just connect the merchant directly, even if you are just an occasional customer. You don't need the entire blockchain to use LN, so more users will be running Lightning nodes than Bitcoin nodes.
If you have an intermediary node (you call it a hub), there is no requirement for it to close its channel with the merchant, once you close your channel with that intermediary node.
> If you have an intermediary node (you call it a hub), there is no requirement for it to close its channel with the merchant, once you close your channel with that intermediary node.
As far as I can see, merchants receiving payments over payment channels is unrealistic, because it requires:
1) the merchant to predict what its revenue will be this week/month
2) the merchant (or someone else) to lock up this entire amount for the revenue period (week/month)
So, if a merchant wants to receive payments over a payment channel, the effective supply of BTC is halved, because 1 BTC needs to be deposited in the merchant’s payment channel for every 1 BTC a customer sends.
Most merchants simply don’t have that kind of capital and, even if they did, they wouldn’t be able to compete on price with other merchants who don’t demand trustless payments (merchants receiving payments over payment channels need to adjust their prices to account for the fact that they need to borrow a week/month’s worth of revenue, and have it sit idle in a payment channel). It’s very poor use of a scarce resource (bitcoins).
Who says the merchant needs to do that work? Specialized companies run like exchanges (or payment networks) could run the nodes on behalf of the merchants, much like bitpay does today. Of course, then you're just back where you started, with a banking institution controlling payments. But perhaps it would be more decentralized than four big payment companies, and that could be a step in the right direction.
It’s not about work. Borrowing money isn’t time-consuming. It’s about the cost of capital, and the inefficiency of requiring a scarce resource to be locked up with no other purpose than lowering the risk of losing a week’s revenue from 0.1% to zero.
Why do you think the merchant needs to lock up funds? If his exchange supports Lightning, the merchant would never need to worry about the fact that transactions won't hit the blockchain (if nobody is cheating or losing connectivity).
Sharding intents to solve this by splitting the billion messages into a 1000 (or more) smaller problem space. Thusly only requiring 1 VM per node. (tho you need more nodes for equivalent security)
Let’s say we have 1,000 nodes in a network that does 1,000 transactions per second.
If we shard the data, such that each node only needs to process 10 transactions per second — while trusting the remaining nodes on the other 990 transactions — how is this different from just reducing the number of nodes to 10, and having each node process all 1,000 transactions?
In both cases the entire network only needs to process 10,000 transactions per second, and in both cases the network breaks down if 10 or more nodes collude.
Because in the sharded example, only the shard suffers a break down, not the entire network, if the nodes collude. It also allows people to run smaller nodes on cheap hardware, this increasing the potential number of nodes in the network.
Well the breakdown of a share has differing effects depending on the consensus rules, same for the entire network. I can't answer that unless you specify which consensus we are talking about.
Imagine a 10,000-node network, where each node has to handle 1 billion messages per second. Firstly, if we assume a single VM can handle 1 million messages per second, it would require that each node rent ~1000 VMs (for a total of 10 million VMs for the entire P2P network), which they obviously can’t do without compensation. And if you introduce compensation, you need to pay the same fee to each node, which makes it inherently 10,000 times as expensive as a centralized network.
So the question is not whether it’s possible, the question is whether it’s worth it: in how many cases would a user prefer a system that’s 10,000 times cheaper, albeit requiring some trust?
Merchants all over the world are willing to accept VISA credit in exchange for goods and services, but they could — in theory — demand trustless payments in the form of international bank transfers, which are less than 10,000 times as expensive as a VISA transaction.