CIP Proposal - Three Letter Asset Names

This thread is about a potential CIP that would allow for 3 letter asset names.

I have some code that I think covers most of it here, for review and feedback:

Result:

  • 3 letter asset names become valid.
  • 3 letter asset names require 10 XCP to issue.

Todos:

  • Testnet tx fixture for parsing.
1 Like

The open question I have, for more experienced devs, is whether this kind of change requires a block index check and where would that go?

Are you concerned that allowing 3-letter asset names could add additional confusion to the platform? (ie, users can register existing symbols like ETH, BCH, LTC, XMR, etc, and then use them to try and confuse/scam users)

Curious what value you believe adding 3-letter asset names will add to the platform?

1 Like

No, I’m not concerned about that. My concern is largely the technical implementation and whether I’ve done it correctly. Mainly, I just think LLL assets would get used.

I was able to get a development node to issue and accept LLL asset names as valid.

counterparty-testnet_1 | [2017-10-31 06:15:29][INFO] Issuance: mqXzgKGxFWQGQQh jDthK7ou9KkDms7ecK4 created 3 of indivisible asset LLL (85a396b8b8537d49f3238659 a66bd734f0b27dff79d1df7ba20a7693637c91bb) [valid]

It seems implementing this in counterparty-lib is mainly a matter of lowering the minimum name length from 4 to 3 and lowering the minimum id length from 26^3 to 26^2, when validating.

For counterwallet UI, it’s a simple update of regex and help text. Leaving the fee as 0.5 XCP would further reduce complexity. I have it at 10 XCP right now, in my code, but I am re-thinking that.

I suggested 10 XCP, but I’ve been thinking about it and 0.5 XCP seems just as reasonable. You could registered GOLD, for example, for 0.5 XCP. I registered a lot of names that I think are premium for 0.5 XCP.

I suggested 10 XCP mostly because 25 * 26 * 26 * 0.5 = 8450 XCP doesn’t seem like a lot of XCP whereas 25 * 26 * 26 * 10 = 169000 XCP does. And it might deter one person from owning them all.

And I kind of like the idea of, later on, two letters being 100 XCP and one letter being 1000 XCP. I think it could improve the speculation network effect that helps bootstrap development and interest.

But again, it might just be an unnecessary complication. The idea itself is a simple change to allow 3 letter asset names. Which is the most popular format for crypto tickers and Counterparty does not support them.

I believe this is the right step for Counterparty in the long-run. Diversification via different assets is something we haven’t dug into yet. I think having several different premium assets is something that can distinguish XCP a lot from it’s competitors and could open up specific use-cases in the future.

Three-letter assets is a great start, I think 10 XCP is a good starting point as well, but even 25 XCP would be ok in my opinion.

In regards of what this can offer to the platform: I think the use-case is being popular amongst traders to be able to distinguish yourself with 3 letter asset-names. I would much rather have a ticker named ABC than ABCISGREAT. It will be important in the future to stand out from less valuable tokens on the platform, simply because of transparency and integrity, and when an asset that is more rare costs more, it naturally carries a larger trustworthiness with it, as it’s more expensive to create.

I asked earlier if droplister had any concerns about enabling 3-letter assets being used to scam people, and he indicated he didn’t really care about that, and was only looking for a technical answer of is his code was sound… so I didn’t take the topic any further as I assumed he was forking CP for his own project. Now that it sounds like others are starting to glom on to this idea without being aware of all the ramifications, I will once again raise my objections.

Enabling 3-letter assets on Counterparty does not bring any real value to the platform (3 character vs 4 characters), yet opens the platform up to scammers to abuse the platform and confuse users by registering 3-letter asset names which already are being used elsewhere (XMR, ETH, LTC, XDG, etc).

Allowing 3-letter assets is a mistake which I am STRONGLY against (as are a number of respected community members I have talked to), and I would expect that a controversial feature like this would need to be discussed at length and voted on by the foundation well before being included in the codebase. I would need to reconsider my commitment to Counterparty should this change be forced through.

