优惠论坛

标题: 探究对以太坊TPS造成影响的五个方面 [打印本页]

作者: 金色财经小编    时间: 2022-8-2 03:17

原文标题:《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 的 TPS 造成影响的问题大概分以下几个方面:

1、ETH 的 gas 机制

我们知道比特币区块链中消耗的矿工费用是 BTC,为了激励以太坊网络中的计算,于是在以太坊中产生了 gas 的概念,在以太坊区块链上执行写入操作都需要支付 gas 费用,以太坊定义了货币是 1 ETH,且 1 ETH = 1e18 Wei。Wei 是其中的最小额,在整个工作中,发送Token、调用合约都要支付 gas,且以 Wei 作为单位来计算。

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