📢 Gate广场 #NERO发帖挑战# 秀观点赢大奖活动火热开启!
Gate NERO生态周来袭!发帖秀出NERO项目洞察和活动实用攻略,瓜分30,000NERO!
💰️ 15位优质发帖用户 * 2,000枚NERO每人
如何参与:
1️⃣ 调研NERO项目
对NERO的基本面、社区治理、发展目标、代币经济模型等方面进行研究,分享你对项目的深度研究。
2️⃣ 参与并分享真实体验
参与NERO生态周相关活动,并晒出你的参与截图、收益图或实用教程。可以是收益展示、简明易懂的新手攻略、小窍门,也可以是行情点位分析,内容详实优先。
3️⃣ 鼓励带新互动
如果你的帖子吸引到他人参与活动,或者有好友评论“已参与/已交易”,将大幅提升你的获奖概率!
NERO热门活动(帖文需附以下活动链接):
NERO Chain (NERO) 生态周:Gate 已上线 NERO 现货交易,为回馈平台用户,HODLer Airdrop、Launchpool、CandyDrop、余币宝已上线 NERO,邀您体验。参与攻略见公告:https://www.gate.com/announcements/article/46284
高质量帖子Tips:
教程越详细、图片越直观、互动量越高,获奖几率越大!
市场见解独到、真实参与经历、有带新互动者,评选将优先考虑。
帖子需原创,字数不少于250字,且需获得至少3条有效互动
BTC生态新智能合约平台Fractal上线 CAT20协议亮点解析
BTC生态迎来智能合约新发展
最近比特币生态出现了一个新的智能合约平台Fractal Bitcoin,它在9月份正式上线主网。Fractal的一大特点是具备智能合约能力,并在主网上线同时推出了新的代币协议CAT20。CAT20在技术设计上有哪些巧妙之处?我们可以从中学到什么?
Fractal Bitcoin简介
在了解CAT20之前,我们需要先简单了解一下Fractal Bitcoin,两者的关系类似于ERC20和ETH,CAT20协议是部署在Fractal Bitcoin上的。
Fractal Bitcoin又称作分形比特币,是一个完全兼容BTC的二层网络。相比BTC,它的区块确认时间更快,只需1分钟。其基本原理是将BTC网络复制了几份,每条链都可以处理交易,处理交易的节点增多,速度自然也就加快了。不过具体的技术细节,如不同链之间如何通信目前还不太清楚,官方也没有提供相关的技术文档。
Fractal的一个重要特点是启用了BTC很久以前因安全原因弃用的操作码OP_CAT,这让Fractal Bitcoin的能力上升了一个台阶。有人认为OP_CAT能让BTC具备智能合约的能力,这样就为未来发展提供了更多可能性。
目前,已经有人在Fractal Bitcoin上实现了一个类似ERC20的协议。
CAT Protocol
有了底层的OP_CAT支持,很快就出现了对应的CAT Protocol。目前已经在实际运行的是CAT20协议,某区块浏览器上也新增了对应的功能面板。
CAT20的名字让人联想到ERC20,两者确实比较相似。相比成熟的ERC20协议,CAT20是如何实现类似的生命周期的呢?
Deploy
在部署前,用户需要指定钱包地址及代币的基本信息,后者与ERC20类似。不同的是,CAT20可以设置预挖和每次Mint的数量限制。
部署分为两个阶段:"commit"和"reveal"。在commit阶段,交易的输出脚本中会写入代币的基本信息,如名称、符号等。commit阶段发起的交易hashId会作为该代币的标识,用于区分其他代币。
在reveal阶段,交易会输出一个OP_RETURN,保存CAT20的初始状态Hash。之后会再输出一个Minter,用于维护后续Mint过程的状态变化。
整个Deploy过程遵循了区块链上常用的提交和揭示两个步骤,是一种比较常见的项目部署方式。
Mint
Mint过程有以下几个特征:
Mint过程中minter的数量变化会影响整个网络的mint活动。如果每次只输出1个minter,网络中可用的minter数量不变,会造成拥挤。为避免这种情况,需要将每次输出的minter数量设为大于1。但多输出一个minter就要多支付一笔utxo,出于经济考虑,更多人会倾向于将minter设为0,这会导致minter通缩,需要一些人自愿支付多出的minter来维持。
在V2版本中,默认生成两个Minter,且两个Minter的状态会尽可能接近。
交易的状态(V2)
minter中保留了状态,存储在两个地方:一是交易输出的OP_RETURN中,二是存储在智能合约中,即上述的Minter和Token。
OP_RETURN中存储当前交易输出状态的Hash,合约中存储Token剩余的Mint次数。每次Mint后,新生成Minter的mint数量等于剩余可mint数量除以二。最后所有Minter的剩余数量为0。
除Minter外,生成的Token也是智能合约,即CAT20。CAT20有两个基本状态:数量和Token归属者地址。不同于BRC20或铭文,CAT20并不在地址的UTXO上。
Transfer
Transfer时,构建交易的输入和输出token数量需保持一致。同一笔交易可以有多个不同token,只需各token的输入输出数量一致即可。
Burn
要燃烧Token,只需将Token转到普通地址即可。
总结
CAT20的所有操作都由用户自己构建,灵活性很大,因此合约部分需要做大量校验逻辑。目前出现的一些漏洞也是因校验逻辑疏忽造成的。
这种设计有以下优点: