Author Topic: Is it possible for bitshares to become a sidechain of bitcoin?  (Read 25950 times)

0 Members and 1 Guest are viewing this topic.

Offline Chronos

I always feel it will be better to be able to set proxy separately for witness
Good thoughts. That seems like a very good feature, after hearing your explanation.

Offline bitcrab

  • Committee member
  • Hero Member
  • *
  • Posts: 1928
    • View Profile
  • BitShares: bitcrab
  • GitHub: bitcrab
I always feel that the voting to witnesses is different with voting to committee+worker.

voting to witness is mostly a technique problem, need to check the behavior of each witness, is it stable? what's the block missing rate?
voting to witness is a key factor to the security of the network, it's a key concern while considering problems like sidechains.

however, voting to committee+worker is mainly relevant to the policy and directions of the network/community.

the participation of voting is low at the moment, however, at least it can make committee and worker work,  but for witness, the low participation voting rate is always a risk/shortage.

I always feel it will be better to be able to set proxy separately for witness, then I'll set a proxy for voting witness as I am not so familiar with the behavior of each withness, however, I want to vote committee+worker by myself and as a proxy.

and I think while we discuss economic incentive to voting, we should focus on witness voting to grasp the main problem and avoid complex.
Email:bitcrab@qq.com

Offline bitsharesbrazil

  • Sr. Member
  • ****
  • Posts: 243
    • View Profile
My opinion, with documentation we have,  keep improving it plus forum where you find what you want n ask what you want is enought for a person that iswanting a deep involvment n enjoy the dac features, eventually he/she will ask somenthing, focus should be always mantain n upgrade documentation, make language more user friendly, associate examples.
bitcointalk ANN https://bitcointalk.org/index.php?topic=1084460.0
chat, post, promote it!!!!!!!! Stan help to improve OP!

Offline Chronos

So my question is, does a comprehensive and up to date video like this exist?  If not, why not?
Ironically, you have to vote to make it happen.  :P

Which is a real problem.  More than it being a ironic situation, it's a real sick situation.
I don't think it's a big problem. With the "proxy" feature, people who don't want to keep up-to-date on voting can delegate their vote to a community member whose opinion they trust. We'll need a video on that one.  :)

Offline Empirical1.2

  • Hero Member
  • *****
  • Posts: 1366
    • View Profile
So my question is, does a comprehensive and up to date video like this exist?  If not, why not?
Ironically, you have to vote to make it happen.  :P

Which is a real problem.  More than it being a ironic situation, it's a real sick situation.

These are key elements of the Bitshares system, and part of the launch, these needed to be already prepared before letting this system into the wild.

You don't build a system, and hope that people will figure out how to use it. 


A good place to start would be a simple 'how to' voting graphic like the one I've seen one of the delegates make for LSK (to promote himself) I'm not sure we have one for BTS.



If you want to take the island burn the boats

Offline crypto4ever

  • Full Member
  • ***
  • Posts: 103
    • View Profile
So my question is, does a comprehensive and up to date video like this exist?  If not, why not?
Ironically, you have to vote to make it happen.  :P

Which is a real problem.  More than it being a ironic situation, it's a real sick situation.

These are key elements of the Bitshares system, and part of the launch, these needed to be already prepared before letting this system into the wild.

You don't build a system, and hope that people will figure out how to use it. 

Text documentation and forum postings only go so far.  Reading, and visualizing in your mind isn't as effective.

We really need some video tutorials, so people understand how the system works, so it lowers the barrier to entry as well as lowers the barrier to ongoing and active participation.

Watching a video, is much easier to acquaint yourself, and makes the process much easier.   I see the person do it on video.  I can repeat similar steps myself.

This is extremely important and where the Bitshares system has an emergency until it is corrected.

Chronos, I do like your videos.  However you shouldn't be the only leader in this space.   I'd like to see others join you in this as well.

It's one of the reasons that webinars have multiple speakers.  They compliment each other and give a more well rounded experience.

« Last Edit: June 07, 2016, 05:47:24 pm by crypto4ever »

Offline Chronos

So my question is, does a comprehensive and up to date video like this exist?  If not, why not?
Ironically, you have to vote to make it happen.  :P

See the Chronos Crypto Videos worker proposal. The worker has been approved, so our video documentation is on the right track.

First video is already out: Intro to Bitshares

Offline crypto4ever

  • Full Member
  • ***
  • Posts: 103
    • View Profile

is it possible to add some economic incentive for voting?  for example is it possible to give voters some reward when the voted witness generate a new block? even a little reward can encourage voting.

Thought experiment:

Suppose every account had a knob we could turn increasing their pay until they were incentivized to take the time to vote.
One would assume that at that price they are still not incentivized to take the time to become suitably informed to vote.

I'm someone who doesn't vote.  I don't understand voting, and it is not because I am not incentivized to do so.

I did try it once, but couldn't fully figure it out.  This was about 8 months ago, and I gave up.

In order to vote, I realized I had to run around the forums looking for posts from people who wanted me to vote for them.   I finally figured I'd vote for fuzzy because I know him, and after listening to a beyond bitshares episode.   I tried doing a proxy vote, and still don't think I did it right, because when I went to the bts explorer, it says I have no votes.

Voting is new to me, and the importance is still sketchy.  I, like many others, probably feel, that the knowledgable are already voting, so my vote doesn't matter.

I admit, I'm not knowledgable enough to vote.

I'm one of the people that needs something to incentivize me, and it's more than an economic benefit.

I need the education and resources to do it.

What that means, is if there was a video tutorial on youtube, that says..

Ok, folks, if you are a Bitshares holder, this is how you vote, why you want to vote, and how to change your vote.

Let's begin.

First of all, I fire up my Bitshares light client, and I see where to vote.  Now before I vote, I want to decide who to vote for.  So then I do this, and read that.

Now that I'm ready to vote, I do this...

Now let's say it's a month later, and the person I voted for turned into a frog.  Ok, this is how I go and find a new person to vote for, and change my vote.

Voting is something you should check and change every X days or weeks.   If you don't, you could be innocently contributing to the problem with Bitshares growth and your own investment.

....

So my question is, does a comprehensive and up to date video like this exist?  If not, why not?
« Last Edit: June 07, 2016, 05:36:50 pm by crypto4ever »

Offline Empirical1.2

  • Hero Member
  • *****
  • Posts: 1366
    • View Profile
is it possible to add some economic incentive for voting?  for example is it possible to give voters some reward when the voted witness generate a new block? even a little reward can encourage voting.

LISK has profit sharing delegates.

Right now +-30% of LSK is on Polo. It will be interesting if over time, profit sharing delegates act as a sufficient incentive and if shareholders are informed enough to strike a balance between delegate types and combinations thereof.

dPoS will continue to be broken as long as there is no incentive to vote or penalty for not voting. At this point, I think the only way to fix it is by providing a penalty if you don't vote every so often, then your stake should be confiscated by the blockchain and burned. Kind of off topic from OP.. my bad.

So, to avoid penalty or earn incentives,  former non-voters would just vote randomly without thinking.
"Too lazy to vote, too lazy to think about a coerced vote."

Result: there are now a bunch of random votes blocking new decisions and making it hard for dedicated thinkers to respond quickly when issues do arise.  Therefore the project wanders adrift at sea without a rudder.

How would that do anything but harm?

BTS shareholders (or shareholders in any company) have made a capital investment in the future of that company.

Unlike centralized companies that require a vote as little as once per year, A decentralized company requires shareholders to engage in frequent voting which requires additional 'work'  & as Bytemaster correctly states in his latest blog imo...

Quote
Many people vote once and then forget to change their vote or they vote for a proxy and then forget to follow up. The usual end result is that it becomes difficult to vote out incumbents or vote in new individuals. The presence of voter apathy is a sign that incentives are not properly aligned in the system.

http://bytemaster.github.io/article/2016/01/04/The-Benefits-of-Proof-of-Work/

By incentivising voting and penalising non voting you are aligning incentives so that the small BTS shareholders are now paid for the additional 'work' and as they are BTS shareholders who have made a capital commitment to the success of the project, it is likely the majority of votes will not be random but considered.

Imo, either the majority of small BTS shareholders will vote responsibly if given an incentive & if not, then it means BTS is the most insecure blockchain on the planet and can be attacked with 0.05% of BTS.
https://bitsharestalk.org/index.php/topic,20724.msg267990.html#msg267990
If you want to take the island burn the boats

Offline bitcrab

  • Committee member
  • Hero Member
  • *
  • Posts: 1928
    • View Profile
  • BitShares: bitcrab
  • GitHub: bitcrab

is it possible to add some economic incentive for voting?  for example is it possible to give voters some reward when the voted witness generate a new block? even a little reward can encourage voting.

Thought experiment:

Suppose every account had a knob we could turn increasing their pay until they were incentivized to take the time to vote.
One would assume that at that price they are still not incentivized to take the time to become suitably informed to vote.
So at this point, their vote is just a random variable reflecting lack of information or, worse, just the easily available disinformation. 
We could generate such uninformed, random votes automatically at much lower cost.
Why would we pay to inject their human generated equivalent into the system?
How much higher would you have to turn the dial to get them to study everything they need to know to vote wisely?
How would you prove they had actually done that work to earn the higher pay rate?

while discussing this, we need first to follow the decentralization principle, to say "generate votes" is just as saying "we can ask a consultant institution to decide who will be US President, the institution is more professional in doing this".

and here we can first focus on the witness voting, this does not cost much time for information, the "block missing rate" can be a main factor to estimate one witness.

while the voted witness generate block, the voter get some reward, and while the voted witness miss block, there will be some penalty to the voter.
the result: more voting, more efficient witness voted. more security network.

also just thought expriment.



 
Email:bitcrab@qq.com

Offline arhag

  • Hero Member
  • *****
  • Posts: 1214
    • View Profile
    • My posts on Steem
  • BitShares: arhag
  • GitHub: arhag
TL;DR Don't know whether this be considered in the thread yet:
 If we want to automatically have top 15 witnesses multi-sig the BTC wallet, we need to improve voting participation first, otherwise for example btc38 would be able to steal the fund easily.

Another reason why only vested BTS should have voting rights. This would take away the voting power from exchanges because they would not be able to unvest fast enough to satisfy the possible withdrawal demands of their customers. So they would have to only hold and allow trading of the unvested liquid BTS (with no interest payments) which would not have any voting power.

Offline Stan

  • Hero Member
  • *****
  • Posts: 2908
  • You need to think BIGGER, Pinky...
    • View Profile
    • Cryptonomex
  • BitShares: Stan

is it possible to add some economic incentive for voting?  for example is it possible to give voters some reward when the voted witness generate a new block? even a little reward can encourage voting.

Thought experiment:

