Skip to content
34 changes: 15 additions & 19 deletions bsip-0048.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,44 +11,40 @@
# Abstract

The possibility of creating assets on the BitShares Blockchain is a core feature
of our platform. In the case of an ico, the ico-holders can create an asset with
of our platform. In the case of an ICO, the ICO holders can create an asset with
a fixed maximum supply. However this maximum supply can be changed by the
asset creator (issuer) anytime. This exposes participators ico to the risk,
of loosing value of their bought asset.
asset creator (issuer) anytime. This exposes participants in the ICO to the risk
of losing value of their purchased asset.

With this BSIP a flag will be introduced which forbids the modification of the maximum
supply of an issuer created asset.

# Motivation

The implementation of a flag, to disable the modification of the maximum supply for
issuer created asset, has effects for both sides. On the one side the security for the
participators or non-issuer users increases, because the value of their assets (tokens)
can't be manipulated by exposing the market to more created tokens. And on the other side
it is good marketing for the ico-hoders, because they can advertise with their fixed
maximum supply.
The implementation of a flag to disable the modification of the maximum supply for
issuer created asset, has benefits bor both the participants and the ICO holder. Participants int the ICO are assured the value of their assets (tokens) will not be diluted by issuers creating more tokens. ICO holders are able to market the fact that the maximum supply is fixed.

# Rational

The `disable_modify_max_supply` is a new created flag in the `asset_issuer_permissions`.
The `allow_modify_max_supply` is a newly created flag in the `asset_issuer_permissions`.
The flag can be activated to forbid the modification of the `max_supply` (`asset_object.options`).
Once the flag is activated, it can't be deactivated.
Once the flag is activated, it can only be deactivated if `current_supply` is zero.

# Specifications

This BSIP comes with a change to the protocol, which requires a propotocol upgrade.
This BSIP comes with a change to the protocol, hence requires a propotocol upgrade.
However the changes to the code are minor.

1. Add the `disable_modify_max_supply` flag to the issuer permissions
2. Add a `can_modify_max_supply()` the `asset_object`
3. Change the `asset_update_evaluator::evaluate` method to assert false for
1. the deactivation of the `disable_modify_max_supply` flag
2. the modification of the `max_supply` when the `disable_modify_max_supply` is set
1. Add the `allow_modify_max_supply` flag to the issuer permissions
2. Set `allow_modify_max_supply` to true for existing assets at hardfork time
3. Add a `can_modify_max_supply()` the `asset_object`
4. Change the `asset_update_evaluator::evaluate` method to assert false for
1. the activation of the `allow_modify_max_supply` flag if `current_supply` is not zero or
2. the modification of the `max_supply` when the `enable_modify_max_supply` is false

# Summary for Shareholders

This BSIP proposes a way to improve the user security in the context of issuer created
assets.
This BSIP proposes a way to improve the financial security of users against the dilution of issuer created assets.

# Copyright

Expand Down