We Want First Class Tokens on BCH! Part 3/N - Native Group Tokens FAQ

15 352
Avatar for bitcoincashautist
3 years ago

Who are you?

Someone who's been lurking around for a long time, someone who remembers the cool stuff talked about when Bitcoin was still magic internet money.

What is your goal?

To help dust-off this project and fast track it into May 2022 HF by bringing that sweet "aha!" moment to as many people as I can!

Why you?

Because nobody else was doing it. I have free time, I have a BCH bag, I feel competent and I happen to like this project and think it will help deliver BCH vision of financial inclusion and economic freedom. The other day I watched this interview with the creator of native group tokens, Andrew Stone, and it resonated with me. I saw that his idea needs help getting out there, and since nobody was helping it I saw a gap that I thought I could fill. Anyway, I think it is just awesome.

Why would we want native group tokens?

Bitcoin Cash prime directive is to be the best digital cash, I assume we can agree there. It achieves that through low fees and fast payments due to high safety of 0-conf since there is a near 100% probability that the first seen transaction will be included in the next block. There are other cryptocurrencies which claim instant payments, those are our competition. Where is our advantage? It's the network effect, narrative, community, and boots on the ground, the shared dream of bringing accessible digital cash to the world!

I think we have to focus on making our advantage stronger. When someone thinks crypto/digital cash we want them to think Bitcoin Cash. Competition is not just around technology, the real competition is around the narrative! And we're not just competing for users, we're competing for all stakeholders, we're competing for miners, we're competing for enterpreneurs who'll build something using BCH, we're competing for developers, we're competing for holders too, and for investors who will invest in BCH centered businesss, we're competing for all the species that make a part of a blockchain ecosystem.

But why does the world need the best digital cash? Because it enables financial inclusion and economic freedom. Enabling efficient crypto-financial computing has that same why.

What does it have to do with Group Tokens? It has everything to do with it! Because NGTs are a way to expand the scope of "cash". NGTs are 1st class tokens meaning they enjoy the same efficiencies that BCH has. Miner enforcement, SPV wallets, 0-conf, etc. Cash is not just 1 currency. Having 1st class tokens would enable multiple currencies on BCH blockchain, and they’d all be carried around by small amounts of BCH and paying fees in BCH. NGTs are NOT smart contracts. They're directly miner enforced, not script/contract enforced. Future smart contracts could be using them alongside BCH.

Growth of other blockchain ecosystems has shown market demand for efficient crypto-financial computing. The simplest and widest usage is a stablecoin, and USDT trading volume overtook Bitcoin's volume in 2020. Even though USDT started on the Bitcoin blockhain through the Omni network it ended up moving to Ethereum blockchain. Blockchains don't exist in vacuum and the USDT example shows us that interested parties will move towards the Blockchain which provides better service. There's even a market for having a stablecoin of another crytocurrency, like WBTC.

There is an opportunity for Bitcoin Cash to capture a part of this market by developing competitive advantage for some key applications. We're not talking smart contract. We're talking about enabling efficient use of other stuff as cash, and having users pay for that service in BCH. Bitcoin Cash network could turn anything into usable cash!

No smart contract complications, just more units of accounting, powered by BCH! If we later get smart contract, they will be able to interact with both BCH and NGTs because every NGT is also a bit of BCH. This would be super-efficient, and who knows, maybe one of killer apps would be a super-efficient DEX so you can swap all those currencies floating around and carried by BCH.

Ok, I'm interested, what are Native Group Tokens?

They are a way to mark some amount of BCH as belonging to a group. We do this by attaching a tag to a BCH output and scribbling a number on the tag. The tag colour tells us which group the BCH belongs to, and the ability to write a number lets us do more than just group BCH. You can't choose the color, you get a random one when you first create your token, similar how you get a random address when you want to use BCH. We'll see the importance of this later on.

If we decide that every different shade of colour represents another token, that the number represents its amount, and that the totals of those numbers must balance for every transaction, then we just gave ourselves the ability to have tokens on the BCH blockchain!

But who will enforce these rules? Someone has to check that the the rules were respected in the past. We could do it ourselves, but then we'd have to check the entire history of the blockchain, and we don't want to do that becasue we're users, doing it every time we receive something is a lot of work. We just want to use them the same way we use BCH, hassle free. If it's confirmed, it's good. Even if it's just seen and not confirmed, it'll probably be good. Cheap, fast, and easy! To have this kind of functionality with tokens we need to ask miners to validate them. We'll pay for the service in BCH, as we always do!

