关于 since 字段的疑问

since 字段的位置是 inputs 里,每一个 input cell 配套一个 since,这个设计有什么深意吗?

构建交易的时候,如果对 since 有要求,那应该在 tx 级别设置才对;如果是创建 cell 时对 since 有要求,那么应该在 cell 里标注,不应该在引用的时候才填写这个值呀。

  1. since 是用来描述 cell 何时能被解锁的。
  2. 放在 input 里而不是 output 的原因是这样更加灵活且合理。一个 Cell 经常会有多个解锁方式:比如 HTLC 或者 payment channel 常见来说就有以下两种解锁方式

解锁路径 A 是 timeout 后,一方取回自己的 Cell。解锁路径 B 是对方出示证据来解锁 Cell。

把 Since 放在 input 的好处是

  1. 合约可以根据不同的解锁路径来规定 since 的值。
  2. 不同的 cell 解锁条件可能不同可以互不干扰的放在同一个 tx 里。

这个设计和 Bitcoin 的 sequence 字段是一脉相承的 https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki

如果 since 是 cell 的一个属性,这一点也可以满足;

这一点我不确定是不是完全明白你的意思,看上去如果是 cell 内部的字段的话也是可以满足的?