Suppose every account had a knob we could turn increasing their pay until they were incentivized to take the time to vote.
One would assume that at that price they are still not incentivized to take the time to become suitably informed to vote.
So at this point, their vote is just a random variable reflecting lack of information or, worse, just the easily available disinformation. 
We could generate such uninformed, random votes automatically at much lower cost.
Why would we pay to inject their human generated equivalent into the system?
How much higher would you have to turn the dial to get them to study everything they need to know to vote wisely?
How would you prove they had actually done that work to earn the higher pay rate?

Anything said on these forums does not constitute an intent to create a legal obligation or contract of any kind.   These are merely my opinions which I reserve the right to change at any time.

Offline bitcrab

  • Committee member
  • Hero Member
  • *
  • Posts: 1928
    • View Profile
  • BitShares: bitcrab
  • GitHub: bitcrab
TL;DR Don't know whether this be considered in the thread yet:
 If we want to automatically have top 15 witnesses multi-sig the BTC wallet, we need to improve voting participation first, otherwise for example btc38 would be able to steal the fund easily.

 
is this a big problem of DPoS? now in theory btc38 can build up 29 witnesses and vote them on to replace the current ones, is that a big risk of the system?

that is not the worst, the worst is if btc38 is hacked and the hacker get the whole BTS in the wallet, he can control all the witnesses

is it possible to add some economic incentive for voting?  for example is it possible to give voters some reward when the voted witness generate a new block? even a little reward can encourage voting.


Email:bitcrab@qq.com

Offline ivglavas

  • Newbie
  • *
  • Posts: 13
    • View Profile
This is second time app is cutting my message!!
It says also - feel free to contact me if I can be of help

Offline ivglavas

  • Newbie
  • *
  • Posts: 13
    • View Profile
@noisy If there will be any interest of getting involved into Augur markets, maybe I can help on connecting you guys. I have no knowledge about developing but have been working on a low liquid stock exchange so my skills and knowledge are other side from developing


Offline noisy

Becoming bitcoin or ethereum sidechain, bitshares could be used for Augur application. That could improve liquidity very much. Any news on starting a sidechain project?

@bytemaster said on latest hangout, that roadmap for next months is:
- finish stealth transaction (backend already deployed, GUI will be available shortly),
- free transactions
- bitshares as sidechain of bitcoin

knowing that free transactions are already mostly implemented by abit, that means, that this should be rather sooner that later :)
Take a look on: https://bitsharestalk.org/index.php/topic,19625.msg251894.html - I have a crazy idea - lets convince cryptonomex developers to use livecoding.tv

Offline ivglavas

  • Newbie
  • *
  • Posts: 13
    • View Profile
Becoming bitcoin or ethereum sidechain, bitshares could be used for Augur application. That could improve liquidity very much. Any news on starting a sidechain project?

Offline BunkerChainLabs-DataSecurityNode

Would being a bitcoin / ethereum sidechain reduce bitshares security?

If the value of btc held in multisig by witnesses becomes significant compared to their stake in bitshares, wouldn't they have the incentive to collude and take the btc and other possible coins like eth.

As the holding of BTC increases in the bitshares network so would the value of BTS... therefore the witness pay will also increase.

Aside from this, it may raise the bar for witnesses to have to be more serious participants or increase certain standards of operations and more importantly... have a known reputation of trust. Witnesses now are generally people already know from years past and even I don't know who they all are... which is a good thing in a way... even less likelihood of collusion.

I can tell you as a witness we would never risk our company name being tarnished in such a scandal. If the design is how I think it will be, it will require ALL active witnesses to be participants in the collusion to steal BTC.
+-+-+-+-+-+-+-+-+-+-+
www.Peerplays.com | Decentralized Gaming Built with Graphene - Now with BookiePro and Sweeps!
+-+-+-+-+-+-+-+-+-+-+

Offline MarkoPaasila

Would being a bitcoin / ethereum sidechain reduce bitshares security?

If the value of btc held in multisig by witnesses becomes significant compared to their stake in bitshares, wouldn't they have the incentive to collude and take the btc and other possible coins like eth.

Offline tonyk

  • Hero Member
  • *****
  • Posts: 3308
    • View Profile
I was a big BIG fan and proponent of this back in the days.

It is still good...but will be 2 years late when it becomes reality (if it does ever do so).

In the mean time poor design decisions, idiotic Titan and 17 of Agent86's grandeurs ideas on bitAssets had to be tested (unsuccessfully) first for no clear reason... what so ever.

Anyway, bts will go through half ass paying to market makers first (sure to fail experiment in my mind, but who I am to know), before this comes to life.
« Last Edit: February 21, 2016, 04:05:34 am by tonyk »
Lack of arbitrage is the problem, isn't it. And this 'should' solves it.

Offline BunkerChainLabs-DataSecurityNode

@bytemaster:

Just wanted to resurrect the sidechain thread with an idea/question.  Since there's risk (perhaps intolerable risk) of collusion  associated with witnesses signing off on transfers to a multi-sig BTC wallet, would it be possible for the BTS blockchain to hold the private key for such a BTC wallet and automatically make transfers out of it (and into a user's individual BTC wallet) whenever a user sells their SIDE.BTC on the DEX?

It is possible to do secure multi-party computation among the witnesses.  Doesn't prevent collusion of witnesses though.

https://en.wikipedia.org/wiki/Secure_multi-party_computation

So is it not possible for the Bitshares blockchain to hold the private key for the common wallet and automate the transfers so witnesses don't need to be involved?

You want to do it with witnesses since they are elected by shareholders.

There are ways that collusion could be minimized.

I'm trying to get at a way to do this without human involvement, otherwise I think it just won't be trusted.  Plus how would it work, witnesses would have to manually approve each transaction?  I don't see that as a viable solution.  And I think there's a better way.

@bytemaster:
Couldn't you write some code into graphene that would utilize, for example, the blockchain.info API to create a Bitcoin wallet for the DEX, and store the returned private key on the blockchain?  So first the straightforward part: when someone wants to transfer BTC to the DEX, they send BTC to a designated BTC address and then the blockchain automatically issues them the corresponding amount of SIDE.BTC on the DEX.  Then the trickier part, when they are ready to withdraw, they surrender their SIDE.BTC and the blockchain uses the private key it stored previously in order to send the appropriate sum of BTC to the user's designated external BTC wallet.  Is this not possible?   

@abit, do you have any thoughts about this?

It's trusted just fine with how other networks do this.. only they are using a handful of bitcoin exchanges .. far less secure that what we are proposing: http://www.coindesk.com/blockstream-commercial-sidechain-bitcoin-exchanges/

This is the only practical means to executing... that's what they came up with with $21 million to work with. You think we can do better? :)

What you described is essentially what the witnesses would be done.. but your recommendation introduces more threats.

It would not be manual it would all be automatic and would have witnesses ensuring that the nodes are operating as optimal as possible for Bitshares vs. other networks that wouldn't care, and might not have any redundancy like we would have with the witnesses.

DPOS means trusting humans to maintain and keep things working right. If they don't, they get voted out.

Multi-sig for bitcoin wallets is limited to a maximum of 15 I believe. If we had all witnesses participating but had an algo that changed the multi-sig assignments in some type of interval configuration it would require basically all witnesses to agree to steel all the bitcoin. Note that this would be far more secure than Liquid.. they got $21m for that.. we should at least get that in added valuation for Bitshares if not more. :)  I have said this all before, maybe it was in Telegram.

I'm sorry, but you can't compare this to Liquid.  Liquid is a federated sidechain of centralized services (BitFinex, Kraken, BTCC, Xapo, Unocoin).  To begin with, the users of these services have to trust those companies.  On top of that, the Liquid sidechain depends on the participating companies trusting each other.  So you really can't compare that to what we're trying to accomplish here.

By the way, it looks like you modified your post before I got a chance to respond.  But since you were wondering why I wasn't taking your explanation at face value, it's because you're not the expert.  So I continue to address @bytemaster with my questions since he IS the expert.  And I asked for @abit's opinion since he is a developer and, for all we know, he could be the one to code this up ultimately.  Surely you can understand where I'm coming from.

In any event, I'm really not sure, but something tells me that what I'm proposing is very much doable.  It would be great if @bytemaster would speak to it specifically.  If it can't be done, please explain why.  Thanks!

Did you get to listen to the hangout this week @tbone ?

Bytemaster described in fairly step by step detail exactly the same process I described as how this would be implemented in Bitshares. That is the feedback you were looking for to confirm.

To recap.. witnesses would act as the multi-sig authority and the UIA counterparty would be backed by the real world counterparty BTC, thus effecting a sidechain.

I am already looking at the costs involved in developing this. Guess we are going to see Sidechain Backed Assets (SBA) this year! :)
+-+-+-+-+-+-+-+-+-+-+
www.Peerplays.com | Decentralized Gaming Built with Graphene - Now with BookiePro and Sweeps!
+-+-+-+-+-+-+-+-+-+-+


Offline Akado

  • Hero Member
  • *****
  • Posts: 2752
    • View Profile
  • BitShares: akado
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

TravelsAsia

  • Guest
As far as I know, wallets are mostly opensource. That means, that we should provide such feature in a pull request.

Thank you for the reply, let me phrase it slightly differently.  Could the wallets profit from BitShares transactions if they add it to their wallet?  With such as small user base, I was trying to figure out if wallet developers would have any incentive to support it. Also, how would that support directly benefit BitShares?

As support of another blockchain in wallet require additional effort from wallet developer I would not be surprised if they will add some additional transaction fee to it. I would not be agains it, as long as they will be relatively low. Additional source of income is a very good reason to develop a support for that :)

It moves us away from the Bitshares vs Bitcoin discussion while broadening our using base. I hope this is discussed in tomorrow's Mumble.

Offline noisy

As far as I know, wallets are mostly opensource. That means, that we should provide such feature in a pull request.

Thank you for the reply, let me phrase it slightly differently.  Could the wallets profit from BitShares transactions if they add it to their wallet?  With such as small user base, I was trying to figure out if wallet developers would have any incentive to support it. Also, how would that support directly benefit BitShares?

As support of another blockchain in wallet require additional effort from wallet developer I would not be surprised if they will add some additional transaction fee to it. I would not be agains it, as long as they will be relatively low. Additional source of income is a very good reason to develop a support for that :)
Take a look on: https://bitsharestalk.org/index.php/topic,19625.msg251894.html - I have a crazy idea - lets convince cryptonomex developers to use livecoding.tv

TravelsAsia

  • Guest
As far as I know, wallets are mostly opensource. That means, that we should provide such feature in a pull request.

Thank you for the reply, let me phrase it slightly differently.  Could the wallets profit from BitShares transactions if they add it to their wallet?  With such as small user base, I was trying to figure out if wallet developers would have any incentive to support it. Also, how would that support directly benefit BitShares?

