当前位置: 热门专题 区块链 区块链概述 | 区块链的基本类型
为了适应不同的应用场景和需求,区块链根据准入机制可以分为:公有链(Public Blockchain)、联盟链(Consortium Blockchain)和私有链(Private Blockchain)三种基本类型。在实际应用中单一的某种区块链常常无法满足用户需求,就出现了多种类型的结合,比如私有链+联盟链、联盟链公有链等不同组合形式。从链与链的关系来分,可以分为主链(Main Chain)和侧链(Side Chain)。此外,不同区块链还可以形成网络,网络中链与链的互联互通,产生互联链(Inter Chain)的概念。
所谓公有链是指像比特币系统这样的,完全的分布式(去中心化)、不受任何机构控制的区块链。全世界任何人都可以在任何时候加入、任意读取数据,任何人都能发送交易且交易能获得有效确认,任何人都能参与其中共识过程的区块链一共识过程决定哪个区块可被添加到区块链中和明确当前状态。公有区块链是最早的区块链,也是应用最广泛的区块链,各大 Bitcoin系列的虚拟数字货币均基于公有区块链,世界上有且仅有一条该币种对应的区块链。作为中心化或者准中心化信任的替代物,公有链的安全由共识机制来维护——共识机制可以采取PoW或PoS等方式,将经济奖励和加密算法验证结合了起来,并遵循着一般原则:每个人从中可获得的经济奖励与对共识过程做出的贡献成正比。这些区块链通常被认为是完全去中心化的。共有链通常也称为非许可链(Permissionless Blockchain)如比特币和以太坊等都是共有链。公有链一般适合于虚拟货币、面向大宗的电子商务、互联网金融等B2C、C2C或C2B等应用场景。
在公有链中,程序开发者无权干涉用户,所以区块链可以保护使用他们开发的程序的用户。从传统的经济学角度来看,的确难以理解为何程序开发者会愿意放弃自己的权限。然而,随着互联网崛起,协作共享的经济模式为此提供了两个理由:借用托马斯·谢林(Thomas Schelling)的话即“妥协是一种力量”。首先,如果你明确地选择做一些很难或者不可能的事情,其他人会更容易信任你并与你产生互动,因为他们相信那些事情不大可能发生在自己身上。其次,如果你是受他人或其他外界因素的强迫,无法去做自己想做的事,你大可说句“即使我想,但我也没有权力去做”的话语作为谈判筹码,这样可以劝阻对方不要强迫你去做不情愿的事。程序开发者们所面临的主要压力或者风险主要是来自政府,所以说“审查阻力”便是公有链最大的优势。
因此可见公有链的特点就是完全公开,公有链中每个参与者都有权利访问分布式账本每一条记录;不受任何组织机构监控监管,程序开发组织和人员无权干涉用户,区块链可以保护其用户;公有链依靠加密技术来保证其安全。
与公有链的完全去中心化不同的是,私有链存在着一个中心化控制区块链。私有链的写权限由某个组织和机构控制。读取权限或者对外开放,或者被进行了任意程度的限制。相关的应用可以包括数据库管理、审计甚至是一个公司,尽管在有些情况下希望它能有公共的可审计性,但在很多情形下,公共的可读性似乎并非是必需的。保守的巨头(传统金融)都是想实验尝试私有区块链,而公有链的应用例如 Bitcoin已经工业化,私链的应用产品还在摸索当中。
大多数人一开始很难理解私有链存在的必要性,认为其和中心化数据库没有太大的区别,甚至还不如中心化数据库的效率高。事实上,中心化和去中心化永远是相对的,私有链可以看作是一个小范围系统内部的公有链,如果从系统外部来观察,可能觉得这个系统还是中心化的,但是以系统内部每一个节点的眼光来看其实当中每个节点的权利都是去中心化。而对于公有链,从某种程度来看也可以看作是地球上的私有链,只有地球人的电脑系统才可以接入。因此,私有链完全是有其存在价值的。私有链的巨大优势就是,由于对于P2P这样的网络系统而言,系统内部的处理速度往往取决于最弱的节点,而私有链所有的节点和网络环境都是完全可以控制的,因此能够确保私有链在处理速度方面远远优于公有链。
私有链和公有链另外一个巨大的区别就是,一般公有链肯定在内部会有某种代币,而私有链却是可以选择没有代币的设计方案。对于公有链而言,如果要让每个节点参与竞争记账,必定需要设计一种奖励制度,鼓励那些遵守规则参与记账的节点,而这种奖励往往就是依靠代币系统来实现的。但是对于私有链而言,基本上都是属于某个机构内部的节点,对于这些节点而言,参与进行记账本身可能就是该组织或者机构上级的要求,对于他们而言本身就是工作的一部分,因此并不是一定需要通过代币奖励机制来激励每个节点进行记账。所以,我们也可以发现,代币系统并不是每个区块链必然需要的。考虑到处理速度及账本访问的私密性和安全性,私有链可能更适合商业应用,越来越多的企业在选择区块链方案时,也会更多地倾向于选择私有链技术。
联盟链是指其共识过程受到预选节点控制的区块链,由某个群体内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定(预选节点参与共识过程),其他接入节点可以参与交易,但不过问记账过程(本质上还是托管记账,只是变成分布式记账,预选节点的多少,如何决定每个块的记账者成为该区块链的主要风险点),其他任何人可以通过该区块链开放的API进行限定查询。这些区块链可视为部分去中心化。比如R3CEV就是一个典型的联盟链系统。
联盟链仅限于联盟成员参与,区块链上的读写权限参与记账权限按联盟规则来制定。由40多家银行参与的区块链联盟R3和 Linux基金会支持的超级账本(Hyperledger)项目都属于联盟链架构。联盟链是一种需要注册许可的区块链,其共识过程由预先选好的节点控制。一般来说,它适合于机构间的交易、结算或清算等B2B场景。
例如在银行间进行支付、结算、清算的系统就可以采用联盟链的形式将各家银行的网关节点作为记账节点,当网络上有超过2/3的节点确认一个区块,该区块记录的交易将得到全网确认。联盟链可以根据应用场景来决定对公众的开放程度。由于与共识的节点比较少,联盟链一般不采用工作量证明的挖矿机制,而是多采用权益证明或PBFT( Practical Byzantine Fault Tolerant、RAFT等共识算法。联盟链对交易的确认时间每秒交易数都与公共链有较大的区别,对安全和性能的要求也比公共链高。
联盟链网络由成员机构共同维护,网络接入一般通过成员机构的网关节点接入。联盟链平台应提供成员管理、认证、授权、监控、审计等安全管理功能。如2015年成立的R3联盟,旨在建立银行同业的一个联盟链,目前已经吸引了40多个成员,包括世界著名的银行(如摩根大通、高盛、瑞信、巴克莱、汇丰等),IT巨头(如IBM、微软)。
联盟链的特点是,其可以做到很好的节点间的连接,只需要极少的成本就能维持运行,提供迅速的交易处理和低廉的交易费用,有很好的扩展性(但是扩展性随着节点增加又会下降),数据可以有一定的隐私。当然缺点也很明显,联盟链也意味着这个区块链的应用范围不会太广,缺少比特币的网络传播效应,而且联盟链容易造成权力集中。由于节点少,并且需要预选节点进行记账,不能完全解决信任问题,一旦运用不当则容易造成权力集中,甚至引发安全问题。
上述私有链和联盟链这类每个节点都需要许可才能加入的区块链系统也称为许可链 (Permissioned Blockchain)。
随着区块链技术变得越来越复杂,区块链的技术架构开始不仅仅简单地分为公有链、私有链等架构,而是这之间的界限逐渐开始模糊。在区块链的系统中,不再是所有节点都有着简单的一模一样的权限,而是开始有不同的分工。有些节点可能只能查看部分区块链数据,有些节点能够下载完整的区块链数据,有些节点负责参与记账。而随着系统日益复杂,其中不同的角色,以及不同的权限等级会变得更多。其实我们在授权股份证明(Delegated Proof of Stake,DPoS)这样的共识机制中,已经能够看到这种趋势开始出现并不是每个节点都参与记账,而是获得投票数量最多的受托人(Delegated)才开始进行记账,这样的受托人就是典型的角色划分。如果今后央行采用区块链技术发行人民币,肯定会选择类似于混合链这样的技术。
侧链协议本质上是一种跨区块链解决方案。通过这种解决方案,可以实现数字资产从第一个区块链到第二个区块链的转移,又可以在稍后的时间点从第二个区块链安全返回到第一个区块链。其中第一个区块链通常被称为主区块链或者主链,其他区块链则被称为侧链(如图1-5所示)。最初,主链通常指的是比特币区块链,而现在主链可以是任何区块链。侧链协议被设想为一种允许数字资产在主链与侧链之间进行转移的方式,这种技术为开发区块链技术的新型应用和实验打开了一扇大门。严格来说侧链不是区块链的一种类型,它只是在现实应用中,开发者对区块链的一种延伸(扩展),而特别取了个绰号。
侧链示意图比特币是大家公认的公共链,目前市场上公开的虚拟货币系统,绝大多数都是基于比特币系统进行规则修改或扩展而来。但比特币的设计规则决定了比特币有一定的局限,且已十分固定,难以做出较大修改和扩展。例如平均每10分钟出一个区块,每个区块受1MB大小限制,这使得大概每秒才能确认7笔交易这种交易速度在很多场景下不能满足业务需求。因此,通过侧链来提升效率,扩展比特币功能是一个非常有效的做法。这类以比特币平台为基础,使用新的规则、发布新的虚拟货币,能和比特币区块链进行交互,并能与比特币挂钩的区块链就是侧链。简单来说,就是在某个主链外面,开发一个私有的小链,这个私链与主链之间有交互。主链和私链之间可以做币的转换。侧链目前主要适用于代币发行。比如,闪电网络把很多交易放在侧链,只有在做清算时才用上主链,这样一来可以极大地提升交易速率,又不会增加主链的存储负担。
互联链是各种不同的区块链之间的互联互通所形成的一个更大的生态区块链,作为一个全新的概念,目前还没有被普遍接受,因此相关的架构设计和标准化工作也没有开始。针对特定领域的应用可能会形成各种垂直领域的区块链,这些区块链会有互联互通的需求,这样这些区块链也会通过某种互联互通协议连接起来。与互联网一样,这种区块链上的互联互通就构成互联链,形成区块链全球网络。比如,现在的支付系统很多是竖井型,互不连接。如果在同一个国家、同一家银行或者支付网络支付还相对容易,但是如果用户尝试在不同支付网络间支付,就没有那么容易了。比如,从支付宝余额转钱到微信钱包余额里,虽然两者可以通过银行连接,但是这些连接都需要人工干预,交易的确认缓慢。就像互联网的出现是为了解决不同电脑之间信息联通一样,互联链的出现就是提供实现不同区块链互联互通的统一架构和标准协议。
可以预见,随着区块链技术的充分发展和在各领域的广泛应用,未来将会形成一个巨大的互联链。如电商平台公有链+物流公有链+物流联盟链银行联盟链+…,它们之间的相互协作、通信、共识,就是一个典型的互联链。