
- 同质化代币与最小绑定值
- 在创世交易中为某个染色币绑定了1000 sat,则该染色币的最小分裂单位为1 sat。这意味着该资产或代币可以被切分或分配为最多1000份(但是仅为理论上的,为了防止粉尘攻击,比如当年的sat都定在546 SAT,后面到ordinal则是更高)。
- 验证问题
- 为了确定染色币的真实性和其所有权,需要从该资产的创世交易追踪验证到当前的UTXO。因此需要专门开发钱包与配套的全节点,甚至是浏览器。
- 潜在的矿工审查风险
- 因为ColoredTransaction的特征较为明显,即在output中写入了metadata信息,这给矿工审查带来了可能性。


- 证明的发布(Proof-of-publication)
- 证明的发布本质是解决双花问题,比如Alice有一些比特币想要转给Bob,虽然通过签署了一笔交易转账给了Bob,所以Bob在物理上并不一定知道有这么一笔转账的存在。所以我们需要一个公共的地方进行交易的发布,并且每个人可以从中对交易进行查询。
- 交易定序(Order consensus)
- 在计算机系统,并不存在我们平常感受的物理时间。在分布式系统这个时间通常是分布式时钟lamport,这个时钟并不是为我们的物理时间提供度量,而是为我们的交易进行定序。
- 交易验证(Validation)(可选项)
- BTC上的验证便是关于签名和BTC转账金额的验证。但是在这里,Peter Todd认为这个验证对于在BTC之上构建一个代币系统是非必要的,只是一个优化选项。
- 状态(交易逻辑验证)
- 输入TxIn是否有效(防止双花)

- l: seal, 即是密封
- m: message, 消息
- w:witness, 见证人
- Close(l,m) → w:在消息m上关闭密封l,产生一个证人w。
- Verify(l,w,m) → bool:验证密封l是否在消息m上被关闭。
- 链下数据存储:客户端验证的资产其交易历史、所有权和其他相关数据大多数都存储在链下。这大大减少了链上的数据存储需求,并有助于提高隐私。
- 承诺机制:虽然资产数据存储在链外,但对这些数据的更改或转移会通过承诺(commitments)被记录到链上。这些承诺使得链上的交易能够引用链外的状态,从而确保链外数据的完整性和不可篡改性。
- 链上见证者(不一定是BTC):虽然大部分数据和验证都在链外,但通过嵌入到链上的承诺,客户端验证的资产仍然可以利用基础链的安全性(证明的发布,交易的排序)。
- 验证工作在客户端完成:大部分验证工作都在用户设备上完成。这意味着不需要全网节点都参与验证每笔交易,只有涉及到的参与者需要验证交易的有效性。

- 时间戳服务
- 最快10秒最终确定一个交易序列。
- 证明
- 通过PMT形式存储与区块头一同生产和发布。
- 一次性密封
- 抽象的单次密封协议,保证防双花即可。在比特币上实现,则是可以绑定到UTXO,与当下RGB设计类似。
- 智能合约协议
- 分片合约-RGB (可替换)


- 验证发生在链上(OP-ZKP)
- 如果在TaprootScriptVM直接去实现OP-ZKP,相当于让BTC本身加入ZKP验证的能力,从而再配合一些Covenant设计结算协议,就可以打造出能够继承BTC的安全性的Zk-Rollup扩容方案。但是不同于在以太坊上部署一个验证合约,BTC的升级本身就缓慢,再加入这样非通用并且可能需要后续升级的op-code注定是艰难的。
- 验证发生在半链上 (BitVM)
- BitVM的设计注定了它不会是为了普通的交易逻辑服务,Robin linus也表明了BitVM的未来是做各个SideChain的自由跨链市场。之所以说BitVM的方案是发生在半链上,是因为大部分时候这些验证计算都不会在链上发生,而是说发生在链下。但是围绕BTC的Taproot去设计的重要原因是为了在必要的时刻也能够利用TapScriptVM进行计算验证,这样也是为了从理论上继承BTC的安全性。在这个过程中也同时产生了一个验证信任链条,比如n个验证人里只要有一个是诚实的就行,也就是Optimistic Rollups。
- BitVM在链上的开销巨大,但是能够使用ZK欺诈证明进行效率提升吗?答案是否定的,因为ZK欺诈证明的实现是建立在链上可以进行ZKP的验证的基础上,这就回到了OP-ZKP方案的困窘。
- 验证发生在链下 (Client-Side-Validation, Lightning Network)
- 验证完全发生在链下,那就是之前的讨论过这些CSV的资产协议还有闪电网络了。在之前讨论里可以看到在CSV的设计里,我们没有办法完全杜绝共谋篡改的发生,我们能做的就是利用密码学和协议设计让这种恶意共谋伤害的范围在可控范围内,使得这种行为无利可图。
- 在链下验证的优点和缺点同样是非常明显,优点在于对链上的资源占用极少,扩容的潜力巨大。缺点则是几乎不可能去完全复用到BTC的安全性,这就对能进行的链下交易类型和交易方式有了极大的限制。并且链下验证也同时代表数据都在链下,由用户自行保管,这对软件执行环境安全性还有软件的稳定性上提出了更高的要求。