Since by design every NGT is also a BCH output, they will work the same way as BCH outputs.

We already have SLP, we don't need another solution!

Those who already built something that works with SLP can continue to use it if they're happy with it. Nobody's forcing them into anything, but maybe they'll like NGTs so much they'll come because they get to stay on BCH blockchain and get a better solution. If there'll always be competition, better it comes from us, that's how we'll grow to be the best!

Even if you don't need NGTs and are happy with SLP, maybe others need it. If they will want to come from other blockchains because we have the best solution, that would mean greater adoption!

Having too good tokens will displace BCH

How could that possibly happen? Every group token TXO is also a BCH TXO ie every group token TXO needs to be wrapped into a little bit of BCH which will carry it around, like a soap bubble made of BCH.

This means that miners get an additional mechanism to control group token usage. Apart from setting the fee, they could adjust the required amount of soap i.e. amount of BCH locked in with the group token TXO. As with fee policy, this would be a software setting, where every miner decides for themselves.

Ok, I'm sold, but what about scaling?

I wrote a bigger FAQ for that, but in short it adds a tiny bit of work inside loops miners have to do anyway. Every miner has to make a pass through all the inputs and outputs of a transaction to check that BCH balances. We'll be adding a few more checks during that process and that's it, and these checks are way cheaper than verifying a single digital signature so it doesn't add much %-wise. No additional database operations required.

Copyright

This document is placed in the public domain. Attribution neither required nor desired.

22
$ 76.30
$ 50.00 from @powellquesne
$ 17.28 from @TheRandomRewarder
$ 5.00 from @tula_s
+ 5
Avatar for bitcoincashautist
3 years ago

Comments

Great work, bitcoincashautist! It would just thrill me and would be a breath of fresh air to see every possible route to better financial and NFT token support on Bitcoin Cash explored and discussed to the fullest extent. Let's play to the wall on this. I am in no kind of reckless rush, but I see no reason not to always aim for a positive story to tell on the roadmap and progress of efforts to maximise this property to the extent the BCH architecture and both founding and 'forking' principles allow. Thank you for your efforts. PQ.

$ 0.00
3 years ago

Hey thanks both for the words and for the massive tip! While I do feel like I'm rushing remember there's more than a year's time till May 2022, I'm rushing it now so others won't feel like it's been rushed when the time for decision-making comes. At that time in the future I want everyone to already have all the knowledge about Group Tokens!

$ 0.00
3 years ago

We have SLP to talk about this year. It's not perfect but as long as better solutions are in progress why not milk the cow we have.

$ 0.00
3 years ago

Ah it was you who posted that long article today! The name was familiar from here :)

$ 0.00
3 years ago

Yes. I don't think many people are reading the whole thing -- probably too long for most people, but I felt it important to establish my bedrock views about many aspects of the ecosystem from the start. Since it is pretty comprehensive about the subjects I am interested in I should be able to link back to it a lot.

$ 0.00
3 years ago

Yeah, I think that article will be a go-to ref. for many points :)

$ 0.00
3 years ago

i love this initiative, thank you, it was much needed. Im a bit worried though about the "Having too good tokens" part for two reasons:

  1. competition is ruthless, if we dont do it, some other chain will, and we cant afford that with our 1% market share.
  2. transitions are extremely costly. having a new token standard every two years might be actually worse as not doing it at all.

So wouldnt it be much better if the group tags wouldnt have to be attached to a BCH output, but the token outputs would be really a first class citizen instead? Because as you describe it, they are still 2nd class ( even though better than slp.)

$ 0.00
3 years ago

Thanks to an argument on Reddit I have started to see this attachment not as sa side-effect but as a valuable feature which would protect our UTXO from risks. UTXO is special and expensive blochckain real-estate. Below is my argument, I'll link to the Reddit thread too

I think I see it now. Not all blockchain real-estate is equal. There's the general space in terms of blockchain size, and there's UTXO which fenced part of this space and has special meaning and usage because it's used to track current balances ie state. Your argument is that fees pay for the general space and not for the UTXO, and that the value of the UTXO itself "pays" for the UTXO because it's locked up value and there's incentive to spend it or aggregate, or it will just lock BCH out from circulating supply if it will sit dormant.