Offline noisy

As far as I know, wallets are mostly opensource. That means, that we should provide such feature in a pull request.
Take a look on: https://bitsharestalk.org/index.php/topic,19625.msg251894.html - I have a crazy idea - lets convince cryptonomex developers to use livecoding.tv

TravelsAsia

  • Guest
As a sidechain for Bitcoin, would there be a financial incentive for Bitcoin wallets to add Bitshares?

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
+5% for joining up with us.
Looking forward to know how you solved those sidechain issues at blockstream!

Offline noisy

I'd be excited to have a conversation with Daniel or someone else from the BitShares team if they express any interest at all in pursuing this idea.

 CC: @bytemaster

Hey guys, Eric Martindale with Blockstream here. 

Welcome to our forum. BTW, how did you find this topic? :)

@fuzzy this is a cool idea for a hangout!

would love to.  @martindale would you be interested in joining us in a community hangout at some point?

that would be awesome!
« Last Edit: February 18, 2016, 10:35:00 am by noisy »
Take a look on: https://bitsharestalk.org/index.php/topic,19625.msg251894.html - I have a crazy idea - lets convince cryptonomex developers to use livecoding.tv

Offline complexring

  • Full Member
  • ***
  • Posts: 66
    • View Profile
By the way, it looks like you modified your post before I got a chance to respond.  But since you were wondering why I wasn't taking your explanation at face value, it's because you're not the expert.  So I continue to address @bytemaster with my questions since he IS the expert.  And I asked for @abit's opinion since he is a developer and, for all we know, he could be the one to code this up ultimately.  Surely you can understand where I'm coming from.

Thanks for trusting me, but sorry, I'm not a bitcoin expert, I don't know how to deal with the bitcoin multi-sig thing at all.

@abit:  This is a Bitshares question, not a bitcoin question.  It's also not a multi-sig question.  Let me ask in a different way.  Could you write code in Bitshares that calls an external API which returns a value that could then be stored securely (i.e. not accessible to any human) on the Bitshares blockchain to be used by the code at a later time?  I would imagine this is possible, but could you confirm?

Yes, it is possible and doable.  There is a way to make RPC call to bitcoin to monitor the blockchain for incoming fund for example.  Once there is a value returned, it needs to be stored encrypted in the blockchain.  I think pc is thinking of a new function to store data securely in bts blockchain.

Great.  So we can make remote procedure calls to the blockchain.info API, for example, to programatically create a bitcoin wallet, correct?  Calling the create_wallet method of that API returns the new wallet's private key, which could then be stored encrypted on the Bitshares blockchain. 

So now we have a wallet that is controlled by the Bitshares blockchain and can hold BTC deposits for DEX users.  When a user deposits BTC to this wallet, they are issued a corresponding amount of SIDE.BTC which can be used on the DEX.  Later, when a user is ready to withdraw, any remaining SIDE.BTC is wiped from their account and BTC in an amount equal to the quantity of SIDE.BTC the user had remaining can be sent to a bitcoin wallet of their choice.   

If I'm not mistaken about the feasability, this solution would serve our purpose, it's trustless, and it shouldn't be very difficult to implement not only for BTC, but for any cryptocurrency that has an api with a create wallet method.  Thoughts?  Am I missing something?

@bytemaster @cube @abit

So, if the private key is stored encrypted on the blockain, who controls the private key to decrypt the private key that's stored?

Indeed. I don't think this is actually possible.  Data stored on the blockchain is accessible to everyone either in plaintext or encrypted.  If it's encrypted it's useless unless someone has the decryption key stored somewhere.  You cannot store a private key on a public blockchain that is usable by the chain but not by any set of individuals without the chain, because the blockchain itself isn't a real actor; it's a virtual entity composed of participants following its rules.

My thoughts exactly. 

Maybe we can see if Eric Martindale has good ideas on how to integrate this. 

Although, I really can't see anything better other than a random witnesses (as opposed to the top 15 as posed by bytemaster, in the event of a vote-out), having the private keys to a multisignature wallet and just hoping no collusion occurs.

But maybe their solution is somehow different than this and would work better. 

Offline fuzzy

Hey guys, Eric Martindale with Blockstream here.  The answer to your question is absolutely, yes!  It is definitely possible, and it would be very exciting to see BitShares as a sidechain.  If I recall correctly, there are many other related projects that would make equal sense as sidechains, too.

