
介绍
在工作量证明(PoW)区块链上检查智能合约的有效性需要时间和资源的成本。如果这些成本得不到控制,可能会导致网络缓慢,甚至发生拒绝服务攻击,完全阻止网络的使用。因此,成本控制是一个有效区块链的基础。
通常,在PoW区块链上控制成本有两种一般方法:
- 提前成本估算(AOT Costing) - 在脚本执行之前估算成本,以便不执行过于昂贵的脚本
- 即时成本估算(JIT Costing) - 在脚本实际执行期间计算成本
这两种方法各有优缺点。即将推出的Ergo节点v.5.0升级采用混合方法来改善成本控制。
AOT成本的优缺点
目前,Ergo使用AOT成本估算。工作在Ergo区块链上以区块的形式进行。每个区块大约需要2分钟,并且包含该时间段内的所有交易。区块有预算,不能超过该预算。
当矿工创建一个区块时,区块的成本会提前估算。如果成本低于区块的预算,并且数学/逻辑成立,则该区块会提交到区块链。
然而,估算也有成本。当这些成本低于实际运行脚本的成本时,AOT成本估算是合理的。在使用简单的智能合约语言时,进行估算的成本更低。
使用AOT成本估算有一个主要优点。网络通过区块而不是通过交易施加限制。由于估算成本较低,矿工会承担被拒绝交易的交易成本。每个被接受的交易只需简单的费用添加到区块中。
需要注意的是,AOT成本估算并非没有缺点。估算并不是实际成本,通常效率低下,浪费网络资源,减少每个区块的容量,从而降低区块链的扩展能力。这在像Ergo这样的情况下尤其明显,因为该区块链支持使用输入和输出的集合、用户定义的上下文扩展变量以及其他复杂功能。此外,AOT成本估算未能利用下一代智能合约语言的效率,这些语言的运行成本低于估算成本。
AOT成本估算还有其他缺点,但上述内容确立了比单独使用AOT成本估算更好的成本控制模型的必要性。
Ergo的新混合成本计算方法
即将发布的Ergo节点v.5.0将使用混合成本算法来控制成本,并保护网络免受拒绝服务、垃圾邮件和其他对网络资源的攻击。通过这种新方法,成本算法分为两个阶段。
在第一阶段,交易输入通过验证器(一个输入接一个输入)进行处理,每个输入的脚本被简化为一个sigma命题——一种可以进行密码学验证的支出条件。在这个简化阶段应用即时成本估算(JIT Costing)。
当交易中的每个输入都有一个sigma命题时,则使用AOT成本估算(这既非常简单又快速)来计算交易中所有密码操作的成本。所有成本然后加在一起,以确定交易本身的最终成本。一旦获得交易的最终成本,它将被添加到区块成本中,必须在区块预算内才能添加。
对于区块中的每个交易(按顺序)重复相同的过程,并累积区块的总成本。在提交到区块链之前,每个区块的成本必须低于每个区块允许的成本。
通过部署这种新的两部分成本计算方法,成本可以比单独使用AOT成本估算更高效、更准确地建立,费用更低。因此,Ergo节点v.5.0的发布应有效增加每个区块的交易数量,改善成本估算,并增强Ergo区块链的性能。
Share post




















