BitShares Forum

Main => General Discussion => Topic started by: theoretical on October 26, 2014, 06:35:24 pm

Title: drltc's User Issued Asset Proposal
Post by: theoretical on October 26, 2014, 06:35:24 pm

We are exploring the possibility of reducing the fee for user-created assets when we merge the chains.  bytemaster has expressed openness to reducing the fee to 10 BTSX or even less.  In this post, I would like to address the implications of such a policy.

Disclaimer:  While I am now officially a member of the I3 team, this post has not yet been adopted as an official I3 policy.  As of this writing, we have not yet reached internal consensus at I3 about how to handle the issues I raise in this post.

In terms of network resources, processing user-created asset transactions costs no more or less than processing transactions for built-in BitAssets. From a technical standpoint, implementing issuing, transferring, and market matching of bids/asks for user-created digital tokens already exists in the code.  Reducing the fee charged for these transactions to reflect their cost to the network will encourage new applications and keep someone from forking BitShares and "eating our lunch".

The main problem is that currently user-issued assets and built-in assets live in a shared global namespace.  I think the cleanest way to deal with the problem is to separate the system into two parts.  (1) Internally, each asset should have a unique identifier, a hex string which is the hash of a JSON "asset descriptor" object describing the purpose of the asset, how many are issued, etc.  (2) Then we should provide a mapping mechanism allowing names in a more human-friendly namespace to be mapped to asset descriptor hashes.

Under the mapping mechanism, short or memorable names in the namespace are scarce resources.  A market-based mechanism is the best way to discover their value.  Fortunately, in the merged chain we are already planning to implement a market mechanism allowing price discovery for allocation of names in a namespace -- that is the entire purpose of DNS / KeyID.

I propose the following mapping mechanism:

- All one-to-four character entries in the global namespace come into existence as market-based assets when a majority of delegates publish an asset descriptor indicating their support.
- Five or more character entries belong to the owner of the corresponding .coin domain and are allocated by the DNS auction process.
- Per-account entries such as drltc.titan/mytoken can be allocated to the owner of the corresponding TITAN account.
- .coin URL's such as drltc.coin/mytoken can be allocated to the owner of the corresponding .coin domain.

Each of these namespaces serves a different market.  One-to-four character entries are likely the same as real-world stocks and commodities. The cost and setup time is high -- adding a token requires convincing a majority of delegates to support it.

Five-or-more character entries are usable by people who want tokens inscribed with their brand.  The cost and setup time is medium -- they must obtain a DNS name, which is substantially less difficult than convincing 51 delegates, but substantially more time-consuming and expensive than a single transaction fee.

Per-account or TLD entries are most suitable for small experiments or private-issue tokens.  For these applications, branding is not a concern so long as the coin has *some* human-readable, globally unique identifier.  Speedy turnaround time and low cost are still desirable.  The cost and setup time is small -- simply paying a transaction fee.

For simplicity of implementation, the name-to-asset-descriptor mapping should only be mutable if all tokens have been burned.

On Friday, at I3 we internally discussed an idea based on a hard-coded list of one-to-four letter names representing real-world stocks and commodities.  Upon reflection, I've come to believe that such a scheme is inherently brittle, essentially requiring a hardfork if the hard-coded list is incomplete.
Title: Re: drltc's User Issued Asset Proposal
Post by: xeroc on October 26, 2014, 06:40:23 pm
hug? since when do I need a delegate publish feeds to sell my user-issued assets?

//edit: but I like the idea of having three different spaces for that ..

if this is agreed upon I will essentially lose my FREE asset as it is NOT a market-pegged asset ..
Title: Re: drltc's User Issued Asset Proposal
Post by: bytemaster on October 26, 2014, 06:48:43 pm

hug? since when do I need a delegate publish feeds to sell my user-issued assets?

//edit: but I like the idea of having three different spaces for that ..

if this is agreed upon I will essentially lose my FREE asset as it is NOT a market-pegged asset ..

Grandfathered. 
Title: Re: drltc's User Issued Asset Proposal
Post by: speedy on October 26, 2014, 06:50:17 pm
- All one-to-four character entries in the global namespace come into existence as market-based assets when a majority of delegates publish an asset descriptor indicating their support.

Ive been thinking about this exact same idea for a while - because it solves the problem you mentioned of having to create a hard list of stocks etc. This is awesome - so as soon as there is sufficient interest in trading BitGOOG then we can just do it because it already exists.  +5%
Title: Re: drltc's User Issued Asset Proposal
Post by: arhag on October 26, 2014, 07:10:55 pm
I don't like the arbitrary restrictions on character lengths. How about this?

Anyone can propose a new BitAsset with an asset descriptor provided for a low fee. It only becomes added into the list if the delegates approve of it. Then they would also have to of course publish price feeds for users to be able to start trading it. The names of these BitAssets can follow the same general rule as TITAN names except no sub-names (periods) and the names "key" and "p2p" are also disallowed. If there are zero outstanding BitAssets of a certain type, the BitAsset can also be removed if the majority of delegates agree.