However, choosing to migrate from the existing model to a bonded sidechain is a different question.  While sidechains already exist in the wild (see the alpha sidechain if you're looking for something to prototype on top of), creating and configuring one isn't trivial (yet).  As part of the Elements Project, we're hoping to make this easier, but migrating any existing project to a sidechain will incur some amount of technical work.  In the case of BitShares, I would expect it to be significant – you'll want to make sure the benefits are worth the effort.

I'd be excited to have a conversation with Daniel or someone else from the BitShares team if they express any interest at all in pursuing this idea.  Obviously, I'm excited about it, because I think there is very clear value in doing so, but I'd want to make sure that sentiment is shared among those responsible for BitShares.

I, for one, think a world full of many interoperable blockchains is an exciting one!

@fuzzy this is a cool idea for a hangout!

would love to.  @martindale would you be interested in joining us in a community hangout at some point?
WhaleShares==DKP; BitShares is our Community! 
ShareBits and WhaleShares = Love :D

Offline Akado

  • Hero Member
  • *****
  • Posts: 2752
    • View Profile
  • BitShares: akado
Hey guys, Eric Martindale with Blockstream here.  The answer to your question is absolutely, yes!  It is definitely possible, and it would be very exciting to see BitShares as a sidechain.  If I recall correctly, there are many other related projects that would make equal sense as sidechains, too.

However, choosing to migrate from the existing model to a bonded sidechain is a different question.  While sidechains already exist in the wild (see the alpha sidechain if you're looking for something to prototype on top of), creating and configuring one isn't trivial (yet).  As part of the Elements Project, we're hoping to make this easier, but migrating any existing project to a sidechain will incur some amount of technical work.  In the case of BitShares, I would expect it to be significant – you'll want to make sure the benefits are worth the effort.

I'd be excited to have a conversation with Daniel or someone else from the BitShares team if they express any interest at all in pursuing this idea.  Obviously, I'm excited about it, because I think there is very clear value in doing so, but I'd want to make sure that sentiment is shared among those responsible for BitShares.

I, for one, think a world full of many interoperable blockchains is an exciting one!

@fuzzy this is a cool idea for a hangout!
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline Troglodactyl

  • Hero Member
  • *****
  • Posts: 960
    • View Profile
By the way, it looks like you modified your post before I got a chance to respond.  But since you were wondering why I wasn't taking your explanation at face value, it's because you're not the expert.  So I continue to address @bytemaster with my questions since he IS the expert.  And I asked for @abit's opinion since he is a developer and, for all we know, he could be the one to code this up ultimately.  Surely you can understand where I'm coming from.

Thanks for trusting me, but sorry, I'm not a bitcoin expert, I don't know how to deal with the bitcoin multi-sig thing at all.

@abit:  This is a Bitshares question, not a bitcoin question.  It's also not a multi-sig question.  Let me ask in a different way.  Could you write code in Bitshares that calls an external API which returns a value that could then be stored securely (i.e. not accessible to any human) on the Bitshares blockchain to be used by the code at a later time?  I would imagine this is possible, but could you confirm?

Yes, it is possible and doable.  There is a way to make RPC call to bitcoin to monitor the blockchain for incoming fund for example.  Once there is a value returned, it needs to be stored encrypted in the blockchain.  I think pc is thinking of a new function to store data securely in bts blockchain.

Great.  So we can make remote procedure calls to the blockchain.info API, for example, to programatically create a bitcoin wallet, correct?  Calling the create_wallet method of that API returns the new wallet's private key, which could then be stored encrypted on the Bitshares blockchain. 

So now we have a wallet that is controlled by the Bitshares blockchain and can hold BTC deposits for DEX users.  When a user deposits BTC to this wallet, they are issued a corresponding amount of SIDE.BTC which can be used on the DEX.  Later, when a user is ready to withdraw, any remaining SIDE.BTC is wiped from their account and BTC in an amount equal to the quantity of SIDE.BTC the user had remaining can be sent to a bitcoin wallet of their choice.   

If I'm not mistaken about the feasability, this solution would serve our purpose, it's trustless, and it shouldn't be very difficult to implement not only for BTC, but for any cryptocurrency that has an api with a create wallet method.  Thoughts?  Am I missing something?

@bytemaster @cube @abit

So, if the private key is stored encrypted on the blockain, who controls the private key to decrypt the private key that's stored?
Indeed. I don't think this is actually possible.  Data stored on the blockchain is accessible to everyone either in plaintext or encrypted.  If it's encrypted it's useless unless someone has the decryption key stored somewhere.  You cannot store a private key on a public blockchain that is usable by the chain but not by any set of individuals without the chain, because the blockchain itself isn't a real actor; it's a virtual entity composed of participants following its rules.

Offline martindale

  • Newbie
  • *
  • Posts: 1
    • View Profile
Hey guys, Eric Martindale with Blockstream here.  The answer to your question is absolutely, yes!  It is definitely possible, and it would be very exciting to see BitShares as a sidechain.  If I recall correctly, there are many other related projects that would make equal sense as sidechains, too.

However, choosing to migrate from the existing model to a bonded sidechain is a different question.  While sidechains already exist in the wild (see the alpha sidechain if you're looking for something to prototype on top of), creating and configuring one isn't trivial (yet).  As part of the Elements Project, we're hoping to make this easier, but migrating any existing project to a sidechain will incur some amount of technical work.  In the case of BitShares, I would expect it to be significant – you'll want to make sure the benefits are worth the effort.

I'd be excited to have a conversation with Daniel or someone else from the BitShares team if they express any interest at all in pursuing this idea.  Obviously, I'm excited about it, because I think there is very clear value in doing so, but I'd want to make sure that sentiment is shared among those responsible for BitShares.

I, for one, think a world full of many interoperable blockchains is an exciting one!

Offline complexring

  • Full Member
  • ***
  • Posts: 66
    • View Profile
By the way, it looks like you modified your post before I got a chance to respond.  But since you were wondering why I wasn't taking your explanation at face value, it's because you're not the expert.  So I continue to address @bytemaster with my questions since he IS the expert.  And I asked for @abit's opinion since he is a developer and, for all we know, he could be the one to code this up ultimately.  Surely you can understand where I'm coming from.

Thanks for trusting me, but sorry, I'm not a bitcoin expert, I don't know how to deal with the bitcoin multi-sig thing at all.

@abit:  This is a Bitshares question, not a bitcoin question.  It's also not a multi-sig question.  Let me ask in a different way.  Could you write code in Bitshares that calls an external API which returns a value that could then be stored securely (i.e. not accessible to any human) on the Bitshares blockchain to be used by the code at a later time?  I would imagine this is possible, but could you confirm?

Yes, it is possible and doable.  There is a way to make RPC call to bitcoin to monitor the blockchain for incoming fund for example.  Once there is a value returned, it needs to be stored encrypted in the blockchain.  I think pc is thinking of a new function to store data securely in bts blockchain.

Great.  So we can make remote procedure calls to the blockchain.info API, for example, to programatically create a bitcoin wallet, correct?  Calling the create_wallet method of that API returns the new wallet's private key, which could then be stored encrypted on the Bitshares blockchain. 

So now we have a wallet that is controlled by the Bitshares blockchain and can hold BTC deposits for DEX users.  When a user deposits BTC to this wallet, they are issued a corresponding amount of SIDE.BTC which can be used on the DEX.  Later, when a user is ready to withdraw, any remaining SIDE.BTC is wiped from their account and BTC in an amount equal to the quantity of SIDE.BTC the user had remaining can be sent to a bitcoin wallet of their choice.   

If I'm not mistaken about the feasability, this solution would serve our purpose, it's trustless, and it shouldn't be very difficult to implement not only for BTC, but for any cryptocurrency that has an api with a create wallet method.  Thoughts?  Am I missing something?

@bytemaster @cube @abit

So, if the private key is stored encrypted on the blockain, who controls the private key to decrypt the private key that's stored?

Offline Musewhale

  • Hero Member
  • *****
  • Posts: 2881
  • 丑,实在是太丑了 !
    • View Profile
MUSE witness:mygoodfriend     vote for me

Offline tbone

  • Hero Member
  • *****
  • Posts: 632
    • View Profile
  • BitShares: tbone2
By the way, it looks like you modified your post before I got a chance to respond.  But since you were wondering why I wasn't taking your explanation at face value, it's because you're not the expert.  So I continue to address @bytemaster with my questions since he IS the expert.  And I asked for @abit's opinion since he is a developer and, for all we know, he could be the one to code this up ultimately.  Surely you can understand where I'm coming from.

Thanks for trusting me, but sorry, I'm not a bitcoin expert, I don't know how to deal with the bitcoin multi-sig thing at all.

@abit:  This is a Bitshares question, not a bitcoin question.  It's also not a multi-sig question.  Let me ask in a different way.  Could you write code in Bitshares that calls an external API which returns a value that could then be stored securely (i.e. not accessible to any human) on the Bitshares blockchain to be used by the code at a later time?  I would imagine this is possible, but could you confirm?

Yes, it is possible and doable.  There is a way to make RPC call to bitcoin to monitor the blockchain for incoming fund for example.  Once there is a value returned, it needs to be stored encrypted in the blockchain.  I think pc is thinking of a new function to store data securely in bts blockchain.

Great.  So we can make remote procedure calls to the blockchain.info API, for example, to programatically create a bitcoin wallet, correct?  Calling the create_wallet method of that API returns the new wallet's private key, which could then be stored encrypted on the Bitshares blockchain. 

So now we have a wallet that is controlled by the Bitshares blockchain and can hold BTC deposits for DEX users.  When a user deposits BTC to this wallet, they are issued a corresponding amount of SIDE.BTC which can be used on the DEX.  Later, when a user is ready to withdraw, any remaining SIDE.BTC is wiped from their account and BTC in an amount equal to the quantity of SIDE.BTC the user had remaining can be sent to a bitcoin wallet of their choice.   

If I'm not mistaken about the feasability, this solution would serve our purpose, it's trustless, and it shouldn't be very difficult to implement not only for BTC, but for any cryptocurrency that has an api with a create wallet method.  Thoughts?  Am I missing something?

@bytemaster @cube @abit

Offline cube

  • Hero Member
  • *****
  • Posts: 1404
  • Bit by bit, we will get there!
    • View Profile
  • BitShares: bitcube
By the way, it looks like you modified your post before I got a chance to respond.  But since you were wondering why I wasn't taking your explanation at face value, it's because you're not the expert.  So I continue to address @bytemaster with my questions since he IS the expert.  And I asked for @abit's opinion since he is a developer and, for all we know, he could be the one to code this up ultimately.  Surely you can understand where I'm coming from.

Thanks for trusting me, but sorry, I'm not a bitcoin expert, I don't know how to deal with the bitcoin multi-sig thing at all.

@abit:  This is a Bitshares question, not a bitcoin question.  It's also not a multi-sig question.  Let me ask in a different way.  Could you write code in Bitshares that calls an external API which returns a value that could then be stored securely (i.e. not accessible to any human) on the Bitshares blockchain to be used by the code at a later time?  I would imagine this is possible, but could you confirm?

Yes, it is possible and doable.  There is a way to make RPC call to bitcoin to monitor the blockchain for incoming fund for example.  Once there is a value returned, it needs to be stored encrypted in the blockchain.  I think pc is thinking of a new function to store data securely in bts blockchain.
ID: bitcube
bitcube is a dedicated witness and committe member. Please vote for bitcube.

Offline BunkerChainLabs-DataSecurityNode

If it's possible, what I'm talking about would not be difficult at all.  Probably far simpler than what you're talking about.  Besides, I'm just asking a question.  And you're not the best person to determine whether it's possible or what the cost would be.  So please dispense with the sweeping proclamations.

I said keep plugging away... no need to be rude.

It's a forum where ideas are shared and anyone can contribute.

If you are so hard up for answers from BM then why not ask him directly?
+-+-+-+-+-+-+-+-+-+-+
www.Peerplays.com | Decentralized Gaming Built with Graphene - Now with BookiePro and Sweeps!
+-+-+-+-+-+-+-+-+-+-+

Offline tbone

  • Hero Member
  • *****
  • Posts: 632
    • View Profile
  • BitShares: tbone2
I'm sorry, but you can't compare this to Liquid.  Liquid is a federated sidechain of centralized services (BitFinex, Kraken, BTCC, Xapo, Unocoin).  To begin with, the users of these services have to trust those companies.  On top of that, the Liquid sidechain depends on the participating companies trusting each other.  So you really can't compare that to what we're trying to accomplish here.

By the way, it looks like you modified your post before I got a chance to respond.  But since you were wondering why I wasn't taking your explanation at face value, it's because you're not the expert.  So I continue to address @bytemaster with my questions since he IS the expert.  And I asked for @abit's opinion since he is a developer and, for all we know, he could be the one to code this up ultimately.  Surely you can understand where I'm coming from.

In any event, I'm really not sure, but something tells me that what I'm proposing is very much doable.  It would be great if @bytemaster would speak to it specifically.  If it can't be done, please explain why.  Thanks!

What you are talking about is going to be costly on several fronts.

It doesn't matter if it's possible or not.. sure it's possible.. you don't need bytemasters validation on that.. anything is possible with enough money put into it.. the question is if it is practical.

Can you drive a tank from home to work every day? Sure.. is it practical.. no.

Given the costs involved what we need is a lean and simply implementation that is going to cost the least amount while accomplishing the essential functions.

Having our own Liquid with 5X the security and decentralization of what they have done is plenty of assurance for the target audience that would want to use this.

If you want to spend a lot of money on anti-trust this current market simply won't support it.

All too often simple solutions are pushed aside in favor of complex ones that are designed to suit strawman issues. I rather have a quick to execute and elegant simple solutions that accomplishes the task.

Anyways.... keep plugging away at it.. the more difficult we make it the less likely it is to be done due to costs that stakeholders will be unwilling to shoulder because of diminished returns. Lower cost means greater returns.

If it's possible, what I'm talking about would not be difficult at all.  Probably far simpler than what you're talking about.  Besides, I'm just asking a question.  And you're not the best person to determine whether it's possible or what the cost would be.  So please dispense with the sweeping proclamations.

Offline complexring

  • Full Member
  • ***
  • Posts: 66
    • View Profile
I'm sorry, but you can't compare this to Liquid.  Liquid is a federated sidechain of centralized services (BitFinex, Kraken, BTCC, Xapo, Unocoin).  To begin with, the users of these services have to trust those companies.  On top of that, the Liquid sidechain depends on the participating companies trusting each other.  So you really can't compare that to what we're trying to accomplish here.

By the way, it looks like you modified your post before I got a chance to respond.  But since you were wondering why I wasn't taking your explanation at face value, it's because you're not the expert.  So I continue to address @bytemaster with my questions since he IS the expert.  And I asked for @abit's opinion since he is a developer and, for all we know, he could be the one to code this up ultimately.  Surely you can understand where I'm coming from.

In any event, I'm really not sure, but something tells me that what I'm proposing is very much doable.  It would be great if @bytemaster would speak to it specifically.  If it can't be done, please explain why.  Thanks!

What you are talking about is going to be costly on several fronts.

It doesn't matter if it's possible or not.. sure it's possible.. you don't need bytemasters validation on that.. anything is possible with enough money put into it.. the question is if it is practical.

Can you drive a tank from home to work every day? Sure.. is it practical.. no.

Given the costs involved what we need is a lean and simply implementation that is going to cost the least amount while accomplishing the essential functions.

Having our own Liquid with 5X the security and decentralization of what they have done is plenty of assurance for the target audience that would want to use this.

If you want to spend a lot of money on anti-trust this current market simply won't support it.

All too often simple solutions are pushed aside in favor of complex ones that are designed to suit strawman issues. I rather have a quick to execute and elegant simple solutions that accomplishes the task.

Anyways.... keep plugging away at it.. the more difficult we make it the less likely it is to be done due to costs that stakeholders will be unwilling to shoulder because of diminished returns. Lower cost means greater returns.

You should use the term 'trustless' instead of 'anti-trust'.  There is a huge push from the academic community on developing new technologies that are trustless and require zero knowledge.

These proposals and thoughts on how we can do that here are good.  Some of the best minds of the century have already considered and are still thinking about how these systems can be designed and worked. 

If we can come up with a trustless implementation of this problem, we will have first-mover advantage.  It is definitely worth discussing, particularly for that reason.

I think we can all agree that we have the 'semi-trusted' parties, via witnesses or shared liquidity with various exchanges, part handled.

This solution uses multisigs, has been discussed enough and has been pointed out that we still have the possibility of collusion.

So, the question is do we want a quick and dirty 'trusted' scenario implemented first, pay for the implementation via a worker proposal, and in the meantime also design, or attempt to hash out, how to have a sidechain in a trustless manner -- and also pay for that development.

Unless of course the proposal also includes working on the trustless design.

Offline BunkerChainLabs-DataSecurityNode

I'm sorry, but you can't compare this to Liquid.  Liquid is a federated sidechain of centralized services (BitFinex, Kraken, BTCC, Xapo, Unocoin).  To begin with, the users of these services have to trust those companies.  On top of that, the Liquid sidechain depends on the participating companies trusting each other.  So you really can't compare that to what we're trying to accomplish here.

By the way, it looks like you modified your post before I got a chance to respond.  But since you were wondering why I wasn't taking your explanation at face value, it's because you're not the expert.  So I continue to address @bytemaster with my questions since he IS the expert.  And I asked for @abit's opinion since he is a developer and, for all we know, he could be the one to code this up ultimately.  Surely you can understand where I'm coming from.

In any event, I'm really not sure, but something tells me that what I'm proposing is very much doable.  It would be great if @bytemaster would speak to it specifically.  If it can't be done, please explain why.  Thanks!

What you are talking about is going to be costly on several fronts.

It doesn't matter if it's possible or not.. sure it's possible.. you don't need bytemasters validation on that.. anything is possible with enough money put into it.. the question is if it is practical.

Can you drive a tank from home to work every day? Sure.. is it practical.. no.

Given the costs involved what we need is a lean and simply implementation that is going to cost the least amount while accomplishing the essential functions.

Having our own Liquid with 5X the security and decentralization of what they have done is plenty of assurance for the target audience that would want to use this.

If you want to spend a lot of money on anti-trust this current market simply won't support it.

All too often simple solutions are pushed aside in favor of complex ones that are designed to suit strawman issues. I rather have a quick to execute and elegant simple solutions that accomplishes the task.

Anyways.... keep plugging away at it.. the more difficult we make it the less likely it is to be done due to costs that stakeholders will be unwilling to shoulder because of diminished returns. Lower cost means greater returns.
+-+-+-+-+-+-+-+-+-+-+
www.Peerplays.com | Decentralized Gaming Built with Graphene - Now with BookiePro and Sweeps!
+-+-+-+-+-+-+-+-+-+-+

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4664
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
By the way, it looks like you modified your post before I got a chance to respond.  But since you were wondering why I wasn't taking your explanation at face value, it's because you're not the expert.  So I continue to address @bytemaster with my questions since he IS the expert.  And I asked for @abit's opinion since he is a developer and, for all we know, he could be the one to code this up ultimately.  Surely you can understand where I'm coming from.

Thanks for trusting me, but sorry, I'm not a bitcoin expert, I don't know how to deal with the bitcoin multi-sig thing at all.

@abit:  This is a Bitshares question, not a bitcoin question.  It's also not a multi-sig question.  Let me ask in a different way.  Could you write code in Bitshares that calls an external API which returns a value that could then be stored securely (i.e. not accessible to any human) on the Bitshares blockchain to be used by the code at a later time?  I would imagine this is possible, but could you confirm?
Honestly right now I don't know how to call external APIs. All the jobs I've done is inside BitShares.
BitShares committee member: abit
BitShares witness: in.abit

Offline tbone

  • Hero Member
  • *****
  • Posts: 632
    • View Profile
  • BitShares: tbone2
By the way, it looks like you modified your post before I got a chance to respond.  But since you were wondering why I wasn't taking your explanation at face value, it's because you're not the expert.  So I continue to address @bytemaster with my questions since he IS the expert.  And I asked for @abit's opinion since he is a developer and, for all we know, he could be the one to code this up ultimately.  Surely you can understand where I'm coming from.

Thanks for trusting me, but sorry, I'm not a bitcoin expert, I don't know how to deal with the bitcoin multi-sig thing at all.

@abit:  This is a Bitshares question, not a bitcoin question.  It's also not a multi-sig question.  Let me ask in a different way.  Could you write code in Bitshares that calls an external API which returns a value that could then be stored securely (i.e. not accessible to any human) on the Bitshares blockchain to be used by the code at a later time?  I would imagine this is possible, but could you confirm?

Offline complexring

  • Full Member
  • ***
  • Posts: 66
    • View Profile
I meant a 2 out of 2 .. where one of the keys is actually not a key but a flag derived from the blockchain. Not sure how that helps

Well, it could work if each time a trade is made of side.btc that the corresponding collateral gets moved to a new multisig address.

Say I deposit 1 btc into a multisig address where the blockchain has one key (as a flag) and I have another key.

In return, I receive 1 side.btc (or appropriate amount after transaction fees).

Now, I put side.btc up for sale on the DEX.  In some way, I would need to pre-approve, i.e. sign, the transaction of moving from the multisig address to a new multisig address, where the buyer of the side.btc will then have the underlying btc collateral moved.

However, we'd have to do this in a two-step process since it is only known a posteriori what would be the new multisig address, that is, the pre-approved signing would have to be to a different address, controlled by the blockchain, which would then have to be immediately moved to the multisig address of the new holder of side.btc.


Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
I meant a 2 out of 2 .. where one of the keys is actually not a key but a flag derived from the blockchain. Not sure how that helps

Offline complexring

  • Full Member
  • ***
  • Posts: 66
    • View Profile

I'm trying to get at a way to do this without human involvement, otherwise I think it just won't be trusted.  Plus how would it work, witnesses would have to manually approve each transaction?  I don't see that as a viable solution.  And I think there's a better way.


I agree that not having human involvement would be ideal and cracking the trustless sidechain problem will greatly enhance the BitShares platform.

So far, we have two solutions for the trustless problem that have been posed and a third if we allow for trusted parties:

1) Enigma-like implementation (and / or integration) -- in which we have another thread already
2) Dynamic addresses akin to smart contracts, with the ability to seamlessly to turn on and off 'spendability' of an address, depending on whether or not certain conditions are met.
3) Multisig solution with witnesses

