01

背景介绍

BSN凋谢联盟链(BSN Open Permissioned Blockchain, 简称OPB)包含多条基于私有链框架和联盟链框架搭建的专用链,开发者能够抉择适宜利用业务需要的凋谢联盟链部署和运行智能合约和分布式应用,每条凋谢联盟链各有特点和劣势,均应用相似私有链的燃料机制通过人民币计价,使用方便简洁。在符合国家监管政策的前提下,实现“开箱即用、疾速上链”!

中移链是由中国移动区块链团队在EOS根底上对底层框架进行的革新,在满足我国信息化监管需要、合规可控的前提下,打造的中国移动区块链服务平台,不仅丰盛了BSN的技术体系,同时为BSN生态中的企业和开发者用户提供了更加多元化的技术抉择。

为了适配BSN凋谢联盟链-私有链可按本身框架特点抉择基于信赖 BSN根CA对立颁发的节点身份证书,中移链基于EOS底层进行革新,在节点之间减少了CA证书认证,同时节点准入配置无需节点重启,可动静加载,批改后实时失效。

02

技术架构

EOS节点通信基于P2P网络进行通信,P2P网络是指由对等节点组成的网络,没有服务端,客户端的区别。节点通常采纳TCP协定、应用指定端口与相邻节点建设连贯,建设连贯时也会有认证 “握手” 的通信过程(handshake_message)。基于P2P网络的个性,区块链节点能够随便退出和退出。中移链是在EOS根底上对其底层框架进行革新,齐全继承了EOS所领有高性能解决能力、易于开发以及用户收费等劣势。

鉴于P2P网络的个性,无奈满足BSN凋谢联盟链须要的平安准入准则。因而,中移链在P2P节点中退出TLS证书准入机制,通过TLS证书进行公有访问控制,以管制哪些参与者能够拜访和应用公有中移链网络,通过在参与者节点之间建设TLS连贯来满足平安连贯要求,只有领有正确证书的节点能力退出网络,以此实现对接入节点的访问控制。

整体EOS架构图如下:

  • BLOCK.LOG

    存储区块信息。

  • CHAINBASE/ROCKSDB

    内存表信息。

  • FORKDB

    用于存储候选的块分支。

  • 节点之间P2P通信协议

    次要指标是同步无效的块,转发交易。本次革新基于NET_PLUGIN插件,减少TLS证书对P2P节点进行认证。

  • DPOS共识机制

    是一种基于投票选举的共识算法,相似于代议制专制。在POS的根底上,DPOS先选举若干代理人,由代理人验证和记账,代理人之间轮流出块。

  • EOS-VM

    负责加载和解析编译后的智能合约字节码,也就是WASM。

  • WASM

    负责执行字节码来计算智能合约运行的后果。

  • ABI

    为二进制接口文件,用于形容智能合约的接口信息。

  • CLEOS

    蕴含NODEOS和KEOSD模块,NODEOS用于节点启动和治理,KEOSD用于钱包治理。

03

证书与TLS原理介绍

数字证书是指在互联网通信中标记通信各方身份信息的一个数字认证,人们能够在网上用它来辨认对方的身份,因而数字证书又称为数字标识。

SSL证书,也称为服务器SSL证书,将SSL证书装置在网站服务器上,可实现网站身份验证和数据加密传输双重性能。SSL协定及其继任者TLS协定,是一种实现网络通信加密的平安协定,可在客户端(浏览器)和服务器端(网站)之间建设一条加密通道,保证数据在传输过程中不被窃取或篡改。

中移链通过TLS证书认证,实现了节点的身份管控,确保只有携带正确证书的节点能力进行P2P接入。TLS握手是平安超文本传输协定(HTTPS)通信技术的一部分,本次革新后区块链节点正是应用HTTP和TLS证书进行平安的通信,整套通信流程如下:

中移链中节点的TLS握手包含以下步骤:

1.  待接入节点会关上一个TLS认证并连贯到链主节点。

2.  主节点尝试通过申请可辨认信息来验证接入节点的真实性。 

3.  待接入节点发送蕴含公钥的TLS证书作为回复。

4.  主节点会验证TLS证书,确保其无效且与用户名匹配。主节点对TLS证书验证通过,会应用公钥加密并发送蕴含密钥的音讯给接入节点。

5.  待接入节点应用其私钥解密音讯并检索会话密钥,而后应用会话密钥加密并向链主节点发送确认音讯。

04

中移链实现节点准入管制革新

在现有的EOS发行版本中,所有P2P节点接入只有HTTP协定,短少TLS证书所需环境。在本次革新中引入了OpenSSL库,该库蕴含一个类以及类模板,次要用于对SSL认证性能的反对。基于SSL库中流的特点,在区块链进行P2P连贯时, P2P套接字会包装到SSL流中,在曾经存在的流下层做了一层加密并结构一个SSL上下文对象,这个对象用于设置SSL认证的参数(如认证模式、认证文件等)

想要启用证书验证性能,只须要在net配置中增加p2p-tls*等参数。在配置这些参数当前,验证才会启动,其中p2p-tls-security-group-ca-file为CA核心的认证文件。所以退出的节点都须要从一个CA认证核心中生成无效TLS证书能力退出P2P网络。

理论应用中,在启动第一个出块节点时,可抉择是否启动准入管制。如下图,在节点启动参数中配置了p2p-tls*等参数当前,参数别离为CA核心认证,由CA核心颁发的节点证书和证书的key。在第一个节点启动后,零碎会检测p2p-tls*等参数,主动启动TLS证书校验。

后续节点须要携带雷同CA核心颁发的TLS证书能力连贯到主链进行同步。通过革新EOS的代码,减少SSL库和配置参数解析,中移链实现了公链对准入管制的革新。

05

节点准入管制验证

基于中移链最新版本,进行了多轮测试。

通过TLS证书进行节点准入管制:

1.  批改node1节点chain.js文件,退出ca认证核心和node1签名证书

2.  启动node1节点

3.  启动后节点失常出块

4.  配置node2证书

5.  启动node2节点

6.  node2失常同步块

06

意义

区块链近年来飞速发展,联盟链在合乎我国监管政策要求的前提下,曾经为实体经济所服务。BSN凋谢联盟链 (Open Permissioned Blockchain) 是一种介于公链和联盟链之间的底层框架,具备以下特点:第一凋谢,所有人能够自在应用;第二联盟,对区块链网络节点的退出和退出实现管控。中移链联合CA证书实现节点准入管制,实现了联盟链革新需要,正式退出凋谢联盟链队列。并且绝对于公链,凋谢联盟链中的节点数量更少,只需大量节点参加便可实现共识过程,进一步晋升交易解决效率。

07

参考链接

BSN凋谢联盟链:

https://opb.bsnbase.com/main/...

官网EOSIO根底介绍:

https://developers.eos.io/wel...

官网EOSIO的CLEOS(命令行工具):

https://developers.eos.io/man...

官网EOSIO的Net Plugin(网络模块):

https://developers.eos.io/man...

亚马逊SSL/TLS证书介绍:

https://aws.amazon.com/cn/wha...