create account

Simple Side-chaining for Graphene-based Blockchains (BitShares/PeerPlays/Steem) by xeroc

View this thread on: hive.blogpeakd.comecency.com
· @xeroc · (edited)
$1,364.79
Simple Side-chaining for Graphene-based Blockchains (BitShares/PeerPlays/Steem)
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.

# Conclusion

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.
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 25 others
properties (23)
authorxeroc
permlinksimple-side-chaining-for-graphene-based-blockchains-bitsharespeerplayssteem
categorybitshares
json_metadata{"tags":["bitshares"]}
created2016-06-24 15:36:15
last_update2016-06-24 15:40:33
depth0
children15
last_payout2016-08-23 13:14:57
cashout_time1969-12-31 23:59:59
total_payout_value1,319.323 HBD
curator_payout_value45.462 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length5,360
author_reputation118,819,064,085,695
root_title"Simple Side-chaining for Graphene-based Blockchains (BitShares/PeerPlays/Steem)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id42,770
net_rshares130,826,322,582,573
author_curate_reward""
vote details (89)
@cyrano.witness ·
$1.79
Thanks for the proposal, xeroc, but IMO this not truly side-chaining.

> we do not want to trust a central entity like an exchange or gateway to do this for us

This is the crucial point, IMO. Your proposal creates a more-or-less centralised gateway controlled by a number of people.

IMO a true sidechain {c,w,sh}ould  be implemented by generating some kind of transferrable proof within the blockchain. *Anyone* should be able to transfer such a proof from one chain to the other.
For example, I create a special kind of transaction on PEERPLAYS that transfers 100 PLAYSHARES to user xeroc on chain BITSHARES. PeerPlays witnesses create a transferrable proof of that transaction. Someone (witnesses could voluntarily take that role) transfers that proof to the BitShares chain (by publishing it as a transaction). BitShares automatically recognized that proof, and issues 100 PEERPLAYS.PLAYSHARES to xeroc.

Such a proof could, for example, consist of the signed blockheaders in combination with some meta information like the block signing keys of the active witnesses.

The devil is in the details though. :-)
👍  , , , , ,
properties (23)
authorcyrano.witness
permlinkre-xeroc-simple-side-chaining-for-graphene-based-blockchains-bitsharespeerplayssteem-20160624t155318309z
categorybitshares
json_metadata{"tags":["bitshares"]}
created2016-06-24 15:53:18
last_update2016-06-24 15:53:18
depth1
children7
last_payout2016-08-23 13:14:57
cashout_time1969-12-31 23:59:59
total_payout_value1.224 HBD
curator_payout_value0.562 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length1,113
author_reputation4,484,166,969,124
root_title"Simple Side-chaining for Graphene-based Blockchains (BitShares/PeerPlays/Steem)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id42,805
net_rshares3,136,633,052,270
author_curate_reward""
vote details (6)
@arhag ·
You are trusting the Peerplays witnesses as the multisig group that you trust then. There is no way of getting around that. Some trust is needed if you want to decouple the state of the blockchains for scalability reasons.
properties (22)
authorarhag
permlinkre-cyranowitness-re-xeroc-simple-side-chaining-for-graphene-based-blockchains-bitsharespeerplayssteem-20160624t204723745z
categorybitshares
json_metadata{"tags":["bitshares"]}
created2016-06-24 20:47:24
last_update2016-06-24 20:47:24
depth2
children2
last_payout2016-08-23 13:14:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length222
author_reputation52,490,827,205,383
root_title"Simple Side-chaining for Graphene-based Blockchains (BitShares/PeerPlays/Steem)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id43,015
net_rshares0
@cyrano.witness ·
In the scheme I laid out the role of witnesses would not change: they can include transactions or try to suppress them. The rest is handled by the blockchain itself. Witnesses do not get to decide how much is paid out and to whom.

Perhaps you have misunderstood this sentence:
> PeerPlays witnesses create a transferrable proof of that transaction.

I'm not thinking of a to-be-defined piece of data signed by multiple witnesses, separate from the source blockchain. Basically, the block headers from the source blockchain plus the relevant transactions *are* the transferrable proof of work. Yes, some trust has to be put into witnesses, but IMO not more than is typical in Graphene.
properties (22)
authorcyrano.witness
permlinkre-arhag-re-cyranowitness-re-xeroc-simple-side-chaining-for-graphene-based-blockchains-bitsharespeerplayssteem-20160625t065017677z
categorybitshares
json_metadata{"tags":["bitshares"]}
created2016-06-25 06:50:18
last_update2016-06-25 06:50:18
depth3
children1
last_payout2016-08-23 13:14:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length685
author_reputation4,484,166,969,124
root_title"Simple Side-chaining for Graphene-based Blockchains (BitShares/PeerPlays/Steem)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id43,373
net_rshares0
@xeroc ·
$0.77
That's actually a brilliant idea. But requires the witnesses of the BITSHARES blockchain to know about the PEERPLAYS blockchain because otherwise they couldn't be sure that the blockheader and the signer is indeed a legit block producer on the other chain.
My goal was to have a means of bringing arbitrary many "side-chain"-groups to a blockchain without involving the actual consensus mechanism for the very simple reasons of maintaining scalability.
Let's assume you had a "master-blockchain" and wanted to add other blockchains as, erm, .. special-feature plugins blockchains, then you would want to be able to handle arbitrary many. For that reasons I think you should keep the consensus of each chain separately .. That's also good for robustness of the "master-blockchain" and the plugin-chains because they can all act independently ..

