区块链3.0
去中心化应用的新需求
区块链技术在行业应用中的条件
行业应用的用户是有一定的范围的,一般限制在一个市场或某一个企业内部。这就要求应用具有身份认证和许可授权的功能。其次,企业往往需要数据在传输过程中不会被窃取。要求应用具有保护交易信息传输的设计。
因此,对于提供给企业使用的行业应用,一般不会采用公共所有类型的区块链网路,而是采用组织私有类型的区块链网络。
区块链3.0架构与超级账本
在超级账本中,区块链技术不再仅限于数据货币或者金融的应用范畴之内,它成为了一种广泛使用的解决方案,支持各个行业的数据定义,如医疗健康、物联网、企业供应链、行政管理等。
超级账本是区块链3.0时代的代表作品。
除了身份认证、许可授权、数据保护,支持定制化的组织私有区块链网络的创建是区块链3.0架构中的一项新的特性。
区块链3.0架构
区块链3.0架构中增加了一个网关控制,目的是为了增加安全性、如成员注册、身份认证以及授权管理等。
区块链3.0架构的区块链将核心节点中一直沿用的共识协议改为了可插拔共识协议(共识机制可使用也可以不使用)。
超级账本(Hyperledger Fabric)
超级账本利用区块链技术,实现的是一种公开、透明且去中心化的企业级分布式账本。
由于是面向企业的服务项目,因此在区块链类型上等公有链系统有很大的区别。
超级账本中的项目是独立的框架,设计者可以将一些企业需要实现的功能都封装在一起,作为一个框架提供给用户。
超级账本继续提供对智能合约(在超级账本中叫“链码”)的支持,增加了完备的身份认证和权限管理以及可插拔的共识协议、整体的框架化。
超级账本也是开源项目(Apache v2许可协议)。
超级账本的项目
- Fabric项目:最早被提交的子项目,关注度最高的项目。
- Sawtooth项目:全新的基于硬件芯片的共识机制Proof of Elapsed Time (PoET)
- lrohai项目:更好的支持移动应用开发
- Blockchain Explorer项目:浏览器工具 Cello项目:实现区块链即服务(Blockchain as a Service,BaaS)
Fabric
Fabric的典型运行模型
用户通过客户端参与到区块链网络中(客户端不是一个节点,它是用于支持用户与节点组件交互的工具,客户端有很多功能,比如网络的配置更新、启动、停止,操作链码等。目前Fabric主要提供了基于命令行的客户端。)
用户在参与到Fabric区块链网络之前,要先像CA节点登记注册,从CA节点那里取得合法的数字身份证书(注意:CA节点只负责数字身份证书的签发,个参与交易)。
用户客服端拿到数字身份证书后, 客户端会自动为用户进行数字身份书的部署,随后可访问Fabric网络中的对应资源。
在Fabric中完成一次交易的整体步骤
在正式的交易被执行前,用户客户端要将交易的提案( Proposal)提交给背书者 (Endorser)进行背书。
背书者对交易的合法性或者对交易发出者的身份合法性进行检查。背书策略会规定需要得到背书节点的数量要求。
在得到背书后,还要经历一个全局排序(Order)过程。
排序服务是由排序者(Orderer)节点提供的,是对一段时间内产生于同一通道的一批交易按照交易发生的顺序排列好并组织成区块。排序的作用就是是网络内的节点达成交易顺序的共识(排序者不能参与到交易中来、也不能进行背书)
排序者将新的区块发布出来后,还要经过一个确认的过程,有确认者(Committer)节点执行。
确认者节点在经过一定的时间间隔后,就会从排序者节点那里获取新的区块数据,并对区块中的交易数据结构、签名完整性、以及交易是否重复等必要信息进行检查,通过检查后,区块会被保存到自身所备份的区块链账本上。
Fabric的节点
节点有三种: CA节点,Orderer节点、Peer节点。
3类节点被封装在独立的组件中,分别是fabric-ca组件,fabric-orderer组件和fabric- peer组件。
Peer节点的工作主要围绕区块链账本展开。数量最多的就是Peer节点,Peer节点都能 实现验证者Committer的功能,但只有一部分Peer节点具有背书者Endorser的功能。
Orderer节点主要与区块链的共识有关,Orderer不会参与到交易中来。
CA节点只对Fabric网络中的成员身份进行管理,CA节点的数量是相对比较少的,同样不会参与到交易中来。
链码(Chaincode)
Fabric中的链码分为用户应用链码和系统链码。
- 用户应用链码由应用开发人员编写,在节点上的隔离沙盒(Docker容器) 中运行,提供对上层应用的支持。
- 系统链码是已经编写好的,并且嵌入在Fabric的内容,负责Fabric节点自身的处理逻辑,应用开发人员一般不必对系统链码进行修改。
目前最流行的是采用Go语言编写用户应用链码。
数字身份证书
Fabric 使用的是椭圆曲线数字签名(ECDSA)算法来生成公钥和私钥。如果公钥的分发过程中被截获甚至篡改,那么安全性将不复存在。
因此,Fabric使用数字身份证书来解决公钥在传输过程中存在的不安全问题。数字身份证书可以用来证明某个公钥就是属于某位用户,一旦公钥发生了改变,数字证书的证明作用也就消失了。借用数字证书的这种机制,公钥的安全分发有了很好的保障。
数字证书也有很多类别,例如,加密数字证书实现了对含有加密信息的公钥的保护,签名验证数字证书则有效地保护了用于进行解密签名和身份验证的公钥。
数字证书和签发和管理均由CA节点完成,证书的格式基于X.509的标准规范。
组织
一些拥有共同根证书或者证书来源于同一个中间CA的成员可以理解为处于同一个Fabric的组织(organization)中。
拥有共同信任根的好处就是成员之间的相互信任度比较高,一些除了私钥之外的敏感数据可直接相互交换。
通道
通道是Fabric为了方便多个组织或成员之间进行交易或数据交换而专门设计的,允许加入通道内的成员或组织进行彼此间的交易或数据交换。
通道外的用户无法访问通道内的交易信息,保证了隐私性。
通道分为应用通道(Application Channel)和系统通道 (System Channel)
通道的创建和管理都是由排序者节点Orderer负责。
区块链技术的典型应用场景
区块链技术优势
- 首先,不引入第三方中介服务机构,较好的实现了去中心化。
- 其次,账本数据分散保存在各个节点,账本数据很难被篡改。
- 还有,合理采用公钥加密和哈希加密,保护用户隐私。
- 最后,允许分布式网络中有部分节点出错,有较好的分布式容错性
区块链技术实现版权登记
版权需要确权,只有经过权威机构等级确定过的版权才算是合法的版权。
区块链将作品同作者的签名一同打包为区块并保存在本地区块链中,然后广播给和版权相关的单位进行保存。
使用区块链技术实现版权登记主要利用了区块链技术的数据无法篡改性,从经济角度来看,版权登记需要用到的成本也更加低廉。
目前,一些社区平台正在尝试利用区块链技术实现版权登记。例如,UC头条就对一些原创的头条通过区块链技术进行版权认证,此外,CSDN和简书也正在尝试对平台部分的原创帖子进行基于区块链技术的版权登记认证。
广告传媒的去中心化
可以将一个阅读者节点阅读、点赞、和分享一条信息的行为看作;
这个行为会被广播,很快就能被与他具有最近连接关系的节点接收到;
这些节点再次阅读、点赞、和分享这条信息。
矿工费是媒体在发布消息的时候填写在里面,随着这条信息的不断被“挖”,信息包含的矿工费值也逐渐下降。(矿工费可以是某些app的金币等等)。
使用区块链技术实现去中心化的广告传媒,其中的媒体就好像是在用户发起一则交易一样,可以选择放入一定的交易费,一条信息的发送就是一则交易的创建。
只不过,在广告传媒的场景下,矿工的数量可能很多而媒体的数量相对较少。
媒体投放的广告费被更有效地利用,激发用户阅读、观看兴趣。