挖一挖
单车变摩托

Fractal Bitcoin上的“CAT Protocol CAT20 规格

CAT20 规格

1. 部署

token10-98bdc9ca44b68043e767de5953d03616

为了部署代币,我们采用了一种利用 Taproot (P2TR) 的方案。我们将第一笔交易称为代币创世交易,第二笔交易称为 reveal 交易。在 reveal 交易输入的见证脚本中,我们包含一个信封来嵌入令牌元信息。字节序列(十六进制)表示此信封是协议的一部分。commit and revealCATcat0x636174CAT

OP_FALSE
OP_IF
  OP_PUSH "cat"
  OP_PUSH 1	    // fungible token
  OP_PUSH <JSON>    // CBOR encoded
OP_ENDIF

JSON 文件必须包含以下字段:

{ 
  "name": "cat",
  "symbol": "CAT",
  "decimals": "2",
}

JSON 是 CBOR 编码的。如果它的长度超过 pushdata 限制 520 字节,则会将其拆分为多个块,并在解码之前进行连接。 可以为自定义元数据添加更多字段。

显示交易必须遵循以下规则才能有效:

  • 其输入中有一个且只有一个包络
  • 第一个输出是递归契约中的 OP_RETURN 编码状态
  • 在第一个输出之后,有同一脚本的一个或多个 minter 输出,没有其他输出。请注意,禁止更改输出1。 部署后,令牌由创世事务中的 commit 输出唯一标识。 由创世交易 txID 和输出索引组成,格式如下:。tokenIdtxid_vout
注意

代币名称/符号不是唯一的,任何人都可以将具有相同名称/符号的代币与先前部署的代币一起部署,就像在 ERC20 中一样。

2. 薄荷

任何管理代币铸造过程的规则都在其铸币商智能合约中使用契约来执行。可以通过在代币展示交易中花费铸造器 UTXO 来铸造新代币。它可以生成新的 Minter UTXO,而这些 UTXO 又可以用于递归铸造更多代币。新代币只能通过花费铸造者 UTXO 来发行。 铸币交易必须遵循以下规则才能有效:

  • 只有一个 minter 输入
  • 只有一个 token 输出
  • token 输出必须在 minter 输出(如果有)之后。 请注意,可以有零个和多个 minter 输出。

token11-3433ab65e7676c59f176a19bb79bb85f

与索引器强制代币铸造相比,只要遵循上述规则,就可以通过其铸币商合约编程灵活地定制 CAT20 代币。与基于索引器的协议不同,代币发行者可以定义任意铸币规则,而无需对底层协议进行任何更改。一些用例包括:

  • 仅当向给定地址支付一定数量的比特币时才可铸造
  • 只能从给定的时间或区块高度开始铸造
  • 只有在工作量证明被降级时才能铸造,就像开采比特币一样,但难度较低
  • 只能由特定不同代币的持有者铸造
  • 仅当某些比特币被时间锁定时才能铸造:硬币越多,锁定时间越长,可以铸造的代币就越多

开放式和封闭式薄荷

铸币厂(也称为铸币厂)是指任何人都可以参与铸造新代币的代币发行过程。代币的创建者指定参数,例如每笔交易的总供应量和铸币量限制,这些参数由 Minter 智能合约强制执行。这类似于 BRC-20openpermissionless

注意

铸币限额可以是动态的,并且可能会在整个铸币过程中发生变化。例如,指数衰减铸币可以通过在每次铸币后将限制减半来编程:第一个铸币厂发行 100 个代币,第二个铸币厂发行 50 个代币,第三个铸币厂发行 25 个代币,…

在铸币厂(也称为铸币)中,只有授权方(例如代币发行者)才能铸造新代币。铸币厂合约通常会检查这些方的签名。铸造者 UTXO 只能与他们的签名一起使用,因此只有他们才能铸造新的代币。这类似于 ERC20closedpermissioned

预挖

公开铸造和封闭铸造并不相互排斥。例如,铸币商合约可以只要求前几个铸币厂的发行者签名,而不要求后续铸币厂的发行者签名。这允许在代币铸造向公众开放之前预先分配一定数量的代币,即预挖。

供应有限

在初始铸币交易后,可以通过反复消费和创建铸币机 UTXO 来铸造更多代币。在需要固定供应的情况下,最后的铸币厂不会创建新的铸币商 UTXO。放弃铸造能力会产生一个可证明的有限供应代币。

token12-45df56c8f608469a3f1e9508c481ab5d

平行铸币厂

如果一个代币只有一个铸造 UTXO,并且有多个用户试图通过花费来铸造该代币,则只有一个会成功,所有其他用户都会失败。这种争论很可能发生在公开铸币厂中。为了缓解这种情况,铸币交易可以创建多个(比如)铸币商 UTXO。我们将参数称为 of token minting。它允许成倍增长的铸造器 UTXO 作为铸造 progrosses。通过明智地选择 UTXO,可以大大减少争用,如下所示,其中 。所有铸币厂交易都形成一个以 reveal 交易为根的树,而不是一个链,其中铸币必须是连续的。NNconcurrencyN = 2N = 1

token13-e95b563e8158b2671536ad1344e3c56c

3. 转让

同质化代币 (FT) UTXO 可以分成少量。多个代币 UTXO 可以合并为一个 UTXO,前提是它们来自同一个创世交易。一般来说,代币转账交易中可以有多个代币输入和代币输出,它们可以出现在交易中的任何位置。矿工强制要求保留代币余额:输入中的代币数量必须等于输出中的代币数量。

token14-32d253df8ffc06cdea4661b213b68786

在同一笔交易中可以转移不同类型的代币。每个代币的余额都会被保留。以下示例显示了在单个交易中转移的两种不同类型的代币。

token15-91ca5eaadc66f88fb0d5939b7e7bb26e

4. 燃烧

代币可以被销毁,并且它们从创世开始的血统就会被终止。存储在其 UTXO 中的 satoshis 被熔化为常规的非契约地址,实际上是 “未着色”。

脚注

  1. 这可以防止多种类型的代币具有相同的 ,因为它们共享相同的创世 outpoint。21a9.svg_tokenId
赞(0)
未经允许不得转载:io.net挖矿教程网 » Fractal Bitcoin上的“CAT Protocol CAT20 规格