Introducing Group Tokens for Bitcoin Cash - Part 1/N - Stablecoin Example

9 389
Avatar for bitcoincashautist
3 years ago
Topics: Bitcoin Cash, BCH

Maybe you noticed the "We Want First Class Tokens on BCH!" series. I started those shortly after seeing the interview with group tokens creator, Andrew Stone. It resonated with me and there I saw something which I believe could profoundly help Bitcoin Cash grow in value. I wanted others to see it too, and I was not holding back in trying to achieve that. Naturally, it annoyed some people. I'm listening to that criticism and toning it down but I still want to write more about it.

During that time some CHIPs started popping up and I decided to write one too so the "final" product of my endeavor is the Group Tokenization CHIP. Here I want to thank Andrew Stone for creating Group Tokens and accepting my help in bringing it forward. I say "final" because it's just the beginning -- of a more focused conversation, now that we have the CHIP and a full spec.

This was just to give a quick update on the progress and letting you know it exists. Here I want to demonstrate what could be done with group tokens. Hopefully it will catch the eye of some wallet dev and we could get their feedback. After all, implementing the CHIP would only enable token transactions and it would be wallet devs who would build the means to actually do something meaningful with tokens. Today I present just one example use-case: stablecoins, and I will now walk you through it.

Let's get started, shall we?

Stablecoin Example

Genesis transaction creates the first authority. If not enough authority is given at genesis, we could be creating an useless group. These are new concepts, but I think you'll get the idea quickly. The notation is simple, stuff in [] describes a transaction output:

[BCH satoshi amount, Group ID, Group amount or authority flags]

Normal BCH outputs only have the first field. Grouped outputs carry some BCH but also have the two group fields as attachment.

01 Genesis transaction
    In
        [ 10000] // pure BCH output
    Out
        [  9000, Group ID = H(TX data), BATON | MINT | MELT] // grouped output
    Fee    1000 // picked this amount for simplicity

You can't choose the Group ID. It's generated from the genesis transaction data so it will be unique and ensure that only one genesis can exist for any given group.

We can then first split the authority, thus enabling separation of powers between the issuance department and redeeming department of our hypothetical organization.

02 Split authority
    In
        [  9000, Group ID, BATON | MINT | MELT]
    Out
        [  4000, Group ID, BATON | MINT]
        [  4000, Group ID, BATON | MELT]
    Fee    1000

Think of authority as just another balance to check. If the numbers match a pattern then operations "cheating" the token balance of a transaction will be allowed. Authorities can be merged or fanned out just like BCH or token amounts.

We will then further secure the supply by first creating one-time use mint authorities (MINT without BATON) and then sign actual mint transactions and hand them to lower security tiers of our organization, who will post them to the blockchain when needed.

Why not simply create the supply and give the balances to lower tiers? Because blockchains are public, and anyone could see this. By securely storing the signed partial transactions until they're actually needed we achieve two things:

  • Hide the information on available loot from potential adversaries.

  • Keep the whole stablecoin more transparent, as the total supply on the blockchain will more closely match the actual fiat amount received to back the stablecoin.

03 Create one-time use mint authorities
    In
        [ 15000]
        [  4500, Group ID, BATON | MINT]
    Out
        [  9954] // BCH change
        [   546, Group ID, BATON | MINT] // preserve group authority baton
        [  2000, Group ID, MINT] // these are one-time, they will be consumed with use
        [  2000, Group ID, MINT]
        [  2000, Group ID, MINT]
        [  2000, Group ID, MINT]
    Fee    1000

Notice how the amount of BCH freely flows in/out from grouped TXOs, but it can't go below the dust limit. Next, we create TXes that can mint some fixed amount of our stablecoin.

Mint TX
    In
        [  2000, Group ID, MINT]
    Out
        [   546, Group ID, 10000000]
    Fee    1454

This can be stored in a vault and used at a later time when teller hot wallets will need refilling. Should there be a suspicion that the vault has been compromised, those mint authorities can be simply revoked by spending those UTXOs, hopefully before the thief gets a chance to use them first.

Revocation TX
    In
        [  2000, Group ID, MINT]
    Out
        [  1000] // BCH change
    Fee    1000

Once mint TXes are published, tellers can distribute funds to clients using ordinary token transfers. For client convenience, the token UTXOs can be further charged with some BCH to allow them to move it without requiring external source of BCH.

Ordinary Token Transfer
    In
        [ 10000]
        [   546, Group ID, 10000000]
    Out
        [  4500, Group ID, 01000000] // to client 1
        [  4500, Group ID, 02000000] // to client 2
        [   546, Group ID, 07000000] // teller change
    Fee    1000