1 and 3 have the same issues of collusion of k parties. 

1) suggests a penalty for such a collusion attack by requiring a deposit to perform the calculations.
3) there is no penalty for witnesses who collude, in so far as I can tell.

We haven't really discussed the possibility of 2.  Can someone explain if this is possible with smart contracts or can we have 'dynamic addresses' like this?  Would that solution essentially be the same as either 1 or 3 ?
For 2. We can probably have an account with a pubkey (or another account) together with the "flag" as another authority in a 2-1 multisig account.
Then you can only spend from that account, it the flag has a certain condition .. not sure about what such a flag would actually do.

Not sure what you mean by 2-1 multisig account.  Do you mean 2 of 3 or a 1 of 2? 

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc

I'm trying to get at a way to do this without human involvement, otherwise I think it just won't be trusted.  Plus how would it work, witnesses would have to manually approve each transaction?  I don't see that as a viable solution.  And I think there's a better way.


I agree that not having human involvement would be ideal and cracking the trustless sidechain problem will greatly enhance the BitShares platform.

So far, we have two solutions for the trustless problem that have been posed and a third if we allow for trusted parties:

1) Enigma-like implementation (and / or integration) -- in which we have another thread already
2) Dynamic addresses akin to smart contracts, with the ability to seamlessly to turn on and off 'spendability' of an address, depending on whether or not certain conditions are met.
3) Multisig solution with witnesses

1 and 3 have the same issues of collusion of k parties. 

1) suggests a penalty for such a collusion attack by requiring a deposit to perform the calculations.
3) there is no penalty for witnesses who collude, in so far as I can tell.

We haven't really discussed the possibility of 2.  Can someone explain if this is possible with smart contracts or can we have 'dynamic addresses' like this?  Would that solution essentially be the same as either 1 or 3 ?
For 2. We can probably have an account with a pubkey (or another account) together with the "flag" as another authority in a 2-1 multisig account.
Then you can only spend from that account, it the flag has a certain condition .. not sure about what such a flag would actually do.

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4664
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
By the way, it looks like you modified your post before I got a chance to respond.  But since you were wondering why I wasn't taking your explanation at face value, it's because you're not the expert.  So I continue to address @bytemaster with my questions since he IS the expert.  And I asked for @abit's opinion since he is a developer and, for all we know, he could be the one to code this up ultimately.  Surely you can understand where I'm coming from.

Thanks for trusting me, but sorry, I'm not a bitcoin expert, I don't know how to deal with the bitcoin multi-sig thing at all.
BitShares committee member: abit
BitShares witness: in.abit

Offline complexring

  • Full Member
  • ***
  • Posts: 66
    • View Profile

I'm trying to get at a way to do this without human involvement, otherwise I think it just won't be trusted.  Plus how would it work, witnesses would have to manually approve each transaction?  I don't see that as a viable solution.  And I think there's a better way.


I agree that not having human involvement would be ideal and cracking the trustless sidechain problem will greatly enhance the BitShares platform.

So far, we have two solutions for the trustless problem that have been posed and a third if we allow for trusted parties:

1) Enigma-like implementation (and / or integration) -- in which we have another thread already
2) Dynamic addresses akin to smart contracts, with the ability to seamlessly to turn on and off 'spendability' of an address, depending on whether or not certain conditions are met.
3) Multisig solution with witnesses

1 and 3 have the same issues of collusion of k parties. 

1) suggests a penalty for such a collusion attack by requiring a deposit to perform the calculations.
3) there is no penalty for witnesses who collude, in so far as I can tell.

We haven't really discussed the possibility of 2.  Can someone explain if this is possible with smart contracts or can we have 'dynamic addresses' like this?  Would that solution essentially be the same as either 1 or 3 ?




Offline complexring

  • Full Member
  • ***
  • Posts: 66
    • View Profile
potentially.  it's some pretty awesome math (and computer science) backing it up.  :o
it is essentially based on secret sharing and is well known from "shamir secret sharing" .. cool thing is that you can do calculations either with the full secret .. or with the individual parts of the secret ..

Sure.  From what I can tell, they're actually doing 'homomorphic secret sharing' in the enigma design.  I always liked Yao's solution to the millionaire problem.  He's a nice guy, btw ...

Offline tbone

  • Hero Member
  • *****
  • Posts: 632
    • View Profile
  • BitShares: tbone2
@bytemaster:

Just wanted to resurrect the sidechain thread with an idea/question.  Since there's risk (perhaps intolerable risk) of collusion  associated with witnesses signing off on transfers to a multi-sig BTC wallet, would it be possible for the BTS blockchain to hold the private key for such a BTC wallet and automatically make transfers out of it (and into a user's individual BTC wallet) whenever a user sells their SIDE.BTC on the DEX?

It is possible to do secure multi-party computation among the witnesses.  Doesn't prevent collusion of witnesses though.

https://en.wikipedia.org/wiki/Secure_multi-party_computation

So is it not possible for the Bitshares blockchain to hold the private key for the common wallet and automate the transfers so witnesses don't need to be involved?

You want to do it with witnesses since they are elected by shareholders.

There are ways that collusion could be minimized.

I'm trying to get at a way to do this without human involvement, otherwise I think it just won't be trusted.  Plus how would it work, witnesses would have to manually approve each transaction?  I don't see that as a viable solution.  And I think there's a better way.

