以太坊(ethereum)由Vitalik Buterin(俗称V神)在2014年创建,目标是创建一个自由、开放的世界电脑(以太坊自己宣称是The World Computer)。
环顾我们的周围,树木、花草、汽车、行人... 每时每刻都在变化,但是假如我们用孙悟空的法术将世界定~~,世界万物这一刻又都有确定的状态(deterministic )(大概只有薛定谔的猫例外吧)。以太坊模拟的就是这样一个世界,能存储所有的任意时间点上的确定状态的无限大的状态机,而这些状态被称为World State(后文都将以这个英文词无歧义表述).
催动我们现实世界不断变化的是时间,以及与所有自我运转有关的自然定律, 所以真时的世界里,万物是每一时刻有确定的状态,但是每时每刻不断变化的。而驱动以太坊变化的是智能合约Smart Contract(我一直被这个词迷惑,以为AI赋予以太坊智能的思维,其实只是代码合约,这也算是区块链中听起来最高大尚,实际最狗屁的名词了)。
空间、时间,引力。。。现实世界是由各种自然规律交织决定的,这是自然界的共识(或者说上帝、众神的共识)。 而区块链世界,组成区块链的是一个个分散的,没有较多关联关系的的计算节点。可以认为每个节点都存储着完整的(区块链)世界状态,所以每一次智能合约的执行,需要获得所有计算机点的一致同意,从而更新所有计算机节点的World State,达到这个世界电脑的状态一致性。这个在区块链中所有计算节点达取得一致同意的过程,在区块链里就叫做”共识“(consensus)。
区块链的共识简明的说就是用一种机制或算法让所有节点在对每次智能合约的执行结果要么拒绝,要么接受并更新。而共识算法也有很多,各有侧重,这在随后的联盟链系列里陆续会涉及到。
与比特币相同,以太坊采用的是挖矿的方法(POW)达成共识,谁先挖到“金子”,谁就获得了下个区块,并最终决定这个区块对智能合约结果的写入,并通知所有其它节点完成更新。而挖金子的过程实际是解决一个复杂计算的过程,谁先解决并完成通知,谁就胜出,所以需要CPU、GPU等计算资源的大量消耗;因此,在POW中,谁的硬件设备取得优势,谁就有可能优先获得结果,这也是比特币大陆等挖矿机设备厂商兴起的原有。
以太坊一直声称自己要做世界的计算机,完全分散的(distributed),开放,平等,无监管的计算平台,也就是众生平等。 但是POW本身却不平等,基于硬件优化可以使平台的算力(解答问题,获取区块所需要的计算资源)集中在极少数人的手里。另外,POW的基于工作证明的共识算法,需要消耗大量的电力资源,对我们倡导的节能社会也是格格不入,一致以来深受指责。
那么以太坊,比特币为什么要选择POW呢,理解这些对于我们了解联盟链中的共识算法的选择多有裨益. 以太坊是公有链, 要做到众生平等,就需要允许任何人都可以加入,任何加入的人都不能被监管,这里包括好人、坏人,骗子,黑客... ,为了保证所有的人都按照正确却的方式工作,正确工作的参与者需要被激励,错误工作的参与者需要被惩罚。POW就是这样一个共识算法: 所有参与者都公平的参与挖取区块并正确记录区块内容,正确工作的激励是eth(以太币),错误工作的惩罚就是浪费的电能(挖矿这活儿还是很费能源的)。
反过来,联盟链的参与者是有限的,联盟链节点的加入是需要许可得;虽然加入者包含竞争关系,但是加入者身份确定,现实世界的法律惩罚限制了其作恶的几率,联盟链中没有一个采用POW的共识算法;另外,联盟链要求交易速度,POW在速度上也不能满足要求。
在谈到POW的时候,已经涉及到以太币,实际上,以太币等是大多数公链运行的基础之一。作为世界计算机,每一次交易都需要消耗资源,所有人都能够运行交易,那么就得有人承担资源的费用,这个费用的载体就是以太币。 每次交易的执行都是运行智能合约中的一个协定(智能合约代码中的一个方法),每次的执行都需要耗费以太币。而在联盟链中,承担费用的主体是一致的,所以这个费用又恰恰可以被省略,所以联盟链中,衍生必并不是必须的。
基于以太坊技术,一群企业建立起了EEA(企业以太坊联盟),衍生了很多联盟链的方案,其中包括:
Quorum: 有摩根发起基于以太坊的开源联盟链平台, 能够有效地连接企业的场景需求和公网区块链需求。
Hyperledger Besu : 基于Java编写的开源以太坊客户端,它是企业友好的,支持私有的许可网络和以太坊公网。
我们陆续将在后续文章中,了解这些框架,以及与其它框架的异同。
网友评论