Generalized Sharding Protocol For Blockchains
The following was sent to [bitcoin-dev] on October 9, 2017 under the subject "Generalized sharding protocol for decentralized scaling without Miners owning our BTC".
In previous arguments over Drivechain (and Drivechain-like proposals) I promised that better scaling proposals — that do not sacrifice Bitcoin's security — would come along.
I planned to do a detailed writeup, but have decided to just send off this email with what I have, because I'm unlikely to have time to write up a detailed proposal.
The idea is very simple, and I'm sure others have mentioned either exactly it, or similar ideas (e.g. burning coins) before.
This is a generic sharding protocol for all blockchains, including Bitcoin.
Users simply say: "My coins on Chain A are going to be sent to Chain B".
Then they burn the coins on Chain A, and create a minting transaction on Chain B. The details of how to ensure that coins do not get lost needs to be worked out, but I'm fairly certain the folks on this list can figure out those details.
- Thin clients, nodes, and miners, can all very easily verify that said action took place, and therefore accept the "newly minted" coins on B as valid.
- Users client software now also knows where to look for the other coins (if for some reason it needs to).
This doesn't even need much modification to the Bitcoin protocol as most of the verification is done client-side.
It is fully decentralized, and there's no need to give our ownership of our coins to miners to get scale.
My sincere apologies if this has been brought up before (in which case, I would be very grateful for a link to the proposal).
- This is not a novel idea, it's very similar to how the Interledger protocol functions
- I do remember seeing someone else suggest the idea of "burning coins" on [bitcoin-dev] before