Author Topic: The Bitshares blockchain as the first public sidechain for Bitcoin  (Read 8965 times)

0 Members and 1 Guest are viewing this topic.

Offline complexring

  • Full Member
  • ***
  • Posts: 66
    • View Profile
Re: The Bitshares blockchain as the first public sidechain for Bitcoin
« Reply #30 on: March 02, 2016, 10:34:35 pm »
The original suggestion of using 15 witnesses to be holders of the private key of a multisig address seems simplest and best. 

Although, I am still unconvinced that bytemaster's suggestion of the top 15 is the best option.  bytemaster seems to think that it's not an issue, due to historical data, that a voting-out event could occur.  That's fine; however, we should always recall that past results are not indicative of future results.

The better solution (and I refuse to call any possible solution the best) is to randomly select 15 of the witnesses to be private key holders, with possibly a slightly weighted distribution towards the top ones.  This way, even if there is a switch between the 15th and 16th witness, we wouldn't have to constantly move to a new multi-sig address for the collateral. 
Best block producers of BitShares are probably not the best signers of BTC address. Imo we need another voting algorithm for the BTC multi-signers, for better security, for example one stake can only vote for one signer, so BTC38 can't control all signers. We can probably ask the signers to put some collateral in BitShares, for example to an account under the control of the committee (the voting algorithm of committee should also be revised), to make sure they won't steal customers' funds.


Great thoughts.  I'm not opposed to having others hold the private keys to the multisig address and you bring a good point that it may not be the best option to have block producers be the holders of the private keys.


Randomness is evil. Stake talks.



Randomness is not evil if a protocol is designed properly to handle it.  Making a blanket statement, without mathematical proofs is disingenuous.  There are plenty of mathematical algorithms where randomness is used and provides a better algorithm than ones that do not use (pseudo-or-pure) randomness. 

