
时常听人们谈起区块链,从2009年比特币诞生至今,各式各样的区块链系统或基于区块链的应用不断被开发出来,并被应用到大量的场景中,而区块链技术本身也在不停地变化和改进。
区块链又被称为分布式账本,与之对应的则是中心化账本,比如银行。与中心化账本不同的是,分布式账本依靠的是将账本数据冗余存储在所有参与节点中来保证账本的安全性。简单地说,区块链会用到三种底层技术:点对点网络、密码学和分布式一致性算法。而通常,区块链系统还会“免费附赠”一种被称为智能合约的功能。智能合约虽然不是区块链系统的必要组成部分,但由于区块链天生所具备的去中心化特点,使它可以很好地为智能合约提供可信的计算环境。
为了适应不同场景的需求,区块链系统在实际应用的过程中往往会需要进行各种改造,以满足特定业务的要求,比如身份认证、共识机制、密钥管理、吞吐量、响应时间、隐私保护、监管要求等。而实际应用区块链系统的公司往往没有进行这种改造的能力,于是市场上慢慢出现了一些用于定制专用区块链系统的框架,采用这些框架就可以很方便地定制出适用于企业自身业务需求的区块链系统。本文将对目前市场上几个典型的区块链框架进行横向对比。
比特币(Bitcoin)源自中本聪(Satoshi Nakamoto)在2008年发表的一篇论文《比特币:一种点对点的电子现金系统》(Bitcoin:A Peer-to-PeerElectronic Cash System),文中描述了一种被他称为“比特币”的电子货币及其算法。在之后的几年里,比特币不断成长和成熟,而它的底层技术也逐渐被人们认识并抽象出来,这就是区块链技术。比特币作为区块链的鼻祖,在区块链的大家族中具有举足轻重的地位,基于比特币技术开发出的山寨币(Altcoins)的数量有如天上繁星,难以计数。
中本聪设计比特币的目的,就是希望能够实现一种完全基于点对点网络的电子现金系统,使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的中介机构。总结来说,他希望比特币能够实现以下这些设计目标:
不需要中央机构就可以发行货币
不需要中介机构就可以支付
保持使用者匿名
交易无法被撤销
从电子现金系统的角度来看,以上这些目标在比特币中基本都得到了实现,但是依然有一些技术问题有待解决,比如延展性攻击、区块容量限制、区块分叉、扩展性等。
在应用场景方面,目前大量的数字货币项目都是基于比特币架构来设计的,此外还有一些比较实际的应用案例,比如彩色币、tØ等。
彩色币(Coloredcoin),通过仔细跟踪一些特定比特币的来龙去脉,可以将它们与其他的比特币区分开来,这些特定的比特币就叫作彩色币。它们具有一些特殊的属性,从而具有与比特币面值无关的价值,利用彩色币的这种特性,开发者可以在比特币网络上创建其他的数字资产。彩色币本身就是比特币,存储和转移不需要第三方,可以利用已经存在的比特币基础网络。
tØ是比特币区块链在金融领域的应用,是美国在线零售商Overstock推出的基于区块链的私有和公有股权交易平台。
以太坊(Ethereum)的目标是提供一个带有图灵完备语言的区块链,用这种语言可以创建合约来编写任意状态转换功能。用户只要简单地用几行代码来实现逻辑,就能够创建一个基于区块链的应用程序,并应用于货币以外的场景。以太坊的设计思想是不直接“支持”任何应用,但图灵完备的编程语言意味着理论上任意合约逻辑和任何类型的应用都可以被创建出来。总结来说,以太坊在比特币的功能之外,还有以下几个设计目标:
图灵完备的合约语言
内置的持久化状态存储
目前基于以太坊的合约项目已达到数百个,比较有名的有Augur、TheDAO、Digix、FirstBlood等。
Augur是一个去中心化的预测市场平台,基于以太坊区块链技术。用户可以用数字货币进行预测和下注,依靠群众的智慧来预判事件的发展结果,可以有效地消除对手方风险和服务器的中心化风险。
限于篇幅,基于以太坊智能合约平台的项目就不多介绍了。基于以太坊的代码进行改造的区块链项目也有不少,但几乎都是闭源项目,只能依靠一些公开的特性来推断,所以就不在本文展开讨论了。
Fabric是由IBM和DAH主导开发的一个区块链框架,是超级帐本的项目成员之一。它的功能与以太坊类似,也是一个分布式的智能合约平台。但与以太坊和比特币不同的是,它从一开始就是一个框架,而不是一个公有链,也没有内置的代币(Token)。
超级账本(Hyperledger)是Linux基金会于2015年发起的推进区块链技术和标准的开源项目,加入成员包括:荷兰银行(ABN AMRO)、埃森哲(Accenture)等十几个不同利益体,目标是让成员共同合作,共建开放平台,满足来自多个不同行业各种用户案例,并简化业务流程。
作为一个区块链框架,Fabric采用了松耦合的设计,将共识机制、身份验证等组件模块化,使之在应用过程中可以方便地根据应用场景来选择相应的模块。除此之外,Fabric还采用了容器技术,将智能合约代码(Chaincode)放在Docker中运行,从而使智能合约可以用几乎任意的高级语言来编写。
以下是Fabric的一些设计目标:
模块化设计,组件可替换
运行于Docker的智能合约
目前已经有不少采用Fabric架构进行开发的概念验证(POC)项目在实施过程中,其中不乏一些金融机构做出的尝试,不过由于项目刚刚起步,还没有比较成熟的落地应用。
Onchain DNA(Onchain Distributed Networks Architecture),是由总部位于上海的区块链创业公司“分布科技”开发的区块链架构,可以同时支持公有链、联盟链、私有链等不同应用类型和场景,并快速与业务系统集成。分布科技同样也是超级账本的成员之一。
与以太坊、Fabric不同的是,Onchain DNA在系统底层实现了对多种数字资产的支持,用户可以直接在链上创建自己的资产类型,并用智能合约来控制它的发行和交易逻辑。对于绝大部分的区块链应用场景,数字资产是必不可少的,而为每一种数字资产都开发一套基于智能合约的业务流程非常浪费且低效。因此,由区块链底层提供直接的数字资产功能十分必要。而对于那些完全不需要数字资产的应用场景,同样可以基于Onchain DNA提供的智能合约功能来编写任意的自定义逻辑来实现。
Onchain DNA的设计目标主要有以下几点:
多种数字资产的底层支持
图灵完备的智能合约和持久化状态
跨链互操作性
交易的最终性
目前已有不少金融机构采用Onchain DNA架构来进行区块链概念验证产品的开发,如银行、券商、支付、登记结算机构等。除此之外,还有一些已经落地的区块链项目,如小蚁、法链等。
小蚁(Antshares)是一个定位于资产数字化的公有链,将实体世界的资产和权益进行数字化,通过点对点网络进行登记发行、转让交易、清算交割等金融业务的去中心化网络协议。它采用社区化开发的模式,在架构上与Onchain DNA保持一致,从而可以与任何基于Onchain DNA的区块链系统发生跨链互操作。
法链是全球第一个大规模商用的法律存证区块链,一个底层基于Onchain DNA区块链技术,并由多个机构参与建立和运营的证据记录和保存系统。该系统没有中心控制点,且数据一旦录入,单个机构或节点无法篡改,从而满足司法存证的要求。
Corda是由一家总部位于纽约的区块链创业公司R3CEV开发的,由其发起的R3区块链联盟,至今已吸引了数十家巨头银行的参与,其中包括富国银行、美国银行、纽约梅隆银行、花旗银行、德国商业银行、德意志银行、汇丰银行、三菱UFJ金融集团、摩根士丹利、澳大利亚国民银行、加拿大皇家银行、瑞典北欧斯安银行(SEB)、法国兴业银行等。从R3成员的组成上也可以看出,Corda是一款专门用于银行与银行间业务的技术架构。尽管R3声称Corda不是区块链,但它具备区块链的一些重要特性。
Corda由Java和Kotlin开发,并在其各项功能中充分依赖于Java,比如智能合约、数据访问接口等。Corda的设计目标主要是:
没有全局账本
由公证人(Notaries)来解决交易的多重支付问题
只有交易的参与者和公证人才能看到交易
为此,Corda的所有交易都不会向全网进行广播,而且所有的节点都是直接通信,没有P2P网络。这一点导致了其网络规模会被限制在一个较小的规模内,无法形成大规模的联盟链,适用的业务场景比较狭窄。
接下来,我们将针对前文中所提到的这些区块链框架进行一系列的技术对比,并从多个维度展开讨论它们的区别与相似之处。