Raptor3um / raptoreum

MIT License
316 stars 132 forks source link

Add Feature Master Asset / Sub-Assets #324

Closed Raptor3um closed 5 months ago

Raptor3um commented 9 months ago

To reduce tomfoolery on asset naming, and increase confidence on naming, we should look at introducing "Master Assets". This would allow a person to create a master asset which automatically ensures that they own and have access to all sub assets under the master asset.

Example

Cryptosmith wants all items he makes to be verifiable using his name. He creates a master asset of "CRYPTOSMITH", once created nobody else can create a master asset with that name. This locks down all possible sub-assets for his use only. For example asset/sub-asset: CRYPTOSMITH/tanto.

Requirements

Binarai1 commented 9 months ago

I see issues with this with the following:

My suggested solution if you are to continue with this unique asset naming system:

There are people literally lined up right now with prominent asset names on a list such as BTC/LTC/USDT/SOL and the same rBTC/rLTC etc etc etc ready to swipe those at mainnet launch 'just because they can' and they know the real projects behind those assets have no chance of acquiring them. This in my opinion is of great detriment to the whole chain, and hinders real decentralized asset scalability and value into the chain on the back of a select few who are having a fun time ruining the chances of real projects participating on RTM.

As we have seen in the .com boom back in the 90's, there was a race to acquire 3 and 4 letter domains, and just like that the same will apply here, the only difference being is that the .com boom was backed by real value in a minimal character domain, whereas here it will be backed by a few idiots having fun at the detriment of real growth.

Now i get that a master asset class can have a sub asset, and that is great for people like smith as it suits them and their structure of operation - but even in this instance it wouldn't take long at all for people to register TETHER/usdt causing again the same issue.

The next issue i see here with Master assets and Sub assets letter case rule is that ok if for example tether wanted to create an RTM token and they knew they couldn't have TETHER as a master asset class and chose something else like T or TETH or whatever, then their sub asset was only allowed to have lower case. Then everywhere it was traded it would be usdt rather than USDT like we all know it to be. The same would apply for every single token created with this class system.

So to recap - NFT's are unique and cannot have the same name as other NFT's - GREAT - i would even suggest the class system is perfect in this regard! (that is if the person has trouble with organizing assets on his own but only that) Regular tokens should be able to have whatever name they want even if it is taken already - validity for the tokens should be judged by ID of the run of assets - and a class/letter casing system here would be a detriment. *The casing of MASTER/sub assets shouldn't matter at all if this proposed system is to be applied.

:)>In my opinion assets are assets and only should be distinguishable by their relevant minted identification number and should be allowed to share the same name as other assets. Then there is no need to have master or sub assets and the system is able to compete with other prominent asset chains, and then also the real projects in the space can easily hop on board like they can on other chains without hindrance of any kind knowing full well if someone or some scammer has the same name - they can PROVE they are the real one with their unique ID number.

I would like to see the overall solution being:

Make what you want to make, do what you want to do, use any name you want to use no matter if its an NFT or regular token. Be free to express yourself in a fully decentralized and free chain. What matters is the unique ID number of the particular run of assets. The proposed system above is almost like gated blockchain police and over complicates something that should just be FREE, clear, simple and scalable.

Who cares if the name is the same? It benefits everyone when assets are made; be it the miners, or the node operators with the extra rewards or the projects willing to build and compliment the Raptoreum ecosystem.

If we want the world to play on the world stage of Raptoreum, we cannot be building fences around it! That isn't what blockchain is about.

If im wrong im wrong, but i have been worried about this for some time and i invite others to talk about this. Binarai :)>

Raptor3um commented 9 months ago

If you allow mixed case on naming how many variations would a 4 letter ticker such a USDT have?

Binarai1 commented 9 months ago

It doesnt matter how many variations there is, even if there is a million of the same without variation in fact. What matters is the ID number of the run of assets to confirm if genuine USDT or not.

nandofw commented 9 months ago

in my opinion, the asset name should only be used for display purpose not to identify an asset, and should not have any type of restriction (not even duplicate name)

To identify an asset the assetId should be used

note: from chain perspective it does not make much sense in using the asset name as identifier as all asset data is tied to the assetId

Binarai1 commented 9 months ago

Exactly

Raptor3um commented 9 months ago

Two of the biggest issues preventing mass adoption are ease of use and trust.

Forget what you know about blockchain, and try coming at it from the viewpoint of a small business that has a small amount of blockchain knowledge.

Now tell them assets can be created and sent easily, great! Now tell them how they can use assets and how assets can benefit them, great!