Point being that the unnecessary transactions that occur under any system design that has a vote for whom holds the private keys for the multisignature addresses will be costly (even if it's minute) and that randomness mitigates this issue.  I'm not saying it's the best, but even when you vote for the holders of the private keys to the multisig address, the person(s) / accounts at 15 and 16 could constantly be swapping positions, and the collateral would be eaten by the transaction fees.


This is good will. But I don't think BitShares is powerful enough to let other chains adapt BitShares's protocol.


I am unsure what you mean by this.  I wasn't suggesting BitShares protocol be adopted by other chains. What I mean is that if the sidechain protocol that BitShares implements works for BitCoin, then it will work for any other altcoin that uses multisignature addresses.

Offline emailtooaj

Re: The Bitshares blockchain as the first public sidechain for Bitcoin
« Reply #31 on: March 03, 2016, 12:43:03 am »
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?
Sound Editor of Beyondbitcoin Hangouts. Listen to latest here - https://beyondbitcoin.org support the Hangouts! BTS Tri-Fold Brochure https://bitsharestalk.org/index.php/topic,15169.0.html
Tip BROWNIE.PTS to EMAILTOOAJ

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4471
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
Re: The Bitshares blockchain as the first public sidechain for Bitcoin
« Reply #32 on: March 03, 2016, 12:47:29 am »
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?
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline emailtooaj

Re: The Bitshares blockchain as the first public sidechain for Bitcoin
« Reply #33 on: March 03, 2016, 01:51:33 am »
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.








 
« Last Edit: March 03, 2016, 01:53:55 am by emailtooaj »
Sound Editor of Beyondbitcoin Hangouts. Listen to latest here - https://beyondbitcoin.org support the Hangouts! BTS Tri-Fold Brochure https://bitsharestalk.org/index.php/topic,15169.0.html
Tip BROWNIE.PTS to EMAILTOOAJ

Offline BunkerChainLabs-DataSecurityNode

Re: The Bitshares blockchain as the first public sidechain for Bitcoin
« Reply #34 on: March 03, 2016, 02:15:54 am »
The original suggestion of using 15 witnesses to be holders of the private key of a multisig address seems simplest and best. 

Although, I am still unconvinced that bytemaster's suggestion of the top 15 is the best option.  bytemaster seems to think that it's not an issue, due to historical data, that a voting-out event could occur.  That's fine; however, we should always recall that past results are not indicative of future results.

The better solution (and I refuse to call any possible solution the best) is to randomly select 15 of the witnesses to be private key holders, with possibly a slightly weighted distribution towards the top ones.  This way, even if there is a switch between the 15th and 16th witness, we wouldn't have to constantly move to a new multi-sig address for the collateral. 
Best block producers of BitShares are probably not the best signers of BTC address. Imo we need another voting algorithm for the BTC multi-signers, for better security, for example one stake can only vote for one signer, so BTC38 can't control all signers. We can probably ask the signers to put some collateral in BitShares, for example to an account under the control of the committee (the voting algorithm of committee should also be revised), to make sure they won't steal customers' funds.

Randomness is evil. Stake talks.

Quote
This extra transaction seems cumbersome and also is more costly, in terms of transaction fees on the bitcoin network.  If you foresee this sidechain business as something that could happen with any altcoin (which I do), then mitigating additional and unnecessary transactions by properly creating a sidechain protocol for any alt on bitshares is the proper way forward.
This is good will. But I don't think BitShares is powerful enough to let other chains adapt BitShares's protocol.

Quote
tl;dr -- side.btc seems superfluous and has potential issues.  Simpler solution is the original one offered, i.e. 15 of the witnesses hold the private keys to a multisignature address that contains the collateral of the bitcoin.

I understand the security concern regarding the witnesses. However I think if we sidestep them as our infrastructure of trust, we are losing the opportunity for them to grow.

At present the level of trust given to them is relative to the stakeholders regard for BTS block witnessing.

It's interesting that now that we would add BTC to the witnesses suddenly there is all this security concern... the same concerns that exist 'now'.

I think going through this process will cause the voting stake holders to become more active if not take the process of voting more seriously.

It will also force witnesses to step up their game or be voted out... I know we have similar witnesses to what we had as delegates in the past largely due to associations with known large stake holders, but with something like this that brings in whole new holders that are going to look at every witness with a far more objective eye and judge them on their presentation, credentials, and their infrastructure.. we are going to see that whole arm of our TBD (three branches of delegation) mature.

If we side step them with something like this though... they stay the same and don't improve.

There is the other issue of expense you mentioned though.

We can have a greater degree of security, however multisig transactions in the bitcoin network are more expensive.. and that will get passed on to the end users... I suppose that is not a bad thing.. it might actually encourage some to get people signing up to bitshares to get their BTC sent to them... in record time at that! :)

Great discussions over all from everyone.
+-+-+-+-+-+-+-+-+-+-+
www.Peerplays.com | Decentralized Gaming Built with Graphene - Now with BookiePro and Sweeps!
+-+-+-+-+-+-+-+-+-+-+

Offline donkeypong

  • Hero Member
  • *****
  • Posts: 2329
    • View Profile
Re: The Bitshares blockchain as the first public sidechain for Bitcoin
« Reply #35 on: March 03, 2016, 03:47:45 am »
The technical details are beyond my level of understanding, but in terms of the concept, I'm interested. If being a sidechain improves our liquidity and market cap with few negative consequences, then I say 'go for it.' At this point, we should be bold.

Offline giant middle finger

  • Full Member
  • ***
  • Posts: 99
    • View Profile
Re: The Bitshares blockchain as the first public sidechain for Bitcoin
« Reply #36 on: March 03, 2016, 06:37:06 am »
I agree.

Like BM said:

We need to showcase what makes us "unique"

in this case, Sidechaining is not being successfully done by anyone yet. Showcasing our DPOS consensus successful history is also unique to us.

