经济学领域研究里绕不开的一个话题就是成本,如果我们有一定的经济学知识,应该知道:凡事都是有成本的。
比如,有时间成本,选择成本,机会成本,沉没成本,等等。只要加上了成本这一个角度,很多事情的分析也能更透彻一些。
说起编程这个事情,很多从事软件开发的朋友们可能很难意识到这样一个问题:
如果我们想让我们写出的程序能够执行,都是需要花费成本的。
在个人电脑上,需要消耗电脑的内存和CPU资源;放到远程服务器上,需要消耗服务器上的资源;放到云上,需要消耗云上的计算资源,等等。这些,都是我们为了执行我们的“作品”需要花费的成本,而且为了它们,我们确实花了钱,不是吗?
以前经常忽略,但是到了区块链这种分布式的计算环境,我们才意识到我们哪怕执行一行代码,记录一个数据其实都是需要花费成本的,而且不得不把成本这个事情考虑进去。
比如在比特币网络里,为了想把自己的内容写进去,必须完成一笔交易,消耗一定的比特币;而以太坊呢,更是在每一笔运算中都将成本计算在内了。
之前分析过以太坊所描述的图灵完备智能合约是什么,也提到“图灵停机”问题的存在导致以太坊不得不让每一笔运算消耗一定的成本。这个成本在以太坊网络里叫做gas。
前面文章提到过,我们可以把以太坊当作一台超级计算机,而智能合约是这个计算机上运行的程序。因为这个计算机不是我们自己的,更像一台我们在网上租用的服务器,因此,我们想使用的话必须花费成本。
智能合约也是一个编程语言,为了解决“图灵停机”问题,以太坊对每一条语句或者说每一个操作都设置了消耗的成本:
每个操作需要消耗的gas因此,在写以太坊程序的时候要非常小心,因为优良的程序比粗糙的程序将能节省不少的gas,也就是节省了钱。实际对应的成本是cost = gasUsed*gasPrice,gasPrice是每个gas的价格,gasUsed是需要使用的gas数量,参考上图的操作消耗。
所以,如果gas使用得越多,而gasPrice价格不变的话,使用以太坊搭建分布式应用的成本将会越来越高(上图等式cost越来越大)。而实际上,以太坊为了解决这个问题,特地将ether(ETH的单位)与gas进行解耦,保持gasPrice与ether的一种动态变化,使得ETH价格大幅上涨时,gasPrice价格下降(以ether计算的价格);ETH价格下跌时,gasPrice价格上升(以ether计算的价格)。
这样才能使得使用以太坊的成本处于一个合理的、不会大幅波动的范围。而实际上,矿工目前都不愿意调低gas的价格。大家看一下gasPrice的动态变化图:
gasPrice平均值变化从上图可以看到,gasPrice基本处于一个稳定的状态,而目前ETH的价格大幅上涨,因此实际上开发以太坊应用的成本越来越高了。
到这里,我们基本理清了以太坊gas与ETH的一个基本逻辑:
ETH的单位是ether,1ether可以兑换为一定数量的gas,gas的成本是gasPrice,gasPrice与ether是动态变化的,而gasPrice目前基本不怎么变化,因此以现实世界的USD美元或CNY人民币衡量的话,开发以太坊的成本越来越高。
这里要开展一个题外话:为什么我们要学习区块链知识?甚至要深入了解区块链的一些底层原理呢?
很简单:
理解是为了学习。即便是投资,你也会发现,只有理解了原理以及这里面的逻辑,才能做出投资的一些基本判断。
比如,ETH为什么走出了一波波澜壮阔的行情?因为大家通过使用以太坊进行区块链开发应用的越来越多,并且通过ETH进行ICO的案例也越来越多,前者通过gas间接影响,后者通过ETH直接影响,两者都推升了ETH价格的大幅上涨。
这些都是我在数字货币小蜜圈里的逻辑,也是我在本周六一块听听上要进行扩展来讲的逻辑。
通过本篇文章,我们不仅理解了以太坊在开发过程中对成本的考量,同时认识到gas与ETH的逻辑关系,并利用这些逻辑帮助了我们进行投资的一个基本分析。
后期,我会继续深入下去,带大家理解以太坊编程上以及应用开发上的一些东西,敬请期待!
网友评论