Now tell them they cannot trust what they see (name), and they need to make sure to check the ID and make sure that, "cc42d45f2b905908c68a2711296650474fb09c6c961c038c4927499e0e1f423c" is not "cc42d45f2b905908c68a2711296650474fb09c6c961c038c4927499eOe1f423c".

Now tell them they need to explain this to their customers, rather then just saying "If you receive JOES/magic carrot you have won something special, contact us!". They need to say "If you received joes magic carrot you may have won something special, or it may be a scam because it can be copied, or because case, to verify please check the ID and make sure it is exactly this "cc42d45f2b905908c68a2711296650474fb09c6c961c038c4927499e0e1f423c".

Obviously this can b mitigates with apps and wrapping things up pretty + contracts when they come. But not everybody will want to or may be able to do this.

You just reinforced those "two of the biggest issues preventing mass adoption" instead of trying to overcome them.

I think @Binarai1 idea is a good compromise on this. Unique Assets (NFT) to use the unique naming with master asset + sub-assets as outlined and regular assets to be left wide open which also goes with what @nandofw has said.

rotoroto01 commented 9 months ago

In my opinion, asset names being the actual unique ID is very intuitive and makes a lot of sense to a layman. People who are not familiar with assets/blockchains will not know about verifying contract address or some other unique id. It is an extra step that puts barriers to regular people and if they don't educate themselves, they may end up as victims of scams. I acknowledge this is how other chains do it but I think we can do better.

I agree using asset names as unique ID leads to the issue of bad actors or inactive users rendering a large percentage of the asset names unusable. Here is a solution I can think of:

Removing the step of having to validate contract address or other unique ID is extremely valuable in my opinion. We should strive to do this somehow even if you don't like my solution above.

Thank you

Binarai1 commented 9 months ago

I think if we did that rotoroto then people/businesses/projects will be paranoid about losing their assets

USDT team aint gonna log in every 3 months out of paranoia of losing it on chain to someone who bid on it, imagine that I think UI has a lot to do with ease of use and verification of the REAL DEAL rather than the scam token with the same name

A business interested in traceability and trust and verifiability would be using the team led vendor platform, this is different to what the rest of the world would be using for their regular blockchain usage. The vendor platform doesnt need to show all the code/asset ID's as the above shows. Because it is shown as a verified asset underneath its verified named creator. The vendor platform is what makes it easy. This is what it is for!

Underneath all of that is the blockchain which is doing its thing in code and addresses and asset ID's negating all of that, so i don't think the blockchain side of it needs to take it into account at all

The blockchain should be the blank canvas, the raw deal, which allows anything imaginable to be built on it, in any way, at any time, without restrictions.

Applying big rules at blockchain level based on a use case for the 5% is detrimental.
Building a vendor platform where creators show asset ownership and mint with their connected wallet and deployment of their assets only needs to show just that, Name of creator, and name of asset. It is the backend of all of that which joins the dots.

rotoroto01 commented 9 months ago

Maybe we can make X configurable at the time of asset creation with a default of 90 days and a maximum of upto 10 years? (or even 30 years if you want). I think USDT team would be fine with a 10/30 year lease. UI can be used to make sure users are aware of their remaining lease time and it costs them nothing to renew it. They just have to reject the highest bid..

Larger X would be costly. They have to pay more RTM at the time of creation. We could even make it so that asset name owners can increase X at any point in time by paying more RTM.

Binarai1 commented 9 months ago

Again will not work. There is nothing stopping someone/anyone in that instance with enough silly FU money to play with out of spite and fun - - to register USDT for 30 years before USDT even get chance to do it

rotoroto01 commented 9 months ago

Yes Binarai1. However, someone with FU money can place a bid that the owner cannot refuse. Let the free market decide at that point..

There is no perfect solution but I think we should not underestimate the importance of having asset name as the unique ID..

Binarai1 commented 9 months ago

But again your going round in circles, your assuming the asset name is for sale, and your assuming the asset name owner has logged in and knows about it

It isn't, and they haven't

A blockchain should be free and without a single hurdle in place, without borders - this is the point of blockchain

UI aka Vendor platform, or marketplaces or aggregators or additional wallets that aren't core based - are what can promote ease of use in its design and show what is genuine and what isn't without you needing to know the raw code or asset ID side of the chain It can show verified creators and their corresponding verified assets

It is not the responsibility of the raw blockchain to do this

Binarai1 commented 9 months ago

If it was > then the blockchain would be liable for it

rotoroto01 commented 9 months ago

To summarize:

Owning fungible tokens (like BTC/RTM etc) permanently is fine in my opinion since if the owners of those wallets become inactive, the value flows to all other users of the chain. This cannot happen with unique names and so I am proposing what I think is maximum possible ownership without locking value out of the system permanently. In legacy solution, the value is never realized since no one can own unique asset names.

Blueskys379 commented 9 months ago

This solution is way more complicated than needs to be versus someone just confirming an asset ID which is very simple and works.

Having only one unique ID means one person can buy up all the unique names and charge 1 million dollars or more for them each of them and nobody gets their unique asset name

Also who is going to be responsible for running and maintaining all these auctions and the liability for it?

Binarai1 commented 9 months ago

Nobody should own any name, this isn't real estate, just like my real name isn't. I can call my cat USDT if i want to. The name is literally a label for the group of assets, the verifiability is the UI built around it that interacts with the chain and says yes this is real.

A name has nothing to do with verifiability or trust Auctions on chain? i mean come on. This is a use case which someone might build. aka marketplace for assets. Not some total ownership of all the rotoroto's in the world

rotoroto01 commented 9 months ago

People own domain names. I agree that it is like property. Imagine if there were multiple google.com's and users had to look up the correct hex number to visit google's search page. This is what the legacy assets solution looks like to the common man.

What I proposed can be done in a completely de-centralized way with consensus mechanisms. Also, it can be completely anonymous. It does look complicated at first but it is much better that what is done with domain names for example.

Blueskys379 commented 9 months ago

How is it decentralized when one person can buy up all the names and charge a ridiculous amount of money if they want that asset name. They will not use the chain if they have to pay millions just for a name. They will go elsewhere and use another chain and save millions.

rotoroto01 commented 9 months ago

By decentralized, I mean that there is no need for a centralized entity or institution to enforce the rules I proposed. It can be enforced by the consensus mechanisms in POW nodes/smartnodes.

"How is it decentralized when one person can buy up all the names and charge a ridiculous amount of money if they want that asset name." Maybe we carefully look at the cost of unique asset creation. It should not be too high such that it is inaccessible and not too low that one person can buy up all of it. The other solution I can think of is to make 5 and below lettered asset names unique and keep high cost of creation. For 6 letters and above, use the legacy method of asset names linked to multiple hex numbers.

"They will not use the chain if they have to pay millions just for a name. They will go elsewhere and use another chain and save millions." On other chains, they cannot get unique asset names even if they spend billions. You can only buy unique hex numbers that are linked to your asset name and anyone can link their unique hex number to the same asset name.

drmancini commented 9 months ago

I disagree with name ownership and uniqueness.

Asset uniqueness (and contract in the future) should be determined by a unique id, not a name. It would be a pointless restriction that reduces usability of the chain. It also creates the need to police disputes in the future.

Why would we wish to create the same problem that is plaguing the domain ecosystem of dipshits registering domain names of well-known brands, celebrities, cities etc. This is blockchain and we should learn from past mistakes.

I agree that having a unique name in plain language is a benefit but I feel that the disadvantages and risks are far greater.

Binarai1 commented 9 months ago

Another way of looking at this whole issue:

Imagine if Solana created an asset on our chain that wrapped SOL to - RSOL - but got the mint wrong or the parameters wrong in the process

they needed to re-mint again to do it right, so they tried.....

ahem ..... You cant use the name because RSOL is taken

rotoroto01 commented 9 months ago

No need to police disputes. It should be consensus rules based. So no possibility of disputes.

In what I proposed, RSOL would not have been "taken" forever and reminted immediately if the owner agrees to a bid

Binarai1 commented 9 months ago

No need to police disputes. It should be consensus rules based. So no possibility of disputes.

In what I proposed, RSOL would not have been "taken" forever and reminted immediately if the owner agrees to a bid

But what if i Binarai minted it first and didn't want to sell it?

rotoroto01 commented 9 months ago

If you didn't want to sell it, it means you are happy with the mint and/or parameters. Otherwise, you can place a highest bid to yourself from another address and accept it so that you can change the parameters.

Blueskys379 commented 9 months ago

Doesn't prevent someone from buying all the popular names and charging a ridiculous amount for them and those projects with those names already not using the chain. Even a malicious actor could buy them all up and intentionally not sell those asset names making those asset names useless.

rotoroto01 commented 9 months ago

Doesn't prevent someone from buying all the popular names and charging a ridiculous amount for them and those projects with those names already not using the chain. Even a malicious actor could buy them all up and intentionally not sell those asset names making those asset names useless.

The free market will decide. Popular names should have higher value and early investors can make profits by buying an asset early. But overtime, it will settle at its fair value.