Good news is - every NGT UTXO is also a BCH UTXO ie you still have to lock up some sats in order to have the NGT. Not just for creation of the NGT, every single NGT UTXO has to lock some BCH sats, the same minimum BCH amount applies to NGT UTXO the same as it applies to BCH UTXOs. If the NGT has value - that's even more locked up value with that UTXO in a more general sense, so there's that same incentive to move it around and consolidate - you consolidate both NGT and BCH balances at the same time. If the NGT becomes a worthless token, then the locked value of their UTXOs will come solely from the BCH sats locked, so there's still incentive to burn the NGT and consolidate all those BCH that carried it into a single UTXO. Do you see now why I'm so excited about this? Yes, the NGT UTXO is a little heavier than a BCH UTXO, but it's not unbound, the OP_GROUP data size is fixed, and if an attacker wanted to produce heavy BCH UTXOs there's already a way to do it through adding other script ops to UTXOs.

I just realized one more thing which I'm excited to share. Recall that every NGT UTXO is also a BCH UTXO. At the beginning I saw this as an interesting side-effect, and now I see it as an important feature because it will provide economic incentive to consolidate NGT UTXOs if the token value disappears. If the NGTs have value, there’s even more value to consolidate, you’re consolidating both NGT and BCH amounts in the same TX. Say you have 10 NGT UTXOs, you can consolidate them all into 1 NGT UTXO and you can choose what to do with the excess BCH you freed - either keep it colored or send elsewhere as 1 more pure BCH UTXO. Like this you claim "free" BCH for consolidating NGT UTXOs! If you want to split a NGT UTXO, you have to lock up more BCH.

https://www.reddit.com/r/btc/comments/llqt8z/we_want_first_class_tokens_on_bch_part_3n_native/gnr8v9o/

$ 0.00
3 years ago

sure, but arent there better options to solve this problem? like utxo partitioning and explicit cost/reward per utxo created/removed ? sounds much cleaner and more general (solves bch utxos as well)

My big concern is that if we do this in a hacky way again and have two different ways how to encode amounts (bch + token), then it significantly complicates contracts - same problem why we still dont have flipstarter or cashfusion for SLP tokens.

If we really really want utxo collaterals, then again, lets make it a clean explicit consensus rule.

$ 0.00
3 years ago

You could have flipstarter and cashfusion with NGTs, I think. Can't have them with SLP tokens for other reasons, not because they're not equal to BCH, but because they're not close enough. NGTs are glued to BCH outputs so whatever you can do with those in script, you can do with NGTs.

$ 0.00
3 years ago

To someone using the token (like wallets), this implementation detail shouldn't matter ie they can still wrap it in a class utxo {int amount, int currency}. You have to implement certain ops differently even if they were the "same" under the hood because BCH will never have mint/melt ops and group tokens will. Whatever you do complicates contracts because all of them assume the amount means BCH. There's no semantics for currency checking. So doing what you say would mean now we have to implement stuff that tells contracts what currency they're looking at. Can't have the cake and eat it too.

$ 0.00
3 years ago

they can still wrap it in a class utxo {int amount, int currency}

i was not talking about wallets, but contracts. they cant do such abstraction. also wallets shouldnt be forced to do it either, you did not present any reason for this awkward encoding. (again, collateral can be done in a cleaner way)

Whatever you do complicates contracts because all of them assume the amount means BCH.

of course, thats not the point at all. the point is lets not complicate it more than necessary.

BCH will never have mint/melt ops

wanna bet? :) melt makes total sense for bch

$ 0.00
3 years ago

When you say "contracts" what do you mean? Have you seen the Bitcoin script spec? These are our contracts right now: https://reference.cash/protocol/blockchain/script and it's been intentionally made awkward by Satoshi. I'm not going to argue whether it was a good design or not, I don't feel competent for that anyway, but this is what we have and have to work with.

Sure, entire BCH design can be done in a cleaner way. Who will do it though? And how do you convince everyone to get onboard with a change of such massive scope? This is open-source, you do what you want and maybe people support it, maybe they don't. We're trying to limit the scope of intervention, a minimum implementable step with a high chance of being accepted by all stakeholders.

Yeah hah, you can already do melt with OP_RETURN :) It's not a melt but a burn. With melting you get something - you get the locked BCH back.

$ 0.00
3 years ago

yes, by contracts i mean script. i dont feel im proposing any massive scope change here. i guess i would now need to write an example script for both variants so we can see the difference. i dont have time for that unfortunately. perhaps its not so important and script compilers can handle the abstraction.

$ 0.00
3 years ago