原文标题:《ETH 交易成本组成》
原文作者:Xiang,W3.Hitchhiker;修订:Evelyn,W3.Hitchhiker
众所周知,以太坊有自己的虚拟机。
什么意思呢?
就是比特币中的交易长这样:
「如果小明的签名验证通过,小明转 10 元钱给小红的地址。」
而以太坊中的交易可能长这样:
「当小明的签名验证通过并且满足 blablablabla 条件时,将小明账户中的 10 元钱转到小红的账户上。」
这其中的 blablablabla 条件,实际上可以是任何逻辑或者任何程序,其中可以有条件判断,可以有循环,这些以太坊都支持。但问题就来了——要是有个不善良的矿工打包了个死循环放在区块里,岂不是能让所有的以太坊节点都死机?
为了防止这种事情发生,以太坊中设置了每个区块的 Gas 上限以及每个计算步骤所需要消耗的 Gas 量。
我们可以简单粗暴地把 Gas 理解成汽油。比如,一个条件判断需要 10 gas,一个签名验证需要 100 gas,一个状态读写需要 10 gas 等等……然后,每笔交易都需要注明这笔交易需要使用的 Gas(当然,还需要付钱)。比如说,在某笔交易之后,你注明「跑 1000 个 gas 的」,于是,以太坊的节点会执行这笔交易,但是当计算需要消耗的 gas 超过 1000 了,不管交易的步骤执行没执行完都会停下来。
于是,死循环不会出现,比如你写了个死循环,但是每次循环会烧 10 gas,而区块的 gas 上限是 10000,你于是最多给这个程序买 10000 的 gas,那么所有节点会执行 1000 次循环,直到把你给的 gas 烧完就停下来,而不会无限循环下去。
而这个时候就引出了另一个以太坊和比特币不同的区别:
在比特币中,链上最宝贵的资源是空间——因为一个区块大小是 1 M,而平均 10 分钟才能出一个区块。
而在以太坊中,链上最宝贵的资源是 gas,因为每个区块的 gas 是有上限的,而平均出块时间也是固定的,每单位时间能够做的计算步骤其实也是有限的,所以 ETH 的 TPS 也是有限的。
于是,当大量的人需要做交易,尤其是很多操作复杂的交易的时候,以太坊就会拥堵。
对 ETH 的 TPS 造成影响的问题大概分以下几个方面:
ETH 的 gas 机制
ETH 的交易成本
ETH 的网络
合并进程
分片链
我们知道比特币区块链中消耗的矿工费用是 BTC,为了激励以太坊网络中的计算,于是在以太坊中产生了 gas 的概念,在以太坊区块链上执行写入操作都需要支付 gas 费用,以太坊定义了货币是 1 ETH,且 1 ETH = 1e18 Wei。Wei 是其中的最小额,在整个工作中,发送Token、调用合约都要支付 gas,且以 Wei 作为单位来计算。
戴维(Wei Dai)是一位华裔计算机工程师,对密码学和加密货币的贡献而闻名,他开发了 Crypto++ 密码库,创建了 B-Money 加密货币系统,并共同提出了 VMAC 消息认证码算法。2013 年,Vitalik Buterin 的以太坊(Ethereum)最小单位 Wei,便以他的名字命名。比特币白皮书的排名第一的参考资源也是戴维的 B-money,中本聪在建立比特币初期也多次想与戴维联系。
目前 ETH 消耗 gas 的单位是 Gwei,对应 1 Gwei=1e9 Wei
简单说,gas price 就是汽油单价,gas limit 相当于发动一次汽车需要的最大汽油量。
再具体点的表达是:
Gas Price
欢迎光临 优惠论坛 (https://tcelue.tv/)
Powered by Discuz! X3.1