Other option I provided was to split the namespace by length. Smaller asset names are unique and may become inaccessible to some users/businesses due to higher cost. However longer asset names can use the legacy method and be accessible to most. The longer asset name users have the responsibility of making sure their contract address/unique id is the correct one.

rotoroto01 commented 9 months ago

Just to consolidate and summarize, following is what I urge the team and community to consider:

1. Making asset names as unique ID is extremely valuable and unlocks the potential of assets to the common man. The unlocking of this value will drive massive adoption. I request the reader to go through the discussion above to understand why this is true. A short analogy is to compare assets to domain names. Legacy asset implementation is equivalent to there being multiple google.com domains and every user having to look up a hex ID to visit google's actual search page!! Making asset names as the unique ID is equivalent to ensuring there is only one google.com and when a user types google.com, it takes them to google's search page.

  1. If asset names are used as unique ID, this creates the problem of permanent ownership. If someone owns an asset name permanently and they somehow become inactive (say they lost private keys etc.) that asset name is lost forever from the namespace. This results in the value of that asset name being lost forever. Hence the suggestion is to make the ownership time-bound and have some mechanism to recover the asset name from inactive wallets. I have proposed one mechanism in my earlier comments but I am fine with any other approach as well. What is important is that the asset name is not lost forever. Please review my earlier comments where I proposed a decentralized consensus based mechanism to achieve this. I can expand on it and create a document if the team is interested..

  2. Tokens/coins like BTC/RTM etc. can be permanently owned since if the private keys are lost, it increases scarcity and the value of the lost tokens gets distributed to the rest of the users (via increased scarcity). This is not true in case of unique asset names. If an asset name is lost forever, it does not (necessarily) affect other asset names or make them more valuable. Hence the proposal is to make asset name ownership time-bound

  3. Another potential problem of making asset names as unique ID is that over time, asset names may become extremely valuable and hence inaccessible to some individuals and or small businesses. One solution (which I don't think is needed) is to split the asset namespace into two parts based on the length. Smaller asset names are unique and may become extremely expensive over time. Larger asset names are NOT unique and follow legacy implementation. This way, the longer asset names are always accessible and not very expensive but the cost is that they are not as user friendly and prone to scams. My personal opinion is that the asset namespace is large enough and this solution is not needed. People would always be able to come up with creative names that are not taken by anyone or are not very expensive.

  4. This can be combined with master asset/sub asset scheme proposed above. That increases the namespace even more rendering (4.) even less of a problem and helps organizing assets in a much better way

I once again urge the team and community to please provide the world an assets feature that is simple, intutive and accessible to the general public. Making asset names as the unique ID is the way to go!! This will make Raptoreum the best chain for assets.

Thank you!

rotoroto01 commented 9 months ago

Reply to Bigpiggy's video

There is no issue of squatting if it is made clear in a whitepaper that asset names can never be permanently owned. It is not like Ethereum or some centralized shitcoin if the time-bound ownership of asset names is enforced by a consensus mechanism that no one person or entity has control over. That is exactly what I proposed.

rotoroto01 commented 8 months ago

Guys.. don't worry about squatting. The key is to make the ownership non-permanent and have a decentralized mechanism to trade the asset name. With these two in place, price discovery will occur over time in a free market and the price for the asset name will settle at its fair value.

Squatters will stop squatting when they get a bid they think is worth giving it up. This is basically price discovery in a free market.

If the bidding mechanism is decentrailzed/consensus based, there is no entity or authority to complain about it.

Salt and annoyance if it exists just means that the person is not able to pay up the price that the current owner deems is fair value but that is how free market works!

On the other hand, if the current owner asks for an un-fair price, he will not be able to sell it and will be forced to reduce the price over time. Free markets are self-regulating and they always settle at fair price eventually

rotoroto01 commented 8 months ago

The intention of making asset names available for anyone and everyone to own is good and noble. However saying for example that everyone owns the asset name USDT is same as saying no one owns it.

Socialism and wokeness do not work. Strive for equal opportinuity to own it but not equal outcomes. This is where other blockchains have failed. Even after so many years and so much capital spent, assets on any blockchain don't have any sort of real world adoption.

Provide a free market for assets. When a business or individual creates an asset on Raptoreum, make it so that it actually means something. They spent their capital to actually own the asset. Don't lie to them like other blockchains and say to them "Yes you own it but also, anyone else can own it including scammers and thieves". So why did they spend their money for? To get a hex number? It makes no sense.

Raptor3um commented 5 months ago

Implementation can be seen here: https://github.com/Raptor3um/raptoreum/commit/65a3a96c56e2490d3199e4c425a7bd14a2459503