So as I understand it we have a solution for how to do trustless micro-payments in bitcoin. See here:
https://bitcoinj.github.io/working-with-micropayments What we are going to do is leverage up this concept. From the website.
The micropayment protocol allows one party (the client) to make repeated micropayments to another party (the server). It works in two stages. Firstly, some value is locked up with a multi-signature transaction that places it under the control of both parties. The parties collaborate to create a signed refund transaction that spends all the value back to the client, but is time locked using the nLockTime feature of the Bitcoin protocol. This ensures that the refund won’t become valid until some period of time has passed (currently, one day).
The refund transaction is prepared in such a way that the client gets a fully signed copy before the initial multi-signature transaction (the contract) is sent to the server. In this way, we avoid a potential crash/attack that could cause the client to lose money - once the client receives the refund transaction, only then is the money locked to both parties control. If the server halts at any point in the protocol, the client can always get their money back.
Once the refund transaction has been obtained by the client, it transmits the multi-signature contract to the server which then signs it and broadcasts it, thus locking in the money and opening the channel. To make a payment the client prepares and signs a new copy of the refund transaction that refunds slightly less money than before. The signature is sent to the server, which then verifies the signature is correct and stores it. The signature uses fairly lax SIGHASH modes so the server has a lot of leeway to modify the refund transaction as it wishes, but normally it will just add an output that sends back to its own wallet.
In this way once the payment channel is established, a micropayment can be made with just one signature operation by the client and one verify by the server.
Eventually the client will decide that it is done. At this point it sends a message to the server asking it to close the channel. The server then signs the final version of the contract with its own key and broadcasts it, resulting in the final state of the channel being confirmed in the block chain. If the server doesn’t co-operate or has vanished before the client gets a chance to cleanly close the channel then the client must wait 24 hours until the initial refund transaction becomes valid.
This idea is great so long as actors have regular dealings, but what about one time exchanges, or infrequent exchanges between parties. What if for infrequent exchanges, both parties used an intermediary. A trustless clearing house if you will. Alice and bob both have long term open payment channels with charlies clearing house. Alice and bob tell charlie what they believe are the terms of the exchange, charlie makes sure everyone is on the same page, charlie creates two new versions of the contract, one paying paying from alice to charlie and one from charlie to bob. Alice signs the updated contract and charlie signs the updated contract.
Now in order to facilitate competition in the market. Assume that alice and bob chose their clearing house from a long list of service providers. Alice chooses charlie and bob chooses dave. All of the clearing houses have open payment channels with all of the other clearing houses. Alice signs an updated contract with charlie, charlie signs an updated contract with dave, and dave signs an updated contract with bob.
Now im not saying this is the end all be all solution. It's just one possible solution. I do think, unless i have missed something, we can say this is reasonable contingency plan. If all else fails, this is
good enough to allow bitcoin to scale as big as we need it to with manageable drawbacks.
Now you might be thinking. "Your solution to bitcoin scalability is BANKS!?!?, we are going to just make bitcoin like the legacy system it is intended to replace in order to save it? This sounds a lot like when bush said we have to kill capitalism to save it." However these clearing houses would not be like banks. They would have very little capacity to get up to mischief. They certainly wouldn't be betting depositors funds on risky investments with 10% reserve for privatized profits and socialist government guarantees against losses. They wouldn't be custodians over your funds. They would just be processing transactions. The most that a clearing house could ever scam anyone is a single transaction. And the whole point is that these are small transactions, if they were very large than they would just be placed on the blockchain.
Thanks once again for humoring my inane ramblings! - Anon.