学习区块链随笔(八)

区块链分类

根据网络范围及参与节点特性区块链可被划分为公有链,联盟链,私有链。

  公有链 联盟链 私有链
参与者 任何人自由进出 联盟成员 个体或公司内部
参与机制 PoW/PoS/DPos等 分布式一致性算法 分布式一致性算法
记账人 所有参与者 联盟成员协商确认 自定义
激励机制 需要 可选 可选
中心化程度 去中心化 多中心化 (多)中心化
突出特点 信用的自建立 效率和成本优化 透明和可追溯
承载能力 3~20笔/秒 1000~1万笔/秒 1000~20万笔/秒
典型场景 加密数字货币,存证 支付,清算,公益 审计,发行

公有链中的公有就是任何人都可以参与区块链数据的维护和读取,不受任何单个中央机构的控制,数据完全开放透明。

以太坊系统中也有以太地址,当用户向合约地址发送一笔交易后,合约激活,然后根据交易请求,合约按照事先达成共识的契约自动运行。

通常来说需要公众参与需要最大限度保证数据公开透明的系统都适合选用公有链,如数字货币系统,众筹系统等。

公有链问题

1.效率问题。现有的Po*共识如比特币的PoW及以太坊计划推出的PoS都有一个严重的问题,即是产生区块的效率较低由于在公有链中,区块传递需要时间,为了保证系统的可靠性,大多数公有链系统通过提高一个区块的时间来保证产生的区块能够尽可能广泛地扩散到所有节点处,从而降低系统分叉(同一时间段内多个区块同时被产生被先后扩散到系统的不同区域)的可能性。因此在公有链中区块的生成速度与整个系统的低分叉可能性是矛盾的,必须牺牲其中的一个方面来提高另一方面的性能,同时由于潜在的分叉情况,可能会导致一些刚生成的区块的回滚。一般来说在公有链中,每个区块都要若干个其它的后续区块的生成,才能够可以接受的概率认为该区块时安全的。比特币中的区块有6个基于它的后续区块生成才能被认为是足够安全的。而这大概需要一个小时,对于大多数企业应用来说根本无法接受。

2.隐私问题。目前公有链系统上传输和存储数据都是公开可见的仅通过“地址匿名”的方式对交易双方进行一定的隐私保护,相关参与方完全可以通过对交易记录进行分析从而获取某些信息,这对于某些涉及商业机密和利益的业务场景来说也是不可接受的。另外在显示世界的业务中,很多业务(如银行交易)都有实名制的要求,因此在实名制的情况下,当前共有链系统的隐私保护确实是个担忧。

3.最终确定性(Finality)问题。

交易的最终确定性指特定的某笔交易是否会最终包含进去区块链中,PoW等共有链共识算法无法提供实时确定性。即便看到交易写入区块也可能后续再被回滚。只能保证一定概率的收敛。比如在比特币中一笔交易在经过1小时候,可达到最终确定性为99.999%,这对于工商业应用和法律环境来说,可用性有较大风险。

4.激励问题。

为促使参与节点提供资源,自发维护网络,公有链一般会设计激励机制,以保证系统健康运行。但再现有大多数激励下,需要发型类似于比特币代币,不一定符合各个国家的监管政策。

联盟链

联盟链通常应用在多个互相已知身份的组织之间构建,比如多个银行之间的支付结算。多个企业之间的物流供应链管理,政府部门之间的数据共享等。因此联盟链系统一般都需要严格的身份认证和权限管理。节点的数据在一定时间段内也是确定的适合处理组织间需要达成共识的业务。典型的代表 Hyperledeger Fabric系统。

1.效率较公有链有很大提升。共识算法运行效率更高,如PBFT,Raft等。从而可以实现毫秒级确认。吞吐率有极大提升(几百到几百万TPS)

2.更好的安全隐私保护。数据仅在联盟成员内开放,非联盟成员无法访问联盟链内的数据。即使在同一个联盟内,不同业务之间的数据也进行了一定的隔离。比如Hyperleder Fabric的通道(channel)机制将不同业务的区块链进行隔离。

3.不需要代币激励。

私有链

所谓私有链就是指不对外开放,仅仅在组织内部使用,私有链是联盟链的一种特殊邢台,即联盟中只有一个成员,比如企业内部的票据管理。账务审计,供应链管理,或者政府部门内部管理系统等。私有链通常具备完善的权限管理体系需要使用者提交身份认证。

1.更加高效。组织内已有了一个定的信任机制。可以采用一些非拜占庭容错类,对区块进行即时确认的共识算法。如Paxos,Raft因此确认时延和联盟链都有很大的提高,甚至与中心化数据库的性能相当。

2.更好的安全隐私保护

相比传统数据库系统,私有链的最大好处是加密审计和自证清白的能力,没有人能轻易篡改数据局,即使发生篡改也可以追溯到责任方。

代表性系统及框架

1.比特币系统

(1)比特币UTXO模型。比特币没有严格意义上的“账户”概念。取而代之,提出了其独特的未消费交易输出模型,本书简称UTXO,UTXO是一个包含数据对应的执行代码的数据结构。所有的UTXO条目构成了比特币的“账本”,其中每个传统意义的“账本”的数据可以通过与它相关的UTXO推断出来。

UTXO核心在于,通过交易本身构成系统账本,而不是通过账户信息构成账本。

猜你喜欢

转载自blog.csdn.net/u010145988/article/details/104932982