I already wrote some proposals in my other post series:
Multi-Blockchains in Ethereum/RSK
Offchain Transactions in Ethereum/RSK
commenting on using two or more blockchains (homegeneous or heterogeneous), and offchain transactions. They are alternative ways to explore solutions to scalability, with a fresh start and pursuing the simplest path in each idea.
After reviewing the multi-blockchain, now I think a have a simpler path. First, this proposal is about having many HOMOGENEOUS blockchains, Ethereum/RSK-like ones. One is the mainchain, and we could have n additional blockchains:
The main blockchain has the initial ether amount of ether to use. For sake of clarity, let’s start with a main blockchain, the blockchain zero, has an initial stock of 100M ethers (in case of RSK network, it could be the 21M smart bitcoins backed by the 21M bitcoins of the BTC mainnet),
All accounts are the same in all networks: same private, public keys, addresses. So, if you have control of a control in blockchain zero, you can use the same account IN OTHER blockchain.
But the secondary blockchains starts with 0 balance in each account.
The second idea is to have inter-chain transactions, to transfer from one account in source blockchain, to the SAME account in target blockchain:;
An special bridge account is used. There is a bridge account in mainchain FOR EACH secondary chain. So, if you transfer value in blockchain 0, to bridge account corresponding to secondary blockchain 3, THEN a similar transaction will appear in this secondary blockchain, transferring the same amout from the dedicated BRIDGE account. To allow such transfer, each bridge account in SECONDARY blockchain starts with 100M of initial balance,
If there are 10 secondary blockchain, then there are 10 BRIDGE ACCOUNTS in the main blockchain (with initial 0 balance), and ONE BRIDGE ACCOUNT in each secondary blockchain (with 100M inital balance),
You also can send a transaction to a secondary blockchain, transferring value back to the mainchain:
The motivation is to have scalabilty: if the mainchain is overloaded, we can use a secondary blockchain. Also, the different blockchain could have different gas price, and maybe other difference in contract execution cost.
We could use a free graph of blockchains. But limiting the proposal to a hierarchical schema with only one level simplifies the discussion. The transactions between secondary blockchains are not allowed: only main to secondary one are supported. And no generation of new Ether is allowed in the secondary blockchains. These restrictions exist to have a better control of the total amout of value.
I could imagine a secondary blockchain by world region, country, even by vertical market. Or competing blockchains, in gas price and contract execution cost. The client software (that is, a dapp, a mobile application) could simplify the user experience, doing some of these transfer inter-blockchain in automatic.
But, how to reflect one transaction to bridge in one blockchain, to other transaction in the target blockchain? My next post will descibe a simple solution, to be discussed and reviewed. But I think it is a good starting point, to avoid the complications of some atomic swap and alike implementions.
Angel “Java” Lopez