XertroV
Member
Offline
Activity: 88
Merit: 12
Max Kaye
|
|
June 18, 2013, 02:07:14 AM |
|
I'll be referring to Marketcoin throughout this as many issues are very similar. Scaleability issues that must be addressed:
1) Every block must update the dividends per share of all bond types and this information must be tracked as far back as the oldest 'unspent' output. Dividend calculations are required for every input and must either query every prior block's divided table or there must be a lookup table based upon 'coinage'.
Current plan is for Marketcoin to have demurrage to help liquidity. This isn't too much of an issue because, like Bitcoin, it does not work against the purpose; to move value between currencies. It does, in fact incentivise this. Demurrage can be calculated formulaically; if you made the dividends only come from the mining generation you could get around needing to lookup all transaction fees and calculate what is owed. On the other hand, keeping a list of transaction fees paid in every block wouldn't be that difficult; my understanding is the Bitcoin client keeps some of these types of details in memory already (one entry per block style lists). You could also use some clever 'something' that was able to be used to calculate aggregate fees over a period of time. Not sure accumulators would be of use here, such as are proposed with merged mining. 2) The number of potential trades / exchanges grows with O(N^2) of the number of currency units thus for 8 units, there are 56 possible short/long combos each of which requires 16 bytes / block 'forever'.
Marketcoin avoids this by only supporting currency markets where one currency is Marketcoin. Nice and linear. Anything possible here in that regard? Have BitShares themselves play this role? 3) Even storing just the 'unspent' outputs at under 50 bytes each would result in TB of data in short order assuming transaction volume similar to Bitcoin, but exchanges will probably have several orders of magnitude more trades than bitcoin experiences and therefore unspent outputs must be managed better than Bitcoin.
What's your calculation for this? that's 50 bytes each block per dividend transaction? Even with a few thousand dividends you'd be using 100kb per block; which is a lot, granted. Since 17th July 2010 there have been 5,300,000 trades on mtgoxUSD/BTC. There have been 19 million transactions on the Bitcoin Network, and 242000 blocks. 242,000 * 100kb = 24 GB. Fair enough, I can see your point here, won't even both using the other stuff. Does the finite blockchain size idea help here? I mean you'd still need a bunch of those outputs but if they can somehow be rolled up as time passes it might make them easier to deal with. What about dividends once a day, ever 144th block, or something? Conclusion: Transaction fees must be based more upon the net gain in unspent outputs rather than the total size of the transaction. We can 'forget' all of the inputs after enough proof of work, but the outputs we will pay for forever.
We want to motivate people to combine dust and this can be done in two ways, reduced trx fees *and* not paying dividends below a certain threshold.
We must recover old transactions and force people to keep all outputs 'current' to limit the amount of 'dividend history' that must be maintained. At the very least, any dividends that go unclaimed for more than 1 or 2 years could be 'forfeited' and thus all outputs must be spent every 2 years or they lose their dividends. Though a more 'pro-active' approach of 'taxing' 2+ year old outputs and paying them out as dividends would serve to keep all outputs current and recover value lost to lost private keys. This 'tax' can be thought of as an 'inactivity fee' that banks charge accounts and as a means of reimbursing the network for holding on to your unspent output for a very long time which has significant costs when you factor in the total number of nodes that must replicate and index that output.
That's really messy; I would think using them like TX fees would be nicer; allow someone to spend more than the outputs they list and dividends are calculated at verify-time. All you need is the last time the address was used and the numbers of the blocks between and a lookup table to the fees; then you can calculate the dividend easily I would think. The chain must support 'cross-chain' trading to allow parallel BitShare chains to develop that enable trading in a wider range of currencies, stocks, and commodities as well as higher volumes than could ever be supported by a single chain. Thus when the transaction fees get too high on one chain, the market can create a new parallel chain that complements the existing chain. Because every chain enables trading any asset type it is easy to synchronize value between the chains with only a subset of nodes performing arbitrage roles.
You could always just let Marketcoin do that for you... it will anyway if BitShares takes off. While BitShares is the only proposal that I know of to have a dividend component, the unspent output scalability issue as well as the O(N^2) trading pairs and higher transaction volumes will mean that any block-chain based approach will need to have an efficient mechanism to 'go-parallel'.
Addressing these scalability issues is a critical component.
Perhaps leverage Marketcoin or a fork of it to 'build in' interoperability between chains; chains which can fork to parallelise (as you'll only need the chains you're interested in) but do things like separating groups of markets later down the line, some on this chain, some on that chain. This can help control the overall size. You might also be able to link in finite blockchains to end up with little parallel blockchain worms crawling through time. But they can talk to each other. Almost like running SPV in the other chains and full in your chain. That would be enough. Merged mining them would be interesting, but with the accumulator thing you're aware of it might be feasible.
|
|
|
|
|
bytemaster
|
|
June 18, 2013, 02:40:09 AM |
|
With respect to Dividend Calculation I would maintain a table which includes 'total dividends per share' based upon coinage going back 1 year. Everyone would have to 'prove ownership' of an address once per year or lose 5% of their balance as the chain rolls the output forward. This will prevent lost keys from accumulating dividends and prevent the network from storing worthless data for ever (outputs of lost keys).
The result would be 100K blocks per year * 8 bytes or about 800K lookup table per currency to calculate dividend based upon coinage. Once very 10 minutes I would have to update the entire table. Easy, Fast.
Dividends are then calculated and applied ONLY when the output is spent. This prevents 'dust' dividends and minimizes rounding errors.
With 64 different currencies per chain that would be a little over 50MB dedicated to managing the dividend calculation.
Bitcoin is currently adding 1M new (net) unspent transactions per month. 12M per year at current transaction volume. BitShares will probably be more efficient than BitCoin and generate fewer unspent-transaction for equal volume because there would be financial incentive (reduced fees) to combine inputs into fewer outputs and thus eliminate dust. So lets assume that there would only be 4M year at the same transaction volume as Bitcoin. Heavy trade volume does not affect this as each trade consumes 2 inputs and generates 2 outputs. The trades and transactions do not need to be stored for more than a couple of days.
The size of a basic 'transfer output' would be about 40 bytes and therefore to support the same number of 'users' as bitcoin would only require a database of less than 200MB assuming they were just performing transfers.
Bids, Asks, and Escrow transactions would require a more complex 'spend script' for the output and would probably require about 256 bytes (max) per output. These transactions would occur far more frequently, but I doubt most users would end up with more than a couple of bids at different prices per currency. Assuming 1 million users each with 1 bid per currency you would end up with about 1 GB of bids/asks at any given point in time. I suspect most users will not be that active. Therefore, that would be about 1M active traders which would imply a greater economy using crypto-currencies with 50M or more users. By the time the data requirements for bitshares approaches those of Bitcoin today, BitShares would probably be several orders of magnitude larger.
|
|
|
|
bytemaster
|
|
June 18, 2013, 02:43:01 AM |
|
The domain name does not appear to resolve. If you send me the .pdf I can host it for you while you wait for it to resolve.
|
|
|
|
bytemaster
|
|
June 18, 2013, 02:53:37 AM |
|
The domain name isn't resolving, so I will base my comments upon a couple day old draft: http://the-iland.net/static/downloads/DraftDEX.pdf If anything has changed since we last talked, then my apologies in advance. "Note: Like the matching engine, the escrow engine cannot be used on any orders as either the buyer nor seller on the same client." This is an assumption that cannot be enforced because anyone could modify the clients source code *or* run two clients on two different computers and control them both. To the extent that this is a requirement of a functioning system the system will not work. If you can buy cyrpto-bonds from different people and then trade them all as if they were equal, then I would buy the junkiest bonds I could find and then trade them on the exchange to acquire less-junky bonds and then profit from the spread. If the bonds are not fungible then the market would be fragmented. Because the bonds do not post margin greater than the initial value of the bond, any price volatility in the wrong direction would immediately compromise the value of the bond as some percentage of the bond would be unsecured and thus 'a junk bond'. Junk bonds have higher risk of default. If users can trade bonds at values other than par then you will create a million fragmented markets where the ultimate value of the bonds will approach the value of the Bitcoin backing it. If you don't allow trading of bonds within your system, it will occur outside of your system, mean while inside your system people will be taking advantage of the price fixing until the whole system falls apart. Lastly, issuing bearer bonds is 'illegal' and in order to redeem the bonds for actual fiat would require you give up your anonymity as the issuer. Thus you would have tremendous risk from public operation. What is the profit motive for someone to issue a crypto-bond? There is no opportunity cost to maintaing the position and if you sell the bond at a 'premium' then the buyer takes an immediate loss and there is no longer any incentive for this individual to redeem his bonds. The network wouldn't be able to detect the fraud until he failed to redeem the bond at which point it is too late, the fraudster has already profited from the sale even if he never sees his bitcoin again. He can then create a new client ID and start all over. The only way to prevent this kind of fraud is if the issuers are PUBLIC and not anonymous. If they are public then they are in violation of the law and easily shutdown if they operate in any significant volume what-so-ever. If they do not operate in volume, then they will have 0 trust and thus the value of their bonds will always and forever equal the value of the collateral. In effect, the bonds simply become Bitcoins. If you attempt to fix these problems by simply requiring additional margin, you still will not have answered the following questions: 1) Where is the profit motive to issue the bond? To go short USD vs BTC. If this is the case, then it is a head-I-win, tails-you-lose kind of bet. 2) What happens if the price changes more than the margin? 3) All bonds will vary in price proportional to the margin backing them and thus approach the value of the bitcoin backing, why should they have any other value? I hope this feedback helps.
|
|
|
|
bytemaster
|
|
June 18, 2013, 03:25:27 AM |
|
With all due respect to MarketCoin and DEX I think we really need to combine our efforts. From what I know of DEX it will not work.
Considering you stated that the largest 'bond' size would be about $1.55 (GBP) and have its own private key, then that means that someone with $1000 in bonds would have to market/sell 1000 different securities on the exchange. Just storing the value held in BTC would be 500GB of data. I would guess you could improve things by offer $5, $10, $20, $50, and $100 bonds but that would just create more markets/instruments and thus increase the buy/sell spread as the market gets thinner.
With respect to MarketCoin, it could be created as a separate currency or its critical features could be provided by BitShares. I also do not like demurrage as the premise (to prevent hoarding) is not based upon sound austrian economics. Any currency that 'taxes me to hold it' is a currency I want nothing to do with. I see your point about only wanting it used for facilitating trade (like ripple XRP) but it could accomplish the same thing without demurrage.
Note: BitShares will not be a single chain, but a whole family of chains each with their own floating "BitShare" price where each BitShare floats against the other BitShares based upon the demand to trade among the sub-currencies on each chain.
I still think MarketCoin suffers from the need for interactive trades where all users are 'online' and that it does not allow a buyer of 1000 BTC to be matched against 20 sellers at different prices in one ATOMIC trade.
So I propose we develop a team, where XertroV focuses on cross-chain integration between BitShares and Bitcoin and I focus on the BitShare network and Luke can help wherever he feels he can contribute. I highly recommend that you all don't attempt to develop your own chain 'just because' unless you are convinced that it can address something BitShare's cannot.
|
|
|
|
|
BTCLuke
|
|
June 18, 2013, 03:40:05 AM |
|
Thanks, sent! If anything has changed since we last talked, then my apologies in advance. Just small add-ons, not too much... So I'll counter your concerns here. "Note: Like the matching engine, the escrow engine cannot be used on any orders as either the buyer nor seller on the same client." This is an assumption that cannot be enforced because anyone could modify the clients source code *or* run two clients on two different computers and control them both. To the extent that this is a requirement of a functioning system the system will not work. I just added a tiny line about that point, which I see as your most serious problem. However, this still comes down to a challenge for the coders. Other systems have already solved 3-party trading in an open source environment, so I'm sure that you and I will both have to do so as well. Just off the top of my head, adding a check from all three stations could be made to see if the other two stations are suspicious in any way, such as being from the same IP address. If you can buy cyrpto-bonds from different people and then trade them all as if they were equal, then I would buy the junkiest bonds I could find and then trade them on the exchange to acquire less-junky bonds and then profit from the spread. If the bonds are not fungible then the market would be fragmented. That's what the Ratings and difficulty in obtaining said ratings are for. Vendors will buy back junk bonds or be forced to lose their coveted rating. It won't be easy to start up a new one. Lastly, issuing bearer bonds is 'illegal' and in order to redeem the bonds for actual fiat would require you give up your anonymity as the issuer. Thus you would have tremendous risk from public operation. Is a cryptobond really a "bearer bond?" I severely doubt that because FINCen won't call Bitcoin a Currency. Even if so, a Sting-as-Vendor is a very-reduced likelyhood due to vendor rankings. Ordering from high-volume vendors can be avoided, as of course will be low-rated vendors. Sting-as-Customer? 1st of all a vendor would also have to be moving quite a lot of bonds to be worth targeting. (And customers can see vendor's volume from the fiat marketplace) Assuming so, perhaps it would be wise to mention in a splash screen that selling cryptobonds is illegal in a country, to deter them being sold in that country. Surely it wouldn't be illegal in a good 250-300 countries, and therefore the vendor is safe from sting ops. Vendors can also lie about which countries they are in as long as they accept the proper payment types. What is the profit motive for someone to issue a crypto-bond? There are many. Main ones are: - Instant up-front fee earned
- another fee collected at redemption
- the chance to trade it for profit on the afterbond market,
- and most importantly the sound financial investment in knowing that the can collect their collateral back when it's MUCH higher than it is now, but during a loss, the most they are ever out is $1 for that bond. (If bitcoin goes to $0.) So the upside potential is huge with small risk... Which will seem even smaller because they know if the whole system crashes, they can walk away without that final redemption, leaving the DEX user holding the loss.
The network wouldn't be able to detect the fraud until he failed to redeem the bond at which point it is too late, the fraudster has already profited from the sale even if he never sees his bitcoin again. He can then create a new client ID and start all over. The only way to prevent this kind of fraud is if the issuers are PUBLIC and not anonymous. You simply have too little faith in the rankings system, which will be designed to thwart this kind of stuff. There will be a real difficulty involved with getting initial ratings. Public vendors are obviously not going to happen, so the effort will be put on making the ratings and rankings incentivize vendors to be honest.
|
Luke Parker Bank Abolitionist
|
|
|
bytemaster
|
|
June 18, 2013, 03:42:04 AM |
|
It was brought to my attention that I didn't detail the deterministic trading algorithm:
Given the set of all unspent outputs as UnspentOut Given a currency pair, say crypto-USD / BitShares. Given the same pair, find all crypto-USD issuance (short positions) and sort by margin.
Find all bids and asks and sort them.
While the HighBid >= LowAsk Average the HighBid and LowAsk to calculate the current Price if the price > margin threshold of lowest margin position match bid against margin call at Price push any left-over short position or bid to the stack else match the bid and ask at price push any left-over bid or ask to the stack.
The result of the above loop will be a single transaction of the following form:
1) all referenced bids, asks, and margin calls as inputs 2) the net result of all trades and margin calls as outputs. * note a bid may be paritial matched against 100 different asks and there would only be a single input from that bid and a single output of any change. All of the intermediate steps would not enter the blockchain.
I'm going to try and walk through the alg below, but before that, what happens when a bunch of information is published (by say a rogue miner working in secret) which pushes someone past an acceptable margin position, and data continues to flow in making the situation worse? Is this possible? Ignoring the possibility of a position requiring liquidation, is this how your alg works? Each element is volume@price (chosen pretty much randomly) Bids = [1@100, 3@99, 10@98, 1@97, 1@96] Asks = [3@101, 20@100, 2@99, 3@98, 2@97] Step No. | Action | 1 | Highest Bid = 1@100, Lowest Ask = 2@97 | 1.1 | As 100 >= 97, trade procedes | 1.2 | Average: 98.5; 1 unit traded at 98.5 | 2 | Highest Bid = 3@99, Lowest Ask = 1@97 (remainder from prev trade) | 2.1 | 99 >= 97, check; average is 98, 1 unit traded at 98. | 3 | Highest Bid = 2@99, Lowest Ask = 3@98 | 3.1 | 99 >= 98; average 98.5, 2 units traded at 98.5 | 4 | Highest Bid = 10@98, Lowest Ask = 1@98 | 4.1 | 98 >= 98; average 98, 1 unit traded at 98 | 5 | Highest Bid = 1@98, Lowest Ask = 2@99 | 5.1 | 98 < 99; NO TRADE |
At the end the order-book-thing stands at: Bids = [9@98, 1@97, 1@96] Asks = [3@101, 20@100, 2@99] Total trades: 4, volume: 5 Edit: as an aside, the pattern I've worked through above is what is used in Marketcoin (currently) Without double checking all of your math, it looks like you have the right idea. The only difference is that after each price calculation and before the trade is executed, all margin positions are checked and would take priority. It is entirely possible that as trades progress the margin positions get worse and worse. I can only 'cover' a margin position by matching against a real bid so if the price (of BitShares) falls too quickly and thus the collateral is no longer enough to cover the position... then I guess it would actually be best to simply buy back as much crypto-Gold at the lowest price it can. This would actually be better than my earlier approach of paying it out as dividends because it would still server to SUPPORT the price of crypto-Gold rather than further remove demand.
|
|
|
|
bytemaster
|
|
June 18, 2013, 03:54:05 AM |
|
Regarding DEX:
You provided some good replies, so let me counter.
Using tools like TOR and VPN it would be impossible to identify that 2 clients are not actually the same person.
Based upon your other description it seems like your bonds are actually backed by the ratings and nothing else. So lets assume your 'ratings' system is better than Moody's and it accurately labels AAA vs B- then you still have a fragmented market for each bond type.
I suspect that this would be a fractional reserve heaven! I would start out as an honest dealer and then earn a AAA rating. Eventually people will stop redeeming them and just trade them at face value. As long as I am always able to redeem the 10% that actually get turned in then I am good. Now because I have a AAA rating, if I ever face pressure from heavy redemption I can simply 'print more AAA' bonds and use them to buy AAA bonds from other issuers which I would then redeem to meet my demand for redemptions.
Eventually everyone would catch on to this game and everyone would be playing the fractional reserve game until there is a bankrun on the whole system which would then come crashing down.
*EDIT* I take that back.. they are also backed by BTC held in escrow which would then prevent over-issuance. If BTC generally goes up in value then you will be good. Having them post 110% would probably be better.
How does one find out where to redeem bonds? Eventually all 'issuers' will be known and public because they either meet you in person or wire you the money. Once their 'name' is tied to their 'bond' then it is quite clear that you have simply created a bearer instrument.
|
|
|
|
bytemaster
|
|
June 18, 2013, 04:27:58 AM |
|
More feedback on DEX:
Upon closer look at DEX I can see that you have a 'good' approach but not the 'best' and can recommend some potential improvements.
1) Place the backing BTC into an ESCROW output on the bitcoin blockchain where it requires two parties to spend it. Then allow those who 'hold the bond' to transfer their signature rights to someone else. As a result the bond is always 'valid' and you no longer have to trust the issuer not to run with the collateral. If you can run with the collateral then you have a massive incentive to defect after issuing a large number of bonds. This would require an update to Bitcoin to support.
2) Ratings systems are HARD and easily spoofed by Sybil attacks. Ultimately they depend upon Web of Trust to avoid Sybil. A Web of Trust creates a social network and ultimately the issuer IS NOT ANONYMOUS. You would want users to 'mine' their identity to prove uniqueness.
3) Your bonds are not divisible nor fungible. Find a way to enable this.
Despite the merits of your idea which clearly has had much thought put into it, I think it is ultimately more complex for all users and provides no benefits over BitShares. Lets assume that both systems were implemented and competing against each other in the market. We are both creating ads trying to attract customers to use our exchange. What would your pitch be?
Mine is: Trade your dollars for crypto-Dollars and earn 10-15% interest (first few years). Your crypto-Dollar will be backed by the full faith and credit of the blockchain which holds fully 2x collateral and will automatically cover before any losses are possible. No need to trust anyone, rate anyone, or worry about anyone defaulting. Trade in any 'volume' and make easy payments in any amount (event fractions of a cent). Deposit your Bitcoins and earn interest on your Bitcoins! Trade in your eTrade account and speculate in the EUR/USD market. Buy call and put options and have risk-free escrow of all fiat transfers.
Yours?
|
|
|
|
BTCLuke
|
|
June 18, 2013, 05:48:55 AM |
|
How does one find out where to redeem bonds? There is a button in Dex Wallet Vaults to simply redeem for them. Remember? Apple product easy. When the button is clicked the vendorID attached to the bond will be used to start the redemption process and track down the current owner of the bond, and start the clock ticking for his redemption window. Upon closer look at DEX I can see that you have a 'good' approach but not the 'best' and can recommend some potential improvements. Thanks. I'm not too egomaniacal to think I've solved every problem yet... I just like my approach better. 1) Place the backing BTC into an ESCROW output on the bitcoin blockchain where it requires two parties to spend it.
Modifying the bitcoin blockchain structure is not something I think I can accomplish this week. I'm looking for solutions in the short-term only. (I know I sometimes sound paranoid, but who can deny that the powers that be haven't already started breathing down our necks pretty heavily?) 2) Ratings systems are HARD and easily spoofed by Sybil attacks. Ultimately they depend upon Web of Trust to avoid Sybil. A Web of Trust creates a social network and ultimately the issuer IS NOT ANONYMOUS. You would want users to 'mine' their identity to prove uniqueness. It's not perfect, I agree. But it's been working for OTC boards quite a lot lately. The WOT we build inside DEX can be specifically tailored to the task, and even if it's still the weak link to DEX, the overall product of DEX will be desireable in comparison to exchanges like Gox that are centralized and anti-private. (And offer no income sources.) 3) Your bonds are not divisible nor fungible. Divisible: Every bond in dex will be for $1 or 1 Yen or 1 whatever currency. I see no reason to include fractionals like cents when people won't likely go buy a bond for 50 cents... Rounding is good enough in this case. Fungible: Also close enough, addressed well on page 11: Although all $1 USD cryptobonds will look exactly the same to a trader using DEX, it is a fact that the contents of cryptobonds will vary enough in worth to make them more and less desirable to Vendors, depending on a wide range of circumstances. This may seem like a problem on the surface because a vendor could always trade away the 'lower value' bonds in the bond aftermarket, leaving it to never get redeemed... But the fact is that vendors will face a very undesirable fate in an automated fashion of they refuse to redeem these bonds within a certain window. They may lose a few cents each redeeming a lesser-valued cryptobond, but they could literally lose all of their reputation and therefore their business itself if they allowed it to go too long without redemption. Since the price of the most desirable cryptocurrency tends to rise more than sink, the would surely see this problem far less than they'd see a satisfying profit at redemption time. Keep in mind that EVERY cryptobond is worth $1 or 1 of a currency. That penalty adds up. I think it is ultimately more complex for all users and provides no benefits over BitShares. Did I just hear the twilight zone theme music...?? Bitshares seems many orders of magnitudes more complex to me. I still haven't wrapped my head around it yet... Everything about DEX is Apple-product simple. The concepts are simple... $1 will always be $1 to users. There is no interest, no shares of what is that stock? Nothing but a mt-gox interface for newbs who can use it to buy their first bitcoin with. Vendors will have a little to learn, but nothing hard at all, they already know what a bearer bond is I'd think. The software does the work for them and the bond aftermarket is designed after an OTC board... So again, brain-dead simple. Perhaps we have too much of our own system in our heads to fully understand the other person's system. It happens. Let's let others be the judge over simplicity. Lets assume that both systems were implemented and competing against each other in the market. We are both creating ads trying to attract customers to use our exchange. What would your pitch be? First of all, I wasn't aware that you had an exchange worked out. Do you mean attract people to our fiat replacements? Mine is: Trade your dollars for crypto-Dollars and earn 10-15% interest (first few years). Your crypto-Dollar will be backed by the full faith and credit of the blockchain which holds fully 2x collateral and will automatically cover before any losses are possible. No need to trust anyone, rate anyone, or worry about anyone defaulting. Trade in any 'volume' and make easy payments in any amount (event fractions of a cent). Deposit your Bitcoins and earn interest on your Bitcoins! Trade in your eTrade account and speculate in the EUR/USD market. Buy call and put options and have risk-free escrow of all fiat transfers. Well let's see... There are so many different people mine targets... For the laymen, all we have to say is: "Download this app and get paid to simply let it run." For the entrepreneurs: "The world of finance now has new investment vehicles that have never existed before and you can make a business for yourself selling and trading them with no overhead whatsoever, from anywhere in the world!" For the daytraders: "Any currency. Any cryptocurrency. Any trade you want to make at all... No restrictions, global markets. TINY FEES." For the libertarians: "This single software client that can't be stopped by any government or attacker can literally replace all financial institutions worldwide. It can hold and transport any kind of money with tiny fees and absolutely no restrictions on whom you can trade them with! You can even trade in new, exotic financial instruments that most governments wouldn't allow! Ignore the fed, the markets, and even banks too." And for the hardcore traders: "New opportunities like global VPN Arbitrage and exotic cryptosecurities not seen elsewhere make this the platform you can't afford to miss." ...There's more, but you get the point. DEX is meant to be a full-featured exchange for everyone to use.
|
Luke Parker Bank Abolitionist
|
|
|
bytemaster
|
|
June 18, 2013, 01:11:43 PM |
|
How does one find out where to redeem bonds? There is a button in Dex Wallet Vaults to simply redeem for them. Remember? Apple product easy. When the button is clicked the vendorID attached to the bond will be used to start the redemption process and track down the current owner of the bond, and start the clock ticking for his redemption window. Upon closer look at DEX I can see that you have a 'good' approach but not the 'best' and can recommend some potential improvements. Thanks. I'm not too egomaniacal to think I've solved every problem yet... I just like my approach better. 1) Place the backing BTC into an ESCROW output on the bitcoin blockchain where it requires two parties to spend it.
Modifying the bitcoin blockchain structure is not something I think I can accomplish this week. I'm looking for solutions in the short-term only. (I know I sometimes sound paranoid, but who can deny that the powers that be haven't already started breathing down our necks pretty heavily?) 2) Ratings systems are HARD and easily spoofed by Sybil attacks. Ultimately they depend upon Web of Trust to avoid Sybil. A Web of Trust creates a social network and ultimately the issuer IS NOT ANONYMOUS. You would want users to 'mine' their identity to prove uniqueness. It's not perfect, I agree. But it's been working for OTC boards quite a lot lately. The WOT we build inside DEX can be specifically tailored to the task, and even if it's still the weak link to DEX, the overall product of DEX will be desireable in comparison to exchanges like Gox that are centralized and anti-private. (And offer no income sources.) 3) Your bonds are not divisible nor fungible. Divisible: Every bond in dex will be for $1 or 1 Yen or 1 whatever currency. I see no reason to include fractionals like cents when people won't likely go buy a bond for 50 cents... Rounding is good enough in this case. Fungible: Also close enough, addressed well on page 11: Although all $1 USD cryptobonds will look exactly the same to a trader using DEX, it is a fact that the contents of cryptobonds will vary enough in worth to make them more and less desirable to Vendors, depending on a wide range of circumstances. This may seem like a problem on the surface because a vendor could always trade away the 'lower value' bonds in the bond aftermarket, leaving it to never get redeemed... But the fact is that vendors will face a very undesirable fate in an automated fashion of they refuse to redeem these bonds within a certain window. They may lose a few cents each redeeming a lesser-valued cryptobond, but they could literally lose all of their reputation and therefore their business itself if they allowed it to go too long without redemption. Since the price of the most desirable cryptocurrency tends to rise more than sink, the would surely see this problem far less than they'd see a satisfying profit at redemption time. Keep in mind that EVERY cryptobond is worth $1 or 1 of a currency. That penalty adds up. I think it is ultimately more complex for all users and provides no benefits over BitShares. Did I just hear the twilight zone theme music...?? Bitshares seems many orders of magnitudes more complex to me. I still haven't wrapped my head around it yet... Everything about DEX is Apple-product simple. The concepts are simple... $1 will always be $1 to users. There is no interest, no shares of what is that stock? Nothing but a mt-gox interface for newbs who can use it to buy their first bitcoin with. Vendors will have a little to learn, but nothing hard at all, they already know what a bearer bond is I'd think. The software does the work for them and the bond aftermarket is designed after an OTC board... So again, brain-dead simple. Perhaps we have too much of our own system in our heads to fully understand the other person's system. It happens. Let's let others be the judge over simplicity. Lets assume that both systems were implemented and competing against each other in the market. We are both creating ads trying to attract customers to use our exchange. What would your pitch be? First of all, I wasn't aware that you had an exchange worked out. Do you mean attract people to our fiat replacements? Mine is: Trade your dollars for crypto-Dollars and earn 10-15% interest (first few years). Your crypto-Dollar will be backed by the full faith and credit of the blockchain which holds fully 2x collateral and will automatically cover before any losses are possible. No need to trust anyone, rate anyone, or worry about anyone defaulting. Trade in any 'volume' and make easy payments in any amount (event fractions of a cent). Deposit your Bitcoins and earn interest on your Bitcoins! Trade in your eTrade account and speculate in the EUR/USD market. Buy call and put options and have risk-free escrow of all fiat transfers. Well let's see... There are so many different people mine targets... For the laymen, all we have to say is: "Download this app and get paid to simply let it run." For the entrepreneurs: "The world of finance now has new investment vehicles that have never existed before and you can make a business for yourself selling and trading them with no overhead whatsoever, from anywhere in the world!" For the daytraders: "Any currency. Any cryptocurrency. Any trade you want to make at all... No restrictions, global markets. TINY FEES." For the libertarians: "This single software client that can't be stopped by any government or attacker can literally replace all financial institutions worldwide. It can hold and transport any kind of money with tiny fees and absolutely no restrictions on whom you can trade them with! You can even trade in new, exotic financial instruments that most governments wouldn't allow! Ignore the fed, the markets, and even banks too." And for the hardcore traders: "New opportunities like global VPN Arbitrage and exotic cryptosecurities not seen elsewhere make this the platform you can't afford to miss." ...There's more, but you get the point. DEX is meant to be a full-featured exchange for everyone to use. If you didn't realize I had an exchange at the very heart of bitshares then perhaps you need to go over the white paper. If it is not clear then I am a terrible communicator. The very creation of crypto usd is a short position on th exchange. Crypto-usd is not tied to the issuer. There is 0 trust in my system except in the block chain margin covering algo.
|
|
|
|
bytemaster
|
|
June 18, 2013, 09:13:28 PM |
|
I decided to put together a 'concrete' example of what the block-chain would look like for BitShares... high level... and may have slight math errors, but should communicate the idea in example form. Block 0 Prev NULL Dividends 0 Total BS: 0 --------------------------------------------- ---- trx 0 --------- 25 BS IN (COINBASE) Output A 50 BS Address 0x1111 --------------------
Block 1 Prev 0 Dividends 25 Total BS: 50 (0.5 Dividends per BS) --------------------------------------------- ---- trx 0 --------- 25 BS IN (COINBASE) Output B 25 BS Address 0x1112 --------------------
Block 2 Prev 1 Dividends 25 Total BS: 100 (0.25 BS per BS) --------------------------------------------- ---- trx 0 --------- 25 BS IN (COINBASE) Output C 25 BS Address 0x1113 --------------------
Block 3 Prev 2 Dividends 25 + 0.5 Total BS: 150 (0.17 BS per BS) --------------------------------------------- ---- trx 0 --------- 25 BS IN Output D 30.25 BS Input from Output B Address 0x2221 Signed by 0x1112
.25 * 25 = 6.25 DIV
Total Input: 31.25 BS Fees: 1 BS ---- trx 1 ---------
25 BS IN (COINBASE) Output E 25 BS + 0.5 BS fees = 25.5 Address 0x1114 --------------------
Block 4 Prev 3 Dividends 25 + .125 Total BS: 200 (0.125 BS per BS) --------------------------------------------- ---- trx 0 --------- ( create a bid to buy) 30.25 BS Output F 30 BS Input from output D Address 0x1115 or Exchange 30 crypto-USD @ 1 BS per. Signed by 0x2221 Fees: .25 BS ---- trx 1 ---------
25 BS IN (COINBASE) Output G 25 BS + 0.125 BS fees = 25.125 Address 0x1116 --------------------
Block 5 Prev 4 Dividends 25 + .25 Total BS: 250 (0.101 BS per BS) --------------------------------------------- ---- trx 0 --------- (create a new short-sell bid) 25 BS Output H 30 BS Input from output A Address 0x1117 or Short 30 crypto-USD @ 1 BS per Signed by 0x1111 Dividends: 1.045 * 25 Output I 63 BS (change) Address 0x1118
25 BS Input from output C Signed by 0x1113 Dividends: .295 * 25
Total Dividends: = 33.5 Total Input: 83.5 Total Fees: .5 BS ---- trx 1 --------- 25 BS IN (COINBASE) Output J 25 BS + 0.25 BS fees = 25.25 Address 0x1119 --------------------
Block 6 Prev 5 Dividends 25 + .25 Total BS: 300 (0.101 BS per BS) --------------------------------------------- ---- trx 0 --------- (miner which performs exchange) 0 BS IN (COINBASE) Output K 25 BS fees = 0 Address 0x1119
30 crypto-USD Output L 60 BS (collateral of short) Output F Address 0x1117 AND 30 crypto-USD destroyed. Dividends: 3 BS
30 crypto-USD Output M 30 crypto-USD (exchange output) Output H Address 0x1115 Dividends: 0 Output N 3 BS (from dividends earned on Bid prior to exchange) Address 0x1115 --------------------
|
|
|
|
bluemeanie1
|
|
June 19, 2013, 09:51:23 PM Last edit: June 19, 2013, 10:57:50 PM by bluemeanie1 |
|
Just wanted to make a few points here...
#1) too many chefs in the kitchen.
I agree with some of the comments on here, we don't need any more 'leaders' to 'get developers'. If you are one of these volunteer 'project managers', as it stands you are in very low demand, and the developers who can actually deliver on a system that people want are in high demand. Some of these 'whitepapers' are just pointless regurgitation of fairly basic assumptions about these problems. Please stop making distractions. Creating a Github project does not put you in charge of things.
#2) the nature of IOUs.
There is no way to factor this notion of IOUs and collateral from the equation. Would BTC have any value if I couldn't exchange it out for USD or EUR? of course not. Yes there is a inherent legal liability associated with converting these digital assets to REAL WORLD assets. This sort of activity is mentioned directly in FinCEN guidelines. The point here is that we want to develop a system that distributes the legal liability such that enforcement becomes impractical. eg. it's illegal to distribute copyrighted material, but people do it because BitTorrent makes it very easy.
In all cases these distributed exchanges instead move the liability and gains(through seigniorage) to individuals rather than organizations. No fancy use of crypto assets will eliminate this basic relationship. An exchange needs only two things:
1) a system whereby assets can be issued.
2) a system whereby assets can be exchanged.
With these two basic functions, the other familiar devices can be developed.
#3) server architecture
As many of you know I have a history with the Open Transactions project, and it had been suggested that it could be used to run a marketplace. 1) destructable history- no where has this particular feature ever demonstrated or indicated any utility. For instance if I were running some illicit business and authorities came to shut me down, and I paper shredded all my records, does this absolve me of responsibility? 2) anonymous servers: we saw this scenario recently with TorBroker, they were a client/server architecture hosted behind Tor. Would you give these people your money? Open Transactions offers nothing beyond that- even if they produce some kind of crypto document that tells you what your balance is. We've had many such e-currencies before and they all failed in user adoption. ASMOF, there is precisely nothing new in the Open Transactions architecture, thus I can't think of why we would expect a new result.
#4) marketcoin
I did read some of the comments regarding Marketcoin, and it looked interesting. My first preliminary question is: how will it be mined? Show me some Use Cases. I think it is very possible to host an order book in a block chain. I had originally thought to make an 'altcoin' that did just that, however I found this route to be unworkable.
#5) messaging
Messaging is indeed a key problem with markets, in particular latency which caused me to rule out the possibility of using a mined chain to host an order book. Also it is probably impossible to rely on a p2p messaging architecture eg. WASTE, as you rely on potentially uninvested peers for message relay. Signals must be relayed by impartial parties, and they must relay them faithfully and quickly. Any system that has the possibility of bias in the messaging can disqualify the system from many important applications.
-bm
|
|
|
|
bytemaster
|
|
June 19, 2013, 10:25:58 PM |
|
blue, thank you for providing a solid post.
I have seen a total of 5? white papers on this topic: DEX, Confidence Chains, Market Coin, Open Transactions and BitShares. All of them have been far from pointless and each tackles this problem from a unique angle with different degrees of success and different limitations.
I agree with your first paragraph in line #2, however, your second paragraph makes some assumptions that are not founded.
BitShares actually eliminates the need for any specific backer. It is the only solution proposed where no users create bearer bonds nor have any way to default aside from massive volatility that all longs are aware of when they take the position. It is also the only system that has opportunity cost and compensation for risk in the form of interest. The result is that no user of BitShares is exposed to any more liability than a user of Bitcoin.
Server Architecture Open Transactions does indeed suffer from most of the problems you just outlined. As designed by FellowTraveler, it can only be run by a public entity and all issuers are public creators of illegal bearer bonds... a non-starter. The primary benefit of destructive account history is 'instant validation' and 'server resources' and also prevents opportunity for the server to scam the customer. You could of course always keep the transaction history for legal purposes. But then again, bank records have screwed many innocent men and represent a means of tracking people that should be avoided if possible.
The challenge to make OT work is to eliminate the issuers and prevent the server operator from being able to take the money. You can use BitShares to actually store the funds and 'audit' the server while allowing the high-speed trading / instant transactions to occur on the server. In this case, destruction of account history is critical because it keeps the amount of information the server/user must produce to the blockchain to 'withdraw' money to a minimum. It is almost a technical requirement that account history be destroyed.
I also think that the expectation of very high trading speeds and very low latency taking a very narrow view based upon the last 20 years or so of exchanges. For the past several hundred years all exchanges and trades had to occur at 'human speed'. Even today, most people don't 'day-trade' and instead decided to buy on day X and sell months or weeks later. The intra-day price movement is not all that relevant to their buy-sell decision nor the long-term direction of the market. High speed trading has its place, but is not a requirement for a fully functional exchange.
That said, it should be noted that in a P2P network no one should have a profitable opportunity 'manipulate' the market by withholding bids/orders. BitShares solves this with several approaches: 1) all 'real-time' trades must occur between the bid/ask spread from the last block. 2) All trades against open bids/asks stored in the block chain are deterministic. 3) All users make a profit (via dividends) when the bid is entered 4) professional traders are all competing to mine their own trades and the result of this competition is to drive up the difficulty and thus make it harder for any one miner to actually gain any meaningful advantage.
|
|
|
|
bluemeanie1
|
|
June 19, 2013, 10:57:08 PM |
|
hey thanks for the positive comment. It seems you've given thought to these issues, that much is clear. Server Architecture Open Transactions does indeed suffer from most of the problems you just outlined. As designed by FellowTraveler, it can only be run by a public entity and all issuers are public creators of illegal bearer bonds... a non-starter. The primary benefit of destructive account history is 'instant validation' and 'server resources' and also prevents opportunity for the server to scam the customer. You could of course always keep the transaction history for legal purposes. But then again, bank records have screwed many innocent men and represent a means of tracking people that should be avoided if possible.
"server resources"? we're actually advertising destructable records as saving disk space? that's just funny to me. Some of you other comments don't make sense. If the bank(admin of an OT server) wanted to screw the customer, they most certainly could, in many ways. Historically, this is what happened to such systems. It's not altogether clear to me how these 'voting pool' devices are going to protect against that. Seems to me just another complex way of putting up a trustee bond against accounts. It doesnt offer any significant technological advantages. The challenge to make OT work is to eliminate the issuers and prevent the server operator from being able to take the money. You can use BitShares to actually store the funds and 'audit' the server while allowing the high-speed trading / instant transactions to occur on the server. In this case, destruction of account history is critical because it keeps the amount of information the server/user must produce to the blockchain to 'withdraw' money to a minimum. It is almost a technical requirement that account history be destroyed.
again seems like what you're doing is just creating collateralized debt, and then marketing it. I notice you have the term 'interest' in your writings, and the only thing you could do with this basic notion of credit is to create mechanisms that pay off in the case of depreciation or appreciation. You have not tied them to some outside asset. Last time I visited this topic, seems like what you were doing was setting the interest rate on some kind of outside information service, and this Debt Collateral was used interchangeably with that asset. The only problem is that no one can predict the outcome of markets. These things are interesting kinds of devices and it's true that they are marketable, in the same way T-bills are marketable and valuable. put it this way- there is a reason why they want to illegalize asset conversion. Because THEY KNOW that this is the key ingredient in building monetary value. You simply must have this at some level in order to build an alternative value schema- isn't that what we're doing here? It's a given that 'the government' doesnt want people to do that. I also think that the expectation of very high trading speeds and very low latency taking a very narrow view based upon the last 20 years or so of exchanges. For the past several hundred years all exchanges and trades had to occur at 'human speed'. Even today, most people don't 'day-trade' and instead decided to buy on day X and sell months or weeks later. The intra-day price movement is not all that relevant to their buy-sell decision nor the long-term direction of the market. High speed trading has its place, but is not a requirement for a fully functional exchange.
this is true you can have a functional exchange that operates at those speeds, but if you actually bother to implement it- I should hope you consider that others might be able to outdo you in terms of speed(thus making the whole effort worthless). People expect fairly quick turnaround times these days. Confidence Chains certainly can give you that.
|
|
|
|
bytemaster
|
|
June 19, 2013, 11:33:44 PM |
|
Blue, Using BitShares I create assets that are only 'redeemable' in crypto-currency *but* they track the purchasing power of outside assets. Therefore you can 'redeem' them by purchasing gold/silver/etc on the market. Having such an asset class can be very useful in facilitating the actual trade of the physical good.
I am collateralizing debt, *but* the debt is not a promise to pay gold or silver, but instead a 'promise to buy back the promise' on the market. The 'price of the promise' on the market adjusts automatically as participants attempt to bet on the movement of actual gold/silver/dollars relative to BitShares. The primary difference is that no one can ever default on the 'promise' because the 'promise' is enforced by the blockchain. Also, all promises have 'intrinsic value' based entirely upon the BitShares that you are paid to hold on to that 'promise'. This is what sets BitShares apart from DEX, confidence-chains, and Open Transactions and is also what causes most people trouble understanding the concept.
In my system there is no outside information that is entered *except* the users who place bids/asks. No ticker, etc.
Also note that my system enables 3 different speeds of trading.... low-frequency between bids already placed in the blockchain. medium frequency with exchanges that occur between the bid/ask price in the block chain. And high-frequency with trading that occurs on anonymous OT servers with collateral held on the block chain and redemptions managed on the block chain.
There will still be a place for centralized exchanges, but they would no longer have to maintain any bank accounts and could deal entirely with crypto-currency. They would not be trading in bearer bonds.
I really need to identify exactly what my 'instrument' is because it could be thought of like a derivative where both sides of the trade are 'betting' on the movement of this crypto-Currency and the only profitable / logical bet is to bet it will follow Gold/Silver. Thus it is almost closer to intrade or some other system than a real security (like a bearer bond). This has legal advantages that are far superior than all other solutions for digitizing fiat.
|
|
|
|
BTCLuke
|
|
June 20, 2013, 12:06:04 AM |
|
I really need to identify exactly what my 'instrument' is because it could be thought of like a derivative where both sides of the trade are 'betting' on the movement of this crypto-Currency and the only profitable / logical bet is to bet it will follow Gold/Silver. Thus it is almost closer to intrade or some other system than a real security (like a bearer bond). This has legal advantages that are far superior than all other solutions for digitizing fiat. For your sake I hope you can make the 'instrument' understandable. Making it a new thing that doesn't exist already is bad enough for adoption, because people have to stop and think if that new thing is inherently valuable to them. But BitShares have the extra hurdle there to be damn near impossible for people to wrap their head around at all. Most people don't even have a clue what a derivative is in the first place... "Wait, it's not payable in fiat? Then what, in ongoing dividends? Not exactly? What's backing it again? And what if nobody is mining that anymore? And when do I get my freaking money?!?" -It just begs all kinds of questions like these that you practically have to write a manual to answer before people can adopt it. If you could find a way to make it easily understandable, be it by video, using small words, whatever, easy enough for a layman to be willing to trade fiat for, I'd be more willing to try out the concept of using those as the fiat inside DEX instead of cryptobonds.
|
Luke Parker Bank Abolitionist
|
|
|
charleshoskinson (OP)
Legendary
Offline
Activity: 1134
Merit: 1008
CEO of IOHK
|
|
June 20, 2013, 12:43:06 AM |
|
#1) too many chefs in the kitchen.
I agree with some of the comments on here, we don't need any more 'leaders' to 'get developers'. If you are one of these volunteer 'project managers', as it stands you are in very low demand, and the developers who can actually deliver on a system that people want are in high demand. Some of these 'whitepapers' are just pointless regurgitation of fairly basic assumptions about these problems. Please stop making distractions. Creating a Github project does not put you in charge of things. Blue, this is an aggregation of ideas and implementations surrounding a list of design criterion and challenges. I'm the one here with the money and also access to the developers so I'm really not worried about the leadership component. I want to see what the range of solutions are to the issues of a p2p exchange both legal and technological.
|
The revolution begins with the mind and ends with the heart. Knowledge for all, accessible to all and shared by all
|
|
|
|