On the other hand, bond markets have been established for centuries.  They are not unique or progressively exciting at all.

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4471
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
Re: The Bitshares blockchain as the first public sidechain for Bitcoin
« Reply #37 on: March 03, 2016, 08:52:45 am »
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
It's perfect if the private keys of the multi-sig BTC address can only be used to sign special transactions (real withdrawal requests) but cannot be printed out or be compromised to sign other unwanted transactions (attacks). However I suspect it would be technical very hard if not impossible. I don't know. Wish [member=5]bytemaster[/member] [member=94]pc[/member] [member=11]dannotestein[/member] can help. Unless it's possible, any random mining/forging would probably cause compromise/leak of keys then fund losing.

Quote
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.
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline sudo

  • Hero Member
  • *****
  • Posts: 2255
    • View Profile
  • BitShares: ags
Re: The Bitshares blockchain as the first public sidechain for Bitcoin
« Reply #38 on: March 03, 2016, 12:40:30 pm »
how to control btc address  decentralized?
can Intelligent contract run a robot?
receive  btc ---send sidebtc
receive sidebtc--send real btc
make profit  send to shareholders
no risk

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4471
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
Re: The Bitshares blockchain as the first public sidechain for Bitcoin
« Reply #39 on: March 03, 2016, 12:43:12 pm »
how to control btc address  decentralized?
can Intelligent contract run a robot?
receive  btc ---send sidebtc
receive sidebtc--send real btc
make profit  send to shareholders
no risk
You're right. How?
If such intelligent contract can be done easily, why not make one in Ethereum?
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

Offline dannotestein

  • Hero Member
  • *****
  • Posts: 760
    • View Profile
    • BlockTrades International
  • BitShares: btsnow
Re: The Bitshares blockchain as the first public sidechain for Bitcoin
« Reply #40 on: March 03, 2016, 03:57:49 pm »
Private keys for BTC can't be held in the blockchain. They need to be "owned" by someone, hence the need for custodians for these keys.
http://blocktrades.us Fast/Safe/High-Liquidity Crypto Coin Converter

Offline complexring

  • Full Member
  • ***
  • Posts: 66
    • View Profile
Re: The Bitshares blockchain as the first public sidechain for Bitcoin
« Reply #41 on: March 03, 2016, 11:27:27 pm »
Is there a way to use the bitcoin scripting language (see https://en.bitcoin.it/wiki/Script) to have an unknown address for the destination address?

That is, some mechanism where the user who holds the side.btc asset on the bts blockchain also holds a master private key for a transaction (in addition to a M of N signature) and then allow for a dynamic address, i.e. one that is only known a posteriori, say when a trade executes.

I dunno all the details of the script language or what is available or even if this is useful.

Offline puppies

  • Hero Member
  • *****
  • Posts: 1659
    • View Profile
  • BitShares: puppies
Re: The Bitshares blockchain as the first public sidechain for Bitcoin
« Reply #42 on: March 03, 2016, 11:38:55 pm »
Its too bad cryptofresh.com/u/witness-account doesn't have a private key we could use on the btc network.  If we could just use that account it would solve a lot of our problems. 

I would suggest something like the top 15 witnesses in something like a 10 of 15 multi sig, and then script it so that the btc account is updated if any 3 of those witnesses are voted out of the top 15.  This would add the requirement for those witnesses to run a btc chain and we could pay the top 15 slots more per block for this.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4471
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
Re: The Bitshares blockchain as the first public sidechain for Bitcoin
« Reply #43 on: March 04, 2016, 12:57:03 pm »

I would suggest something like the top 15 witnesses in something like a 10 of 15 multi sig, and then script it so that the btc account is updated if any 3 of those witnesses are voted out of the top 15.  This would add the requirement for those witnesses to run a btc chain and we could pay the top 15 slots more per block for this.
Good idea. I'm also thinking about this.
BTS account: abit
BTS committee member: abit
BTS witness: in.abit

TravelsAsia

  • Guest
Re: The Bitshares blockchain as the first public sidechain for Bitcoin
« Reply #44 on: March 04, 2016, 03:55:20 pm »
From the Mumble, it sounds like the next step is to get BlockTrades.