BSIP: 0002
Title: Refund Create Order Fees on Cancel
Authors: Daniel Larimer <[email protected]>
Fabian Schuh <[email protected]>
Status: Installed
Type: Protocol
Created: 2015-12-16
Discussion: <https://github.com/cryptonomex/graphene/issues/445>
<https://bitsharestalk.org/index.php/topic,20107.0.html>
Worker: 1.14.7
To make the BitShares decentralized exchanges more similar to other exchanges there should be no fee for creating orders that do not get filled. Unfortunately, to prevent abuse, a minimum fee is still necessary.
This proposal will charge the minimum order fee at the time the order is created. It will be refunded if the order is canceled before any part of the order is filled. A small fee will be charged to cancel orders. This order cancellation fee will be just enough to prevent spam (equivalent of a fraction of a Dollar cent).
If the fee is paid in something other than BTS, it will be converted to BTS via the fee pool at the time the order is placed. If the order is canceled, BTS will be refunded to the user's account.
Recommended Order Creation Fee: $0.20 for normal users $0.04 for LTM Recommended Order Cancelation Fee: $0.01 for normal users, $0.002 for LTM
As a result, the minimum market fees for normal users will be less than those of centralized exchanges for orders greater than $100. For lifetime members, orders above $20 will be cheaper than the 0.2% fee charged by normal exchanges.
Paying fees in BTS is the cheapest way to pay fees because the core-exchange-rate for UIA usually charge a slight premium to handle market risk. This means that the next order you place will use the BTS to pay the fee rather than the user asset. Think about it as getting a refund in "store credit". If you place an order, cancel an order and then decide you don't want to do any more business with BitShares then you will have to sell the BTS (which will require placing an order) or "transferring".
Stated another way, for trading bots it doesn't matter that the refund is in a different asset. For users it doesn't matter either. It will only impact those who attempt to flood with a lot of orders, then cancel all of them. They will end up converting their UIA to BTS at poor exchange rates and then having to sell the BTS.
Bottom line, we presume someone placing an order will eventually want it filled. By refunding them in BTS they can eventually get it filled and end up with 0 BTS.
A concern is that the rule may encourage taker but discourage maker, as if an order is partly filled, the creation fee will not be refunded, and obviously taker can be more easily to make sure his order is fully, not partly filled.
Furthermore, a fee has to be charged for anti-spam. Orders create objects which must be kept in memory which imposes a resource cost on every node on the network (plus more cost for storage / bandwidth for the transaction). Cancelling an order frees up memory, which can be viewed as a negative resource cost, represented by the refunded fee.
Ultimately, this reflects a tension between the economic value of liquidity (market makers should be encouraged because a bigger book is better) and its cost (every order consumes memory). If we make the fee equal to cost, someone deciding whether to place an order can determine whether the cost exceeds the value, and the tension is resolved in a decentralized market-based way.
This document is placed in the public domain.