在开发DApp应用或者使用以太坊转账的时候,经常会接触到gas, gas price, gas limit几个词汇。很多人被他们绕晕了。本文希望能对这个问题提供一些解读,解决大家普遍的疑惑。
GAS机制的意义
欧神说过,凡事都要看到T-1层的运行规则。我们对于gas,要先理解背后的设计哲学。追踪溯源,我们不得不先从比特币说起。
比特币是一个大的账本,矿工打包区块,给予BTC激励。但受限于网络的速度,区块的大小是受限的,为1M。在这么大的区块链里,能容纳的交易显然是有限的。那么如果交易很多,怎么办?这有限资源配置的经济学问题。兼顾公平,还是效率?
比特币给出的解决方案是这样的,每笔需要收取一定的手续费,谁给的多,谁就更加有机会被打包。完全是利益驱动矿工,非常符合人性。因为区块链的去中心特质,决定了需要用直接的经济效益驱动参与者。
区块链发展到以太坊这里时,我们同样面临类似的问题,如何设定区块的大小,如何收取手续费?能直接照搬比特币的机制吗?
难!以太坊本质是一个超级计算机,交易不仅仅是一个简答的记账,背后有很多合约执行操作。你想想,部署一个复杂的合约要比执行一个简单的以太坊转账要复杂很多,所占用的资源要多很多。这两笔交易,显然是不对等的。那该怎么收费呢?这个地方我们就需要兼顾公平与效率。不能太随意,最好有量化的计算机制。
这个时候,GAS机制的自然引入进来,通过gas去量化交易的复杂度,保证公平性。通过设定gasPrice(基本单位为wei,以太坊的最小单位)来保证效率,保证资源调配的高效