• 元宇宙:本站分享元宇宙相关资讯,资讯仅代表作者观点与平台立场无关,仅供参考.

技术分享:CAT20 -- Fractal BTC 上的Tokens协议

  • 2024年9月28日 22:41

作者:ZANTeam

本文仅作为技术分享,不构成任何投资建议。

BTC上也要有自己的智能合约了?

最近Bitcoin生态上,FractalBTC在经历了多次测试网之后,终于在9月份上线主网。Fractal的一大特点就是具备「智能合约」的能力,并且几乎在推出主网的同时,上线了一个新的Tokens协议CAT20。CAT20有什么技术上的巧妙设计呢?我们又可以学到什么?FractalBitcoin

在了解CAT20之前我们需要简单了解一下FractalBitcoin,他们的关系就像ERC20和ETH一样,CAT20协议是部署在FractalBitcoin上的。

FractalBitcoin又称作分形Bitcoin,是一个完全兼容BTC的「二层」网络。相比于BTC,它的区块确认时间更快,仅需要1分钟。它的基本原理简单来说就如它的名字所言,就是将BTC网络复制了几份,每条链都会处理交易,可以处理交易的节点多了,速度也就自然快了。不过具体的细节比如不同链之间是如何通信的目前还不是很清楚,官方也没有对应的技术文档可以参考。

如果只是一个二层链交易更快,似乎没有让人兴奋的点。但是,在Fractal中启用了BTC很久之前就因为安全原因弃用的操作码OP_CAT,让FractalBitcoin的能力上升了一个台阶,有人说OP_CAT能让BTC具有智能合约的能力,这样的话可以遐想的空间就更多了。

现在,就有人在FractalBitcoin上实现了一个类似ERC20的协议。

关于OP_CAT为什么弃用以及为什么又可以在FractalBitcoin上使用,后续可以展开讲讲,这里我们关注CAT20。CATProtocol

以下内容参考白皮书:Introduction|CATProtocol(https://catprotocol.org/)

以及github仓库:

GitHub-CATProtocol/cat-token-box:AmonorepoforpackagesimplementingCATprotocol(https://github.com/CATProtocol/cat-token-box)

有了底层的OP_CAT支持,很快就有了对应的协议,CATProtocol。目前一个已经在实际跑的协议是CAT20协议,在Unisat上也新增了对应的面板:https://explorer.unisat.io/fractal-mainnet/cat20。

看到CAT20的名字大家应该也能反应过来,它应该和ERC20比较像。相比于成熟的ERC20协议,大家部署一个Token已经非常的方便,CAT20是如何实现ERC20类似的生命周期呢。Deploy

在部署之前,用户需要指定自己的钱包地址以及Tokens的基本信息,Tokens的基本信息和ERC20的类似:

scale70

scale70

Mint

我们先看一下MintToken的时候,交易是这么样的。

scale70

scale70

回到最开始的那张图上,除了Minter是一个智能合约之外,生成的Token也是智能合约,也就是CAT20。CAT20有两个基本的状态:数量以及Token的归属者地址。可以看到不像之前的BRC20或者铭文,你的CAT20并不是在你地址的UTXO上。Transfer

Transfer的时候,构建交易的输入和输出的token其里面的数量需要保持一致。当然同一笔交易里面可以有多个不同的token,只需要不同token的其输入输出的数量保持一致就行。Burn

想要燃烧掉Token的话,只需要将Token转到一个普通地址上即可。总结

可以看到,所有的操作都是由用户自己去构建,灵活性非常大,所以在合约部分需要做很多的校验逻辑。目前爆出的一些漏洞也是因为校验逻辑出现了疏忽。

这样的设计可以有一些好处:

如果想要查找所有的Token的持有情况,只需要查一下token的utxo就行,不需要继续往上查。

如果想要查看mint的当前情况,可以搜索OP_RETURN中数据带有cat的交易就好。

Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM