链圈的朋友们值得收藏!腾讯首席架构师教你两种区块链设计思路

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~

本文由敖萌发表于云+社区专栏

区块链发展到了现在,产生了很多不同形式的区块链技术。随着技术的发展,目前比较公认的看法是区块链已经走进了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是低耦合设计的一个平台。

问答

区块链是什么?

相关阅读

看清区块链

区块链入门教程

区块链前世今生

【每日课程推荐】新加坡南洋理工大学博士,带你深度学习NLP技术

此文已由作者授权腾讯云+社区发布,更多原文请点击

搜索关注公众号「云加社区」,第一时间获取技术干货,关注后回复1024 送你一份技术课程大礼包!

海量技术实践经验,尽在云加社区

原文地址:https://www.cnblogs.com/qcloud1001/p/9579647.html

时间: 2024-11-07 17:30:47

链圈的朋友们值得收藏!腾讯首席架构师教你两种区块链设计思路的相关文章

教你如何做好区块链钱包|构建“区块链Token闭环体系”形成钱包应用的整体生态

本文由区块链交易系统开发|v:ruiec1688 编辑,需商业使用/合作请与作者联系,作者个人主页http://yy.ruiec.com/ 如需转载请注明出处点开这篇文章的朋友,都是对区块链有基认知的朋友,那你们应该了解"货币"的属性中有两点十分重要:"流通属性"及"时间价值".因此大力发挥数字货币在钱包应用内的"流通性"及"增值性",是扩充Token使用场景的核心方向一张图带大家了解一下区块链钱包的应用生

区块链书籍推荐:【A032】[图灵程序设计丛书]《去中心化应用:区块链技术概述》

<去中心化应用:区块链技术概述>pdf点这里 移情表述是指将谈话焦点放在你的谈话对象而不是你本人身上.这是让别人获得良好自我感觉的有效的方式之一.持续关注对方是很难的,因为我们从本质上来说是以自我为中心的,认为地球是围绕自己旋转的.去中心化应用:区块链技术概述. 尽管如此,如果你每次谈话都能令对方获得良好的自我感觉,你就能成功实现“友谊黄金法则”的目标,从而让对方喜欢上你.去中心化应用:区块链技术概述.“你今天好像过得不太好”“你今天看起来很高兴”等移情表述,能让对方明白有人不仅在倾听他们,还

ICO惨遭团灭,区块链技术是福是祸?

今年上半年,随着以比特币为代表的虚拟货币价格暴增,ICO(Initial Coin Offering 首次代币发行)这种新型融资方式在国内迅速发展,大量山寨币层出不穷.光上半年,通过ICO获得的融资金额已经超过了传统VC的投资,ICO累计融资规模达26.16亿元人民币. 乱象丛生.折射黄金光芒的 ICO 泡沫终于破灭了 现在这场堪称疯狂的资产泡沫,已经破灭.9月2日,由亚洲DACA区块链协会.内蒙古乌海市政府主办的"2017DACA区块链国际高峰论坛"在活动开始前一天突然被叫停,这已经

比特币与区块链

早上看到一则新闻,说比特币可能要分裂比特币现金,很多持有者可能会凭空多出很多财富,又联想到前端时间微信群中讨论的很火热的区块链的话题,记得当时有人曾说这可能是影响未来几年最重要的技术之一,觉得为看懂未来趋势,有必要再深入的了解一下区块链. 印象中区块链就是一个去中心化的分布式数据库,没有中心权威代理,就要解决信息点对点传递的真实有效性问题.下面转载一下刚看到的一篇不错的解释. 作者:maxdeath 代尔夫特理工大学 (TU Delft) 博士后区块链博士后,共识算法专家 链接:https://

一文读懂区块链产业链结构

随着区块链的发展,区块链产业链逐步形成,本文和大家分享的就是区块链的产业结构,一起来看看吧. 上游:矿机产业 矿机产业可以说是区块链产业的上游产业. 没有矿机产业,就没有矿机,没有矿机, 矿工当然可以使用普通计算来挖矿. 但是,问题是,没有专业的矿机,普通计算机的效率和安全性都很低,那么在这个区块链上记录交易信息或其他信息的效率和安全性也就不言而喻了. 矿机产业的发展,会决定着区块链运行的效率. 在矿机产业中,生产者是矿机厂商,我们最熟悉的矿机厂商就是比特币大陆. 在矿机产业中,需求者,也就是买

追币敬告:你都错过了币圈风口,就别再错过区块链游戏风口了

币圈进入熊市后,说是玩家"哀嚎遍野"也不过分.在市场的冷却作用下,更多的理性看法又重新占据了舆论的主流. 比如,有人认为,币圈的再次爆发,首先取决于要有杀手级应用的爆发.而哪里才可能是"杀手级"应用可能爆发之地呢?这个希望就要寄托在目前区块链技术能高度融合的"金融"和"游戏"这两个领域. 现在看来,区块链金融已先行一步.无论是币友们混迹的币圈,还是跨境支付.通证化改造等潜力无限的区块链金融应用,已经成为当今金融市场的一个常态话

何玺评腾讯一起来捉妖,值得期待的区块链游戏

大家还记得前段时间玺哥前段时间写的<腾讯首款区块链游戏23日发布,腾讯精灵还是腾讯妖怪?>一文吗?昨天下午,腾讯正式对外发布了首款区块链+AR捉妖手游<一起来捉妖>,同时,腾讯还对外发布了首款区块链游戏化应用白皮书. 相比国外的区块链游戏,腾讯<一起来捉妖>的玩法更有趣,而且有很多创新的玩法,很赞!游戏大厂出手果然不凡.下面玺哥和大家聊一聊<一起来捉妖>中区块链的应用.玺哥邀请码:83801990一.从现有游戏产业中存在的问题说起<一起来捉妖>白

区块链开发 币圈专业术语大全

币圈怎么赚钱啊?币圈怎么搬砖啊?币圈破发是什么意思?对于新入币圈的小伙伴经常会问一些这样的问题?下面就给大家带来了币圈专业术语大全,希望对新进币圈的小伙伴有所帮助.币圈是什么意思?所谓的币圈,即数字货币玩家天然形成的圈子.币圈不大,但是人数也不算少,而且在人群中基本上属于小众异类,但林林总总算是一个圈子,赚钱的人不多,形形×××的赚钱方式也都被迅速地拷贝过来,1CO.炒币.挖矿等. 币圈怎么样赚钱?币圈赚钱的方式有很多,最主要的炒币.1CO众筹.搬砖等. 币圈的法币是什么意思?法币是法定货币,是

java项目开发经验总结,值得收藏!绝对有用!

Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:1.掌握项目开发的基本步骤2.具备极强的面向对象的分析与设计技巧3.掌握用例驱动.以架构为核心的主流开发方法 没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如你是项目经理,你该如何思考!你必须学会假如你是架构师,你该如何思考!你必须掌握针对某个特定问题领域的分析方法! 关于基