This is a layer 2 concept on the Bitcoin Blockchain that I elaborated from the functioning assumptions of Lighning Network, and would be an improvement of it. I would like to hear your considerations on that, mainly on feasibility and preservation of security granted by on-chain validation system.
I'm an economist and web developer, not a cryptographer.
This concept aims at solving the well-known scalability issues affecting Bitcoin Blockchain, that is the main brake to BTC Blockchain mass adoption.
Every constructive consideration or rebuttal are well accepted. I just want to humbly share with you the idea and see if it's possible to obtain some interesting hint for the qualitative development of the Proof-of-Work Blockchain technology in a mass adoption-oriented perspective.
So here's the idea:
The main goal is to overcome at the capacity of the approx. average of 7 transactions per second that the current Bitcoin Blockchain is able to perform. I focused on the output quality of these 7 transactions per second, rather than a way to improve the number with "brute-force" or algorithm optimization (honestly, I wouldn't even be able to do that).
The L2 should work like this:
Users willing to make a transaction in Bitcoin, acting on layer 2, would eventually open a transaction instance. This instance would comprehend the address sending currency, the address reciving currency, and the import of the transaction.
This instance would be send to a "Box". Boxes should have various setted maximum dimensions basing on the order of magnitude of the import. We are still on layer 2 and no real transaction still happened.
When the sum of the instances imports reach the capacity level of the so called box, this box will be used to create a block on the blockchain. Basically, one box is equal to a single transaction in the Layer 1 blockchain's block. Thus, a single transaction on the block will contain a lot of smaller transactions, collected by the L2 system.
We are now in layer 1.
When the sums of the boxes dimensions in the block will match the maximum dimension allowed for a block, (1MB, or 4MB, after SegWit), the block is created and ready for validation.
For security reasons, a log, containing all the sending addresses, paired with relative recivers, could be attached to the block (maybe in the head of the block as metadata?), so that there would be specific tracking of all the transactions composing boxes even on-chain.
So transaction instances go to boxes. Boxes go to Blocks. Blocks are validated on the blockchain.
At this point, the amount of Bitcoin reported in boxes inside the block is sent to the reciving addresses by the layer 2 system, off-chain, basing on the log that tracks send/receive addresses.
For this step, the L2 should maybe provide two addresses, one sending the amount in the boxes (transactions) stored in the block (after collecting all the instances to fill the box), and one reciving it (before the L2 split the import between the receiver addresses -users-, off-chain).
- Why boxes of different dimensions?
In order to aggregate efficiently transaction instances, these are stored in boxes that takes some time to be filled. The more transactions instances takes places in the L2 system, the fastest boxes are filled and the sooner the block recives transactions (boxes) for validation (scalability).
More boxes can be filled simultaneusly in the shortest amount of time possible, since every transaction instance will immediately find a "free" box, regardless the dimension of the traded import.
- Blocks still takes approx. 10 minutes on average to be added to the blockchain.
In this time window, the L2 could provide the possibility of delete the transaction instance, something we can consider user-friendly. This would be possible only until the block enter validation process.
Also in this time window, L2 could show imports of transaction with the "account balance - available balance" logic.
This means that until the block isn't validated and added to the blockchain the sending address will still have property on the amount of currency committed in the transaction instance, displayed as account balance but not as available balance. Same for the reciving address, unless the fact that the latter won't have property of that amount, not yet. This is maybe the weakest part of the concept from a security perspective. Waiting to ear your considerations on that.
Assuming the number of transaction instances very (sufficiently) high, which is something desirable, filling boxes would take a few seconds and the transfer would be, at least nominally, immediate on the L2 environment.
Bitcoin Blockchain would still create a block every 10 mins on average, but the blocks would be representative of a much higher number of actual transactions, working smarter rather than stronger.
I would really like to hear your considerations on that. What is wrong, what is good (if there's something good actually), what could eventually be improved? Is this valuable for further considerations and maybe prototyping?
Thanks for your time and attention, This is my first post. Hope I did everything the right way and post on the right section.
I originally posted this on the Bitcoin discussion section:
https://bitcointalksearch.org/topic/--5413582