UTXO-based Layer-1 Tokens on Bitcoin SV

Overview

Inside each UTXO, there are two parts associated with tokens as state of the token contract:

  1. A public key: to control access of the tokens
  2. An amount: consisting of multiple numbers, whose sum is the number of tokens in this UTXO.

Split Tokens

One token UTXO can be split into multiple UTXOs. This is mostly used to send tokens to others while returning the change. Below is an example of splitting it into two. The total numbers of tokens are conserved after the split, i.e., x0 + x1 + y0 + y1 = x + y.

Split a Token UTXO into two
Split

Merge Tokens

Merge two Token UTXOs into one
Merge two Token UTXOs into one

Combination

Combing Split and Merge Operations

Demo

Here is code to deploy the token contract, split the tokens, and merge them back.

Issue Tokens

100 tokens are issued: 10 (0x0a in hex) + 90 (0x5a in hex).

Split Tokens

The UTXO of 100 tokens are split into two UTXOs: one containing 70 (0x46) tokens, the other 30 (0x1e).

Merge Tokens

The two UTXOs above are combined into a single UTXO.

Summary

There are many advantages of the UTXO-based tokenization approach.

  • It is easy to integrate with existing wallets, since they are already managing bitcoin UTXOs. Token standard can be devised for interoperability between wallets, similar to ERC-20.
  • Token UTXOs cannot be mistakenly/accidentally spent as bitcoin UTXOs, which is an issue for some Layer-2 tokens.
  • Token transfers can be instant using 0 confirmation.
  • Processing of token transactions can easily be parallelized and is thus scalable, since token UTXOs are independent of each other, same as bitcoin UTXOs.
  • It is non-custodial and users own their tokens by owning the private key.
  • Split one UTXO into more than two UTXOs
  • Merge more than two UTXOs into one UTXO
  • Mint new tokens after issuance
  • Issue non-fungible tokens
  • Use arbitrary access control of tokens other than a single ECDSA signature
  • Pay for transaction fee using additional UTXOs using ANYONECANPAY
  • Uniquely identify and thus prevent different tokens issued with the same contract from mixing, e.g., by the txid of the issuing transaction.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
sCrypt

sCrypt

sCrypt (https://scrypt.io) is a company with a mission to provide integrated on-chain smart contracting solutions on Bitcoin SV