What do you think, was this example easy to follow? Do you have any other ideas or questions like "How to do X"? We can do BCH/stablecoin atomic swaps with this approach, too. More on that in the next part :)

Other posts in the series

Introducing Group Tokens for Bitcoin Cash - Part 1/N - Stablecoin Example (this)

Introducing Group Tokens for Bitcoin Cash - Part 2/N - Atomic Swap Examples

Introducing Group Tokens for Bitcoin Cash - Part 3/N - CoinJoin

Introducing Group Tokens for Bitcoin Cash - Part 4/N - Non-fungible Tokens (NFTs)

8
$ 31.04
$ 14.97 from @TheRandomRewarder
$ 13.37 from @molecular
$ 2.00 from @ErdoganTalk
+ 4
Avatar for bitcoincashautist
3 years ago
Topics: Bitcoin Cash, BCH

Comments

Damien Hirst Is Now Accepting Bitcoin and Ethereum for His Art Damien Hirst—the British artist known for his preserved shark piece, The Physical Impossibility of Death in the Mind of Someone Living—has said he’s now taking bitcoin">Bitcoin and Ethereum as payment for a new run of prints.

“For the first time, I’m accepting Cryptocurrency for payment,” he wrote on Instagram. “It’s hard for any of us to trust anything in this life but somehow we manage it and we even find love and I love art and I love the crypto world and I am happy and proud to put my belief into Bitcoin (BTC) and Ether (ETH) and accept them for this drop.”

And though you can pay for them in crypto, these pieces are very much not “crypto art”—the eight prints represent different takes on cherry blossoms, inspired by the eight virtues of bushidō, the samurai code. They cost $3,000 a pop, and they’re only on sale until March 3.

I've made eight cherry blossom prints called The Virtues with @HENIGroup. For the first time I'm accepting Cryptocurrency for payment! You can buy them via the link below. Available until 23:59 PST Wednesday 3rd March. https://t.co/Jcn6z78Y54

— Damien Hirst (@hirst_official) February 26, 2021

The Physical Impossibility of Death in the Mind of Someone Living put Hirst on the map in the 90s, and though he’s been producing less important work over the years, his art remains polarizing as ever; a 2017 exhibition in Venice was met with both raves and pans.

The big story at the proverbial “intersection of art and technology” over the past few months has beenNFTs (non-fungible tokens): cryptographically secured assets that can put any sort of digital art on the Ethereum blockchain">blockchain. According to a report from the blockchain analytics firm NonFungible, the market grew by 2800% last year.

Earlier today, musician and visual artist (and girlfriend to billionaire Elon Musk) Grimes sold a collection of NFTs for over $6 million.

Grimes Just Sold Her Crypto Art NFT Collection for $6 Million And while NFTs are typically online images and animations, physical artworks can come with NFT components too. In October, Christie’s sold a Bitcoin-themed piece with an accompanying NFT for $131,000.

For now, though, Hirst’s prints remain off-chain

$ 0.00
3 years ago

oh my God, I don't even know what you already know

$ 0.00
3 years ago

Hey don't worry, keep learning! :) And thanks for the tip!

$ 0.00
3 years ago

Whoa thanks for the tip @molecular, 1337 h4x0r! :D

$ 0.00
3 years ago

Sure. Many thanks for pushing this so enthusiastically. Keep at it.

$ 0.00
3 years ago

I am not sure I understand why there are certain amounts of BCH involved with the token transfers other than the 546 sat plus fees necessary - why do you send client 1 and 2 another 4500 sat each in the last example (or also the 10ksat in the genesis tx)? Are those just kind of random amounts to hydrate future txs?

$ 0.00
User's avatar inf
3 years ago

There's no real need other than the 546 sats and you're right - that's exactly what they are, to hydrate ie amounts for convenience of the recipient, like a consumable postage stamp which allows you to pay the fee when you want to move your token. PS Thanks for the tip!

$ 0.00
3 years ago

Nice, then I understood correctly, and it is pretty cool that you can basically give a postage stamp credit in advance :) Thanks for the reply! I like the concept very much and highly appreciate all the effort you put in your articles and CHIP recently. You turned me from "meh whatever, BCH surely has other more important things to solve" into someone who can't wait for this to become reality! Cheers!

$ 0.00
User's avatar inf
3 years ago

Thanks for your kind words, it means a lot! Cheers!

$ 0.00
3 years ago