@bytemaster:
Couldn't you write some code into graphene that would utilize, for example, the blockchain.info API to create a Bitcoin wallet for the DEX, and store the returned private key on the blockchain?  So first the straightforward part: when someone wants to transfer BTC to the DEX, they send BTC to a designated BTC address and then the blockchain automatically issues them the corresponding amount of SIDE.BTC on the DEX.  Then the trickier part, when they are ready to withdraw, they surrender their SIDE.BTC and the blockchain uses the private key it stored previously in order to send the appropriate sum of BTC to the user's designated external BTC wallet.  Is this not possible?   

@abit, do you have any thoughts about this?

It's trusted just fine with how other networks do this.. only they are using a handful of bitcoin exchanges .. far less secure that what we are proposing: http://www.coindesk.com/blockstream-commercial-sidechain-bitcoin-exchanges/

This is the only practical means to executing... that's what they came up with with $21 million to work with. You think we can do better? :)

What you described is essentially what the witnesses would be done.. but your recommendation introduces more threats.

It would not be manual it would all be automatic and would have witnesses ensuring that the nodes are operating as optimal as possible for Bitshares vs. other networks that wouldn't care, and might not have any redundancy like we would have with the witnesses.

DPOS means trusting humans to maintain and keep things working right. If they don't, they get voted out.

Multi-sig for bitcoin wallets is limited to a maximum of 15 I believe. If we had all witnesses participating but had an algo that changed the multi-sig assignments in some type of interval configuration it would require basically all witnesses to agree to steel all the bitcoin. Note that this would be far more secure than Liquid.. they got $21m for that.. we should at least get that in added valuation for Bitshares if not more. :)  I have said this all before, maybe it was in Telegram.

I'm sorry, but you can't compare this to Liquid.  Liquid is a federated sidechain of centralized services (BitFinex, Kraken, BTCC, Xapo, Unocoin).  To begin with, the users of these services have to trust those companies.  On top of that, the Liquid sidechain depends on the participating companies trusting each other.  So you really can't compare that to what we're trying to accomplish here.

By the way, it looks like you modified your post before I got a chance to respond.  But since you were wondering why I wasn't taking your explanation at face value, it's because you're not the expert.  So I continue to address @bytemaster with my questions since he IS the expert.  And I asked for @abit's opinion since he is a developer and, for all we know, he could be the one to code this up ultimately.  Surely you can understand where I'm coming from.

In any event, I'm really not sure, but something tells me that what I'm proposing is very much doable.  It would be great if @bytemaster would speak to it specifically.  If it can't be done, please explain why.  Thanks!
« Last Edit: February 13, 2016, 04:38:55 pm by tbone »

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
potentially.  it's some pretty awesome math (and computer science) backing it up.  :o
it is essentially based on secret sharing and is well known from "shamir secret sharing" .. cool thing is that you can do calculations either with the full secret .. or with the individual parts of the secret ..


Offline BunkerChainLabs-DataSecurityNode

@bytemaster:

Just wanted to resurrect the sidechain thread with an idea/question.  Since there's risk (perhaps intolerable risk) of collusion  associated with witnesses signing off on transfers to a multi-sig BTC wallet, would it be possible for the BTS blockchain to hold the private key for such a BTC wallet and automatically make transfers out of it (and into a user's individual BTC wallet) whenever a user sells their SIDE.BTC on the DEX?

It is possible to do secure multi-party computation among the witnesses.  Doesn't prevent collusion of witnesses though.

https://en.wikipedia.org/wiki/Secure_multi-party_computation

So is it not possible for the Bitshares blockchain to hold the private key for the common wallet and automate the transfers so witnesses don't need to be involved?

You want to do it with witnesses since they are elected by shareholders.

There are ways that collusion could be minimized.

I'm trying to get at a way to do this without human involvement, otherwise I think it just won't be trusted.  Plus how would it work, witnesses would have to manually approve each transaction?  I don't see that as a viable solution.  And I think there's a better way.

@bytemaster:
Couldn't you write some code into graphene that would utilize, for example, the blockchain.info API to create a Bitcoin wallet for the DEX, and store the returned private key on the blockchain?  So first the straightforward part: when someone wants to transfer BTC to the DEX, they send BTC to a designated BTC address and then the blockchain automatically issues them the corresponding amount of SIDE.BTC on the DEX.  Then the trickier part, when they are ready to withdraw, they surrender their SIDE.BTC and the blockchain uses the private key it stored previously in order to send the appropriate sum of BTC to the user's designated external BTC wallet.  Is this not possible?   

@abit, do you have any thoughts about this?

It's trusted just fine with how other networks do this.. only they are using a handful of bitcoin exchanges .. far less secure that what we are proposing: http://www.coindesk.com/blockstream-commercial-sidechain-bitcoin-exchanges/

This is the only practical means to executing... that's what they came up with with $21 million to work with. You think we can do better? :)

What you described is essentially what the witnesses would be done.. but your recommendation introduces more threats.

It would not be manual it would all be automatic and would have witnesses ensuring that the nodes are operating as optimal as possible for Bitshares vs. other networks that wouldn't care, and might not have any redundancy like we would have with the witnesses.

DPOS means trusting humans to maintain and keep things working right. If they don't, they get voted out.

Multi-sig for bitcoin wallets is limited to a maximum of 15 I believe. If we had all witnesses participating but had an algo that changed the multi-sig assignments in some type of interval configuration it would require basically all witnesses to agree to steel all the bitcoin. Note that this would be far more secure than Liquid.. they got $21m for that.. we should at least get that in added valuation for Bitshares if not more. :)  I have said this all before, maybe it was in Telegram.

« Last Edit: February 13, 2016, 12:40:00 am by BunkerChain Labs »
+-+-+-+-+-+-+-+-+-+-+
www.Peerplays.com | Decentralized Gaming Built with Graphene - Now with BookiePro and Sweeps!
+-+-+-+-+-+-+-+-+-+-+

Offline tbone

  • Hero Member
  • *****
  • Posts: 632
    • View Profile
  • BitShares: tbone2
@bytemaster:

Just wanted to resurrect the sidechain thread with an idea/question.  Since there's risk (perhaps intolerable risk) of collusion  associated with witnesses signing off on transfers to a multi-sig BTC wallet, would it be possible for the BTS blockchain to hold the private key for such a BTC wallet and automatically make transfers out of it (and into a user's individual BTC wallet) whenever a user sells their SIDE.BTC on the DEX?

It is possible to do secure multi-party computation among the witnesses.  Doesn't prevent collusion of witnesses though.

https://en.wikipedia.org/wiki/Secure_multi-party_computation

So is it not possible for the Bitshares blockchain to hold the private key for the common wallet and automate the transfers so witnesses don't need to be involved?

You want to do it with witnesses since they are elected by shareholders.

There are ways that collusion could be minimized.

I'm trying to get at a way to do this without human involvement, otherwise I think it just won't be trusted.  Plus how would it work, witnesses would have to manually approve each transaction?  I don't see that as a viable solution.  And I think there's a better way.

@bytemaster:
Couldn't you write some code into graphene that would utilize, for example, the blockchain.info API to create a Bitcoin wallet for the DEX, and store the returned private key on the blockchain?  So first the straightforward part: when someone wants to transfer BTC to the DEX, they send BTC to a designated BTC address and then the blockchain automatically issues them the corresponding amount of SIDE.BTC on the DEX.  Then the trickier part, when they are ready to withdraw, they surrender their SIDE.BTC and the blockchain uses the private key it stored previously in order to send the appropriate sum of BTC to the user's designated external BTC wallet.  Is this not possible?   

@abit, do you have any thoughts about this?

Offline BunkerChainLabs-DataSecurityNode

@bytemaster:

Just wanted to resurrect the sidechain thread with an idea/question.  Since there's risk (perhaps intolerable risk) of collusion  associated with witnesses signing off on transfers to a multi-sig BTC wallet, would it be possible for the BTS blockchain to hold the private key for such a BTC wallet and automatically make transfers out of it (and into a user's individual BTC wallet) whenever a user sells their SIDE.BTC on the DEX?

It is possible to do secure multi-party computation among the witnesses.  Doesn't prevent collusion of witnesses though.

https://en.wikipedia.org/wiki/Secure_multi-party_computation

So is it not possible for the Bitshares blockchain to hold the private key for the common wallet and automate the transfers so witnesses don't need to be involved?

You want to do it with witnesses since they are elected by shareholders.

There are ways that collusion could be minimized.
+-+-+-+-+-+-+-+-+-+-+
www.Peerplays.com | Decentralized Gaming Built with Graphene - Now with BookiePro and Sweeps!
+-+-+-+-+-+-+-+-+-+-+


Offline noisy

@bytemaster

What if this will be always 2 of 2 multisig for each deposit? One key will be always generated and distributed among witness, and second key will be always in users hand?

bitshares network will allow to release a funds only when proper transaction will be made in bitshares network.
« Last Edit: February 12, 2016, 09:35:34 pm by noisy »
Take a look on: https://bitsharestalk.org/index.php/topic,19625.msg251894.html - I have a crazy idea - lets convince cryptonomex developers to use livecoding.tv

Offline tbone

  • Hero Member
  • *****
  • Posts: 632
    • View Profile
  • BitShares: tbone2
@bytemaster:

Just wanted to resurrect the sidechain thread with an idea/question.  Since there's risk (perhaps intolerable risk) of collusion  associated with witnesses signing off on transfers to a multi-sig BTC wallet, would it be possible for the BTS blockchain to hold the private key for such a BTC wallet and automatically make transfers out of it (and into a user's individual BTC wallet) whenever a user sells their SIDE.BTC on the DEX?

It is possible to do secure multi-party computation among the witnesses.  Doesn't prevent collusion of witnesses though.

https://en.wikipedia.org/wiki/Secure_multi-party_computation

So is it not possible for the Bitshares blockchain to hold the private key for the common wallet and automate the transfers so witnesses don't need to be involved?

Offline bytemaster

@bytemaster:

Just wanted to resurrect the sidechain thread with an idea/question.  Since there's risk (perhaps intolerable risk) of collusion  associated with witnesses signing off on transfers to a multi-sig BTC wallet, would it be possible for the BTS blockchain to hold the private key for such a BTC wallet and automatically make transfers out of it (and into a user's individual BTC wallet) whenever a user sells their SIDE.BTC on the DEX?

It is possible to do secure multi-party computation among the witnesses.  Doesn't prevent collusion of witnesses though.

https://en.wikipedia.org/wiki/Secure_multi-party_computation
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline tbone

  • Hero Member
  • *****
  • Posts: 632
    • View Profile
  • BitShares: tbone2
@bytemaster:

