大家透过以太坊(Ethereum)进行交易的时候,也许都会听过别人提起“Gas”这个词语,而且又会以多或者少去形容它,说得好像真的平时日常生活中所用到的燃料一样。其实Gas是如何使用?另外,除了以太坊Gas之外,其实另一个区块链项目NEO都有属于它们Gas。两者其实是「兄弟」吗?还有,为何有了NEO,还要有NEO Gas呢?
在这篇新手专题的文章,你将能够掌握:
- 以太坊Gas 的基本概念
- 传输程序讲解
- NEO Gas 与双币制度(Dual token system)
以太坊Gas 的基本概念
Gas 是以太坊(Ethereum)的其中一个基本概念,在发布白皮书的时候已经有提及。白皮书当中清楚提到,Gas 是电脑执行计算动作(computation)的驱动工具。这看来其实很类近普通汽车使用汽油(Gasoline / Gas)的情况:你希望里面的引擎能够驱动,令汽车行走,你就需要给它汽油。
白皮书指在最基本的情况下,单一个计算动作须用上1 Gas。但是,有些计算动作因为比较复杂,牵涉的资料较多,就不能够用1 Gas完成,需要用上更多的Gas。白皮书又提到,每位元组(Byte)的交易资料须收取5 Gas费用。现时在以太坊当中,传送以太币(Ether, ETH)须用上21000 Gas。
因应Gas 的出现,有另外两个字词亦引伸出现,分别就是“Gas Limit” 和“Gas Price”。“Gas Limit” 的意思是指,你愿意在一宗交易(或者传输过程)当中,最多用上多少Gas。需要注意,如果Gas Limit 订得太低的话,譬如传送ETH 需要用21000 Gas,而你只设定了15000 Gas,你的交易就会传送失败,我们一般会以“Out of Gas” 来形容这个情况。
既然要避免这个情况,我们应该设定较高的“Gas Limit”,譬如传送 ETH 的话,可以设定50000 Gas。大家不用担心设定过高Gas 就等于浪费,因为没用到的Gas 将于交易成功后退回。在此建议大家日常使用时,尽管设定高一点的Gas Limit 也可,因为《币讯》也确实试过用21000 Gas 都无法送出ETH,后来设定较高的Limit 后才发现,系统用了约21100 Gas 才成功传输。
至于“Gas Price”按照字面解就是油价,但套用在以太坊的情况,就是一个速度攸关的选项:如果你想快些完成交易,你应该设定较高的Gas Price;如果你不赶时间,设定较低的Gas Price也没有问题。为何较高的Gas Price会较快完成交易呢?我们稍后再向大家解释。至于Gas Price的单位是“GWEI”,而10 GWEI才等于0.00000001 ETH,亦即是10亿GWEI就等于1 ETH -所以在理论上,你是可以用10亿GWEI,即把1个ETH作为Gas Price送出去。GWEI其实和ETH是相通的十进制换算单位,大家也可以去一些换算网站参考。
基本而言,Gas Price的合理标准并不是一个硬性指标,到底是否「合理」,是按照当时区块链的繁忙和挤塞情况而定。如果交易当刻区块链并不繁忙,你要付出的Gas Price,即是GWEI并不会很高;但如果在很繁忙的时候,例如链内充斥大量复杂的交易资料,例如谜恋猫CryptoKitties ,或者当时出现大量认购ICO(Initial Coin Offerings,首次代币发行)的情况,甚至是有代币(Token)大量生成的时候,日常付出的Gas Price就肯定不能满足需求,用家就必须提高。“ETH Gas Station”是一个相当简明的网站,提供了即时的Gas Price资讯,可令用家更有预算。
有了Gas Limit 和Gas Price,我们就可以计到一宗交易的费用是多少了。算式就是:Gas Limit x Gas Price = Transaction fee。
打个譬喻:某个传送ETH 的程序,用家设定了的Gas Limit 是21000 Gas,Gas Price 为20 GWEI。他需要准备的交易费就是21000 Gas x 20 GWEI = 0.00042 ETH。
传输程序讲解
一般来说,在我们要传送ETH 或者其他以太坊代币的时候,储币的钱包都会容许我们设定Gas Limit 和Gas Price,当然阁下仍然可以使用系统预设的数值,可能是21000 Gas 和10 GWEI 。
当我们确认传送交易之后,钱包会给予我们交易编码(Transaction code, TX code)。我们得到TX Code后,当然可以去到检查交易进度的网站,例如etherscan.io查询,但通常我们输入TX code的时候,都会发现系统出现“pending”的情况,就是等待处理的状态。为什么会这样呢?
大家可以想像,其实等待处理的交易其实都是放在同一个池当中,等待矿工「打捞」处理。矿工拿起这些交易之后,就会放进区块中,成为区块链的一部分,交易也正式完成了。矿工并不会随机「打捞」交易,那到底矿工会优先捞起哪一些的交易呢?当然就是交易费较高的交易了!
收取交易费的是矿工,他们优先处理能获益最多的交易,这是很直观和正常的做法。虽然这不是一个硬性原则,但几乎所有矿工都会按这个原则处理。以太坊每10 秒产生一个区块,只要你设定较高Gas Price 令交易费也较高的话,有时你未及检查进度,矿工就已经完成你的交易了。如果你选择较低Gas Price 令交易费也较少,矿工自然也不会急切处理你的交易,留待较后期,甚至是网络不繁忙的时候才处理,这就是为何用家付出太少GWEI 就要等待较长时间的原因。
![](/uploads/200112/1-200112120352623.jpg)
NEO Gas 与双币制度(Dual token system)
上面的段落已经讲解了以太坊Gas 的概念和使用方法,但是除了以太坊的Gas 之外,其实另一个区块链项目NEO(NEO)都有发展Gas(GAS),即是说项目有两种加密货币,分别就是NEO 和GAS。为何要这样做呢?
讲解原因前,首先提供一些基本资料:NEO 是中国第一个开放源码区块链项目,早在2014 年开展,并在2015 年6 月起在GitHub 开放源码。NEO 项目拥有自己的区块链,能够执行智能合约,而NEO 平台内的智能合约就名为“NeoContract”。
NEO开发方早在发表《NEO白皮书》的时候,已经将NEO设定为双币(Dual token)制度。严格而言,NEO属于硬币类加密货币(Coin-type cryptocurrency),而GAS就属于代币类加密货币(Token-type cryptocurrency)。
根据白皮书,属于「管理代币」的NEO 作用是用来投票选出委托人,即是实践权益委托证明(DPoS)共识机制等,而属于「燃料代币」的GAS 作用是在转账NEO 和执行智能合约时使用。总量1 亿个的NEO 现时已经全部生成,但是总量1 亿个的GAS 就仍在生成。
根据已经预载的递减算法,目标是算法执行后的22 年内,将GAS 生成在不同的NEO 钱包地址当中,换而言之,用家只要拥有NEO 并且放在支援生成GAS 功能的钱包当中,他都会收到GAS。所以GAS 除了是燃料代币之外,亦可以视为持有NEO 的「利息」(“dividend”)。
来到这里,我们已经可以看到ETH Gas 和NEO Gas 的相同和相异之处。相同的是,ETH Gas 和NEO Gas 都是为了执行程式运算、传输交易、和执行智能合约而设,要做到以上的事就必须用到ETH Gas / NEO Gas。不过,ETH Gas 不是代币,所以不能,而且无法以任何形式派发或取得,只能成为执行程式数量的指标单位;而NEO Gas 作为代币的定位,就令开发方提供了派发方式,用家亦知道取得的方法,并以它执行各种运算和交易活动。
现在还有一个问题未解答:为何NEO,以及其他项目商都要发展双币制度呢?其实原因都相对简单,就是项目商希望将他们建构的加密货币系统,以功能来区分定位:具备管理、交易功能的就是「主币」,用以传输与执行运算的就是「副币」。在此,副币还可以用作奖励矿工、贡献者和主币的持有者。
另外,项目商亦未必希望加密货币的价格升跌直接影响传输成本,所以就将传输功能交给副币负责,期望去除主币价格升跌所带来的连串影响。不过按照以往经验,主币和副币的价格走势都是呈正相关性,所以上述的影响始终不能完全排除,往往只能减轻。
总结
这篇新手专题文章所谈论的ETH Gas 和NEO Gas 虽然隶属两个系统,两者没有任何关系,但是跟双币制度一样,这个都是反映了项目商的发展布局和用心。如果以更宏观的眼光去看,各个项目自行发展的生态,其实都是「代币经济」(“Token Economy”)的一部分。但到底什么是代币经济呢?我们下次再谈。
本文链接地址:https://www.wwsww.cn/ytf/2689.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。