(1)公有链
所谓公有就是完全对外开放,任何人都可以任意使用,没有权限的设定,也没有身份认证之类,不但可以任意参与使用,而且发生的所有数据都可以任意查看,完全公开透明。比特币就是一个公有链网络系统,大家在使用比特币系统的时候,只需要下载相应的软件客户端,创建钱包地址、转账交易、挖矿等操作,这些功能都可以自由使用。公有链系统由于完全没有第三方管理,因此依靠的就是一组事先约定的规则,这个规则要确保每个参与者在不信任的网络环境中能够发起可靠的交易事务。通常来说,凡是需要公众参与,需要最大限度保证数据公开透明的系统,都适用于公有链,比如数字货币系统、众筹系统、金融交易系统等。
这里要注意,在公有链的环境中,节点数量是不固定的,节点的在线与否也是无法控制的,甚至节点是不是一个恶意节点也不能保证。我们在讲解区块链的一般工作流程的时候,提到过一个问题,在这种情况下,如何知道数据是被大多数的节点写入确认的呢?实际在公有链环境下,这个问题没有很好的解决方案,目前最合适的做法就是通过不断地去互相同步,最终网络中大多数节点都同步一致的区块数据所形成的链就是被承认的主链,这也被称为最终一致性。
(2)私有链
私有链是与公有链相对的一个概念,所谓私有就是指不对外开放,仅仅在组织内部使用的系统,比如企业的票据管理、账务审计、供应链管理等,或者一些政务管理系统。私有链在使用过程中,通常是有注册要求的,即需要提交身份认证,而且具备一套权限管理体系。有朋友可能会有疑问,比特币、以太坊等系统虽然都是公链系统,但如果将这些系统搭建在一个不与外网连接的局域网中,这个不就成了私有链了吗?从网络传播范围来看,可以算,因为只要这个网络一直与外网隔离着,就只能是一直自己在使用,只不过由于使用的系统本身并没有任何的身份认证以及权限设置,因此从技术角度来说,这种情况只能算是使用公链系统的客户端搭建的私有测试网络,比如以太坊就可以用来搭建私有链环境,通常这种情况可以用来测试公有链系统,当然也可以适用于企业应用。
在私有链环境中,节点数量和节点的状态通常是可控的,因此在私有链环境中一般不需要通过竞争的方式来筛选区块数据的打包者,可以采用更加节能环保的方式,比如在上述共识机制的介绍中提到的PoS(Proof of Stake,权益证明)、DPoS(Delegate Proof of Stake,委托权益证明)、PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错算法)等。
(3)联盟链
联盟链的网络范围介于公有链和私有链之间,通常是使用在多个成员角色的环境中,比如银行之间的支付结算、企业之间的物流等,这些场景下往往都是由不同权限的成员参与的,与私有链一样,联盟链系统一般也是具有身份认证和权限设置的,而且节点的数量往往也是确定的,对于企业或者机构之间的事务处理很合适。联盟链并不一定要完全管控,比如政务系统,有些数据可以对外公开的,就可以部分开放出来。
由于联盟链一般用在明确的机构之间,因此与私有链一样,节点的数量和状态也是可控的,并且通常也是采用更加节能环保的共识机制。
原文地址:https://www.cnblogs.com/qukuailian/p/8799024.html