Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - arhag

Pages: 1 ... 13 14 15 16 17 18 19 [20] 21 22 23 24 25 26 27 ... 81
286
Stakeholder Proposals / Re: BitSuperLab please fix your feeds
« on: March 17, 2015, 06:36:10 am »
I guess I should just go design a feed-prediction attack and make money myself, since people seem so hard to convince.

Please do, and then after you make some money to compensate you for the time spent designing the attack, please post the attack details on the forums.  :)

287
I'm hearing that one of your key issues is this - That in the current system there are the immediate profit incentives for shorts to respond to changes in bitAsset demand, by being able to trade favourably to the price feed (above it, when buyers demand new creation, or below it, when sellers demand supply destruction). In the proposed system, this profit incentive is removed, because all trading is at the price feed, and the regulating mechanism to match supply and demand is purely the interest rate.

Not really. In the current system there is no immediate profit incentive (for either case). In fact, in your proposed system there is an immediate profit incentive (through arbitrage) when the BitAssets are trading (presumably on an external exchange) below the BTS/BitAsset price feed: buy the cheap BitAssets with your BTS and then use it to withdraw more BTS then you paid from the bank. In the current system this is not immediate because of the 30 day minimum before shorts can be called (assuming margin call isn't triggered). Since the BTS/BitAsset feed price may shrink below the price you purchase the BitAssets at within that max 30 day waiting period, there no guarantee of profit by buying the BitAsset selling well below the feed and then using those BitAssets to place a sell order maintained just slightly under the price feed. But one of my main points in the previous post was that neither the current system nor your proposed system help the peg in the case when the BitAssets are trading above the BTS/BitAsset feed price.

The other main point was that despite the fact that making the short positions callable before 30 days (even if they maintain margin) helps the peg in the case where BitAssets are trading below the feed price, I don't consider this to be a significant enough issue to make the drastic change of taking away the guarantee to the shorts that as long as they maintain enough collateral to avoid margin calls, they won't have to realize losses in less than 30 days.

I believe the ability of the interest rate to mediate supply and demand would be fairly strong in most circumstances. It seems an unlikely circumstance that when bitCurrency demand is strong, with the longer term implications that has for BTS, nobody is willing to borrow freely to buy BTS.

And yet right now there is a bid (BitUSD buy) order above the feed price (highest bid is 115.9433 BTS/BitUSD and feed price is 115.5082 BTS/BitUSD) and the lowest ask is 116.1030 BTS/BitUSD and the lowest short sell order is at 117.0000 BTS/BitUSD. Granted that isn't very strong demand, but I remember situations where the highest bid was more significantly larger than the feed price and yet the shorts weren't bothering to sell to them. The problem is that there is no guarantee that someone will later sell the needed BitUSD to the short seller at a price below the price they entered the short at. In your proposed system this means that even in the case where the feed price in BTS/BitUSD goes down lower than the borrow price and the borrower submits a loan repayment order, there is a risk that by the time the loan repayment order is matched by a withdrawal or new borrower the feed price would have gone back up above the price the borrower originally got the borrow order matched. Even if the borrower cancels the loan repayment order if the feed price goes up above the original borrow price, there is then the risk that the feed price will continue going up until the loan is margin called or more likely that the loan will be called at a time when feed price is above the original borrow price because someone wants to withdraw and there are no margin calls, new depositors, or loan repayments left in the queue. These risks may prevent the borrower from taking a 0% loan.

And this also needs to be weighed against the tremendous benefit that bitAsset owners get by being guaranteed to exit at any time at the fair price.

I just want to be clear that those are orthogonal concerns. The benefit to BitAsset owners of being guaranteed to exit immediately at any time at the feed price comes from making the loans callable before 30 days even when margin requirements are maintained. The disadvantage discussed above is not a result of making the loans callable. It exists in both your proposed system and the current system.

There are advantages to shorts of the proposed system too - they can hold shorts indefinitely as long as they are willing to improve collateral and interest, and they are always guaranteed to enter and exit at the feed price even when being called. It's best to weigh the risks in both systems:

- In the proposed system there are no expiries. Expiries in the current system create risks for shorts - they force buying even if liquidity is thin (in which case the market is not really demanding this action anyway), and they force the short out of position for an unknown time.

Actually expiration is not a big deal in the current system when compared to your proposed system. If a short expires and there is not enough BitUSD sells at or below the feed price, it will just sit at the feed price until it gets matched. If no one sells at or below the feed price, it can just sit there indefinitely. Similarly, with your proposed system, if no one makes a withdrawal, the loans can just sit there indefinitely without being called (assuming they aren't margin called). However, if anyone withdraws (equivalent to BitUSD sell just slightly under the feed price) and there are no other margin calls (equivalent to margin call orders), deposits (equivalent to BitUSD buy at feed price), or loan repayments (equivalent BitUSD buy at feed price or expired cover orders), then the system will call a loan. In the current system, if there already is an expired cover order sitting in the order book and someone does a BitUSD sell just slightly under the feed price, the BitUSD sell will match with the expired cover order (forcing the expired short position to at least partially exit from the position). The only difference is that a BitUSD sell order won't cause short positions that haven't yet expired (and have enough margin) to be called, whereas a withdrawal in your system can force a brand new short position to exit. So there is actually more risk for shorts (borrowers) in your system. If I short at the current feed price in the current system, I know that as long as the feed price does not grow larger than 150% of the current feed price then my short position will not be called in the next 29 days. I have no such guarantee with your proposed system.

Actually to make it equivalence better we would require that given two orders (a BitUSD buy order and expired cover order) at the same price, the BitUSD buy order is preferentially matched over the expired cover order, and given two expired cover orders at the same price, the expired cover order corresponding to the short position with the lower interest rate is preferentially matched over the expired cover order corresponding to the short position with the higher interest rate.

- In the proposed system, the loans are callable at any time (according to market demand), but the queue of callable shorts is rank-able. That is, every short knows where they stand in this queue, and if they are unhappy with their position, they can lift the interest rate or collateral. Essentially if they are keen to continue carrying the short, they can continue to do so indefinitely, as long as bitCurrency demand supports this. Those less keen to hold are the shorts at risk of call. There is a risk though that if they are not actively monitoring the queue, that they may unexpectedly fall in the queue and get called, so this may require an alert mechanism.

I think allowing shorts to raise the interest rate they pay after getting matched is a nice addition to the current system. This would be useful with the matching priority changes described above to make it less likely that their expired short gets matched. To reiterate, the callable shorts in your proposal are equivalent to expired shorts in the current system. Non-expired shorts in the current system are something that does not exist in your proposed system. Essentially your system is like setting the expiration period for shorts to 0 days and setting up the matching order for expired cover orders to be in the ascending interest rate order. Expired shorts would still be capable of being manually covered. To get the BitUSD needed to manually cover, the short position owner would get BitUSD the same way a "depositor" would (buy BitUSD just slightly above the feed price).

- In the proposed system, any transaction, including being called, is transacted at the feed price. There is zero price risk. In the current system, there is price risk when shorts are called or expired, that could work out favourably or result in loss.

What do you mean by price risk?

Regarding the BTS bull Pool proposal:

I'll have to spend time thinking about your BTS bull pool proposal later and get back to you on it.

288
General Discussion / Re: Reworking the wallet trading interface
« on: March 17, 2015, 04:31:19 am »
I have an alternative view which is nicer for larger screens:
Code: [Select]
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|^|
| BitUSD : BTS [flip]      Total BitUSD Supply: 433,000.00 BitUSD   Total BTS Supply: 2,503,706,843     Show Quantity in:  (*) BitUSD  ( ) BTS                                                |||
|                                                                                                                                                                                             |||
| ------- -------- --------- --------- -----------                  ||  24h Volume   High         Low          Change    Latest Price   Highest Bid   Lowest Ask   Spread   Call Price        |||
| | Buy | | Sell | | Short | | Cover | | History |                  ||  7,000.00     111.0000     90.0000      -12.05%   105.0000       111.1111      112.0000     0.797%   100.0000          |||
| |     | |      | | ----- | |       | |         |                  ||  BitUSD       BTS/BitUSD   BTS/BitUSD             BTS/BitUSD     BTS/BitUSD    BTS/BitUSD            BTS/BitUSD        |||
|-------------------------------------------------------------------|| ------------------------------------------------------- | ------------------------------------------------------------ |||
| ----------------------------------------------|                   || |                                                     | | |                                                          | |||
| | Balance       0.00 BTS (account-name)       |                   || |                                                     | | |                                                          | |||
| |                                             |                   || |                                                     | | |                                                          | |||
| | Collateral    |            0.0 | BTS        |                   || |                                                     | | |                                                          | |||
| |                                             |                   || |                                                     | | |                                                          | |||
| | Interest Rate |            0.0 | APR        |                   || |                                                     | | |                                                          | |||
| |                                             |                   || |                                                     | | |                                                          | ||| 
| | Price Limit   | (optional) 0.0 | BTS/BitUSD |                   || |                                                     | | |                                                          | |||
| |               Call Price 100 BTS/BitUSD     |                   || |                Price History Chart                  | | |                    Market Depth Chart                    | |||
| |                                             |                   || |                                                     | | |                                                          | |||
| | Quantity      |            0.0 | BitUSD     |                   || |                                                     | | |                                                          | |||
| |                                             |                   || |                                                     | | |                                                          | |||
| |               [Short BitUSD]                |                   || |                                                     | | |                                                          | |||
| |                                             |                   || |                                                     | | |                                                          | |||
| -----------------------------------------------                   || |                                                     | | |                                                          | |||
|                                                                   || |                                                     | | |                                                          | |||
| Open Short Sell Orders                                            || |                                                     | | |                                                          | |||
| ---------------------------------------------------------------   || |                                                     | | |                                                          | |||
| | Price Limit  ^1 | Interest Rate -- | Quantity -- | Action   |   || ------------------------------------------------------- | ------------------------------------------------------------ |||
| | (BTS/BitUSD)    | (APR)            | (BitUSD)    |          |   ||                                                         |                                                              |||
| ----------------------------------------------------------------- || Order History ([longer detailed history])               | Bids ([margin call details])   Asks ([short sell details])   |||
| |        112.0000 |             1.00 |    1,100.00 | [Cancel] |^| || ------------------------------------------------------- | -----------------------------  ----------------------------- |||
| |                 |                  |             |          ||| || | Timestamp | Match Type    | Price        | Quantity | | | Quantity   | Price        |  | Price        | Quantity   | |||
| |                 |                  |             |          |v| || |           |               | (BTS/BitUSD) | (BitUSD) | | | (BitUSD)   | (BTS/BitUSD) |  | (BTS/BitUSD) | (BitUSD)   | | |
| ----------------------------------------------------------------- || ------------------------------------------------------| | -----------------------------  ----------------------------- | |
|                                                                   || | 22:16:30  | Call  - Short |     110.0000 | 3,000.00 | | |  12,000.00 |     111.1111 |  |     112.0000 |   1,215.00 | | |
|                                                                   || | 22:00:00  | Sell  - Buy   |     101.0000 |    40.00 | | |     600.00 |     101.2500 |  |     120.0000 |     750.00 | | |
|                                                                   || | 21:30:00  | Short - Buy   |     101.0000 |    50.00 | | |   1,601.32 |     100.0000 |  |     120.0000 |   5,000.00 | | |
|                                                                   || | 21:00:00  | Cover - Sell  |      98.0000 |   100.00 | | |     512.34 |      99.9091 |  ----------------------------- | |
|                                                                   || | 20:30:00  | Buy   - Short |      97.0000 |   500.00 | | |     200.00 |      99.0000 |                                | |
|                                                                   || | 20:00:00  | Buy   - Sell  |      96.0000 |   100.00 | | |     100.00 |      98.0000 |                                |v|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

This is a two column layout even though it looks like a three column layout. To simplify the description I will refer to it as if it is a three column layout. The left column sticks to the window (meaning it doesn't scroll with the page). The middle+right columns are separated in the vertical orientation by the bottom of the headers of the "Order History", "Bids", and "Asks" tables (which are all flushed). The top half of middle+right column sticks to the page (meaning the two charts and the headers of the tables are always visible no matter how much the user scrolls). The bottom half of the middle+right columns (which consist of the entries of the tables) scroll with the page. The middle+right column is as long as is necessary to fit all of the items that go in the "Bids" and "Asks" tables. The order history can have max(5, max(number of items in Bids table, number of items in Asks table)) number of items (so that bottom of the "Order History" table is flushed with either the "Bids" table or the "Asks" table). To see more of the order history, the user must click on the [longer detailed history] link which will load up a more detailed version of the table in a new page.

The "Bids" and "Asks" tables in the right column are condensed forms of the "Bids" and "Asks" tables I discussed in my previous post. The Type column has been removed and is instead encoded through the color of the Price text. The color of the Price text only applies to the part of the text that includes the digits to the left of the decimal place; the color of digits to the right of the decimal place, and the decimal character as well, are always the same grey color. There are 5 distinct colors for the Price labeled as follows: BID_COLOR, ASK_COLOR, EXPIRED_COLOR (for table items with the "Expired Cover" type), CALL_COLOR (for table items with the "Margin Call" type), and SHORT_COLOR (for table items with the "Short Sell" type). For any items in the "Bids" table that are not one of ("Expired Cover", "Margin Call", "Short Sell"), the Price field of that item will be colored BID_COLOR (which I suggest be a green color).  For any items in the "Asks" table that are not one of ("Expired Cover", "Margin Call", "Short Sell"), the Price field of that item will be colored ASK_COLOR (which I suggest be a red color). And again any items in the table that contain the user's open orders should be highlighted in some way. In addition, the "Bids" label will be colored BID_COLOR and the "Asks" label will be colored ASK_COLOR. Also, the Quantity field should also be colored grey for part to the right of the decimal (including the decimal) and NEUTRAL_COLOR (which is probably best to use white if the background is dark or black if the background is light) for the part to the left of the decimal. This applies to all quantity-like fields in other tables as well (as well as "Price Limit" and "Interest Rate" in "Short Sell Orders" and "Open Short Sell Orders" and "Call Price", "Interest Rate", and "Owed" in "Margin Call Orders" and "Open Margin Call Orders").

The "Order History" table shown above in the middle column is a simplified version of the normal "Order History" table found in BitShares. The timestamp only shows the time in the day but not the date. The price column refers to the price of the matched driving order (the submitted order that caused the match to occur as soon as it was included in the blockchain) not driven order (the latent order sitting in the order book waiting to get matched). The quantity column also refers to the quantity of the matched driving order. The "Match Type" column is of the form "<Driving Type> - <Driven Type>" where <Driving Type> is the type of the driving order and <Driven Order> is the type of the driven order (both types can be one of "Call", "Cover", "Short", "Sell", or "Buy"). The Quantity field should be colored as described in the previous paragraph. Also, the Price field should be colored in a similar way where the choice of color comes from the <Driving Type>: "Call" -> CALL_COLOR, "Cover" -> EXPIRED_COLOR, "Short" -> SHORT_COLOR, "Buy" -> BID_COLOR, "Sell" -> ASK_COLOR.

The "History" tab in the left column shows the "Account Orders History" table. Each of the tables under the tabs in the left column are of limited height, however, unlike the "Order History" table, they are scrollable (if necessary).

Clicking on the [margin call details] link or the [short sell details] link will create a hovering overlay centered horizontally and vertically over the region of space encompassing the Price History Chart (with some margin on all sides). This overlay will contain a scrollable table of either "Margin Call Orders" if [margin call details] was clicked or "Short Sell Orders" if [short sell details] was clicked. The overlay can be closed by clicking on an X on the corner of the overlay window. Note that the two links may be swapped (meaning [margin call details] would be next to "Bids" and [short sell details] would be next to "Asks") if the market was flipped to be "BTS : BitAsset". The [margin call details] link will be colored CALL_COLOR and the [short sell details] link will be colored SHORT_COLOR. Also, within the "Margin Call Orders" table, the "Margin Called" condition will be colored CALL_COLOR, "Expired" condition will be colored EXPIRED_COLOR, and "Active" condition will be colored NEUTRAL_COLOR.

289
General Discussion / Re: Reworking the wallet trading interface
« on: March 17, 2015, 01:12:12 am »
My preference would be something like the following:
Code: [Select]
BitUSD : BTS [flip]      Call price       Last price       Spread   Total BitUSD Supply   Total BTS Supply
                         100 BTS/BitUSD   105 BTS/BitUSD   0.905%    433,000.00 BitUSD     2,503,706,843 BTS
------------- -----------
| Orderbook | | History |
| --------- | |         |
----------------------------------------------------------------------------------------------------------------------------------
|   |                         
|   |                                                   [Orderbook Chart]
|   |
|   | Show quantity in: (*) BitUSD  ( ) BTS
|   |
|   | Bids                                                           Asks
|   | ----------------------------------------------------------     ----------------------------------------------------------
| l | | Type          | Quantity (BitUSD) | Price (BTS/BitUSD) |     | Price (BTS/BitUSD) | Quantity (BitUSD) | Type          |
| e | ------------------------------------------------------------   ------------------------------------------------------------
| f | | Margin Call   |         12,000.00 |           111.1111 |^|   |           112.0000 |          1,215.00 | Short Sell    |^|
| t | | Buy BitAsset  |            600.00 |           101.2500 |||   |           120.0000 |            750.00 | Sell BitAsset |||
|   | | Expired Cover |          1,601.32 |           100.0000 |||   |           120.0000 |          5,000.00 | Short Sell    |||
| c | | Buy BitAsset  |            512.34 |            99.9091 | |   |                    |                   |               |||
| o | | Buy BitAsset  |            200.00 |            99.0000 |v|   |                    |                   |               |v|
| l | ------------------------------------------------------------   ------------------------------------------------------------
| u |
| m | [*] Display detailed short information
| n | ------------------------------------------------------------------------------------------------------------------
|   |
|   | Margin Call Orders                                                       
|   | ---------------------------------------------------------------------------------------------------------------
|   | | Call Price (BTS/BitUSD) ^2 | Interest Rate (APR) -- | Owed (BitUSD) -- | Expiration      ^3 | Condition  v1 | 
|   | -----------------------------------------------------------------------------------------------------------------
|   | |                   110.0000 |                   0.00 |        12,000.00 | 6 Days             | Margin Called |^|
|   | |                   130.0000 |                   2.00 |         1,501.32 | 2 Days Ago         | Expired       |||
|   | |                   135.0000 |                   0.00 |           100.00 | 1 Day Ago          | Expired       |||
|   | |                   130.0000 |                   0.00 |        10,000.00 | 10/25/2015 9:18 AM | Active        |||
|   | |                   165.0000 |                   1.10 |         3,000.00 | 30 Days            | Active        |v|       
|   | -----------------------------------------------------------------------------------------------------------------
|   |
|   | Short Sell Orders
|   | -------------------------------------------------------------------------------
|   | | Price Limit (BTS/BitUSD) ^1 | Interest Rate (APR) v2 | Quantity (BitUSD) -- |     
|   | ---------------------------------------------------------------------------------
|   | |                    112.0000 |                   1.00 |             1,100.00 |^|   
|   | |                    112.0000 |                   0.50 |               115.00 |||   
|   | |                    120.0000 |                   0.00 |             5,000.00 |||   
|   | |                             |                        |                      |||
|   | |                             |                        |                      |v|   
|   | ---------------------------------------------------------------------------------
|   |
|   | ------------------------------------------------------------------------------------------------------------------
|   |
----------------------------------------------------------------------------------------------------------------------------------
The left column under the "Orderbook" tab would be similar to what you have in the left column in your layout (the box with tabs to Buy, Sell, and Short and the respective open orders tables underneath), however there would be an addition Cover tab which would include the "Open Margin Orders" table (renamed "Open Margin Call Orders"). Later I can imagine the Cover tab supporting functionality like partial covers and adding collateral. Also the BitUSD balances and BTS balances would be shown in the left column (on top of the buy/sell/short box) and not in the right column (because they are user-specific information not market-specific).

There are two main tabs in my proposed interface: "Orderbook" and "History". The "History" would show the price history chart and the "Blockchain Orders History" table underneath it in the right column, and it would put the "Account Orders History" table into the left column. The "Orderbook" tab looks as I have laid out in ASCII above. I will explain it in more shortly. Despite this tabbed interface, if the screen is large enough, I think it makes sense to instead pull out the history tab contents and put it on the right side next to the orderbook tab contents. In this case I think the "Account Orders History" table should not be in a column by itself but rather underneath the "Blockchain Orders History" table. So the layout for large screens would be a three column layout in which the left column is the same as the left column described above, the middle column is the contents of the right column in the mockup above, and the right column is the price history chart followed by the "Blockchain Orders History" table followed by the "Account Orders History" table.

The tables have removed the two quantities (Quantity and Total) and kept only one. The asset that is used to display the quantity is the one that is selected in the "Show quantity in:" option box. The user change that selection at any time and it will update the Quantity columns of all of the tables appropriately. The market can be flipped as usual using the [flip] button. If the [flip] button is pressed in a "BitUSD : BTS" market, it will replace it with a "BTS : BitUSD" market and make appropriate changes in the rest of the interface. In general, the market is "Quote : Base". The prices will be given in Quote/Base. So if the market was flipped to "BTS : BitUSD" all the prices in BTS/BitUSD would be replaced with prices in BitUSD/BTS (also the ascending/descending sort of a price column would be flipped). By default the quantity to show is selected as the Quote asset, but of course it can be changed with the "Show quantity in:" option box.

The "Display detailed short information" checkbox toggles whether the "Margin Call Orders" table and "Short Sell Orders" table will appear underneath it. By default this checkbox can be unchecked (meaning not showing the tables).

When looking at a "Quote : Base" market in which neither Quote nor Base is BTS or alternatively one of Quote or Base is BTS and the other is not a BitAsset, the layout would look the same except there would be no "Display detailed short information" checkbox (and no "Margin Call Orders" table or "Short Sell Orders" table), and the Type columns from the "Bids" and "Asks" table would be removed.

When looking at a "Quote : Base" market in which Base is BTS and Quote is a BitAsset, the "Margin Call" type and "Expired Cover" type would be under the "Bids" table and the "Short Sell" type would be under the "Asks" table (as demonstrated in the example above). On the other hand, when looking at a "Quote : Base" market in which Quote is BTS and Base is a BitAsset, the "Margin Call" type and "Expired Cover" type would be under the "Asks" table and the "Short Sell" type would be under the "Bids" table.

The orderbook chart should always show the order types that fall into the "Asks" table on the right side and show the order types that fall into the "Bids" table on the left side. They should also be color coded to match the color of the titles of the "Asks" and "Bids" tables appropriately. The orderbook chart should allow one to zoom in/out and define the domain to be smaller than [lowest bid price, highest ask price]. Also the quantity shown in the orderbook chart should be of the asset selected from the "Show quantity in:" option box. The orderbook chart should of course visualize the feed price as a line as it currently does.

As can be seen by my mockup, the short sell orders are combined with the sell orders into one table. The "Short Sell Orders" table would include detailed information about the short sell orders that are not included in the combined table (such as interest rate offered), but would also differ from the combined order in that the price limit column would be the price limit set by the short (even if it is less, in BTS/BitAsset price, than the current price feed). The number shown for short sell orders in the price column of the combined table is instead max(price limit in BTS/BitAsset, feed price in BTS/BitAsset) if the Base asset is BTS or min(price limit in BitAsset/BTS, feed price in BitAsset/BTS) if the Quote asset is BTS. Also, short sell orders and sell orders at the same price are not coalesced together in the combined table to show that there are two different types of orders offered at the same price (my hope is that the market engine would actually match sell orders before short sell orders at the same price so that this visual distinction actually has important meaning, but until then it is just an aesthetic choice). However, multiple short sells orders at the same price are coalesced together and multiple sell orders at the same price are coalesced together. Similarly, expired cover orders, margin call orders, and buy orders are not coalesced together in a way that mixes types in the combined table (again it would be nice if the market engine guaranteed that given three orders of different types at the exact same price, the margin call order was matched before the expired cover order which was matched before the BitAsset buy order). However, orders of the same type and at the same price are coalesced together.

The collateral column is removed from the tables because it is redundant information (it can be calculated from the given columns and knowledge about the initial collateral requirements, margin call requirements, and expiration period of the BitAsset system). However, this information and any other detailed information (such as the precise time that a short position expires or the principal BitAsset owed not counting the interest) can be included in tooltips when hovering over a specific order in any of the "Margin Call Orders", "Short Sell Orders", "Blockchain Orders History", "Account Orders History", and "Open * Orders" tables. The tooltip over orders in the "Bids" and "Asks" tables could not provide the same level of information because in general orders can be coalesced together in those tables. However, the tooltip could still provide a calculation of the Quantity in units of the other asset type that is not already displayed as a column in the table.

The "Bids" and "Asks" tables should highlight orders for which one of the user's orders are coalesced into. Also, orders exactly at the price feed should also be highlighted in a different color.

The "Margin Call Orders" table adds a Condition column to show whether the short position is Active, Expired, or Margin Called. The expiration column also shows the expiration date even if the short position has already expired ("1 Day Ago" to "30 Days Ago" to a timestamp if older than 30 days). An "Expired" short position can become "Margin Called" but a "Margin Called" position can never become "Expired". The Expired and Margin Called items in this table are not removed until their BitAsset debt with interest (which is the Owed column) is fully paid off. Margin Called orders might have a Call Price larger than the current feed price, as shown in the mockup example. This can happen since the Margin Call would have been triggered when the call price was lower, but partially covering the short through the margin call could increase the call price. For example, if the short in that example originally owed 15,000 BitUSD and had a call price of 99 BTS/BitUSD, then the price feed updating to 100 BTS/BitUSD would trigger a margin call on that short which would cause it to purchase asks up to a price of 111.1111 BTS/BitUSD. Let us pretend there was only one ask order below that price: a short sell order for 3,000 BitUSD at 0% interest and a price limit at 110 BTS/BitUSD. Then the margin call would match against that order (fully matching the short sell order), pay 330,000 BTS from its collateral of 2,970,000 BTS, and reduce its debt owed from 15,000 BitUSD to 12,000 BitUSD. Thus the new collateral would be 2,640,000 BTS and the new debt owed would be 12,000 BTS, which correspond to a call price of 110 BTS/BitUSD. But just because the new call price is higher than the feed price doesn't mean the order is no longer margin called; the margin call order stays (and in fact moves with the price feed maintaining its 10% difference) until the remaining 12,000 BitUSD is fully matched.

Finally, the ^N and vN indicators on the "Margin Call Orders" and "Short Sell Orders" table indicate table sorting rules. The arrow direction indicates whether the column is sort in ascending or descending order. The number is a priority in sorting. The items in the table are sorted according to the column that has the first priority in sorting order, then any items with the same value are sorted according to the column that has the second priority in sorting order, and so on. Clicking on the sorting indicator toggles between ascending, descending, and neutral. Whenever a sorting indicator that had priority N is toggled to neutral, any existing columns with non-neutral sorting indicators that have priority greater than N in the table have their sorting priority decremented by one automatically. Whenever a sorting indicator that was neutral is toggled to a non-neutral setting, it gets a sorting priority that is one larger than the current largest sorting indicator priority of the table.

290
This sort of thing is preferable in general and should be done eventually, but not on the roadmap for 1.0.

I feel like we should start organizing a list of new features that the core devs agree are desirable for after 1.0 and order them by priority.

A list of things off the top of my head (that the core devs do not necessarily agree should be done) in no particular order:
  • Non-binding proposals (a very basic implementation is described here but I would prefer a nice one)
  • Dynamic parameters (and potentially even binding proposals which are proposed by delegates and ratified by shareholders)
  • UIA dividends
  • Prediction markets
  • DNS
  • Voting (with cryptographic privacy so that it is suitable for elections)
  • Decentralized BTC/BitAsset exchange
  • BitShares Standard Gateway for ECDSA altcoins (Actually I have a better, more secure version of it in mind than the one I linked to that I haven't written up yet.)
  • Better distribution of BitAsset yield
  • Generalized BitAssets (which allow using any other BitAsset as the collateral as well as custom price feed definitions, margin call percentage limits, and authority slates)
  • Bond markets
  • Constraining transactions to particular blockchain forks as added security, or "Economic Clustering" as NXT calls it (We used to have this with TaPoS and was IMO unnecessarily removed from the transition to DPOS, but it is very easy to add back in by slightly changing the transaction signing and validation procedure.)
  • Schnorr signatures as an optional alternative to ECDSA (which I believe should make using threshold signatures easier and faster)
  • Improvements to lightweight client security
  • Faster validation (by a super majority of delegates) of the blockchain using threshold signatures, which also makes using secure lightweight wallets far more convenient
  • Blockchain pruning
  • Smart contracts / Turing complete scripting
  • Support for child DACs

Of these, the only ones I believe there is core dev support for are dynamic parameters, prediction markets, DNS, Voting, smart contracts (however there may not be consensus on architecture and implementation details for smart contracts / Turing complete scripting), bond markets, and perhaps at least some form of generalized BitAssets. Besides that I am sure there is at least partial dev support for non-binding proposals and a decentralized BTC/BitBTC exchange. It would be nice to get those listed somewhere (and any other ones I forgot that the devs agree to) and figure out a prioritization for them.

In my opinion one of the highest priorities should be the Turing complete scripting since if that is done well it can be used to allow other outside devs to easily implement many of the other features in parallel such as DNS, Voting, decentralized BTC/BitAsset exchange, prediction markets, bond markets, and perhaps even generalized BitAssets (although I think I would prefer if the generalized BitAssets were done natively, and perhaps the bond market as well, or at least if "BitBTS" collateralized by BTS with a 100% collateral requirement was added, as a means of separating BTS value from BTS voting rights, then I guess I might be okay with generalized BitAssets implemented with the Turing complete scripting). Another high priority feature, IMO, is actually a set of features that I think work well together which is to implement Schnorr signatures, the threshold signature block signing by a super majority of the delegates, and the changes to the consensus protocol that commit database state to the block headers which allow lightweight clients to operate more securely (and have the side benefit of making blockchain pruning feasible).

291
I don't know about changing potentially consensus breaking parameters like the block interval, but I agree that other parameters (like fees) should be dynamic.

Perhaps before requiring binding proposals it makes sense to use non-binding proposals to figure out stakeholder wishes and let the authenticity of the change come from a super majority of the delegates. So if more than 75% of delegates agree to a particular dynamic parameter change (for example, changing the asset registration fee or transaction fee) then the blockchain will accept the new parameter (no need to download new binaries compiled with a changed constant).

292
I have a big issue with the loans being callable at any time. That makes the deal for borrowers far worse than our current system. At least someone who shorts in the current system and maintains enough collateral to not be margin called knows that they do not have to realize any losses for 30 days. I question whether you will get enough borrowers in this system to actually support the BitCurrency demand from depositors.

I also feel like this is a step down from the current system in that the borrowers are forced to match at the price feed (not allowed to trade above the BTS/BitAsset price). In our current system, when shorts don't want to short at the price feed they can offer their short sell orders at a higher price. In your system, the only option borrowers have in this case is to not be in the queue at all (since they can't get any lower than 0% interest).

In fact, it seems like the BitCurrency system you propose is very similar to our current system with the following modifications:
  • Margin calls have a price limit at the BitAsset/BTS feed price rather than 10% below. (I see no reason for this modification.)
  • Short sell orders are forced to have a price limit of 0 BTS/BitAsset. (I see no reason for this modification.)
  • A BitAsset sell order at the same price as a short sell order gets priority over the short sell order. (Something I think should exist in our current system anyway.)
  • If there are no BitAsset buy orders at or above (in BTS/BitAsset) the price feed but there is a BitAsset sell order at or below the price feed, the blockchain will automatically call the short position offering the lowest interest rate until the BitAsset sell order is fully matched. (This is the modification I have the biggest problem with.)


Edit: To demonstrate part of the equivalence of the two systems and show how it does not help prevent BitAsset or BitCurrency premiums, let us examine what happens if there is a BitAsset premium. If BitAsset supply is not sufficient for the current demand, it will be trading at a premium. To correct this, shorts needs to short sell more BitAssets to increase the supply (which they can do if the BitAssets are at a premium since, assuming relatively accurate price feeds, the bids will be at or above the BTS/BitAsset feed price). But if it is a bear market like it is now, the shorts may not be willing to short down to the price feed since there is no guarantee that the BitAsset/BTS will actually rise in the near future. Similarly with the BitCurrency proposal, in a bear market borrowers will not be willing to borrow at the price feed even at 0% interest. Any one who wants to deposit BTS and get more of the BitCurrency will be forced to wait in the queue. Those who are desperate to get the BitCurrency will buy some from a BTS/BitCurrency market on an external exchange at a premium price. There is no way of getting around that, we just embrace it and put that external exchange on the blockchain DEX (as the BTS/BitAsset market) and allow bids and asks to match above the feed price.



As for your BitTradingAsset proposal, I believe that is the "bond market" that we all would like to eventually see on BitShares in addition to BitAssets. But obviously it is a new feature that is less of a priority than BitAssets and getting the rest of the core product robust and stable.

293
Stakeholder Proposals / Re: BitSuperLab please fix your feeds
« on: March 16, 2015, 04:28:51 pm »
@Xeroc, I haven't actually designed a manipulation algorithm to exploit feed price prediction, but isn't it obvious that a noisy feed would be better than a predictable one? I'm working from this principle: if I can execute trades on btc38 and predict exactly what that will do to the price feed, then I can make money moving the price feed around. Probably a fraction of a percent per trade, but the fact is I'll be taking money from the system without providing any benefit. Doesn't that sound like something we should try to prevent?

It isn't obvious to me. I don't see how a deterministic price feed opens up any new attack vectors.

Let's say you could predict what the price feed would be within the next hour with perfect precision and greater than 99% confidence. What could you do with that information over someone who knows nothing about the price feed other than what it currently is? It doesn't allow you to predict how the bids and asks on the DEX will change. It allows you to know how short sells with a price limit below the feed price will change (assuming they do not get cancelled). So if you can predict that the price feed will shrink (in BTS/BitUSD) in the next 30 minutes, then maybe you decide to sell BitUSD right below the price feed and then wait for 30 minutes and then buy back more BitUSD from the short wall at the lower price. I just view this as similar to profiting from arbitrage and find it to be totally legitimate market behavior. Of course it isn't without risk since the short sell at the price feed might be cancelled after you sell the BitUSD but before the 30 minutes has passed. It also is even less of a serious issue if the delegates incorporate the most recent outside exchange info into their price feed just prior to publishing. In that case, you cannot predict the price feed very far into the future (less than 8 minutes if delegates update their price feeds each time they produce a block) since you can't predict how bids and asks will change on outside exchanges.

294
ok so whats enforcing judges to participate? Truthcoin would pay ppl to particpiate but whats the right amount? Is it like a delegate that would tell community he woukd charge so and so to become a judge where ppl can choose that person to decide outcomes on events? Seems like its complicating it more than it should?

Yeah, once you start adding in details it gets more complicated. I think the creator of the prediction market should specify the parameters like how much the payment for the judges that provide the consensus outcome should be, what percentage fee to charge per market order, and what percentage of that goes towards increasing the liquidity of the LS-LMSR market maker while the rest goes into a pool from which to pay the judges and the initial liquidity providers. Also, the prediction market should likely not even open until a super majority of the selected judges agree to judge the prediction market (then they would be judged negatively by the public if they committed to provide outcomes but failed to do so).

295
Trimming the blockchain is a feature I look forward to eventually seeing in BitShares. I don't expect it will happen anytime in the near future though.

I've written my thoughts on how this could be done here.

296
How would a judge slate work? Would it solve the issue of resolving events? It would need to be a decentralized solution as much as the delegates.. if so then ya i agree

I believe a judge slate would be a set of up to 111 account IDs (not necessarily only delegate accounts). Then if a majority of the judges in that set agree to a particular outcome for a prediction market, the blockchain would treat it as the outcome for that prediction market to settle the rewards.

The decentralized would only be limited to 111 individuals in that case (not the potentially much larger group holding votecoins as in Truthcoin and Augur) and there wouldn't be any automatic stake redistribution based on how they voted (PCA / SVD), instead users would have to manually decide on which accounts were the most trustworthy based on their past record and use that to inform future decisions on which set of judges to pick in future prediction markets. But it is a much simpler system (compared to Truthcoin and Augur) to get quickly working. Unfortunately, even that simpler system has to a take a backseat until BitShares gets its core product in proper shape first.

297
I hope the new version protect all automatic execute cover order, include expired order and margin call order.
don't sell the collection BTS  at price less than feed price

I'm not sure if the current implementation of the code as of v0.6.2 has the expired cover order set a price limit at the feed price as it is supposed to (I thought the recent expired short not buying up BitUSD sell orders at a BitUSD/BTS price below the feed price showed that it in fact does do this?), but the margin call cover order is supposed to have a price limit that is 10% lower than the BitAsset/BTS feed price. Why do you want margin call cover orders to get the benefit of being limited only to the feed price? With the 5% margin call fee gone that would mean there would be no disadvantage at all to letting a short get margin called (meaning no motivation to add collateral to a short position to prevent margin calls).

298
General Discussion / Re: The BitShares Online Web Wallet is ready...
« on: March 13, 2015, 03:48:12 am »
I thinking it might be good to drop the login and guest.  We should have a new landing page.  The Tollbar could then say "login" instead of "lock" then toggle (to lock) after a login.

Oh, I like that. And the landing page could be the exchange instead of the dashboard (which wouldn't exist when not logged in). Although I don't see the reason for using "lock" in that case instead of "Log out" to be symmetric with the "Login". The right hand corner of the toolbar could instead be a drop down menu. When a wallet exists on the computer and the wallet is not already logged in, the drop down would by default show "Login" and clicking on the drop down would reveal the other two options: "Create new wallet" and "Recover wallet". When a wallet does not exist on the computer, the drop down would by default show "Create wallet" and clicking on the drop down would reveal the other option: "Recover wallet". When already logged into the only wallet on the computer, the drop down would by default show "Log out" and the drop down would actually be disabled since no other option would be available. When already logged into one of multiple wallets on the computer, the drop down would by default show "Log out" and clicking on the drop down would reveal the other option: "Switch wallet". Clicking on "Switch wallet" would log out of the current wallet and take the user to the same page that clicking on "Login" takes them: a page that allows the user to type in the wallet password and log in, or click a button to return to the logged out landing page. Clicking on "Log out" would take the user to the logged out landing page.

299
General Discussion / Re: Cryptohedge and the bter hack
« on: March 13, 2015, 03:25:49 am »
We're still trying to actually get withdrawals through. Once we have our gold and bitUSD out we will do a full calculation of losses and liabilities. Right now it looks as if about 30% of all CFSGOLD and CFSUSD funds have been turned into bter BTC IOU's that cannot be withdrawn from bter but supposedly will become real BTC over time through income from trading fees. We then have to figure out a way we can allow people to withdraw both their bitgold/bitusd and their portion of the IOU, something that can't yet be done with UIA's.

I think you will have to create new UIAs CFSGOLDB and CFSUSDB and sharedrop those on a snapshot of their respective UIAs. So CFSGOLDB would be distributed to a 100% snapshot of CFSGOLD and CFSUSDB would be distributed to a 100% snapshot of CFSUSD. CFSGOLD would then become a claim on the amount of BitGold you can get out of BTER while CFSGOLDB will be a claim on the amount of BTC you can eventually get from BTER from the BTC IOUs on the 30% of BitGold they took. Similarly, CFSUSDB would become a claim on the amount of BitUSD you can get out of BTER while CFSUSDB will be a claim on the amount of BTC you can eventually get from BTER from the BTC IOUs on the 30% of BitUSD they took. Alternatively, perhaps you could instead combine  CFSGOLDB and CFSUSDB into one UIA and just sharedrop that on a combined snapshot. Either way, when you finally received the BTC you will gradually need to convert the BTC to BitBTC (perhaps as a part of making the BTC/BitBTC markets?) so you can buy back and burn the CFS*B assets in the CFS*B/BitBTC market(s) on the BitShares DEX.

300
General Discussion / Re: The BitShares Online Web Wallet is ready...
« on: March 13, 2015, 02:30:12 am »
Can we have the open shorts orders and margin call orders show up in the web wallet like they do in the regular wallet? I know we can't actually use the exchange in the web wallet yet, but just having a more reliable source (bitsharesblocks.com often seems to be out-of-date or incorrect in the order books it displays for some reason) for short information through an easily accessible website is nice.

I also agree along the lines of what speedy is suggesting in that it would be nice to have one main read-only guest account (perhaps with the dashboard disabled and account pages made read-only so that no one could transfer funds to and from the account) which could have permalinks to the various views (like the exchange markets, delegate pages, account pages, etc.). By the way, I really appreciate being able to go into the console on a guest account (it is nice to quickly be able to load a web page and run blockchain_* accounts without even needing to type in a password).

Pages: 1 ... 13 14 15 16 17 18 19 [20] 21 22 23 24 25 26 27 ... 81