区块链科普系列第4天:区块链分类
文/杜豆豆
昨天,我们讲了区块链三个阶段的演变和技术架构。从本质上来说,区块链就是一个采用分布式一致性算法的数据库。今天,我们从四个不同的角度谈谈区块链的分类。其中,我们重点讲讲第一种分类。
一、根据网络范围,区块链可以划分为公有链、私有链、联盟链。这个划分应该得到了大部分人的认同。
简单来说,公有链,对所有人开放,任何人都可以参与;联盟链,对特定的组织团体开放;私有链:对单独的个人或实体开放。
1、公有链
所谓公有就是完全对外开放,任何人都可以任意使用,没有权限的设定,也没有身份认证之类,不但可以任意参与使用,而且发生的所有数据都可以任意查看,完全公开透明。
公有链的特点有:
(1)保护用户免受开发者的影响。在公有链中程序开发者无权干涉用户,所以区块链可以保护使用他们开发的程序的用户。
(2)访问门槛低,任何拥有足够技术能力的人都可以访问,也就是说,只要有一台能联网的计算机,就能满足访问条件。
(3)所有数据默认公开。所有关联的参与者通过他们的公共性来产生自己的安全性,在这里每个参与者可以看到所有的账户余额和其所有的交易活动。
应用场景:
比特币就是一个公有链网络系统,大家在使用比特币系统的时候,只需要下载相应的软件客户端,创建钱包地址、转账交易、挖矿等操作,这些功能都可以自由使用。
公有链系统由于完全没有第三方管理,因此依靠的就是一组事先约定的规则,这个规则要确保每个参与者在不信任的网络环境中能够发起可靠的交易事务。通常来说,凡是需要公众参与,需要最大限度保证数据公开透明的系统,都适用于公有链,比如数字货币系统、众筹系统、金融交易系统等。
其他像以太坊、超级账本、大多数山寨币以及智能合约,这些都是公有链。公有链一般适合于虚拟货币、面向大众的电子商务、互联网金融等B2C、C2C或 C2B等应用场景。
这里要注意,在公有链的环境中,节点数量是不固定的,节点的在线与否也是无法控制的,甚至节点是不是一个恶意节点也不能保证。
我们在讲解区块链的一般工作流程的时候,提到过一个问题,在这种情况下,如何知道数据是被大多数的节点写入确认的呢?实际在公有链环境下,这个问题没有很好的解决方案,目前最合适的做法就是通过不断地去互相同步,最终网络中大多数节点都同步一致的区块数据所形成的链就是被承认的主链,这也被称为最终一致性。
2、私有链
私有链是与公有链相对的一个概念,所谓私有就是指不对外开放,仅仅在组织内部使用的系统,比如企业的票据管理、账务审计、供应链管理等,或者一些政务管理系统。私有链在使用过程中,通常是有注册要求的,即需要提交身份认证,而且具备一套权限管理体系。
有朋友可能会有疑问,比特币、以太坊等系统虽然都是公链系统,但如果将这些系统搭建在一个不与外网连接的局域网中,这个不就成了私有链了吗?
从网络传播范围来看,可以算,因为只要这个网络一直与外网隔离着,就只能是一直自己在使用,只不过由于使用的系统本身并没有任何的身份认证以及权限设置,因此从技术角度来说,这种情况只能算是使用公链系统的客户端搭建的私有测试网络,比如以太坊就可以用来搭建私有链环境,通常这种情况可以用来测试公有链系统,当然也可以适用于企业应用。
在私有链环境中,节点数量和节点的状态通常是可控的,因此在私有链环境中一般不需要通过竞争的方式来筛选区块数据的打包者,可以采用更加节能环保的方式,比如在上述共识机制的介绍中提到的PoS(Proof of Stake,权益证明)、DPoS(Delegate Proof of Stake,委托权益证明)、PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错算法)等。
私有链的特点有:
(1)交易速度非常之快。一个私有链的交易速度可以比任何其他的区块链都快,甚至接近了并不是一个区块链的常规数据库的速度。这是因为就算少量的节点也都具有很高的信任度,并不需要每个节点来验证一个交易。
(2)给隐私更好的保障。私有链使得在那个区块链上的数据隐私政策像在另一个数据库中似的完全一致,不用处理访问权限和使用所有的老办法,但至少说,这个数据不会公开地被拥有网络连接的任何人获得。
(3)交易成本大幅降低。如果一个实体机构控制和处理所有的交易,那么他们就不再需要为工作而收取费用。然而,即使交易的处理是由多个实体机构完成的,例如竞争性银行,因为同样的原因,它们可以更快地处理交易,所以费用仍然是非常小的。
(4)有助于保护其基本的产品不被破坏。正是这一点,使得银行等金融机构能在目前的环境中欣然接受了私有链。
应用场景:
私有链的应用场景一般是企业内部的应用,如数据库管理、审计等。也有一些比较 特殊的组织情况,比如在政府行业的一些应用:政府的预算和执行,或者政府的行业统计 数据,这个一般来说由政府登记,但公众有权力监督。私有链的价值主要是提供安全、可追溯、不可篡改、自动执行的运算平台,可以同时防范来自内部和外部对数据的安全攻击,这个在传统的系统是很难做到的。
举个形象的例子,比如现在我们有个村子,村子里的村民采用pow等机制来进行记账权的分配,而账本是所有人都能看到的,那村子的运作是基于公有链的。如何把这个运作方式变成一个私有链呢?
只要村长发话,区块链的读写权限,记账权限全部封闭,只对村民开放,想要拥有权限必须通过他的审核和确认才行。这样外人想看村里的区块链账本必须通过村长的同意,想交易?想入村当村民?全部得由村长同意才行。账本只对村内透明。
相比中心化数据库,私有链能够防止机构内单节点故意隐瞒或者篡改数据,即使发生错误,也能够迅速发现来源。因此许多大型金融机构在目前更加倾向于使用私有链技术。
3、联盟链
联盟链的网络范围介于公有链和私有链之间,通常是使用在多个成员角色的环境中,比如银行之间的支付结算、企业之间的物流等,这些场景下往往都是由不同权限的成员参与的,与私有链一样,联盟链系统一般也是具有身份认证和权限设置的,而且节点的数量往往也是确定的,对于企业或者机构之间的事务处理很合适。联盟链并不一定要完全管控,比如政务系统,有些数据可以对外公开的,就可以部分开放出来。
由于联盟链一般用在明确的机构之间,因此与私有链一样,节点的数量和状态也是可控的,并且通常也是采用更加节能环保的共识机制。
联盟链的特点是:
1)低成本运行和维护
2)高交易速度及良好的扩展性
3)联盟维护、 比私有链更具可信度
应用场景:
联盟链的共识过程由预先选好的节点控制。一般来说,它适合于机构间的交易、结算或清算等B2B场景。例如在银行间进行支付、结算、清算的系统就可以采用联盟链的形式,将各家银行的网关节点作为记账节点,当网络上有超过2/3的节点确认一个区块,该区块记录的交易将得到全网确认。联盟链可以根据应用场景来决定对公众的开放程度。
由于参与共识的节点比较少,联盟链一般不采用工作量证明的挖矿机制,而是多采用权益证明或PBFT(Practical Byzantine Fault Tolerant)、RAFT等共识算法。联盟链对交易的确认时间、每秒交易数都与公共链有较大的区别,对安全和性能的要求也比公共链高。
联盟链网络由成员机构共同维护,网络接入一般通过成员机构的网关节点接入。联盟链平台应提供成员管理、认证、授权、监控、审计等安全管理功能。
比如上文说的那个村子,我们也可以给他加一条联盟链,比如就是由村里所有的小卖部构建的——每个小卖部就算一个联盟。为什么会有这个联盟链呢,因为每个小卖部进货都是去城外进货,同一个物品价格差异大,小卖铺们为了能共享最低进货渠道,就建立了这个联盟链,并且链由这些个小卖部共同维护。当然,这个联盟链还能供小卖部交换别的数据。
二、根据部署环境,可以分为主链和测试链。
(1)主链
所谓主链,也就是部署在生产环境的真正的区块链系统,软件在正式发布前会经过很多内部的测试版本,用于发现一些可能存在的Bug,并且用来内部演示以便于查看效果,直到最后才会发布正式版。主链,也可以说是由正式版客户端组成的区块链网络,只有主链才是会被真正推广使用的,各项功能的设计也都是相对最完善的。
另外,有些时候,区块链系统会由于种种原因导致分叉,比如挖矿的时候临时产生的小分叉等,此时将最长的那条原始的链条称为主链。
(2)测试链
这个很好理解,就是开发者为了方便大家学习使用而提供的测试用途的区块链网络,比如比特币测试链、以太坊测试链等。
当然,倒也不是说非得是区块链开发者才能提供测试链,用户也可以自行搭建测试网络。测试链中的功能设计与生产环境中的主链是可以有一些差别的,比如主链中使用工作量证明算法进行挖矿,在测试链中可以更换算法以便更方便地进行测试使用。
三、根据对接类型,可以分为单链、侧链和互联链。
(1)单链
能够单独运行的区块链系统都可以称为“单链”,例如比特币主链、测试链;以太坊主链、测试链;莱特币的主链、测试链;超级账本项目中的Fabric搭建的联盟链等,这些区块链系统拥有完备的组件模块,自成一个体系。
大家要注意了,对于有些软件系统,比如基于以太坊的众筹系统或者金融担保系统等,这些只能算是智能合约应用,不能算是一个独立的区块链系统,应用程序的运行需要独立的区块链系统的支撑。
(2)侧链
侧链属于一种区块链系统的跨链技术,这个概念主要是由比特币侧链发起的。随着技术发展,除了比特币,出现了越来越多的区块链系统,每一种系统都有自己的优势特点,如何将不同的链结合起来,打通信息孤岛,彼此互补呢?侧链就是其中的一项技术。
以比特币来说,比特币系统主要是设计用来实现数字加密货币的,且业务逻辑也都固化了,因此并不适用于实现其他的功能,例如金融智能合约、小额快速支付等。然而比特币是目前使用规模最大的一个公有区块链系统,在可靠性、去中心化保证等方面具有相当的优势,那么如何利用比特币网络的优势来运行其他的区块链系统呢?
可以考虑在现有的比特币区块链之上,建立一个新的区块链系统,新的系统可以具备很多比特币没有的功能,比如私密交易、快速支付、智能合约、签名覆盖金额等,并且能够与比特币的主区块链进行互通,简单来说,侧链是以锚定比特币为基础的新型区块链。锚定比特币的侧链,目前有ConsenSys的BTCRelay、Rootstock和BlockStream的元素链等。
大家要注意,侧链本身就是一个区块链系统,并且侧链并不是一定要以比特币为参照链,这是一个通用的技术概念,比如以太坊可以作为其他链的参照链,也可以本身作为侧链与其他的链去锚定。实际上,抛开链、网络这些概念,就是不同的软件之间互相提供接口,增强软件之间的功能互补。
(3)互联链
如今我们的生活可以说几乎已经离不开互联网了,仅仅互通互联,带来的能量已经如此巨大。
区块链也是这样,目前各种区块链系统不断涌现,有的只是实现了数字货币,有的实现了智能合约,有的实现了金融交易平台,有些是公有链,有些是联盟链,等等。这么多的链,五彩缤纷,功能各异,脑洞大开,不断刷新着更新颖的应用玩法。那么,这些链系统如果能够彼此之间互联会发生些什么样的化学反应呢?
与传统软件不同的是,区块链应用拥有独特的性质,比如数据不可篡改性、完整性证明、自动网络共识、智能合约等,从最初的数字货币到未来可能的区块链可编程社会,这些不单单会改变生活服务方式,还会促进社会治理结构的变革,如果说每一条链都是一条神经的话,一旦互联起来,就像是神经系统一般,将会给我们的社会发展带来更新层次的智能化。
另外,从技术角度来讲,区块链系统之间的互联,可以彼此互补,每一类系统都会有长处和不足之处,彼此进行功能上的互补,甚至可以彼此进行互相的验证,可以大大加强系统的可靠性以及性能。
四、按应用范围划分:基础链、行业链。
有句话是这么说的,币讲的是共识,链拼的是生态。在区块链的划分中,按照生态的应用范围,可以分为以下两种类型:
(1)基础链
典型案例:ETH、EOS
特征:所谓基础链,就是提供底层的且通用的各类开发协议和工具,方便开发者在上面快速开发出各种DAPP的一种区块链,一般以公有链为主。
(2)行业链
典型案例:BTM、GXS、SEER
特征:所谓行业链,业内没有统一的定义。通俗点说,就是在底层技术上不如基础链,且为某些行业特别定制的基础协议和工具。如果把基础链称为通用性公链,则你可以把行业链理解为专用性公链。
行业链类似我们日常生活中的某些行业标准,比如BTM就是资产类公链,GXS是数据公链,而SEER是预测类公链。
(未完待续)
本文参考资料:《白话区块链》、《比特币概念科普》(作者: 蜂窝哈希矿机业)、《入币圈必须知道的三种区块链类型》。
原创不易,非授权不得转载,转载请注明出处。如果您觉的文章有用,别忘了在文末点赞哦。
读更多好书,请访问我的文集:《一生必读的万卷好书》
欢迎加入“万卷好书读书会”:在这个群里,大家可以分享电子书,交流读书心得,以文会友,自由点赞支持。目前该群已超过100人,需要群主发邀请才能进,有兴趣的简友请加微信dudoudou189联系我。读书会座右铭:在浮躁的时代,安心读书写作,养育心灵。
我已晋升最高级别的“简书会员合伙人”,欢迎使用我的专属会员推广链接:https://www.jianshu.com/mobile/club?ref=11f3ab2f1288,订阅会员,享受最优惠福利。