瘫痪专科治疗医院

注册

 

发新话题 回复该主题

深入分析以太坊交易成本哪些因素影响以太坊 [复制链接]

1#
去哪里治白癜风好 https://jbk.39.net/yiyuanzaixian/bjzkbdfyy/sfxbdf/

众所周知,以太坊有自己的虚拟机。

什么意思呢?

就是比特币中的交易长这样:

「如果小明的签名验证通过,小明转10元钱给小红的地址。」

而以太坊中的交易可能长这样:

「当小明的签名验证通过并且满足blablablabla条件时,将小明账户中的10元钱转到小红的账户上。」

这其中的blablablabla条件,实际上可以是任何逻辑或者任何程序,其中可以有条件判断,可以有循环,这些以太坊都支持。但问题就来了——要是有个不善良的矿工打包了个死循环放在区块里,岂不是能让所有的以太坊节点都死机?

为了防止这种事情发生,以太坊中设置了每个区块的Gas上限以及每个计算步骤所需要消耗的Gas量。

我们可以简单粗暴地把Gas理解成汽油。比如,一个条件判断需要10gas,一个签名验证需要gas,一个状态读写需要10gas等等……然后,每笔交易都需要注明这笔交易需要使用的Gas(当然,还需要付钱)。比如说,在某笔交易之后,你注明“跑0个gas的”,于是,以太坊的节点会执行这笔交易,但是当计算需要消耗的gas超过0了,不管交易的步骤执行没执行完都会停下来。

于是,死循环不会出现,比如你写了个死循环,但是每次循环会烧10gas,而区块的gas上限是00,你于是最多给这个程序买00的gas,那么所有节点会执行0次循环,直到把你给的gas烧完就停下来,而不会无限循环下去。

而这个时候就引出了另一个以太坊和比特币不同的区别:

在比特币中,链上最宝贵的资源是空间——因为一个区块大小是1M,而平均10分钟才能出一个区块。

而在以太坊中,链上最宝贵的资源是gas,因为每个区块的gas是有上限的,而平均出块时间也是固定的,每单位时间能够做的计算步骤其实也是有限的,所以ETH的TPS也是有限的。

于是,当大量的人需要做交易,尤其是很多操作复杂的交易的时候,以太坊就会拥堵。

ETH的TPS

对ETH的TPS造成影响的问题大概分以下几个方面:

ETH的gas机制

ETH的交易成本

ETH的网络

合并进程

分片链

1、ETH的gas机制

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

Wei的由来:戴维(WeiDai)是一位华裔计算机工程师,对密码学和加密货币的贡献而闻名,他开发了Crypto++密码库,创建了B-Money加密货币系统,并共同提出了VMAC消息认证码算法。年,VitalikButerin的以太坊(Ethereum)最小单位Wei,便以他的名字命名。比特币白皮书的排名第一的参考资源也是戴维的B-money,中本聪在建立比特币初期也多次想与戴维联系。

目前ETH消耗gas的单位是Gwei,对应1Gwei=1e9Wei

简单说,gasprice就是汽油单价,gaslimit相当于发动一次汽车需要的最大汽油量。

再具体点的表达是:

GasPrice是以太坊内计算消耗1个gas对应多少Gwei的标准量,单位是Gwei。

GasLimit是消耗gas的上限单位。在完成每笔交易中最多使用多少个gas(交易的gaslimit)。

区块的GasLimit是能够将一定量的交易「装在」该区块中的交易所用总Gas数的上限。当节点在选择要打包的交易时,节点必须确保加入这笔交易后,区块里的交易所用总Gas数不会超过区块Gas上限。对于要被打包的交易来说,其GasLimit加上其他交易的GasLimit总和,必须小于等于区块GasLimit。当然,如果有一笔交易不能被打包进入当前区块,它还是有机会被后面的区块打包的。区块的GasLimit大小是动态调整的,伦敦升级为以太坊引入了可变大小的区块Gaslimit。每个区块的目标大小为gas,但区块大小会根据网络需求增加或减少,直至区块限制为个gas(目标区块大小的2倍)。

区块gaslimit为什么要改变

让区块大小可以根据网络交易多寡,自由调整区块大小。在网络交易量大时,可自动实现扩容。

防止恶意用户的恶意for循环攻击使网络瘫痪。

因恶意用户不断的转移额度非常小的帐目,使得整个网络瘫痪,当交易的费用非常低时,可以忽略不计,因此以太坊引入了gas的概念,任何转账以及智能合约的执行,都要消耗一定的费用即gas,如果gas消耗完毕,则代码不再继续执行,这样防止恶意代码的for循环不停的执行,以至于整个网络无法继续向下一个状态迁移。因此我们知道,任何计算、存储都是需要付出成本的,这样才能杜绝恶意攻击代码。

交易成本对TPS的影响

当交易大时,区块gaslimit将实现自动扩容,提高以太坊本身的tps,区块的gaslimit最高为30,,(节点默认配置)。

2、ETH的交易成本

以太坊的底层技术与gas的设计都是由GavinWood完成的,具体可参考GavinWood写的黄皮书。

以下是ETH黄皮书设计的gas成本。

截图来自:

分享 转发
TOP
发新话题 回复该主题