Your payback model assumes people will be storing a lot of BTS on your light wallet. What if most of the usage is with BitAssets instead (which have no delegate voting power)? Also, I would expect people would want to store most BTS stake in cold storage and be able to use the restricted_owner feature to update votes from their light wallet (but not be able to spend it from the hot client). So will you support that functionality? That is a good way to get large BTS stake to vote for your 3-5 hardcoded delegates even though they don't actually store most of it on the wallet.
Yes. However we are using the copay signature transaction and building architecture as inspiration. The angular app does not build any transactions client side, it only receives already build transactions from the server and signes them.
You are verifying that the built transaction provided by the server is correct before signing though, right? Otherwise that is way too much trust given to your servers. Also, the client should allow pinning contacts to the address book and complain if the transaction that was meant to send funds to that user is instead sending funds to a different public key than the one that was pinned in the address book (trust on first use principle, with added ability for users to manually verify public keys of contacts using out-of-band methods). I've written more about this
here.
By the way, does the wallet that you have already written support the exchange/markets functionality of BitShares? If not, do you plan to build support for that in your lightweight client?
2. Yes, however not like MetaExchange. We think DPOS solves the node certification issue of Open Transactions (OT) voting pool servers. Every DPOS delegate is an already trusted certified node by the stakeholders. Adding an additional layer whereas every delegate is also an OT federated server makes it possible to have counterparty risk-less instant transactions as well as trade any crypto token on the Bitshares decentralized exchange. No more crypto exchanges, no more lost funds. Everything happens through the wallet and the Bitshares decentralized exchange. We are currently waiting for the Monetas people to release the federated server setup to start adapting it for Bitshares.
Can you please comment more on this?
I want to see if we are thinking along the same lines here. Let me quote what I wrote in the nullstreet forums in response to tonyk's BTC on- and off-ramp proposal:
Alice has BitBTC and wants to exchange it for BTC. Bob has BTC (as well as a little bit of BitBTC already) and wants to exchange it for (more) BitBTC. There is a special BitBTC/RealBTC exchange on the BitShares system. Since the BitShares blockchain cannot actually hold real BTC, the bid orders for BitBTC on this BitBTC/RealBTC exchange are actually requests to buy the BitBTC with real BTC and with some BitBTC provided as a surety bond to ensure payment of the real BTC in a timely manner.
Let's say Alice places an ask order for 2 BitBTC at a price of 0.99 BTC/BitBTC and the ask order also has her BTC address (1A...). Bob sees this ask order and matches it with his bid order for 1.5 BitBTC at a price of 0.99 BTC/BitBTC. His bid order includes 0.15 BitBTC to be used as part of the surety bond (let's pretend that the market requires that 10% of the BitBTC quantity of the bid must be posted as the surety bond). Bob's bid order also includes his BTC address (1B...) from which he is expected to send the BTC payment to Alice's Bitcoin address.
Once these two orders are matched, Bob's 0.15 BitBTC joins Alice's 1.5 BitBTC and gets locked as collateral in a special escrow contract. At this point, Alice will still have an ask order for 0.5 BitBTC at a price of 0.99 BTC/BitBTC in the order book. This escrow contract requires a delivery confirmation to occur within 24 hours for the entire collateral to be send to Bob. The delegates monitor the Bitcoin blockchain for a total transfer of at least 1.485 BTC (1.5 BitBTC * 0.99 BTC/BitBTC = 1.485 BTC) from 1B... to 1A... between the time the orders were matched until 24 hours after that. If that condition is met, the delegates will sign off on the delivery confirmation for that escrow contract. Once a super majority of the active delegates have signed off on the delivery confirmation of the escrow contract (prior to the 24 hour expiration time), the delivery will be confirmed and all the collateral (1.65 BTC) will be sent to Bob. If this does not happen prior to the 24 hour expiration time, then all the collateral will instead go to Alice.
Bob has to put some BitBTC up so that attackers who want to just cause damage to BitBTC sellers are discouraged. If Alice is forced to lock up some BitBTC for 24 hours without getting payment for the promised trade, she will at least be rewarded with 10% profit after the 24 hours. If Bob trusts the delegates to do their job, he should be confident that he will get back his surety bond and will also get the 1.5 BitBTC he was promised as long as he delivers the 1.485 BTC from his 1B... address to Alice's 1A... address within 24 hours (it is best to not leave it to the last hour to ensure the delegates have enough time to sign off on the delivery confirmation).
Is this the sort of thing you want as an alternative to MetaExchange and ShapeShift made possible by relying on the delegates to act as oracles? Or are you thinking of something very different?
Actually, I think you may be talking about multisig voting pools. Meaning the actual BTC being held by a multisig controlled by the delegates? The problem with this is that Bitcoin has
strict limits that prevent making this sufficiently decentralized. Threshold signatures help with this, but they also have some annoying limitations when you are forced to use ECDSA. I have discussed this in
my post on the "BitShares Standard Gateway". I think this approach has some uses, but as an on- and off-ramp there is even larger counterparty risk with this method than the one described in the quote above.