For user-issued assets, you have a human-readable name to unique identifier mapping of the UIA as you said. Anyone can create a unique UIA for low cost. But for it to have a name, the creator of the UIA would need to associate a name (either one of their TITAN names or a .p2p name that they own) to the UIA. So, this would allow names such as "user.key", "token.user.key", and "brand.p2p". We would also allow subdomains of a domain owned by someone to be mapped by them to a UIA, meaning "token.brand.p2p" would also be allowed. By the way, as you can see I prefer the ".key" TLD much more than ".titan".

When displaying the various assets to the user, there should be no confusion/conflict about which asset the GUI is referring to. For example, "usd", "usd.key", and "usd.p2p" are all clearly different tokens. The first is a BitAsset and the latter two are UIA. The owners of the latter two bitAssets are also clear: "usd.key" is owned by TITAN user "usd" and "usd.p2p" is owned by the current owner of the "usd.p2p" domain. It does mean that no one is allowed to have a UIA that doesn't have either the ".key" or ".p2p" extension, which may be aesthetically displeasing to some, but I think that is a small price to pay for clarity.
Title: Re: drltc's User Issued Asset Proposal
Post by: theoretical on October 26, 2014, 08:06:40 pm
I don't like the arbitrary restrictions on character lengths.

The restriction is not arbitrary.  It's chosen based on the expectation that users desire to trade commodity-based BitAssets under the same ticker symbols as the real-world assets they represent, and usually real-world symbols are 1-4 characters.

I would also argue that 4 characters is very near the tipping point where the number of combinations available becomes large enough that the scarcity equation fundamentally changes.  I will agree that 4 characters is "arbitrary" in the sense that a cogent argument could be made for setting the cutoff at 1-5 characters instead, but I think the choice of 1-4 or 1-5 is definitely not arbitrary.

Anyone can propose a new BitAsset with an asset descriptor provided for a low fee. It only becomes added into the list if the delegates approve of it.

What if I want to create a token that'll only be traded privately between me and 5 friends?  Requiring delegate approval for each token issuance centralizes the system unnecessarily.

It does mean that no one is allowed to have a UIA that doesn't have either the ".key" or ".p2p" extension, which may be aesthetically displeasing to some, but I think that is a small price to pay for clarity.

I like the idea of requiring a UIA name to include its issuing account, to fully disclose to users that these tokens are issued by the named entity, and make it harder for users to get scammed by namesquatters.  But in a private discussion, bytemaster was not enthusiastic about the idea.  I'm not sure I clearly remember his reasoning, so I'm not going to attempt to paraphrase it.  My character length proposal preserves the aesthetic clarity of unqualified names, while keeping a clear line between delegate-fed BitAssets and UIA.
Title: Re: drltc's User Issued Asset Proposal
Post by: arhag on October 26, 2014, 08:19:02 pm
The restriction is not arbitrary.  It's chosen based on the expectation that users desire to trade commodity-based BitAssets under the same ticker symbols as the real-world assets they represent, and usually real-world symbols are 1-4 characters.

I would also argue that 4 characters is very near the tipping point where the number of combinations available becomes large enough that the scarcity equation fundamentally changes.  I will agree that 4 characters is "arbitrary" in the sense that a cogent argument could be made for setting the cutoff at 1-5 characters instead, but I think the choice of 1-4 or 1-5 is definitely not arbitrary.

What about the fact that some brand names are less than 5 characters and they would not be allowed to issue a UIA with that name since it conflicts with BitAssets?

What if I want to create a token that'll only be traded privately between me and 5 friends?  Requiring delegate approval for each token issuance centralizes the system unnecessarily.

The delegate approval only applies to BitAssets not UIA. It doesn't make sense to have a "private" BitAsset.

I like the idea of requiring a UIA name to include its issuing account, to fully disclose to users that these tokens are issued by the named entity, and make it harder for users to get scammed by namesquatters.  But in a private discussion, bytemaster was not enthusiastic about the idea.  I'm not sure I clearly remember his reasoning, so I'm not going to attempt to paraphrase it.  My character length proposal preserves the aesthetic clarity of unqualified names, while keeping a clear line between delegate-fed BitAssets and UIA.

That is disappointing. I would appreciate it if bytemaster would explain his reasoning publicly in this thread. Keep in mind there are other ways to distinguish within the GUI the difference between a BitAsset and UIA (colors, icons, separate groupings, etc.). So if it is the extensions that are the deal breakers, I think that can be worked around without compromising user clarity too much.
Title: Re: drltc's User Issued Asset Proposal
Post by: jamesc on October 26, 2014, 08:20:27 pm
Short tickers ( on the traditional exchange ) can be reassigned and they can mean different companies on different exchanges
Title: Re: drltc's User Issued Asset Proposal
Post by: Gentso1 on October 26, 2014, 10:10:17 pm
Originally the thought was that users would spam the network with cheap to create asset's.

