开发RSK/以太坊智能合约,能否用区块高度结合平均出块时间计量一年?
关于RSK、以太坊上年分红智能合约时间计算方案的选型建议
直接给结论:优先选择区块时间戳,不要依赖区块高度计算年度时间跨度,原因如下:
- 区块高度对应的时间不是恒定值。哪怕你现在已经拿到了两条链当前的平均出块间隔,这个参数会随协议升级发生变动:比如以太坊从PoW切换到PoS之后,出块间隔从平均13秒调整到了稳定的12秒,未来也不排除因为共识优化再次调整的可能;RSK当前平均出块间隔是30秒,同样存在后续参数调整的可能性。如果你把换算好的年度对应区块高度写死在合约里,后续一旦链的出块参数变了,分红触发时间就会出现明显偏差。
- 区块时间戳的精度完全可以满足年分红的场景需求。以太坊和RSK的共识规则都对区块时间戳的取值有严格约束,节点不能随意篡改,单区块的时间戳偏差基本都在几十秒以内,对于按年计算的分红周期来说,这个误差可以忽略不计,可靠性远高于区块高度换算的方案。
- 特殊场景的兼容方案:如果你确实有使用区块高度的需求,不要把出块间隔写死为常量,可以将其设置为可通过多签等可信方式调整的变量,后续链的出块参数变动时可以手动校准偏差。
内容的提问来源于stack exchange,提问作者Sergio Lerner
相关产品推荐
相关产品推荐

