In crypto currencies and blockchain technologies Sidechains are considered the holy grail to form a super network based on multiple cryptocurrency networks and their user base. Side-chains are often referred to as two-way peggs because they (at least on particular kind of side chains) allows to move tokens from one network into another network. This article tries to show how this could be done with the technology already existing in Graphene, today. This means that the following can be applied to BitShares, PeerPlays, MUSE, Steem among other (possible non-public) graphene-based blockchains.
Let's take the PeerPlays use-case as an example here. We have two graphene-based blockchains (BitShares and PeerPlays) and we want to move the PEERPLAYS asset from one chain to the other and vise versa.
Even if you had a third party that offered to exchange tokens among different blockchain, we do not want to trust a central entity like an exchange or gateway to do this for us.
On the other hand, because the block producers of both chains don't know about each other, you can't communicate with the other chain directly. Unless you convince the block producers to integrate every potential side chain into their servers (which won't scale by the way), it seems that you can't easily move your tokens over trustlessly.
Fortunately, there is something in between fully trustless (i.e. fully automated) and using a centralized entity (i.e. exchange, gateway) and that is a group of people that collectively and provably perform the handover of tokens from one blockchain into the other.
All we need is a group that acts on both blockchains and jointly control transactions from the group account. A user that wants to move funds to the other chain sends the asset to the group with a memo that identifies the recipient on the other blockchain.
After confirmations, the group uses their blockchain account on the target blockchain to send out the asset to the recipient. Since sending out assets (or issuing new shares) from the group's account requires all (or a fraction) of their members to approve, we can use the proposal system and simply use threshold-signatures. Only if the required amount of group members has approved the transaction, the funds will actually move the groups account. Of course the group only approves, if the corresponding funds have been deposited properly on the original chain.
Improvement Proposal 1
The group could be a fixed set of members that are defined by someone, or the members of that group
- are voted for by shareholders of some token
- are the biggest stake holders of a profit sharing SIDE-chain asset
- or a combination of the above (fixed set of users + votes set of users + set of top holders -- with equal or non-equal weights)
Of course, we can also distinguish owner and active permissions to hand over operations to someone else. Well, the permission system in Graphene is more powerful than most know.
Improvement Proposal 2
Instead of having the same members in the two groups on both blockchains, we could use two different sets of users for the groups and pick elected, approved, reputable members of the corresponding blockchain community. The advantage here is that the group doesn't need to share people, it only needs to be able to read the other blockchains state. Of course, if you are moving funds from one chain to another chain, you may want to have control over the corresponding asset, but assuming you are just interested in allowing people to move between chains and issue/burn the assets right after reception, then you can also just pay the group members by other means for the operations they perform
Improvement Proposal 3
Instead of using the recipient account in the memo and have the group on the target chain automatically send over the asset, we could add another explicit step to request from users to claim the stake from the other chain. This could be combined with gift-codes or any other shared secret required for claiming stake (that has been burned/deposited to the group account on the other chain).
Now let's get one step further, since we can add multiple operations in a transaction proposal, a business opportunity would be to allow cross-chain asset trading for a fee. For instance, you could require a valid proposal to have a second operation that pays the group members/operators a fee. This way, sending stuff to the other blockchain could be free, but claiming the stake would cost a fee.
Improvement Proposal 4
Given that we can require a fee, and have a profitable business around side-chaining, we could put all of this into a package and make it a Fee-Backed Asset. People that pay the fee have to pay it into the buyback account of the FBA. Holders of the FBA profit from these fees.
I here propose a simple method to implement side-chaining (as in cross-blockchain transfers via multisig groups) to arbitrary many blockchains today. The easiest, of course, is to start with Graphene-based blockchains because of their superior permissions model. Technically, any blockchain that knows a multi-signature scheme can be added too. Having a dynamic set of group members allows to kick out badly performing members that don't manage to approve legit proposals quickly.