In reading your white paper I think your order book is very well thought out and that it will work well in practice, however I have some serious concerns regarding your proposed exchange mechanism for moving the coins.[...] The biggest problem with this design is it doesn't actually solve the trust problem. Yes, you now have considerably more points that can fail and in theory it should be harder to do so, but all you're basically doing is moving the problem around instead of actually solving it. For example: how are the signers selected? If the signers are randomly chosen then this is really no different to entrusting your money to a stranger. I mean if anyone can participate and if the system were anonymous or pseudo-anonymous then you don't know how many signers are controlled by one party.[...]
I agree that using reputed signers is not ideal as they are a part of the design that might fail. Multi-signature allows for almost half of the signers to fail before things get nasty, but still the signers are one of the weaker points.
With regards to the reliability of the signers - that can be taken care of, if you look at the
BCE design paper, page 2 "Summary of Architecture", second paragraph:
Reputed signers may place a security deposit of funds held by other reputed signers, typically in BlockShares.
This is causing a feedback between bad behaviour of signers and their property.
You might argue it's still possible that all the different signers could collude to a degree that is sufficient to steal funds and get the security deposit back - unlikely, but possible.
If a multi-signature deposit is considered not secure enough, it could then be considered to have signers burn the security deposit. They would only be able to get it back if they did behave like it's expected from _reputed_ signers
...that could harm the desire to become a signer, though...
Consider Mercury Exchange, for instance. Mercury uses hash-locked smart contracts to solve the trust problem. It's an approach that will be entirely trustless when transaction malleability is phased out and best of all: it won't require a third-party to mediate. But your solution on the other hand relies on the assumption that enough oracles won't be corrupted for the multi-sig to hold which isn't a provable assumption; At least with Mercury you can reason exactly about the outcomes.
As far as I understand it, transaction malleability is not phased out yet and hence that approach doesn't work yet.
The BCE approach can work, albeit with drawbacks.
I don't know whether or not the hash-locked smart contract approach is compatible with the BCE design, but if it is, I can very well think of a motion that replaces the signers with smart contracts.
Signers might trade the loss of income off for the chance to increase the price of their BlockShares before they vote in favour of that motion.
Anyway I could imagine such a motion to pass, because it would harden the business model of BCE and that should have some value for the owners of BCE.
There's also something you said which is quite concerning: if enough signers go offline then the money can't be moved. That's really bad. So now you have a potentially insecure and unreliable financial system which you can't prove is secure or reliable since its based on elements entirely outside your control.
This is not meant to be a solution, but a recommendation: as with centralized exchanges it helps keeping control over the coins, if they are not stored at the exchange. It might look convenient to store them in a considerably safe BCE deposit address, but they might be safer in the owners wallet.
I consider BCE by design more secure than a centralized exchange, but we all know that there's no perfect security in this world.
There have been enough exchange defaults that have taught not to store coins at exchanges.
Plus they are called "exchanges" and note "stores"
Improvements to the process.I can think of improvements to most of these problems although I still think the overall design is bad even if it could work.
- If the owner were to control enough keys in the multi-signature then even if all the oracles were to be hacked the attacker would lack the leverage to steal coins (Your current design gives 100% of the power to an unknown party when this is strictly unnecessary.)
[...]
[/list]
If you give the owner enough keys in the multi-signature to be safe even if all oracles were to be hacked - what would the owner stop from withdrawing the funds?
A variation of that idea would help defending against the "enough signers go offline then the money can't be moved" scenario, though.
Say you have a 6-of-15 multi-signature deposit address and 6 keys are in the hands of the owner.
The signers can still do their job and if they are offline, the owner can still access the funds.
But that would be possible for the owner even if all signers are online...