If we could come up with a proof that that can be verified without syncing the other blockchain, then your strategy is a winner!
👍  , , ,
properties (23)
authorxeroc
permlinkre-cyranowitness-re-xeroc-simple-side-chaining-for-graphene-based-blockchains-bitsharespeerplayssteem-20160624t155846714z
categorybitshares
json_metadata{"tags":["bitshares"]}
created2016-06-24 15:58:45
last_update2016-06-24 15:58:45
depth2
children3
last_payout2016-08-23 13:14:57
cashout_time1969-12-31 23:59:59
total_payout_value0.746 HBD
curator_payout_value0.023 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length973
author_reputation118,819,064,085,695
root_title"Simple Side-chaining for Graphene-based Blockchains (BitShares/PeerPlays/Steem)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id42,820
net_rshares1,693,559,070,454
author_curate_reward""
vote details (4)
@cyrano.witness ·
$4.19
We could use the committee for bootstrapping sidechains. A sidechain consists of at least (genesis hash, initial block signer's pubkeys, top-level asset name). Based on the genesis hash and the initial block signers, a chain of transferrable proofs can be generated. The transferrable proofs would have to continuously update the active block signing keys, and it'd have to produce a continuous chain of block header signatures. A transferrable proof is only accepted by the target chain after a sufficient number of successive blocks signed by 2/3 of the active witnesses has been received.

One tricky part is that Graphene currently allows to swap a large number (all?) of active witnesses (or their block signing keys) at once.

Storing block headers of several chains would create some bloat, but I think that'd be worth it.
👍  , , , , ,
properties (23)
authorcyrano.witness
permlinkre-xeroc-re-cyranowitness-re-xeroc-simple-side-chaining-for-graphene-based-blockchains-bitsharespeerplayssteem-20160624t161117794z
categorybitshares
json_metadata{"tags":["bitshares"]}
created2016-06-24 16:11:18
last_update2016-06-24 16:11:18
depth3
children2
last_payout2016-08-23 13:14:57
cashout_time1969-12-31 23:59:59
total_payout_value2.672 HBD
curator_payout_value1.516 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length829
author_reputation4,484,166,969,124
root_title"Simple Side-chaining for Graphene-based Blockchains (BitShares/PeerPlays/Steem)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id42,828
net_rshares5,513,032,049,519
author_curate_reward""
vote details (6)
@dana-edwards ·
$0.34
Why not a dynamic set of members?
👍  
properties (23)
authordana-edwards
permlinkre-xeroc-simple-side-chaining-for-graphene-based-blockchains-bitsharespeerplayssteem-20160625t003935624z
categorybitshares
json_metadata{"tags":["bitshares"]}
created2016-06-25 00:39:36
last_update2016-06-25 00:39:36
depth1
children1
last_payout2016-08-23 13:14:57
cashout_time1969-12-31 23:59:59
total_payout_value0.169 HBD
curator_payout_value0.169 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length33
author_reputation353,623,611,191,427
root_title"Simple Side-chaining for Graphene-based Blockchains (BitShares/PeerPlays/Steem)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id43,139
net_rshares873,257,682,223
author_curate_reward""
vote details (1)
@xeroc ·
Thats what i wanted to bring across in Improvment Proposal 1
properties (22)
authorxeroc
permlinkre-dana-edwards-re-xeroc-simple-side-chaining-for-graphene-based-blockchains-bitsharespeerplayssteem-20160625t055209079z
categorybitshares
json_metadata{"tags":["bitshares"]}
created2016-06-25 05:52:15
last_update2016-06-25 05:52:15
depth2
children0
last_payout2016-08-23 13:14:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length60
author_reputation118,819,064,085,695
root_title"Simple Side-chaining for Graphene-based Blockchains (BitShares/PeerPlays/Steem)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id43,335
net_rshares0
@pharesim ·
$0.33
[I'm speechless](https://steemit.com/bitshares/@pharesim/feasibility-of-sidechainscrypto-multisig-gateway)
👍  
properties (23)
authorpharesim
permlinkre-xeroc-simple-side-chaining-for-graphene-based-blockchains-bitsharespeerplayssteem-20160624t170640971z
categorybitshares
json_metadata{"tags":["bitshares"],"links":["https://steemit.com/bitshares/@pharesim/feasibility-of-sidechainscrypto-multisig-gateway"]}
created2016-06-24 17:06:39
last_update2016-06-24 17:06:39
depth1
children1
last_payout2016-08-23 13:14:57
cashout_time1969-12-31 23:59:59
total_payout_value0.164 HBD
curator_payout_value0.165 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length106
author_reputation239,450,405,799,183
root_title"Simple Side-chaining for Graphene-based Blockchains (BitShares/PeerPlays/Steem)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id42,868
net_rshares855,436,096,872
author_curate_reward""
vote details (1)
@xeroc ·
$5.71
Appologise for missing some parts of your post. However I don't propose to establish a company, nor am I asking for funds. All I do is present some technical details and a brief introduction of how i would approach this if i needed it today.
Thanks to @cyrano.witness who provided some thoughtful insides into his views and comes up with a different approach.
The OP by noeans wants to take anyone's business opportunity and merely serves as educational material.
👍  , ,
properties (23)
authorxeroc
permlinkre-pharesim-re-xeroc-simple-side-chaining-for-graphene-based-blockchains-bitsharespeerplayssteem-20160624t184825672z
categorybitshares
json_metadata{"tags":["bitshares"],"users":["cyrano.witness"]}
created2016-06-24 18:48:30
last_update2016-06-24 18:48:30
depth2
children0
last_payout2016-08-23 13:14:57
cashout_time1969-12-31 23:59:59
total_payout_value3.624 HBD
curator_payout_value2.087 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length463
author_reputation118,819,064,085,695
root_title"Simple Side-chaining for Graphene-based Blockchains (BitShares/PeerPlays/Steem)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id42,932
net_rshares6,690,486,317,957
author_curate_reward""
vote details (3)
@publicworker ·
$0.34
I think GnuClear can be a great solution to this problem.
https://github.com/gnuclear/gnuclear-whitepaper
👍  
properties (23)
authorpublicworker
permlinkre-xeroc-simple-side-chaining-for-graphene-based-blockchains-bitsharespeerplayssteem-20160625t093356362z
categorybitshares
json_metadata{"tags":["bitshares"],"links":["https://github.com/gnuclear/gnuclear-whitepaper"]}
created2016-06-25 09:34:00
last_update2016-06-25 09:34:00
depth1
children1
last_payout2016-08-23 13:14:57
cashout_time1969-12-31 23:59:59
total_payout_value0.169 HBD
curator_payout_value0.169 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length105
author_reputation6,647,747,832,410
root_title"Simple Side-chaining for Graphene-based Blockchains (BitShares/PeerPlays/Steem)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id43,461
net_rshares873,257,682,223
author_curate_reward""
vote details (1)
@rick-marches ·
Hi publicworker, would you summarize how this proposal works? is it trustless, trully decentrilized or a kind of multisig? I always scared of spending too many times reading tech geek thing that does not solve any problem, 
I cannot see a reason to lock btc/eth (only asset worth lock) to give it in bts blockchain, even there is no scalability issue........ even if projects build on graphene, issued n traded in dex could interoperate in a plug n play way it does not make sense what benefit could be gained for value, volume, adoption......I dont see a reason either a proposal that reasonable or that makes some sense to put a work for it over the tables, the benefits are not worth in my opinion, but this is just a opinion of a pratical averajoe that does not have interest for fancy things but for. solutions that drives adoption n make useful n needed
properties (22)
authorrick-marches
permlinkre-publicworker-re-xeroc-simple-side-chaining-for-graphene-based-blockchains-bitsharespeerplayssteem-20160625t230109665z
categorybitshares
json_metadata{"tags":["bitshares"]}
created2016-06-25 23:01:12
last_update2016-06-25 23:01:12
depth2
children0
last_payout2016-08-23 13:14:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length859
author_reputation13,657,520,017
root_title"Simple Side-chaining for Graphene-based Blockchains (BitShares/PeerPlays/Steem)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id43,921
net_rshares0
@rick-marches ·
$0.34
Xeroc, I see it as a gateway..... I agree that a trully n automate n without trust sidechain in bitcoin or ethereum maybe makes sense, because interoperate both giant market makes sense, bitshares has great potential but its still small, should focus on smartcoins, liquidity advanced trading features, if bts starts to trading millions daily, in that case, makes sense.
👍  
properties (23)
authorrick-marches
permlinkre-xeroc-simple-side-chaining-for-graphene-based-blockchains-bitsharespeerplayssteem-20160624t185336930z
categorybitshares
json_metadata{"tags":["bitshares"]}
created2016-06-24 18:53:36
last_update2016-06-24 18:53:36
depth1
children0
last_payout2016-08-23 13:14:57
cashout_time1969-12-31 23:59:59
total_payout_value0.169 HBD
curator_payout_value0.169 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length370
author_reputation13,657,520,017
root_title"Simple Side-chaining for Graphene-based Blockchains (BitShares/PeerPlays/Steem)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id42,933
net_rshares873,257,682,223
author_curate_reward""
vote details (1)