Just wanted to resurrect the sidechain thread with an idea/question.  Since there's risk (perhaps intolerable risk) of collusion  associated with witnesses signing off on transfers to a multi-sig BTC wallet, would it be possible for the BTS blockchain to hold the private key for such a BTC wallet and automatically make transfers out of it (and into a user's individual BTC wallet) whenever a user sells their SIDE.BTC on the DEX? 

Offline complexring

  • Full Member
  • ***
  • Posts: 66
    • View Profile
TL;DR Don't know whether this be considered in the thread yet:
 If we want to automatically have top 15 witnesses multi-sig the BTC wallet, we need to improve voting participation first, otherwise for example btc38 would be able to steal the fund easily.

Please look up and read my solution regarding choosing a random 15 of the delegates to be holders of a multisignature address.  I think there's the possibility of 'revolution' type events where the top 15 could be voted out, and with them, the associated keys to the multisignature addresses.
I feel that we don't need "active" witnesses to sign btc and/or in-bts-btc transactions, actually any witness_node can do that, they just need to broadcast transactions, active witnesses will then get them into blocks. So some random algorithm makes sense.

//Update:
With my "heart-beat" proposal, it's possible to identify which witness is alive.

However, with randomly selected witnesses, we can't not prevent an attacker from running thousands of witness_nodes so that increasing chance of having all keys. I think some kind of PoW based witness selecting may work.

Ok. Good. It seems, then, that we need to prevent both possibilities:

1) an attacker from running thousands of witness_nodes to gain the private keys
2) a kick the bums out event where the top witnesses who have keys are voted out, and too many are voted out at once


Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4664
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
TL;DR Don't know whether this be considered in the thread yet:
 If we want to automatically have top 15 witnesses multi-sig the BTC wallet, we need to improve voting participation first, otherwise for example btc38 would be able to steal the fund easily.

Please look up and read my solution regarding choosing a random 15 of the delegates to be holders of a multisignature address.  I think there's the possibility of 'revolution' type events where the top 15 could be voted out, and with them, the associated keys to the multisignature addresses.
I feel that we don't need "active" witnesses to sign btc and/or in-bts-btc transactions, actually any witness_node can do that, they just need to broadcast transactions, active witnesses will then get them into blocks. So some random algorithm makes sense.

//Update:
With my "heart-beat" proposal, it's possible to identify which witness is alive.

However, with randomly selected witnesses, we can't not prevent an attacker from running thousands of witness_nodes so that increasing chance of having all keys. I think some kind of PoW based witness selecting may work.
« Last Edit: February 04, 2016, 06:32:55 pm by abit »
BitShares committee member: abit
BitShares witness: in.abit

Offline complexring

  • Full Member
  • ***
  • Posts: 66
    • View Profile
TL;DR Don't know whether this be considered in the thread yet:
 If we want to automatically have top 15 witnesses multi-sig the BTC wallet, we need to improve voting participation first, otherwise for example btc38 would be able to steal the fund easily.

Please look up and read my solution regarding choosing a random 15 of the delegates to be holders of a multisignature address.  I think there's the possibility of 'revolution' type events where the top 15 could be voted out, and with them, the associated keys to the multisignature addresses.

Offline JonnyB

  • Hero Member
  • *****
  • Posts: 636
    • View Profile
    • twitter.com/jonnybitcoin
1st step is for current BTCUIA providers to provide a watch only bitcoin hotwallet so we can all confirm they are issuing tokens 1:1
I run the @bitshares twitter handle
twitter.com/bitshares

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4664
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
TL;DR Don't know whether this be considered in the thread yet:
 If we want to automatically have top 15 witnesses multi-sig the BTC wallet, we need to improve voting participation first, otherwise for example btc38 would be able to steal the fund easily.
BitShares committee member: abit
BitShares witness: in.abit

Offline complexring

  • Full Member
  • ***
  • Posts: 66
    • View Profile
Instead of witnesses cannot be done in a public way (specialised witnesses) by businesses. In a similar way I would like an easy way to adjust the asset issue balance between Bitshares and Ethereum, so assets can be transferred back and forth at a minimal cost for the end user.

This is what @Shentist was suggesting.  And I say, why not allow businesses to form partnerships AND do this with voted witnesses.  Both have merit.  One allows, as you put it, minimal transferrance between other networks via businesses holding private keys, whereas the other encourages adoption and usage of the BitShares network.

Offline betax

  • Hero Member
  • *****
  • Posts: 808
    • View Profile
Instead of witnesses cannot be done in a public way (specialised witnesses) by businesses. In a similar way I would like an easy way to adjust the asset issue balance between Bitshares and Ethereum, so assets can be transferred back and forth at a minimal cost for the end user.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline brainbug

  • Full Member
  • ***
  • Posts: 58
    • View Profile

Offline complexring

  • Full Member
  • ***
  • Posts: 66
    • View Profile

1. Have all of the witnesses monitor the BTC network for transfers to a designated multi-sig address which is defined by the BTS consensus to be the top 15 witness signatures (max MSIG allowed by BTC).   All of these UNSPENT OUTPUTS get included as part of BTS consensus state.


Ok, I have few questions:

1. how those 15 signatures will be distributed among witnesses? What will happen if some witness lose their key? (I doubt that mine understanding of this is correct... )

Or...

2. those 15 signatures will be somehow encrypted in the bitshares blockchain? Is that correct that then most of the witnesses (by voting power) will need to agree to use those 15 signatures to make a transaction?

Assuming, that this above is correct, why we need to use 15 signature if those signatures can be used only if witnesses will have consensus? We we cannot use 10, 2 or 1?

Is that means, that bitshares network itself will have to prove, that we have all signatures needed to make a transaction? How does it work? Is those multiple signatures has to be combined into one? (I doubt it.. because that will mean, that single request from some computer will have to be made, and that computer can intercept this precious key).

Is that mean, that bitshares network will have to prove that we have all 15 signatures? One witness will "authenticate" one signature? How network will assure, that after some time some witness will not collect all signatures? Is that mean, that network will have to prevent that one specific witness will never authenticate more than one signature? What if over time someone will gather 15 signatures by 15 different witnesses?


Disclaimer: my questions probably are silly and I guess I made quite few completely wrong assumptions, nevertheless, it would be great if someone could share more details about possible implementations of that.

I don't think these are silly questions at all.

Multisignature addresses, in general, work on the M of N notion, where there are N total signing keys and only M are needed to approve a transaction.

M and N are values passed when the multisignature address is created.

I'm not entirely sure all the details of how this will work as witnesses are voted in and out.  I imagine that as long as there is no sudden 'revolution', i.e. a situation where some number of top witnesses get voted out from the top 15 and there are no longer enough to approve a transaction, this may pose a problem.

Perhaps the way to do that is to randomly choose 15 from all the witnesses.  This gives a 'revolution' type voting event more stability in that it's probably unlikely that all will be removed completely from being witnesses.  But I could see a situation where if we use 8 of 15 multisignature addresses that at least 8 could move from being in the top 15 to the top 30, in which case, there's no 'good' way of handling transferring of keys.  If we instead allow for a 'random' choice of all the witnesses, we won't have this type of situation. 

Point being, with 37 witnesses (unsure the total number now), and choose 15 out of those, that is 37!/(15!12!) = LARGE NUMBER, whereas 15 choose 15 is precisely 1.  So, we've reduced risk that a revolution event of voting out enough witnesses who are needed for the multisig address actually occurs.

As Shentist mentioned, this is what MetaExchange does with the META.BTC user issued asset.  He brings up a good point that this hurts his business model.  In a way, there's no reason why Meta and Blocktrade and any other entity could do the same thing, without the necessity for witnesses, etc.  Collusion, once more, could happen.  But if people are already trusting them now with their UIAs, this shouldn't pose a large problem.

In fact, I encourage both solutions, Meta, Blocktrade, etc. collective multisig wallets and random 15 witnesses multisig wallets.  There is nothing that says these models are mutually exclusive.

Offline noisy


1. Have all of the witnesses monitor the BTC network for transfers to a designated multi-sig address which is defined by the BTS consensus to be the top 15 witness signatures (max MSIG allowed by BTC).   All of these UNSPENT OUTPUTS get included as part of BTS consensus state.


Ok, I have few questions:

1. how those 15 signatures will be distributed among witnesses? What will happen if some witness lose their key? (I doubt that mine understanding of this is correct... )

Or...

2. those 15 signatures will be somehow encrypted in the bitshares blockchain? Is that correct that then most of the witnesses (by voting power) will need to agree to use those 15 signatures to make a transaction?

Assuming, that this above is correct, why we need to use 15 signature if those signatures can be used only if witnesses will have consensus? We we cannot use 10, 2 or 1?

Is that means, that bitshares network itself will have to prove, that we have all signatures needed to make a transaction? How does it work? Is those multiple signatures has to be combined into one? (I doubt it.. because that will mean, that single request from some computer will have to be made, and that computer can intercept this precious key).

Is that mean, that bitshares network will have to prove that we have all 15 signatures? One witness will "authenticate" one signature? How network will assure, that after some time some witness will not collect all signatures? Is that mean, that network will have to prevent that one specific witness will never authenticate more than one signature? What if over time someone will gather 15 signatures by 15 different witnesses?


Disclaimer: my questions probably are silly and I guess I made quite few completely wrong assumptions, nevertheless, it would be great if someone could share more details about possible implementations of that.


Take a look on: https://bitsharestalk.org/index.php/topic,19625.msg251894.html - I have a crazy idea - lets convince cryptonomex developers to use livecoding.tv

Offline Akado

  • Hero Member
  • *****
  • Posts: 2752
    • View Profile
  • BitShares: akado
I dont know the technicals but I think that was pretty much what I was saying here previously when finding a way for everyone to share the same asset

https://bitsharestalk.org/index.php/topic,20947.60.html

I would prefer this over bitbtc for example. Shared order books, more liquidity, plus way more accessible to create instead of locking up 200% collateral. Maybe the network wouldn't benefit that much in terms of locked BTS, but if it would increase adoption I think it's worth it.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline JonnyB

  • Hero Member
  • *****
  • Posts: 636
    • View Profile
    • twitter.com/jonnybitcoin
It is possible to do the following:

1. Have all of the witnesses monitor the BTC network for transfers to a designated multi-sig address which is defined by the BTS consensus to be the top 15 witness signatures (max MSIG allowed by BTC).   All of these UNSPENT OUTPUTS get included as part of BTS consensus state.

2. Every time a BTC transaction gets 6 confirmations, the blockchain transfers SIDE-BTC asset to a balance controlled by the first input address (assuming the address is a simple 1 sig input).

3. Allow this SIDE-BTC asset to be converted back to BTC with an operation that makes a request.  For witnesses to produce a block they must also sign off on the MSIG transfer authorizing BTC to be sent to the proper address.

