公有链(public chain)
公有链是什么?
全网公开,无用户授权机制的区块链,称为公有链。 与传统分布式系统的C/S , B/S或三层架构不同,比特币系统基于P2P网络,所有节点对等,且都运行同样的节点程序。
节点程序总体上分为两部分:一部分是前台程序,包括钱包或图形化界面;另一部分是后台程序,包括挖矿、区块链管理、脚本引擎及网络管理等。 区块链管理:涉及初始区块链下载、连接区块、断开区块、校验区块和保存区块,以及发现最长链条的顶区块。
内存池管理:即交易池管理。节点将通过验证的交易放在一个交易池中,并准备好将其放入下一步挖到的区块中。
邻接点管理:当一个新比特币节点初始启动时,它需要发现网络中的其他节点,并与至少一个节点连接。
共识管理:比特币中的共识管理包括挖矿、区块验证和交易验证规则。比特币采用PoW共识机制,依赖机器进行哈希运算来获取记账权,同时每次达成共识需要全网共同参与运算,允许全网50%节点出错。
密码模块:比特币采用RIMEMD和SHA-256算法及Base-58编码生成比特币地址。
签名模块:比特币采用椭圆曲线secp256k1及数字签名算法ECDSA来实现数字签名并生成公钥。
脚本引擎:比特币的脚本语言是一种基于堆栈的编程脚本,共有256个指令,是非图灵完备的运算平台,没有能力计算任意带复杂功能的任务。
C/S架构和B/S架构:
C/S(Client/Server)结构分为客户端和服务端两部分。服务端存储数据库内容,并在客户端上安装相应软件。C/S 结构按照架构分为双层结构和三层结构。
双层结构中的表示层和业务逻辑层部署在客户端,主要提供用户界面,接受用户提交的请求,并将用户请求发送至服务端,申请数据库服务。数据层则部署在服务端,负责数据库的业务处理,包括查询数据库、排序、索引等操作,对数据进行处理后将结果返回客户端。随着信息技术的发展,软件复杂性也在不断提高,传统的双层 C/S 结构存在很多局限性,如客户端负载重、服务器的性能无法满足要求等。此外,一旦系统需求发生变化,客户端和服务端的应用程序都需要变更,给维护和升级带来极大不便。
B/S(Browser/Server)架构,即浏览器/服务器结构。Browser客户端是指Web浏览器。在B/S架构中,主要业务逻辑在服务器端实现,极少数事务逻辑在浏览器中实现,减轻了客户端的压压力。因此,B/S架构被认为是瘦客户端。B/S架构的系统无须特别安装,只有Web浏览器即可。同时,B/S架构较C/S架构的应用维护和升级有较大的便利。
三层架构: 为了满足更大规模的客户机群和服务器群的业务需求,开发了一个三层体系结构,分为表示层、业务逻辑层、数据层,将双层结构中客户端的业务逻辑层迁移出来,客户端只保留表示层。
表示层:主要完成用户与应用程序之间的交互,包括接受用户输入的数据,显示应用的输出结果。在此层中,通常不包括系统的业务逻辑,逻辑代码仅与界面元素有关。如分页显示、图片轮播等。
业务逻辑层:负责实现应用/业务的主要功能,当前端需要进行数据访问和其他操作时,前端向业务逻辑层发送请求,由业务逻辑层向数据库发送请求完成数据查询等,并在前端和服务端之间传输数据。
数据访问层:是系统的持久层,负责对数据库的读写及管理。
三层架构是一种严格分层方法,即数据访问层只能被业务逻辑层访问,业务逻辑层只能被页面显示层访问,用户通过表示层将请求传送给业务逻辑层,业务逻辑层完成相关业务规则和逻辑,并通过数据访问层访问数据库获得数据,然后按照相反的顺序依次返回将数据显示在页面显示层。在三层架构之间,通过派生类去实现接口;通过调用派生类的方法和属性,三层之间实现相互调用。三层设计的优势为:高内聚低耦合、标准定义、逻辑复用、分散关注。高内聚低耦合降低了层与层之间的依耐性,提高了复用性。同事,明确了开发人员的分工,提高了软件项目的开发速度。
B/S三层架构的特点:
随着网络技术的发展,特别随着 Web 技术的不断成熟,B/S 这种软件体系结构出现了。
B/S(Browser/Server)架构也被称为浏览器/服务器体系结构,这种体系结构可以理解为是对 C/S 体系结构的改变和促进。由于网络的快速发展,B/S 结构的功能越来越强大。这种结构可以进行信息分布式处理,可以有效降低资源成本,提高设计的系统性能。
B/S 的特征和基本结构:在 B/S 结构中,每个节点都分布在网络上,这些网络节点可以分为浏览器端、服务器端和中间件,通过它们之间的链接和交互来完成系统的功能任务。三个层次的划分是从逻辑上分的,在实际应用中多根据实际物理网络进行不同的物理划分。
浏览器端:即用户使用的浏览器,是用户操作系统的接口,用户通过浏览器界面向服务器端提出请求,并对服务器端返回的结果进行处理并展示,通过界面可以将系统的逻辑功能更好的表现出来。
服务器端:提供数据服务,操作数据,然后把将结果返回中间层,结果显示在系统界面上。
中间件:这是运行在浏览器和服务器之间的。这层主要完成系统逻辑,实现具体的功能,接受用户的请求并把这些请求传送给服务器,然后将服务器的结果返回给用户,浏览器端和服务器端需要交互的信息是通过中间件完成的。
C/S 结构作为目前比较成熟的技术,虽然有着能处理大量数据、响应速度快和交互性强等优点,但其在很多方面依然有所局限性。比如,每台客户端都需要安装相应的客户端程序,无法实现快速部署的安装和配置,缺乏通用性。此外,其结构的方案需要有针对性的开发,且变更不够灵活,难以维护和管理。
相比之下 B/S 架构是有更广的应用范围,在处理模式上大大简化了客户端,用户只需安装浏览器即可,而将应用逻辑集中在服务器和中间件上,可以提高数据处理性能。在软件的通用性上, B/S 架构的客户端具有更好的通用性,对应用环境的依赖性较小,同时因为客户端使用浏览器,在开发维护上更加便利,可以减少系统开发和维护的成本。
公有链与其他几个链的区别
(1)全网公开,无用户授权机制的区块链。
(2)允许授权的节点加入网络,可根据权限查看信息,往往被用于机构间的区块链,称为联盟链或行业链。
(3)所有网络中的节点都掌握在一家机构手中,称为私有链(中心性)。联盟链和私有链也统称为许可链,公有链称为非许可链。
(4)公有链的一个典型表现就是以太坊平台,因为以太坊使用智能合约和去中心化的特征恰好就是公有链的特征。
公有链的问题(也就是大伙挖矿的时候会遇到的问题)
(1)激励问题:为促使全节点提供资源,自发维护整个网络,公有链系统需设计激励机制,以保证公有链系统持续健康运行。但比特币的激励机制存在一种“验证者困境”,即没有获得记账权的节点付出算力验证交易而没有任何回报。
(2)效率和安全问题:比特币平均每10 min产生1个区块,且其PoW机制很难缩短区块时间,PoS相对而言可缩短区块时间,但更易产生分叉,所以交易需要等更多确认才被认为安全,Gervais A等的试验得出:在假设各有30%算力的前提下,以太坊需要37个区块的确认才能达到比特币6个区块确认的安全水平。一般认为,比特币中的区块经过6个确认后才是足够安全的,这大概需要1h,对于大多数企业应用需求来说根本无法满足。
(3)公有链面临的安全风险:包括来自外部实体的攻击(拒绝服务攻击DDoS等)、来自内部参与者的攻击(冒名攻击Sybil Attack、共谋攻击Collusion Attack等)及组件的失效、算力攻击等。 (4)隐私问题:公有链上传输和存储的数据都是公开可见的,仅通过“伪匿名”的方式对交易双方进行一定隐私保护。对于某些涉及大量商业机密和利益的业务场景来说,数据的暴露不符合业务规则和监管要求。
(5)最终确定性(Finality)问题:交易的最终确定性指特定的某笔交易是否会最终被包含进区块链中。PoW等公有链共识算法无法提供最终确定性”,只能保证一定概率的近似,如在比特币中,一笔交易在经过2h后可达到的最终确定性为99.9999%,这对现有工商业应用和法律环境来说可用性较差(你觉得你交易成功了,但是没有成功。)。
私有链(Private Blockchain)
私有链的定义
私有链(Private Blockchain)是区块链的一种,它指的是某个区块链的写入权限仅掌握在某个人或某个组织手中,数据的访问以及编写等有着十分严格的权限。具体而言,系统内的各个节点写入权限将由组织来决定分配,而根据具体情况由组织决定对谁开放多少信息和数据简单的来说,就是一个人的微博账号;这个账号需要发送什么内容,需要向其他人传递什么信息,都取决于你。同时你可以通过设置权限来控制哪些人可以看见它,哪些人不能看见它。
私有链的优势
相对于公有链,私有链可以在不颠覆传统金融模式的前提下,日积月累的来改善存在于传统金融模式里的一些诟病,例如金融机构的工作效率问题、金融敲诈问题等。而公有链是软件来颠覆传统金融模式大部分功能的一种方法,这与私有链形成鲜明对比。
私有链能给许多金融企业问题提供公有链无法解决的解决方案,如遵守规章制度:医疗保险可携行和责任法案(HIPAA)、 反洗钱(AML) 和了解你的客户(KYC) 制度。
私有链的特点
优点
①交易效率高
私有链的交易速度很快,毫不夸张的说,其速度可超过任何其他地的区块链。这是因为即使是少量的节点,其也具有高信任度,所以交易的进程不需要每一个节点都来验证,所有造就了私有链独一无二的交易速度。其速度之快,甚至接近了常规数据库(非区块链数据库)。
②保障隐私
私有链上不必处理访问权限等繁琐进程,个人数据不会被网络上任何人获得。
③成本低
私有链上完成的交易通常十分廉价或免费。这是因为私有链上的交易速度十分之快,各个节点间不需要完全的协议,以至于它们不会为任意一个交易而工作,如此一来大大降低了交易成本。
④保护产品
私有链的机制有效的使多数金融机构坦然接受,对于基本产品的保护,实体机构是不惜一切代价的。
缺点
①应用受限制
私有链受到许可权的限制,只适用于特定机构内部使用。
②不具备去中心化
涉及到不同法律实体之间的资产结算问题,私有链仍然举步维艰,还在寻找改进结算机制的方法。
③易遭受攻击
任何中心化和集中化的服务器,数据库和平台数据泄露和受到网络攻击的风险都会很高,恶意软件和黑客团体不断研究破解技术,其系统设计和治理集中在一方或几方手上。
私有链的应用
私有链的应用场景一般是企业内部的应用,如数据库管理、审计等;在政府行业也会有一些应用,比如政府的预算和执行,或者政府的行业统计数据,这个一般来说由政府登记,但公众有权力监督。
私有链更多的是解决大型企业内部的信任问题,如大型跨地区、跨国企业,利用内部私有链来对财务、人事、资源、账单等进行核算统计溯源等等,减少内部信任问题,并且提高信息传递效率。
目前并没有出色的代表性项目。由于私有链的记账权不公开,信息不透明,实际上更接近于传统的中心化架构。
相比中心化数据库,私有链能够防止机构内单节点故意隐瞒或者篡改数据,即使发生错误,也能够迅速发现来源。因此许多大型金融机构在目前更加倾向于使用私有链技术。
CHEX首席执行官EugeneLopin说:“ 私有链与传统的数据库基本没有差别,私有链与美化了的数据库意义是-一样的。但是其好处在于,如果开始将公共节点加入其中,会有更多节点。开放的区块链是拥有一个可信任账木的最佳方法。去中心化的范围越大,也越利于该技术的采用。” 虽然私有链有着众多的优势,但不可盲目采用。私有链需要找到迫切需要的需求场景方可适用。要做到共私并用,具体选择哪一种方案都需考虑项目的需求。
混合链
什么是混合链?
混合链是一种独特的区块链技术,它融合了公有链和私有链的特点,利用公有链和私有链各自的特点,结合成为最佳方案,也就是说混合链同时具有公有链和私有链两种状态。
混合链中的交易和记录是私有的,旦可以在需要时进行验证,例如通过智能合约启用访问。也就是说,私人信息保存在网络内,但仍可验证。
尽管私人实体可能拥有混合链,但它不能更改交易。混合链允许组织在公有无需许可的系统旁边建立一个私有、需要许可的系统,公有链和私有链各司其职,决定谁可以访问存储在区块链中的特定数据,以及哪些数据将被公开当用户加入混合链时,他们可以完全访问网络,用户的身份受到保护并不受其他用户的影响,除非他们参与交易,这样他们的身份才会被泄露给对方。
混合链特点
混合链既可以保护隐私,又可以与第三方进行通信。外部黑客无法对网络发起51%攻击,因为混合链在封闭的生态系统中运行。
混合链中的交易既便宜又快速,并且能够产生比公有链更好的可扩展性。
混合链尽管是私有的,但仍然提供完整性、安全性和透明度。同样,混合链可以完全被定制。
交易可视化方面,可根据需求而定。混合链成员可以选择区块链中的参与者或决定哪些交易可以公开。这可以保证公司与股东进行良好的合作。
51%的攻击是对比特币(或其他区块链网络)来说一种潜在的危机,由此单个单位或组织能够控制大部分算力,从而导致网络中断。
联盟链(Consortium Blockchain)
联盟链是什么?
联盟链(Consortium Blockchain)是介于公有链与私有链之间的一种系统形态,它往往由多个中心控制。由若干组织一起合作维护一条区块链,该区块链的使用必须是带有权限的限制访问,相关信息会得到保护,如供应链机构或银行联盟。有专家指出,联盟链的本质是分布式托管记账系统,系统由组织指定的多个“权威”节点控制,这些节点之间根据共识机制对整个系统进行管理与送作。联盟链可视为“部分去中心化”,公众可以査阅和交易,但验证交易或发布智能合约需获得联盟许可。
联盟链的特点
优点
①相比于私有链的运作空间和效率,联盟链的价值更大
②相比于公有链完全去中心化的不可控性和隐私安全的问题,联盟链更加灵活,也更有操作性
③交易速度快,相比于公有链,联盟链每秒写入速度可以达到1000次以上数据写入,而公有链仅仅只有每秒3-20次数据写入
④交易成本更便宜。交易只需被几个受信的高算力节点验证就可以了,而无需全网确认。
⑤节点可以很好地连接,故障可以迅速通过人工干预来修复,并允许使用共识算法减少区块时间,从而更快完成交易。(区块链里有各种链,但目前最有实践意义的可能是联盟链)
缺点
①首先由于联盟链的半中心化的特性,容易受到恶意人员的攻击
②其次联盟链缺少行内的统一标准,使得在处理某些问题时充满着障碍
③虽然联盟链交易速度快,然而一些大型企业要想启动一个新的联盟,必须要经过所有成员的协议批准,而在这过程中各项程序过于繁琐,所以大型企业启动一个新的联盟链是非常缓慢的
联盟链的典型代表
1、R3
2、Hyperledge(超级账本)
R3CEV
R3CEV是一家总部位于纽约的区块链创业公司,由其发起的R3区块链联盟,目前已经有数十家国际银行和金融机构加入,成员遍及全球,R3是领先的技术服务提供商,可在受监管行业中实现数字协作。R3的信任技术、互联网络和受监管的市场专业知识可以推动市场创新并改进银行、资本市场、全球贸易和保险等业务的流程。作为首批提供专为受监管市场设计的唯一私有、安全和可扩展的DLT平台以及机密计算平台,R3能够充分发挥可信协作的潜力。R3提供专门构建的DLT和机密计算技术,以支持开发解决方案,促进和提供各方之间的数字信任。应用程序构建者包括 DTCC、Wells Fargo、MoneyGram、SIX Swiss Exchange 和 Nasdaq,以及全球主要的中央银行和监管机构。
Hyperledge(超级账本)
Hyperledge(超级账本)是Linux基金会于2015发起的推进区块链数字技术和交易验证的开源项目。Hyperledger的目标是让成员共同合作、共建开放平台以满足来自多个不同行业各种用户的需求,同时能大大简化业务流程。由于点对点网络的特性,分布式账本技术是完全共享、透明和去中心化的,故非常适合于在金融行业的应用,以及其他的例如制造、银行、保险、物联网等无数个其他行业。通过创建分布式账本的公开标准,实现虚拟和数字形式的价值交换,例如资产合约、能源交易、结婚证书、能够安全和高效低成本的进行追踪和交易。
区块链技术如何被更好的应用呢?基于公链还是联盟链?我们发现,即使政策层面从未对此有过表态,但中国企业们已经用脚做出了选择。谈及公链与联盟路的关系,京东数科创新科技业务部区块链技术负责人孙海波表示,联盟链的很多技术细节和技术原理来自于公链,它俩是相辅相成,不是互相排斥。之所以在中国布局联盟链的比较多,除了和国家政策指导有关,还因为公链不太适合企业的业务形态,但未来公链希望还是很大的。