New BSIP 29
This commit is contained in:
parent
30477cb3ff
commit
54c1644310
3 changed files with 273 additions and 0 deletions
|
@ -36,3 +36,4 @@ Number | Title |
|
|||
[26](bsip-0026.md) | Refund Order Creation Fee in Originally Paid Asset on Cancel | Abit More | Protocol | Accepted
|
||||
[27](bsip-0027.md) | Asset Issuer Reclaim Fee Pool Funds | Abit More | Protocol | Accepted
|
||||
[28](bsip-0028.md) | Worker Proposal Improvements | Bill Butler | Protocol | Draft
|
||||
[28](bsip-0029.md) | Asset issue change to require owner authority | Fabian Schuh | Protocol | Draft
|
||||
|
|
175
bsip-0025.md
Normal file
175
bsip-0025.md
Normal file
|
@ -0,0 +1,175 @@
|
|||
BSIP: 00025
|
||||
Title: Transaction Flat-Rates with Weighted Rate-Limitation
|
||||
Authors: Fabian Schuh <Fabian.Schuh@blockchainprojectsbv.com>
|
||||
Status: Draft
|
||||
Type: Protocol
|
||||
Created: 2017-10-16
|
||||
Worker: T.B.D.
|
||||
|
||||
# Abstract
|
||||
|
||||
Blockchain technology currently depends upon transaction fees to prevent
|
||||
spam. These fees suffer all of the known problems with
|
||||
micro-transactions and prevent blockchains from being used for low-value
|
||||
transactions, massive trading and high-rate market making. Truly
|
||||
decentralized applications must offer users the *appearance* of free
|
||||
transactions if they wish to compete with their centralized
|
||||
alternatives.
|
||||
|
||||
This document proposes a protocol upgrade to BitShares to introduce
|
||||
rate-limitations for *fee-free* transactions. Since the BitShares
|
||||
blockchain is entitled to be a profitable decentralized autonomous
|
||||
company (DAC), making use of *fee-free* transactions comes at a
|
||||
*monthly* fixed cost as well as the option to lock shares away in a
|
||||
vesting balance in order to increase the standard rate at which users
|
||||
may interact with the blockchain.
|
||||
|
||||
# Motivation
|
||||
|
||||
Blockchains are decentralized networks where all transactions are
|
||||
broadcast to all peers. Every so often a block is produced that includes
|
||||
some or all of the pending transactions. All blockchains must find a
|
||||
solution to prevent malicious users from consuming all of the available
|
||||
network capacity with worthless transactions. These worthless
|
||||
transactions can prevent other valuable transactions from being
|
||||
processed and ultimately destroy the network.
|
||||
|
||||
The solution adopted by most blockchains thus far is to charge a minimum
|
||||
transaction fee. A fee worth just a few cents is enough to make
|
||||
attacking the network expensive and unprofitable. While this approach
|
||||
solves the spam problem, it introduces new problems.
|
||||
|
||||
Market making as well as micro-transactions are a highly competitive
|
||||
market. Being *decentralized* and *trust-less* alone, does not make the
|
||||
BitShares blockchain a good competitor when compared to centralized
|
||||
services.
|
||||
|
||||
Despite blockchain transactions being cheaper *technically*, the fee
|
||||
that is attached to each and every transaction on BitShares results in
|
||||
some crucial businesses to be unviable, such as **market making** at
|
||||
scale, where dozens of orders are created (and canceled) continuously,
|
||||
in order to provide liquidity to the markets.
|
||||
|
||||
# Rational
|
||||
|
||||
In this proposal, we extend the BitShares fee model to allow
|
||||
transactions made by accounts to go through without paying a fee. We
|
||||
require accounts to be lifetime members to harness a **transaction
|
||||
flat-rate** with certain limits that can be raised by additionally
|
||||
providing BTS (units of the core asset) in a vesting balance that is
|
||||
locked away for a certain amount of time, only do be made liquid in
|
||||
weekly chunks over the whole period.
|
||||
|
||||
## Full Reserve vs Fractional Reserve
|
||||
|
||||
Let's view a blockchain like an Internet Service Provider (ISP) co-op
|
||||
which owns all of the cables in the town and can process a maximum
|
||||
amount of data transmission on those cables at any time. This is called
|
||||
*the capacity* of the transmission lines. People living in the town can
|
||||
buy shares in the ISP and obtain the right to utilize a portion of the
|
||||
available capacity.
|
||||
|
||||
The ISP has two choices and can either run a **full reserve** or
|
||||
**fractional reserve** system.
|
||||
|
||||
* Under a full reserve system each user is only allowed a fraction of
|
||||
the capacity proportional to her shares. Because not everyone uses
|
||||
the Internet at the same time, the town's network would be significantly
|
||||
underutilized.
|
||||
* Under a fractional reserve system the individual users could utilize
|
||||
more date rate than they are entitled to at any given point in time so
|
||||
long as not everyone uses the Internet at the same time.
|
||||
|
||||
The problem with operating a fractional reserve is that congestion
|
||||
occurs anytime too many people wish to use the network at the same time.
|
||||
The ISP needs a way to prioritize transmissions during congested
|
||||
periods. In the most extreme case, a fully congested network must revert
|
||||
to a full reserve system.
|
||||
|
||||
The challenge is setting the proper fractional reserve ratio or
|
||||
implement a **dynamic fractional reserve ratio**. Under this model the
|
||||
blockchain will
|
||||
automatically adjust the reserve ratio for the network during times of
|
||||
congestion. The blockchain will set a target utilization that leaves
|
||||
enough headroom for short term surges in demand. Any time the surges
|
||||
are sustained the blockchain reduces the maximum rate-per-share.
|
||||
When a surge is over and there is surplus capacity the blockchain can
|
||||
slowly increase the rate-per-share.
|
||||
|
||||
If the time window for this control cycle is stretched too far then the
|
||||
reserve ratio will not adjust fast enough to respond to short-term
|
||||
surges, if the window is too short then clustering usage will have too
|
||||
big of an impact on normal users.
|
||||
|
||||
In our estimate it should be sufficient to measure the average weekly
|
||||
transaction rate usage of users. This parameter will be changeable by
|
||||
the BitShares committee. The advantage with this approach is, that the
|
||||
BitShares committee can define whether they prefer a dynamic fractional
|
||||
reserve, where occasional uses may transact more often within a very
|
||||
short period of time, or a simple and static method, where professional
|
||||
users get an easy picture of how many transactions they may produce in a
|
||||
certain amount of time.
|
||||
|
||||
## Flat-Rate Model
|
||||
|
||||
In recent years, ISP providers have seen a shift in their own economics
|
||||
leaving the *pay-per-use* (e.g. per minute) service domain where users
|
||||
paid for a duration they occupied a land-line to go for a
|
||||
*pay-per-serice* flat-rate model where users paid a fixed fee to enable
|
||||
a specific service to be used for free within certain conditions (e.g.
|
||||
data volume). With the improvements in communications technology, land
|
||||
lines got replaced by fiber which can carry significantly more load.
|
||||
Thus the flat-rate model makes sense from business perspective.
|
||||
|
||||
The same holds true for blockchain technologies. The Graphene framework
|
||||
is capable of incomparable transaction loads and thus, the individual
|
||||
transaction may not be tagged with a fee for the profit alone, but
|
||||
merely to prevent spam. A full reserve system gives value to a
|
||||
transaction processing capabilities of the blockchain which everyone can
|
||||
own a share of to prevent spam.
|
||||
|
||||
## Flat-Rate with Weighted Rate-Limitation
|
||||
|
||||
That said, we here propose a combination of the flat-rate model with a
|
||||
stake-weighted limitation of transaction rates.
|
||||
|
||||
* **Flat-Rate**: A new feature is added to the blockchain that enables
|
||||
the flat-rate model with a basic transaction rate that can be defined
|
||||
by the BitShares committee (e.g. 10 transactions per day). This
|
||||
operation costs a fee and lasts for a committee-parameterized amount
|
||||
of time (e.g. 30 days). These rates are the same for every single user
|
||||
that has bought the flat-rate subscription.
|
||||
|
||||
* **Stake-Weighting**: Since some users may need more than the basic
|
||||
amount of transactions per day, power users can increase the
|
||||
implicitly assumed weight of 1x to a higher value by providing BTS
|
||||
core tokens in a vesting balance locks them away for as long as the
|
||||
subscription lasts.
|
||||
|
||||
This ultimately gives the option to
|
||||
|
||||
* pay a fee for every transaction (current system)
|
||||
* pay for a flat-rate to transaction for fee within certain conditions
|
||||
* powerup your account with core tokens to increase fee transaction
|
||||
rate
|
||||
|
||||
# Specifications
|
||||
|
||||
* Do not refund order creation fee!
|
||||
* Replace Annual Fee operation?
|
||||
|
||||
# Discussion
|
||||
|
||||
Todo
|
||||
|
||||
# Summary for Shareholders
|
||||
|
||||
Todo
|
||||
|
||||
# Copyright
|
||||
|
||||
This document is placed in the public domain.
|
||||
|
||||
# See Also
|
||||
|
||||
1. [Steem Whitepaper](https://steem.io/SteemWhitePaper.pdf)
|
97
bsip-0029.md
Normal file
97
bsip-0029.md
Normal file
|
@ -0,0 +1,97 @@
|
|||
BSIP: 0029
|
||||
Title: Asset issue change to require owner authority
|
||||
Authors: Fabian Schuh <Fabian.Schuh@blockchainprojectsbv.com>
|
||||
Status: Draft
|
||||
Type: Protocol
|
||||
Created: 2018-01-28
|
||||
Discussion: https://github.com/bitshares/bitshares-core/issues/199
|
||||
Worker:
|
||||
|
||||
# Abstract
|
||||
|
||||
With the current design, the issuer of an asset can be changed with the
|
||||
*active authority* alone. However, this authority is also required for
|
||||
issuing new units of an asset/token. If this process wants to be
|
||||
automated, an active key needs to be stored on an internet-connected
|
||||
device. If compromised, an attacker can easily move the asset under his
|
||||
control with no way to back.
|
||||
|
||||
This proposal comes with two changes to the protocol:
|
||||
|
||||
1. The current behavior of changing an assets' parameters will no longer
|
||||
allow to change the issuer.
|
||||
2. A new operation is introduced that allows to change the issuer of an
|
||||
asset but requires the owner authority of the issuer to sign that
|
||||
transaction.
|
||||
|
||||
# Motivation
|
||||
|
||||
Improve asset security.
|
||||
|
||||
# Rational
|
||||
|
||||
Assets should not be at risk while automating issuing of new units.
|
||||
|
||||
# Specifications
|
||||
|
||||
## Current Design and Implementation
|
||||
|
||||
Currently, any asset can be updated with `asset_update_operation`. This
|
||||
operation contains an optional `new_issuer` that changes the issuer of
|
||||
the asset.
|
||||
|
||||
## Proposed Changes
|
||||
|
||||
# `asset_update_operation`
|
||||
|
||||
The existing `asset_update_operation` will be modified in such that it
|
||||
no longer allows the user of `new_issuer` after a hard fork.
|
||||
|
||||
# `asset_update_issuer_operation`
|
||||
|
||||
A new operation is added with the following construction
|
||||
|
||||
```
|
||||
|
||||
struct asset_update_issuer_operation : public base_operation
|
||||
{
|
||||
struct fee_parameters_type {uint64_t fee = 20 * GRAPHENE_BLOCKCHAIN_PRECISION; };
|
||||
|
||||
asset fee;
|
||||
account_id_type issuer;
|
||||
asset_id_type asset_to_update;
|
||||
account_id_type new_issuer;
|
||||
extensions_type extensions;
|
||||
|
||||
account_id_type fee_payer()const { return issuer; }
|
||||
void validate()const;
|
||||
|
||||
void get_required_owner_authorities( flat_set<account_id_type>& a )const
|
||||
{ a.insert( issuer ); }
|
||||
|
||||
void get_required_active_authorities( flat_set<account_id_type>& a )const
|
||||
{ }
|
||||
|
||||
};
|
||||
```
|
||||
|
||||
This new operation merely allows to change the issuer of an asset and
|
||||
requires the owner authority (of the issuer account) to sign the
|
||||
transaction.
|
||||
|
||||
# Summary for Shareholders
|
||||
|
||||
We here propose the addition of a new operation that improves security
|
||||
of assets with respect to updating the issuer. This closes a long
|
||||
existing problem that makes running automated issuing of units a
|
||||
security issue since an attacker that obtains the keys can obtain full
|
||||
control of an asset indefinitely. This proposal changes this behavior
|
||||
and requires the owner to sign such change of issuer.
|
||||
|
||||
# Copyright
|
||||
|
||||
This document is placed in the public domain.
|
||||
|
||||
# Sponsoring
|
||||
|
||||
This worker proposal is proudly presented and sponsored by [Blockchain Projects BV](http://blockchainprojectsbv.com).
|
Loading…
Reference in a new issue