关于以太坊,你所要知道的
关于以太坊,你所要知道的
通过本系列第一篇,我们掌握了区块链的本质,这是很了不得的。区块链,就是一种只增查、不删改的分布式数据库技术,它首次解决了双花问题。圈内人常说比特币时代是区块链1.0,而之后出现的以太坊,让区块链跨入2.0时代。2.0到底是一个怎样的存在?
合约智能,无所不能
为了回答这个问题,我们不妨用互联网世界类比。在移动互联网世界,有很多app,如微信、淘宝等。而这些app必须运行在操作系统上,比如IOS,安卓。如果说比特币是区块链世界的一个app,那么以太坊就是区块链世界的一个操作系统。在以太坊这个操作系统上,你可以运行比特币,也可以运行其他应用。这就是以太坊的创新之处,它是一个支持区块链应用的区块链平台。
在以太坊上运行的区块链应用,我们可以把他们称为智能合约。智能合约(smart contract)在现实世界中一个典型的类比,就是自动贩卖机。当你选择商品,投进硬币,商品就掉出来,整个购买行为就完成了。所以,自动贩卖机是一个智能合约执行机器 - 当预先设定的条件被满足后(投递对应的硬币),预先设定的行为就会自动触发(掉落商品)。
所以智能合约就是一个执行如果xx,那么xx的代码集合。事实上,你会发现任何功能都可以转换成如果xx,那么xx。倘若在以太坊上运行比特币,它本质上也是一个连续执行的智能合约集合,一些经典比特币功能如下:
- 如果收到一笔交易,那就哈希它 H(交易)
- 如果公钥可以解密对应交易,那么就确认这笔交易
- 如果一个矿工成功解出H(所有历史交易记录 + N) = A中的N,那么它获得记账权
专业人士把“那么xx”中的xx,称为状态(state)。所以智能合约是每满足一次“如果”,就会触发状态改变的一种东西。
我们细想就会发现,我们世界的本质就是不断改变的状态集合。把交易记录哈一下,就把交易变成了唯一的哈希值,状态改变了;把比特币从我的账户转到你的账户,就是你我双方的账户状态改变了;如果饿了就吃饭,然后饱了,饥饱状态改变。
而以太坊作为一个专门执行状态改变的机器,理论上就可以模拟我们世界上全部事情。因此,我们常听到以太坊是图灵完备(turing complete)的,意思是它可以执行任何算法。
显然,图灵完备的以太坊平台,比起只能做账户交易的比特币,功能更加强大。但世界上没有只增加收益,不增加风险的事。
算力珍贵,加收油费
可以执行任何代码的以太坊,面临着一大问题:如果恶意智能合约执行永久循环的代码,那么全平台都会被拖垮。如果是你,会怎么解决这个问题?
比如,一发现恶意项目方,就永远封锁它 - 这在互联网世界很难做到。比如可以增加资质审核 - 这不符合区块链世界中,通过人们自发行为达成系统向好发展的设计理念。
为了让平台上的项目方不白嫖算力,以太坊的方案是,项目方的代码每运行一步,都要收费,这个费用叫gas fee,我称之为油费。这个设计有很多好处
- 恶意节点失去滥用资源的动力
- 所有项目方在设计代码时,更加注重简约和必要性,避免算力浪费
- 一个意想不到的副产品是,因为以太坊油费较高,反而促进了优质项目和用户的沉淀
当然,这个设计也有缺点。比如当下流行的区块链游戏,需要频繁计算,从而在高峰期导致油费高涨,影响了全平台用户的体验。
油费的支付是用ETH(以太坊的代币,就像比特币网络的比特币),因为1 eth价值几千美金,单价较高,我们可以把它划分为更小的单位Wei,方便表示。而1 eth = 10^18 wei。eth的产生,和比特币的产生类似:对于以太坊上的矿工,完成交易验证后,会有对应的eth奖励。
ERC有,代币不愁
以太坊发行了ETH,比特币网络发行了BTC,我们会问:以太坊上运行的项目可以发行自己的数字货币吗?
答案是可以。以太坊制定了各种代币的统一标准,供平台上的项目使用。如此一来,这些代币就能利用以太坊平台交易,而不用像比特币一样搭建专有的区块链网络,重复造轮子。
这些代币标准都是以ERC加上一些数字命名的,最知名的比如ERC20,是以太坊项目的数字货币标准,基本上所有数字货币都有ERC-20的版本。
最近大红大紫的NFT本质上也是一种代币,只是每个代币都有明显不同,所以叫non-fungible token,非同质化代币,目前主流NFT采用的是ERC721标准。
此时,我们应该能感受到,从智能合约、油费、到代币标准,以太坊对区块链发展的核心贡献,就是平台生态上的创新。其平台上的项目越丰富、越成功,以太坊就越有价值。这就像苹果公司的成功一样,它上面的app越多越流行,那么苹果作为平台的价值就越大。