gas直译为汽油,是一种可消耗的量。在Ethereum中,gas可以理解为一种经济措施。
大家都知道中本聪在bitcoin中并没有写入一个循环,因为如果这个程序运行下去,就是一个无限循环,俗称"死循环"。那矿工如何决定要不要放弃?因为没有人能够证明一个程序能不能终止,停机定理,也许人有证明过。
当引入gas机制后,程序的每一步运行都会消耗一定量的gas,当gas消耗完之后,程序运行也会停止。而gas是需要法币进行购买的。你可以写入一个死循环,但唯一的作用就是把你的钱花光。就会有人有这样的问题,那么这个钱最终到了谁的口袋?没错,是矿工!因为矿工帮你提供了算力服务,保证程序的运行,你付费给矿工,就像Bitcion里的手续费一样。
这时就会出现另一个问题:以太坊产生以太币,又引入gas机制,会不会重复?不会,两者各有分工。以太币作为投资货币,必然受到市场买卖因素影响其价格,有可能今天上涨50%,明天下降50%,但这种价格的波动对于程序的执行成本确是无法接受的,例如,昨天执行一个加法用十块钱,今天确要花费五十块。因此引入了gas来解耦,把市场价格和计算成本进行解耦,以太币和gas之间是有汇率的,以太币价格涨没关系,只要gas价格降就行。保证相同程序的运行所消耗的法币是一致的。
gas的运算开销也是很低的,复杂一点的也只要几分钱。
本文大部分观点来自万向区块链实验室在上海举行了一个全球性的区块链Hackathon(黑客马拉松)上,Terry和Jan的对话。
网友评论