专栏首页腾讯云区块链两种典型的区块链设计思路
原创

两种典型的区块链设计思路

区块链发展到了现在,产生了很多不同形式的区块链技术。随着技术的发展,目前比较公认的看法是区块链已经走进了2.0时代。区块链1.0是以比特币为代表的去中心化数字货币区块链系统,而2.0则是引入了智能合约的区块链系统。

在支持智能合约的区块链系统中,Linux基金会所属的Hyperledger Fabric(由IBM贡献)和Vitalik Buterin所领导的以太坊基金会所创造并管理的Ethereum(以太坊)是两个典型。这两种区块链系统具有截然不同的设计思路,充分体现了传统企业信息系统思维设计模式(Fabric)和区块链原教旨主义思维设计模式的区别。

首先看一下Ethereum,Ethereum是非常典型的受到Bitcoin(比特币)架构影响的一个区块链系统。其最典型的特点是——链是基础。所有的信任都来自与基于Hash密码学安全的链式数据结构,在这个信任基础上,架构所有的功能。

而对于Fabric来说,系统一定要有一个漂亮的技术架构:可插拔的模块化设计、高扩展性、高内聚低耦合。在一个漂亮的技术架构上,调用各个模块,来构造一个功能——链,每增加一个功能,可以使用已有的链,也可以创建一个新链。

Ethereum使用了虚拟机方式实现智能合约,Ethereum中的虚拟机叫做EVM,是一个轻量级的沙盒执行环境。为了让智能合约更加方便,以太坊开发者创造了新的语言来编写智能合约,目前最流行的EVM编程语言是Solidity。EVM的一大特点就是只能对链上的数据进行读写,非链上的数据只能在调用智能合约的时候,由调用者通过函数参数传递到智能合约中。(EVM的这个特点确保了智能合约的结果是确定的,不会因不同的节点执行而导致不同的结果。)而智能合约本身和智能合约的调用过程(或者叫做使用智能合约的交易)都会记录在链上。

因此,我们可以看出,以太坊的架构中,“链”是信任的锚点,所有的信任都来自于链

而Fabric使用了Docker机制实现智能合约。相比于Ethereum的EVM,Docker可以算是一个重量级的沙盒执行环境。由于Docker的特性,Fabric可以使用很多语言开发智能合约,同时也可以使用很多库函数和系统函数,因此,Fabric的智能合约灵活性更高,(比如可以和物联网设备通讯),但是这种灵活性也导致了可能不同的节点执行后产生不同的结果而无法达成共识的风险。而Channel的引入,使得Fabric的智能合约是直接部署在某几个节点上的。每个智能合约可以创建新的链,也可以和其他智能合约共用一个链。“链”在Fabric的架构里,相当于实现某个功能时,参与该功能的几个节点所共用的一个存储空间。

明白了这两种智能合约的实现方式区别后,我们就会发现这两种典型的区块链的设计思路的区别了——“链”到底应该位于架构的哪一层?

在区块链原教旨主义中,由于大家都不可信,所以只能相信由Hash算法串起来的一个完整的数据系统。而在面向企业间应用的联盟链中,由于节点都是需要身份认证才能加入的,因此可信程度高一些。所以,只要关键的一些数据达成共识实现可信就可以了。

正是由于这种设计思路上的区别,在Ethereum中,所有的智能合约都运行在同一个链上,大家共用一个可信的基础设施;而在Fabric中,一个应用对应一个链,整个系统由很多子链构成,这些子链共用一套基本互信的基础设施

从系统架构角度看,Ethereum是一个完整基础设施,不会拆散了来用。虽然Ethereum内部的设计耦合性很高,各个模块依赖性极强,甚至整个系统都依赖于某些基础的智能合约(例如以太币合约),但这可以看做是整个基础设施的内聚性导致的。

而Fabric更像是一个区块链云服务平台,能够让用户方便的在基础平台上,使用各个模块创建一个一个的链进而实现一个一个的应用。所以,Fabric是低耦合设计的一个平台。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 区块链上的态势感知

    随着区块链技术的逐渐推广,越来越多的人了解到了区块链。很多人都能说出区块链的一些特点:去中心化、防篡改、安全可信等等。然而,很多情况下,区块链的这些技术特点都是...

    Magnus
  • 对央行数字货币的猜测

    随着区块链和数字货币的发展,各国央行都在研究数字货币。而央行数字货币(Central Bank Digital Currency, CBDC)也不断地传出风声来...

    Magnus
  • 去中心化平台与中心化业务

    很多企业都对区块链有一个误区:平台去中心化会导致业务去中心化。正是由于这个误区,导致了很多企业对区块链技术抱有偏见:本来企业业务做得好好的,通过业务能赚到很多钱...

    Magnus
  • 智能合约初探:概念与演变

    自2009年比特币开启区块链时代以来,近10年里,随着技术与生态的发展,基于区块链的分布式应用(dapp)呈现出井喷的趋势,而支撑着dapp的底层技术就是“区块...

    区块链大本营
  • 关于区块链安全的实际性思考

    区块链(Blockchain)是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据块,每...

    周俊辉
  • 区块链技术开发公司谈智能合约的优势与劣势

      智能合约概念可以追溯到1995年,是由一个计算机科学家尼克提出的,表示一个智能合约是一套以数字形式定义的承诺,合约参与方可以在上面执行这些承诺的协议。  

    YY谈网络那些事
  • 理解智能合约

    这是「区块链技术指北」的第 22 篇文章。 如果对我感兴趣,想和我交流,我的微信号:Wentasy,加我时简单介绍下自己,并注明来自「区块链技术指北」。同时我会...

    robinwen
  • 智能合约是怎样运作的?三分钟读懂智能合约

    当今社会,执行合约需要耗费大量社会资源。比方说,A、B两家公司签订合同,后来A违反合同条约,导致B损失重大。B想要拿回属于自己的东西,于是向法院起诉。就算B打官...

    互链脉搏
  • Android插件化原理解析——Hook机制之Binder Hook

    Android系统通过Binder机制给应用程序提供了一系列的系统服务,诸如ActivityManagerService,ClipboardManager, A...

    weishu
  • 10岁小表妹也能“吃透”Geth 客户端 !360秒,快速部署 ICO Token

    接下来,你可以输入 geth –help 来检查 Geth 是否已安装成功。如果此时显示出一些帮助信息,你就可以进行下一步,创建一个新账户。

    区块链大本营

扫码关注云+社区

领取腾讯云代金券