Edit: Imagine what happens if/when we get pluggable chains (on the roadmap) and want to setup base markets for stuff like XMR or LTC but the 3-letter names are already taken with this little change…… now the LTC asset is owned by an individual instead of being able to be used as a base market pair like XCP or BTC…… so now when someone comes to the CP platform to trade BITCRYSTALS/LTC on the DEX expecting to be trading LTC (Litecoin), instead they are now trading with some random person/company who owns the LTC asset or USD or any 3-letter asset which users expect to be something else because it is traded on EVERY other exchange as LTC…. but on CP, LTC would be something entirely different which only helps to make the platform more confusing and help drive new users away.

IMO enabling 3-letter assets greatly complicates future implementations with other chains without adding any real benefits.

1 Like

ACK, same opinion here, as a community member and Dev, I’m strongly opposed against 3 letter assets. Besides, those IDs would collide with the numeric address space afaik

1 Like

yea, other than scams and confusion, not sure what it will add.

From a technical standpoint, this isn’t too hard.

Do we care that squatters will make a run at these immediately and pick up things like USD, CNY, etc? If we do care, any ideas on how to fix that?

I’d love to see a real company own USD instead of a squatter. But I don’t know how to enforce that.

1 Like

I wasn’t around when the decision was made not to offer these, but I imagine that was the goal, wait for a “real” company to approach and use?

What value does this bring to the protocol? J-Dog makes some good points above, in that there isn’t any. There are existing projects that secured token names based on the 4-letter limit, when 3-letter names may have been the preferred. There’s a simple substitution - use XUSD vs. USD, for example. How does Counterparty’s future reputation hold up when the consensus rules on asset names change? Imagine believing in the future value of these asset names only to have the 4 letter limit changed to 3 letters. Why not just lower the limit to two or one?

I see the confusion that this change would cause to newcomers but this is part of having a decentralized base imo. Newcomers are never save from those problems and XCP certainly is not newcomer friendly. If you look at how many times XCP tries to get traded on the DEX for BTC just to have noobies realize that they just wasted 5$ transaction fees on a contract that will never automatically execute for them and actually repeat to be executed until there is no more Bitcoins left seems like a MUCH bigger issue imo than allowing the creation of premium asset for a premium price.

People should be allowed to do whatever they like to do and not be limited by some authority that tells them the rules based on some fear that is yet to be proven. There are Ethereum ERC-20 tokens out there for pretty much every cryptocurrency and I’m yet to see people complaining about massive scams happening there (apart from the obvious ICO scams). Unfortunately in the crypto-space there aren’t any guide-posts and helpful hands to tell you everything and often you have to learn the hard way to get the point across.

Just recently we had a fake counterwallet URL and I don’t wanna know how many XCP and tokens got ripped out of beginners hands because of the similarity to the real website and the late recognition of the problem and the warning messages. If we try to police the platform this way, then I also recommend the deletion of any asset that has no real value based on some backed commodity as people might be lead to believe they are investing in a real asset that they can exchange for something tangible in the future.

What happens if Spells of Genesis closes down and Bitcrystals become worthless? Are we going to hard fork to remove Bitcrystals from the DEX or are we going to put a big warning message up that Bitcrystals are now worthless as the company behind it is bankrupt to save Joe from loosing 2000$?

Will you ban Jimmy because he created 100 Pepecards that Jack bought and figured out that he can’t actually redeem them for a real card? I think there is only so much that you can do to prevent fraud but to right out ban certain asset groups is very short-sighted for the long-term growth of Counterparty as a free and open-source decentralized platform where I can pretty much do whatever I would like to do and if it so happens that I own the LTC token and if you want to include it in your project, then you are free to pay me for my fast fingers or abandon the idea and not take the right as a core developer to cherry-pick your assets to include in your own project-ideas for XCP.