With assets being able to be listed for considerably cheaper does anyone think we may become more of a target for scams because the entry barrier would be lower?

Not that I am against the changes I just want to understand why.   
Title: Re: drltc's User Issued Asset Proposal
Post by: ripplexiaoshan on October 27, 2014, 03:07:57 am
Originally the thought was that users would spam the network with cheap to create asset's.

With assets being able to be listed for considerably cheaper does anyone think we may become more of a target for scams because the entry barrier would be lower?

Not that I am against the changes I just want to understand why.

I agree that reducing the fee to a very small amount will increase the risk of being attacked.
Title: Re: drltc's User Issued Asset Proposal
Post by: bytemaster on October 27, 2014, 03:31:19 am
The block chain should remain neutral, what needs to be managed is how users discover and vet assets and avoid confusion.

Step 1) Avoid user issued assets that confuse the user with real world assets
Step 2) Make sure that BitAssets and User Issued Assets are clearly marked and identifiable.
Step 3) Make user issued assets (UIA) "unlisted" and remove them from the directory...
Step 4) Add a warning when the user manually adds a UIA to their list of favorite assets

The problem is merely a filtering and reputation problem.  Listing all assets as "equal" inside the wallet and allowing users to accidentally find SCAM assets is the problem.

Given that we are targeting BitShares for general purpose use we shouldn't restrict users behavior or use cases other than require they pay the fees necessary to support their asset. 

So my proposal is to force all user issued assets to be 5 characters long and to always display the issuer account along with the asset symbol and not make the user issued assets "browsable". 

We cannot protect people from their own stupidity by limiting the freedom of others... we must simply provide tools that help people know and understand what they are trading in.

 
Title: Re: drltc's User Issued Asset Proposal
Post by: Shentist on October 27, 2014, 06:18:31 am
Quote
I propose the following mapping mechanism:

- All one-to-four character entries in the global namespace come into existence as market-based assets when a majority of delegates publish an asset descriptor indicating their support.
- Five or more character entries belong to the owner of the corresponding .coin domain and are allocated by the DNS auction process.
- Per-account entries such as drltc.titan/mytoken can be allocated to the owner of the corresponding TITAN account.
- .coin URL's such as drltc.coin/mytoken can be allocated to the owner of the corresponding .coin dom

different naming ideas are good. would be good to have something like on NASDAQ etc. different market, with different kind of "regulation".

a) i can create a simple asset with not much effort - BUT - maybe this fee is not a one time fee and the transaction fee in this "unregulated" simple market will be much higher (we want to minimize the scam, fun and not have purpose assets)

b) we could do this with your proposel and make for each level the register fees higher and the transaction fees lower

so say on NASDAQ / Overstock level the yearly registration fee is relativ high, but the transaction fees for trading shares are the lowest possible
Title: Re: drltc's User Issued Asset Proposal
Post by: Pheonike on October 27, 2014, 07:15:17 am
Could make user asset subscription based. Maybe a monthly or yearly fee? That way we won't have a bunch of clutter from unused/supported assets.
Title: Re: drltc's User Issued Asset Proposal
Post by: monsterer on October 27, 2014, 07:56:49 am
Whatever you do, do not allow duplicate asset names - this is plaguing the NXT asset exchange. Someone will launch a genuine asset, then a scammer will launch an asset with a duplicate name, priced at the same amount to take advantage of people who don't look the asset up by ID.
Title: Re: drltc's User Issued Asset Proposal
Post by: joele on October 27, 2014, 08:49:16 am
Whatever you do, do not allow duplicate asset names - this is plaguing the NXT asset exchange. Someone will launch a genuine asset, then a scammer will launch an asset with a duplicate name, priced at the same amount to take advantage of people who don't look the asset up by ID.
+5%
Title: Re: drltc's User Issued Asset Proposal
Post by: 21xhipster on December 05, 2014, 05:39:17 pm
Whatever you do, do not allow duplicate asset names - this is plaguing the NXT asset exchange. Someone will launch a genuine asset, then a scammer will launch an asset with a duplicate name, priced at the same amount to take advantage of people who don't look the asset up by ID.
That is not the reason. Name squatting is another side of the moon which counterparty already suffers [koinify]. The most obvious solution is Proof-of-Authenticity already implemented by Coinprism team (sorry that cannot provide links - Google Proof-of-Authenticity Coinprism). Guys from Counterparty twitted me that they also thinking about implementing the same mechanism. So authentication of user issued asset through domain ownership could be mainstream on the market of derivative (dependant) tokens.
I endorse existing pricing policy (500k/500), but name squatting for assets is not good practise.