以下是 SatoGAS 方案的具体内容。有机会后续再写方案背后更细致的考虑。
基本方案
- 该 tx 内必须包含一笔固定值若干聪的转账
- 定义资产的发送方和接收方
- op_return 内记录了 nft 信息的转移
- 定义了该 nft 的所有内容,自洽且无外部引用
概念和特性
- 生成一组公私钥及对应的地址,作为资产的创建地址
ga_creator
(Game Asset Creator)- 与该地址关联的所有资产的集合,称为资产包
ga_pkg
(Game Asset Package) - 设置包名
ga_pkg_name
(不设置的话默认包名为地址本身)
- 与该地址关联的所有资产的集合,称为资产包
- 特性:
可回溯
系统中的每一个 nft 装备都可以通过一系列 tx 回溯至ga_creator
- 特性:
不可伪造
在没有ga_creator
私钥的情况下,无法铸造新的装备 - 简化:利用 utxo 使得我们可以不需要 commit 动作的二次确认
双花如何解决?(必须利用 utxo 机制才能 miner enforced)
- 每一个装备都必须与它唯一对应的那个 1000 聪的 utxo 相关联,否则无法避免双花
- 这要求系统能够很容易地找到"同一个地址下每个 utxo 的上一笔交易"
- 接收方需要检验:发送方提供的 utxo 可回溯至
ga_creator
(伪造的 utxo 无法做到)
手续费如何处理?(四种情形)
- nft 站内互转 (玩家 A → 玩家 B) - 系统账号付手续费
- nft 转出 (站内地址 A → 站外地址 A’) - 系统账号付手续费
- nft 转入 (站外地址 A’ → 站内地址 A) - A’ 付手续费
- nft 站外互转 (玩家 A’ → 玩家 B’) - A’ 付手续费
具体行为
- 铸造
ga_action
MINT
- 转移
ga_action
TRANSFER
- 销毁
ga_action
DESTROY
- 更新
ga_action
UPDATE
(optional)
(全文完)
- Gu Lu, 2020-07-09, 于免成居 (公众号:免成居)
- 本文遵循 Creative Commons BY-NC-ND 4.0 许可协议。
- 2020-07-09 新增编号 Bt-005-2007 并入库