区块链中的ETH可以解决哪些问题

在《在区块链上运行程序,到底是啥意思?dapp到底是什么?》里我们谈到,btc脚本语言不具备图灵完备性,eth使用的语言,比如solidity具备图灵完备性。
具备图灵完备性的语言,可以使用循环语句,可以一遍又一遍地执行一组指令。这个特性可能会造成网络堵塞。
eth如何解决这个问题?
用gas。简单地说,你必须为你的程序执行的每一条指令——付费。
昨天我们说到,solidity语言编写的代码,会被编译为字节码。这组字节码,就是一组evm可执行的指令。
而执行每条指令,都有相关的gas成本。参考下表:
这张表中,evm可以执行的每条指令,在gas used这一列,都有相应的gas价格。
这样,如果你想在eth网络里,跑一百万次循环语句堵塞网络,你需要花费的gas,会是个天文数字哦!你会放弃的!
你可能会问,这个gas,是我们转账eth时设定的gas吗?
每次eth转账,gas,gas price,gas limit,感觉一脸懵逼,傻傻分不清楚啊!
gas (燃料)
如前表,gas的多少,对应于交易中evm实际执行的运算复杂度。
运算越简单所需gas就越低。反之,如果转账过程中,需要用到其它复杂指令,gas就会高。
比如 balance指令,gas高达400.
gas price(燃料价格)
是指你愿意为每个gas,花费多少eth。gas price由交易者设定。一般用gwei作单位。
1 gwei = 0.000000001 eth。 gas price越高,付出的eth也就越多。
当你设定gas price = 30 gwei,表示,愿意为每个gas付出:0.00000003 eth。
gas 由你主动出价。如果价格太低,矿工们就会拒绝帮你打包,帮你转发交易。
但是如果设置太高,就会增加交易成本。
转账手续费(tx fee)
它等于——实际花费燃料(gas used)x 单价(gas price)
比如,一次交易运算量,需要50gas,而gas price设为3 gwei。整个交易的手续费= 50 * 3 = 150 gwei = 0.00000015 eth。
gas limit (燃料供给上限)
交易中gas上限值。是指:交易中最多花费多少gas。
由于交易复杂度各不相同,eth网络需要完成交易后,才能计算出一共要花费多少gas。
所以,eth网络,要求交易者在发出交易之前,为交易设定一个gas上限。
如果交易还没完成,而消耗的gas,已经超过交易者设定的gas limit,那么交易就会被取消。
转账的eth会退回,但燃料费还是要扣除,用作奖励矿工。
而如果交易已经完成,而消耗的gas没要达到gas limit,则只花费实际消耗的gas,不会多算。
强调
设置gas的主要目的,不是为了金钱!
而是为了每条指令都有价!阻止恶意的循环语句和其它恶意语句,阻止恶意代码的运行。


测试环境的搭建和维护_软硬件测试环境
[行业观察] 驱动世界的锂电池,其工业背后隐藏的却是...
无线传输是未来电力能源普及的最有效的传输手段
STM8S_001_ GPIO基础知识
时间继电器的原理、结构和特点
区块链中的ETH可以解决哪些问题
浅谈电能质量提升及无功功率补偿
itc高清LED显示屏赋予场景活动空间精彩绝伦的视觉体验
最大限度地提高Σ-Δ ADC驱动器的性能
世界首款公开发布的9DCT变速器已正式面世
比特币是骗局吗?不管他人怎么论比特币中国将关停所有的交易平台
图森未来与Scania合作,在高速公路上测试载货自动驾驶卡车
荣耀7i评测 更像是荣耀6plus的延伸之作
存储芯片在推动国家信息化上承担着关键作用
拓斯达董事长吴丰礼发表题为“穿越周期,对抗惯性”的主题演讲
VR行业开始变得冷静下来,要想让VR技术真正实现落地还需努力
在5G mmWave毫米波的发展带动下 天线封装技术逐渐受到关注
一种高性能单晶硅沟道3D NOR储存器
欧阳明高:充电智能化为新能源汽车产业提供广阔空间
区块链可以降低供应链金融的风险吗