This is something that could probably be implemented in about a month of dev time on the back end.

In theory the witnesses could collude to steal all deposited BTC funds.


without multisig, this is already working on metaexchange.

we recieving BTC -->creating METAEX.BTC
if you send METAEX.BTC back we send you BTC and burn METAEX.BTC

you can see the operations in realtime here http://cryptofresh.com/u/dev-metaexchange.monsterer

what is the value of doing it? would it not be better if we can setup some mulitsig for (blocktrades, opernledger and metaexchange) so we can use the same UIA?

gives this really more value?

Where is the bitcoin wallet  (blockchain.info link)we can monitor? So that we can all check you only issue 1:1 metaex.btc:btc

I run the @bitshares twitter handle
twitter.com/bitshares

Offline Shentist

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 1601
    • View Profile
    • metaexchange
  • BitShares: shentist
It is possible to do the following:

1. Have all of the witnesses monitor the BTC network for transfers to a designated multi-sig address which is defined by the BTS consensus to be the top 15 witness signatures (max MSIG allowed by BTC).   All of these UNSPENT OUTPUTS get included as part of BTS consensus state.

2. Every time a BTC transaction gets 6 confirmations, the blockchain transfers SIDE-BTC asset to a balance controlled by the first input address (assuming the address is a simple 1 sig input).

3. Allow this SIDE-BTC asset to be converted back to BTC with an operation that makes a request.  For witnesses to produce a block they must also sign off on the MSIG transfer authorizing BTC to be sent to the proper address.

This is something that could probably be implemented in about a month of dev time on the back end.

In theory the witnesses could collude to steal all deposited BTC funds.


without multisig, this is already working on metaexchange.

we recieving BTC -->creating METAEX.BTC
if you send METAEX.BTC back we send you BTC and burn METAEX.BTC

you can see the operations in realtime here http://cryptofresh.com/u/dev-metaexchange.monsterer

what is the value of doing it? would it not be better if we can setup some mulitsig for (blocktrades, opernledger and metaexchange) so we can use the same UIA?

gives this really more value?

Offline JonnyB

  • Hero Member
  • *****
  • Posts: 636
    • View Profile
    • twitter.com/jonnybitcoin
It is possible to do the following:

1. Have all of the witnesses monitor the BTC network for transfers to a designated multi-sig address which is defined by the BTS consensus to be the top 15 witness signatures (max MSIG allowed by BTC).   All of these UNSPENT OUTPUTS get included as part of BTS consensus state.

2. Every time a BTC transaction gets 6 confirmations, the blockchain transfers SIDE-BTC asset to a balance controlled by the first input address (assuming the address is a simple 1 sig input).

3. Allow this SIDE-BTC asset to be converted back to BTC with an operation that makes a request.  For witnesses to produce a block they must also sign off on the MSIG transfer authorizing BTC to be sent to the proper address.

This is something that could probably be implemented in about a month of dev time on the back end.

In theory the witnesses could collude to steal all deposited BTC funds.

Thanks for this explanation, This would be a better solution than bitbtc.

FBA wouldn't be a suitable way to fund this, it should be a worker proposal.
I run the @bitshares twitter handle
twitter.com/bitshares

Offline noisy

not all what you are saying is clear to me (or most of that :P), but if this is possible, in my opinion we should at least investigate this further. Is only my impression, that this could be a game changer?
Take a look on: https://bitsharestalk.org/index.php/topic,19625.msg251894.html - I have a crazy idea - lets convince cryptonomex developers to use livecoding.tv

Offline complexring

  • Full Member
  • ***
  • Posts: 66
    • View Profile
A potential solution to allow is to somehow have multisignature wallets associated to the balances that are held in collateral. If we can figure out a viable way of 'swapping' the associated private keys as different committee members are voted in and out, then there's no reason why we couldn't use something like that in order to achieve a pseudo-sidechain with BTC or any other alt.
That we can do today with a .. say 5 of 13 multisig account

Precisely.  Can't go much past 15 for N.  But anything like M of N with  3 <= M <= 8 and 15 >= N >= M should work.

It is possible to do the following:

1. Have all of the witnesses monitor the BTC network for transfers to a designated multi-sig address which is defined by the BTS consensus to be the top 15 witness signatures (max MSIG allowed by BTC).   All of these UNSPENT OUTPUTS get included as part of BTS consensus state.

2. Every time a BTC transaction gets 6 confirmations, the blockchain transfers SIDE-BTC asset to a balance controlled by the first input address (assuming the address is a simple 1 sig input).

3. Allow this SIDE-BTC asset to be converted back to BTC with an operation that makes a request.  For witnesses to produce a block they must also sign off on the MSIG transfer authorizing BTC to be sent to the proper address.

This is something that could probably be implemented in about a month of dev time on the back end.

In theory the witnesses could collude to steal all deposited BTC funds.


Yes.  This is true, that in theory the witnesses could collude.  But, that's the risk some people may be willing to make because if they do collude, that drives the price of BTS down (since it would no longer be trusted) and then said witnesses wouldn't have an incentive to collude (unless they've sold off their BTS holdings).

Offline bytemaster

It is possible to do the following:

1. Have all of the witnesses monitor the BTC network for transfers to a designated multi-sig address which is defined by the BTS consensus to be the top 15 witness signatures (max MSIG allowed by BTC).   All of these UNSPENT OUTPUTS get included as part of BTS consensus state.

2. Every time a BTC transaction gets 6 confirmations, the blockchain transfers SIDE-BTC asset to a balance controlled by the first input address (assuming the address is a simple 1 sig input).

3. Allow this SIDE-BTC asset to be converted back to BTC with an operation that makes a request.  For witnesses to produce a block they must also sign off on the MSIG transfer authorizing BTC to be sent to the proper address.

This is something that could probably be implemented in about a month of dev time on the back end.

In theory the witnesses could collude to steal all deposited BTC funds.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
A potential solution to allow is to somehow have multisignature wallets associated to the balances that are held in collateral. If we can figure out a viable way of 'swapping' the associated private keys as different committee members are voted in and out, then there's no reason why we couldn't use something like that in order to achieve a pseudo-sidechain with BTC or any other alt.
That we can do today with a .. say 5 of 13 multisig account

Offline complexring

  • Full Member
  • ***
  • Posts: 66
    • View Profile
A potential solution to allow is to somehow have multisignature wallets associated to the balances that are held in collateral. If we can figure out a viable way of 'swapping' the associated private keys as different witnesses are voted in and out, then there's no reason why we couldn't use something like that in order to achieve a pseudo-sidechain with BTC or any other alt.

edit: changed committee members to witnesses, as that is the proper terminology for this idea.
« Last Edit: March 02, 2016, 08:58:12 pm by complexring »

Offline fuzzy

It's possible . But our ears would be laughed out by the bitcoin miners seeing how we were bashing them  :'( :'( :'(

i was under the impression miners could do little to hinder other sidechains...
however, i must admit i havent read about sidechains in awhile so im rusty.
WhaleShares==DKP; BitShares is our Community! 
ShareBits and WhaleShares = Love :D

Offline btswildpig

  • Hero Member
  • *****
  • Posts: 1424
    • View Profile
It's possible . But our ears would be laughed out by the bitcoin miners seeing how we were bashing them  :'( :'( :'(
这个是私人账号,表达的一切言论均不代表任何团队和任何人。This is my personal account , anything I said with this account will be my opinion alone and has nothing to do with any group.

Offline JonnyB

  • Hero Member
  • *****
  • Posts: 636
    • View Profile
    • twitter.com/jonnybitcoin
Yeah having looked into it a bit it looks like true sidechains haven't really been invented yet.

Blockstreams version (liquid) relies on a federated version with a multisig wallet type thing.
and the dogecoin to etherum blockchain version burns coins.

I hope someone does invent it because I can't see a time in the future when smartcoins will be viable for any cryptocoins outside of the top 5 by market cap.

Sidechains would be perfect for trading altcoins on bitshares.
I run the @bitshares twitter handle
twitter.com/bitshares

Offline merivercap

  • Hero Member
  • *****
  • Posts: 661
    • View Profile
    • BitCash
Yes.

However I think in the short term it's easier to just create liquidity for Smartcoin BTC and create a Smartcoin BTC/BTC gateway. 

I always thought using BTC as collateral would be great and you can do that with Public/Privatized Smartcoins.  You can select the Smartcoin BTC as the collateral for  Smartcoin USD.  I've been thinking about working on this eventually. 
BitCash - http://www.bitcash.org 
Beta: bitCash Wallet / p2p Gateway: (https://m.bitcash.org)
Beta: bitCash Trade (https://trade.bitcash.org)

Offline BunkerChainLabs-DataSecurityNode

If what he claimed about an already existing sidechain is true, then yes it is possible.

There has been a lot of talk about the possibility of creating a new type of asset that could support this for trading. It would take a fair amount of time work to implement and it is unclear what kind of benefits returns all that work might bring.

It's unclear to me if its open. Liquid does something similar but for some reason they went another route of using hosted wallets with exchanges. This leads me to question just how available this possibility really is.
+-+-+-+-+-+-+-+-+-+-+
www.Peerplays.com | Decentralized Gaming Built with Graphene - Now with BookiePro and Sweeps!
+-+-+-+-+-+-+-+-+-+-+

TravelsAsia

  • Guest
I am not an expert, but I guess a lot of people here are... so the question: Is it possible for bitshares to become a sidechain of bitcoin?

I watched a 28th Jan Daily Decrypt, where Andreas Antonopoulos said that sidechains can allow sending assets from one blockchain to another... like from BTC to ETH

https://youtu.be/kSq-58ElBzk?t=20m6s

More is said in the beginning of this episode, so for some of you I recommend to watch whole episode.

CC: @bytemaster

It would be great if bitcoin and bitshares could merge into some kind of one co-existing network, where bitcoin could benefit from already implemented great decentralized exchange.

This topic is springing up quite a bit in the forum and Telegram. @JonnyBitcoin was exploring if Bitcoin can be a BitShares sidechain.

Offline noisy

I am not an expert, but I guess a lot of people here are... so the question: Is it possible for bitshares to become a sidechain of bitcoin?

I watched a 28th Jan Daily Decrypt, where Andreas Antonopoulos said that sidechains can allow sending assets from one blockchain to another... like from BTC to ETH

https://youtu.be/kSq-58ElBzk?t=20m6s

More is said in the beginning of this episode, so for some of you I recommend to watch whole episode.

CC: @bytemaster

It would be great if bitcoin and bitshares could merge into some kind of one co-existing network, where bitcoin could benefit from already implemented great decentralized exchange.
Take a look on: https://bitsharestalk.org/index.php/topic,19625.msg251894.html - I have a crazy idea - lets convince cryptonomex developers to use livecoding.tv