This might seem harsh, but so does the threat of staight out abandoning a project because of something not fitting in your line of thought without even a page of discussion having happened. I don’t wanna know how many people got scared to even write something simply because you threatened to leave XCP if this goes through. I know there are probably a lot of emotions involved, but we all want to move forward together in as much of a neutral and progressive way as possible, right? I really love your viewpoints on most topics and think they are very reasonable and good to understand (including this one), but let’s not get ahead of ourselves and strongarm our position to guide the discussion a certain way, how does that sound? :slight_smile:

If there are real threats here, then we should give everyone ample breathing space to discuss these issues and lay it out properly, there are positives and negatives to both viewpoints, but ganging up in a certain way has never resolved anything. How about showcasing ACTUAL scams that have happened due to the creation of fake asset tokens (resembling actual existing cryptocurrency tickers) in the past and then make an analysis of how likely it is that people will get scammed this way in the future.

I remember vividly the first 5 or 6 times new ASIC miners were promised from companies and Millions were lost due to these scams. More millions were lost due to the cloud mining scam era and nowadays nobody falls for it anymore. This is the price of being at the bleeding edge of a financial revolution unfortunately.

When people realize that tokens are nothing more than promises and IOUs just like fiat, then you have to learn about the risks you take by investing in these. If you’re not happy with such, stay clear of each and every token and just invest in cryptocurrency that secures your investment by math and magic and not a promise by an entity that created the token out of thin air.

My 2 cts :slight_smile:

One of the technical issue that’s been raised is around asset id collisions. However, I think it’s not entirely insurmountable as there are only 16,900 possible LLL asset names (25 x 26 x 26) and the asset name is largely what the asset id is derived from. It’s possible to calculate all asset ids now and see if there are any existing collisions and with that set we could also come up with a way to prevent future ones too.

LLL asset names would collide with the numeric asset space and the amount of numerics (free assets) available to register would be cut by several orders of magnitude.

Instead of 2^32 numerics we would be left with 2^24… while only enabling 26^3 3-letter names

2^32 = 4,294,967,296 = Numeric Assets (current)
2^24 =    16,777,216 = Numeric Assets (proposed)
3^26 =        17,576 = 3-letter names (proposed)

So, in order to add support for 17,576 3-letter assets, we would be losing the ability to register 4,278,190,080 numeric assets.

I think the numbers speak for themselves.

I don’t think the numbers speak for themselves. What you are describing is only the case, if the solution is just to change the exponent in the generate asset id method. There may be other solutions, if there is a real attempt to look for them. It’s not like it’s an unprecedented database issue.

And, considering there are only 90,000 existing registrations, you’re worried about a scale we don’t have and downplaying the value of LLL asset names while pearl clutching about arbitrary numeric assets.

I continue to be shocked at the bending over backwards to ignore LLL asset names, a simple proposal, while simultaneously seeing other complex and theoretical-at-best proposals floated without skepticism.

Stop being dramatic Dan. No one is bending over backwards to ignore your LLL asset names proposal. In fact, as you can see above a number of people have replied and voiced their concerns or support for the idea, and I know the idea has been discussed a few times in slack as well.

As far as seeing other “complex and theoretical-at-best proposals”, that is how things work here Dan. People propose ideas no matter how crazy, and then they are discussed and survive or die based on their merit. A crazy idea being proposed does not mean that it will be implemented, so not sure why your so shocked at seeing ideas being discussed.

Edit: For the record, I hate numeric assets and would like to do away with them entirely, so… no numeric asset “pearl clutching” over here.

So we agree that numeric asset id collisions are not a stopping issue. Good.

I don’t agree with that assertion. Numeric asset id collisions are still a stopping issue as the majority of the community feels that numeric assets have value and should stay included in the protocol in order to compete with other asset protocols where a user can register an asset using only BTC.

I can agree that If we get rid of free numeric assets, that would limit their usage to just subassets, so THEN I would say that asset id collisions are not a stopping issue :slight_smile:

Unfortunately, I know of a few projects who have been, and plan to continue to register thousands of numeric assets. :frowning: