比特币、以太坊的区块链架构比较及浅析(下)

前言,下篇相对上篇主要就以太坊的区块链架构进行总结,同时会结合同比特币架构的差异性进行比对分析。

一、以太坊区块链架构及要素

以太坊的架构基于比特币,但同时是将区块链作为了一个可编程的分布式信用基础设施,并支持智能合约应用,与仅作为虚拟货币支撑的比特币区块链有明显优化改进,基本架构及要素参见下图所示:

而相对比特币的改进主要体现在以下几方面

1.前端部分

包括去中心化应用、智能合约开发工具以及JS框架的引入,主要为解决相对比特币更为复杂应用场景或全新的领域开发,重点是对智能合约的支持。这部分会在后续关于智能合约开发的文章中讲解,此处不展开说明。

这里仅简单讲一下DApp,DApp是由只能合约和客户端代码构成,架构上类似于传统Web应用,但是这里智能逻辑部分是运行在区块链上,客户端代码运行在特殊浏览器Mist中。相对于传统钱包的简单支付业务,为复杂的去中心化应用的设计引入。

2.账户

以太坊引入了账户概念,可划分为两种类型:1)外部所有账户(EOA),即一般意义上的用户账户;2)合约账户(Contract),是一种特殊的可编程账户,是代码和数据的集合,受代码控制并由EOA账户激活。

如何理解外部所有账户和合约账户的基本区别?

一个EOA账户可以创建和使用自有私钥对交易进行签名,发送消息给另一个EOA账户或合约账户。两个外部所有账户之间传送的消息类似于比特币的简单支付交易仅为价值的转移。但EOA账户到合约账户的消息会激活合约账户的代码。

而合约账户可以执行图灵完备的计算任务,并可以在合约账户之间传递消息。调用时,EOA账户需要提供一些参数:EOA地址、合约的地址以及数据,数据部分则包括需要调用合约里的方法以及传递的参数。

不同于EOA账户,合约账户不可以自己发起一个交易。相反,合约账户只有在接收到一个交易之后(从一个EOA账户或另一个合约账户处),为了响应此交易而触发一个交易。

直观表示如下图

3.区块链管理及结构

比特币的区块链组织是采用Merkle数将交易的哈希值按一定的算法组成二叉树结构,顶层节点哈希值相当于整个交易清单的指纹用于验证交易清单。因为以太坊引入了对象状态管理(即上述账户)概念,除了交易清单还需要保存最新的状态,进而带来了复杂的校验和查询需求:

(1)以太坊的状态包含一个键值表,即(地址-账户声明对的变量),变量包括余额、随机数、代码和账户的存储,账户的状态可以经常改变,其余额、随机数也经常变。

(2)新的账户可以被插入,健在存储里也可以被插入和删除。

(3)基于上述两点,需要引入一种可以在插入、更新和删除操作后快速计算新的树根哈希值,并不需要重新计算整棵树的数据结构。并需要具备:树的深度是受限的以防止拒绝服务攻击;树的根哈希只是与树的数据有关,而与更新的顺序无关。

满足上述要求的实现即为Patricia树

而在区块链的区块报头中,以太坊实现上则是存放了3个根哈希:1)交易的merkle根哈希值;2)状态的根哈希值;3)收据的根哈希值(收据的作用会在后续部分讲到)

直观表示如下图

还有一个和比特币不一样的地方,以太坊的区块链中每个区块保存区块链号和区块难度(引出一个问题:作用是什么?)

在区块链的构建上,以太坊也采用了一个不同于比特币的算法——GHOST算法,中文直译为“贪婪最重观察子树”,该算法使得以太坊的区块链组织不是一个链条,而更像一棵树。

4.工作量证明及收益

按照比特币的挖矿设计难度,整个网络产生新区块的速度被动态控制在10分钟左右,并且工作量证明仅是依靠CPU的计算难度来决定。而以太坊的pow(工作量证明)算法经过优化相比较比特币的工作量证明相对简单且更为灵活。首先,新区块的产生被控制在每次15s左右,同时以太坊的工作量证明机制加入了内存难度,该特点具有抵抗针对单哈希优化的ASIC挖矿机属性,避免了算力局部集中化的风险。

而在矿工的收益方面,以太坊的奖励制度也要复杂一些。类似比特币以太坊在产生一个新的区块时会获取一定的静态收益(5个以太币),矿工还可以依靠交易用户支付的“燃料”来获取收益,此外还会获得一个产生“叔区块”包含入链的额外奖励。

这里有必要对“燃料”和“叔区块”做一下解释:

“燃料”——以太坊具有图灵完备属性,在此基础上存在对无限循环和跳转指令恶意使用的使用的可能,为了防止针对系统的恶意攻击,规定需要每个交易给出最大的计算步骤,同时交易人需要支付一定的交易费用给与矿工将交易加入区块,该费用即为“燃料”。“燃料”决定了交易能否有效执行,如果交易中的实际运行超过了最大计算步骤则燃料耗尽,交易终止同时交易费用归属挖到块区的矿工所有。

“叔区块”——也称为“废块”,是指符合以太坊难度条件产生的区块,但是该区块里的交易未被确认而失效,这种情况通常发生在A、B矿工同时产生符合条件的区块,之后因为网络延迟确认及区块重组导致一方区块无效时出现。“叔区块”的引入一方面完善了因为以太坊网络每15s一次更新可能产生大量非区块的算力浪费的经济补偿,另一方面增强了整个区块量的安全性,使攻击者不易模拟带有废块的区块链主链。

5.图灵完备、EVM(以太坊虚拟机)和高级语言

以太坊相比比特币的创新即引入图灵完备,进而使智能合约的应用成为可能。同时,还具备一个基础计算环境——以太坊虚拟机,合约代码的执行均在EVM上进行。

同时,以太坊提供高级语言便于编写智能合约,最终高级语言会被编译成为EVM中执行的EVM字节码,并部署在以太网区块链上。目前有提供三种编程语言:

1)Solidity,类似JavaScript语言

2)Serpent,类似Python语言,整合了低级语言的效率及易用性

3)LLL(Lisp like language),是一个像Lisp的语言,设计简约有些象汇编语言

6.合约执行及事件

以太坊上的合约执行是在区块验证时被交易触发的,通常是接收到外部账户消息所激活,其执行过程是异步的,即没有返回值无法直接获知结果。因此合约与外部的通信是通过日志事件实现的,该日志事件是交易执行时产生的收据一部分。

而以太坊中的事件是一个日志和事件监测协议的抽象,日志的记录中提供合约的地址、一组最多4个议题和一些任意长度的二进制数据。事件可以利用现有ABI(Application Binary Interface)功能解析日志记录。


总结:比特币、以太坊的架构分析是建立在对系统构成要素及基本概念、相互之间作用的基础之上,其中涉及诸多的工作原理、流程等内容都未深入展开及说明,后续文章中会针对各主要流程及原理进行阐述。


附参考文章:

以太坊的工作原理

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容