I've been thinking some on this subject and had a thought maybe worth discussing?
What if we introduced "forging" on client side wallets that was designed to randomly pass the multi sig keys to users (using user cpu when their wallet is open, in a stealth way) and not witnesses?
So the witnesses run the nods/chain but only active/online user wallets control the keys for the BTC wallet?
Would this be possible?
To implement the so called side-chain feature, we need to make sure: when a user requested a withdrawal of SIDE.BTC (or whatever name), the key holders are online and aware of the request, and sign a transfer transaction in bitcoin network accordingly. How to make sure a random node is always online?
Not sure I understand what you mean by "random node"? BTC random node, Witness or Wallet?
Some have mentioned that person A who deposits the real BTC should hold one of the keys, so if person A ends up selling/transferring their SIDE.BTC to person B or value got trade in the exchange, then if person B wanted to withdraw real BTC back out of Dex, then obviously person A is not around to sign with their key if they have to be active/online.
The other issue with witnesses having full control of the keys (though trustworthy) can collude to wreak havoc as other have mentioned earlier.
So my thought process was, what if witnesses just ran/update the BTC node and published transfers with out seeing the actual keys? If this is even possible, don't know?
If that could be done then a typical transfer would go something like this...
- Person A deposits BTC to the Dex BTC deposit address with their user name in memo field...
- Witnesses see that Tx in the linked BTC wallet and credits the username (from the memo field) the corresponding SIDE.BTC, 1:1 after 6 confirmations on the BTC network (btw, I personally like DeX.BTC)....
- Person A can now use the DeX.BTC to trade, transfer or create UIA within the Dex...
- If Person B ends up getting Person A's DeX.BTC and wants to withdraw back into BTC, then Person B creates a withdraw request
- Witnesses see withdraw request
- Witnesses broadcast to any "open/active" BTS wallets to request mutisig keys
- online Client wallets start to "forge/mine" for the BTC mutisig keys
- Winning "forgers" sign off for the BTC Tx (and possibly get paid a "mining" reward) and give Witnesses the thumbs up to transfer
- Witnesses then broadcast Tx from Dex BTC wallet to Person B BTC wallet.
or something to that effect..lol
If 10 multisig keys, or more are needed then I'd assume it would be safe to say there will be 10 or more active wallets online when the withdraw Tx was broadcast. Especially if users can earn money by keeping active wallets online and help "forge/mine" the keys... there could easily be 100's or thousands of up and running wallets at any given point in time.
BTS network already runs enough witnesses (if there needs to be more than 10 online at same time) so that shouldn't be an issue either.
To incentive witnesses to run BTC nodes, those that do run them, could get a tx fee of the
withdrawals to the BTC network.
I wouldn't advise any fees charged for BTC deposits into the Dex.
Like I said, this may not work... pie in the sky thought/scheme, but maybe will spark some other creative ideas to make BTC deposits possible.