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.