关于改进 CIP-107 的说明(20230307)

CIP-107 公布以后,我们收到了来自团队内部与社区的一些反馈。其中,我们关注到两点意见:

  1. 对于一些应用场景,如 ERC 721 标准,NFT 自铸造后便永久占用存储空间,几乎没有退还存储空间的情形。CIP-107 难以从这些场景获得代币燃烧。
  2. 对于另一些应用场景,如 ERC 1155 标准,智能合约占用的存储空间可能不断波动。而在这种波动中,智能合约的存储抵押会被不断燃烧,提高了合约存储的开销,且理论上是无上限的。

因此,我们决定改进 CIP-107, 并遵从以下原则:

  1. 对生态项目而言,不改变其对存储抵押“一次付费、永久使用”的预期。
  2. 对于一个合约,如果它的存储上限不增加,只是存储总量上下波动,CIP-107 不应该增加它的成本。
  3. CIP-107 应当可以带来显著的代币燃烧。

我们对原有的 CIP-107 做了如下改动(以下为草稿,供讨论用):

  1. 将燃烧代币的时间点从“退还存储抵押”改为“增加合约赞助抵押存储”。因为向“合约赞助抵押存储”对应“一次付费、永久使用”中的付费环节。EOA 账户不涉及赞助机制,因此不会因 CIP-107 产生代币燃烧。

  2. 为了不增加生态应用的存储成本,燃烧掉的代币按一定比例 p 转化为“存储积分”。在支付存储抵押时,存储积分等同于相应被烧掉数额的代币。在释放存储空间时,存储积分和代币一样会被退回,并可以重复使用。存储积分和代币的不同在于,存储积分不可兑回代币,不产生抵押利息,不可流转。

  3. 这个比例 p 在初始状态下为 50%,并根据 DAO 可调节,具体调节方式为:

    DAO 投票控制一个 STORAGE_POINT_PROP 参数,这个数初始为 1,且包含 18 位小数精度,p 被定义为 STORAGE_POINT_PROP/(1+STORAFE_POINT_PROP).

    例如,在第一个投票周期,如果所有的票都赞同增加比例 p, 那么STORAGE_POINT_PROP 增加至 2,p 相应地增加至 2/3 = 67%.


一些早期讨论中被问到的细节:
  1. “存储积分”是可流转的吗?

    不可流转,存储积分只属于被赞助的合约

  2. “存储积分”是可退回的吗?

    当释放存储空间时,可能退回 CFX 或存储积分,但存储积分只可用于后续的存储抵押。

  3. 当新赞助者取代旧赞助者时,会产生 CFX 燃烧吗?

    只有增量部分会产生 CFX 燃烧。例如旧赞助者赞助了 100 个 CFX, 其中 50 个被转化为存储积分。那么如果新赞助者只提供 50 个 CFX, 不会产生 CFX 燃烧。如果新赞助者提供 70 个 CFX, 增量的 20 个 CFX 中的一半会被燃烧掉并转换为存储积分。


CIP-107 可能带来的影响
  1. 合约开发者与使用者:不需要关心 CIP-107 的实现细节,也不需要区分存储积分和存储抵押的区别。
  2. 合约赞助者:当新赞助者取代老赞助者时,新赞助者发给旧赞助者的 CFX 会减少。
  3. 矿工:预计每个区块会减少 0.001 CFX 的收益。