区块链学习——区块链分类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kuangsonghan/article/details/80029811

摘要

在我的区块链上一篇博文中,简单介绍了区块链的架构,链接:区块链学习——区块链架构。那么本文我将继续简单介绍一下区块链的分类。

根据网络范围

根据网络范围,区块链可以分为公有链、私有链、联盟链。

1.公有链

所谓公有就是完全对外开放,任何人都可以任意使用,没有权限的限定,也没有身份认证之类,不但可以任意参与使用,而且发生的所有数据都可以任意查看,完全公开透明。比特币就是一个公有链网络系统,大家在使用比特币系统的时候,只需要下载相应的软件客户端,创建钱包地址、转账交易、挖矿等操作,这些功能都可以自由使用。公有链系统由于完全没有第三方管理,因此依靠的就是一组实现预定的规则,这个规则要确保每个参与者在不信任的网络中能够发起可靠的交易事务。通常来说,凡是需要公众参与,需要最大限度保证数据公开透明的系统,都适用公有链,比如数字货币系统、众筹系统、金融交易系统等。

这里需要注意,在公有链的环境中,节点数量是不固定的,节点的在线与否也是无法控制的,甚至一些节点可能是恶意节点。我在介绍区块链工作流程的时候,提到了一个问题,在这种情况下,如何知道数据是被大多数的节点写入确认的呢?实际在公有链的环境下,这个问题没有很好的解决,目前最合适的做法就是通过不断地去互相同步,最终网络中大多数节点都同步一致的区块数据所形成的的链就是被承认的主链,这也被称为最终一致性。

2.私有链

私有链是与公有链相对的一个概念,所谓私有就是指不对外开放,仅仅在组织内部使用的系统,比如企业的票据管理、财务审计、供应链管理等,或者一些政务管理系统。私有链在使用过程中,通常是有注册要求的,即需要提交身份认证,而且具备一套权限管理体系。有朋友可能会问,比特币、以太坊这些等系统虽然是公链系统,如果将这些系统搭建在一个不与外网连接的局域网中,这个不就成了私有链吗?从网路传播范围来看,可以算,只不过由于使用的系统本身没有任何的身份认证以及权限设置,因此从技术角度上来说,这种情况只能算是使用公链系统的客户端搭建的私有测试网络。当然也适用于企业应用。

在私有链环境中,节点数量和节点的状态通常是可控的,因此在私有链环境中一般不需要通过竞争的方式来筛选区块数据的打包者,可以采取更加节能环保的方式,比如在上述共识机制介绍中提到的PoS(权限证明)、DPoS(委托权益证明)、PBFT(使用拜占庭容错算法)等。

3.联盟链

联盟链的网络范围结余共有链和私有链之间,通常是使用在多个成员角色的环境下,比如银行之间的支付结算、企业之间的物流等,这些场景下往往都是由不同权限的成员参与的,与私有链一样,联盟链系统一般也是具有身份认证和权限设置的,而且节点的数量往往是确定的,对于企业或者机构之间的事务处理和合适。联盟链不一定要完全管控,比如财务系统,有些数据可以对外工卡的,就可以部分放出来。

由于联盟链一般用在明确的机构之间,因此与私有链一样,节点的数量和状态也是可控的,并且通常也是爱用更加节能环保的共识机制。

根据部署环境

1.主链

所谓主链,也就是部署在生产环境中的真正的区块链系统,软件在正式发布前会经过很多的内部测试版本,用于发现一些可能存在的bug,并且用来内部演示以便于查看结果,最后才会正式发布正式版。主链,也可以说是正式版客户端组成的区块链网络,只有主链才会真正被推广使用的,各项功能的设计都是相对完善的。另外有些时候,区块链系统会由于种种原因导致分叉,比如挖矿的时候临时产生的小分叉等等,因此最长的那条原始链成为主链

2.测试链

这个也很好理解,就是开发者为了方面大家学习使用提供的测试用途的区块链系统,比如比特币测试链、以太坊测试链等,当然,倒也不是树非得是区块链开发者才能提供测试链,用户也可以自行搭建测试网络。测试链中的功能设计与生产环境中的主链是可以有一些差别的,比如主链中使用工作量证明算法进行挖矿,在测试链中可以换成其他算法以便测试使用。

根据对接类型

1.单链

能够单独运行的区块链系统都可以成为是“单链”,比如比特币主链、测试链,以太坊主链与测试链;超级账本中的Fabric搭建的联盟链等,这些区块链系统拥有完美的组件模块,自成一个体系。大家要注意了,对于有些软件系统,例如基于以太坊的众筹系统或者金融担保系统等,这写只能算是智能合约应用,不能算一个独立的区块链系统,应用程序的运行需要独立的区块链系统的支撑。

2.侧链

侧链属于一种区块链系统的跨链技术,这个概念主要是比特币侧链发起的,随着技术的发展,除了比特币,出现了越来越多的区块链系统,每一种系统都有自己的优势特点。如何将不同的链结合起来,打通信息孤岛,彼此互补呢?侧链就是其中的一项技术。

以比特币来说,比特币系统主要是设计用来实现数字加密货币的,且业务逻辑已经固化。因此并不是适用实现其他的功能,例如金融只能合约,小额快速支付等。然而比特币是目前适用规模最大的一个公有区块链系统,在可靠性,去中心化保证等方面的优势,那么如何利用比特币网络的优势来运行其他的区块链系统呢?可以考虑在现有的比特币的区块链之上,建立一个新的区块链系统,新的系统可以具有很多比特币没有的功能,比如私密交易、快速支付等等,并且能够与比特币的主链进行互通。简单来说,侧链是锚定比特币为基础的新型区块链。锚定比特币的侧链,目前有ConsenSys的BTCRelay、Rootstock和BlockStream的元素链。

区块链系统与侧链系统本身都是一个独立的链系统,两者之间可以按照一定的协议进行数据互动,通过这种方式,侧链能起到一个队主链功能扩展的作用,很多在主链中不方便实现的功能可以在侧链中实现,而侧链再通过与主链数据交互增强自己的可靠性。

3.互联链

如今我们的生活可以说是离不开互联网了,仅仅互通互联,带来的能量已经如此巨大。区块链也是这样,目前各种区块链系统不断涌现,有的只是实现数字货币,有的实现了智能合约,有的实现了金融交易平台,有的是共有链,有的是联盟链,等等。这么多的链,功能各异,不断刷新着更新颖的应用玩法,那么这些链系统如果能批次之间互联会发生什么化学反应呢?与传统的软件不同的是,区块链系应用拥有独特的性质,比如数据不可篡改、完全性证明、自动网络共识、智能合约等,从最初的数字货币到未来可能的区块链可编程社会,这些不单单改变生活服务方式,还会促进社会治理的变革。如果说每一条链都是一条神经的话,一旦互联起来,就像是神经系统一般,将会给我们的社会发展带来更新层次的智能化。

另外,从技术上角度来讲,区块链系统中的互联,可以彼此互补,每一类系统都会有长处和不足,彼此进行功能上的互补,可以批次进行互相验证,可以大大增强系统的可靠性以及性能。

展开阅读全文

没有更多推荐了,返回首页