<>关于区块链几个证书的理解

FISCO-BCOS

<>1. 说明


在FISCO-BCOS中,证书这个概念有许多的概念,会在环境与节点配置、部署、构链等步骤中反复出现,例如链证书、机构证书、节点证书和客户端证书等。如下对这些概念和关系进行一个适当的理解和解释,撰笔如下。

由于是在该平台使用过程中,自己根据官方的说明以及Wiki等文档、结合自己浅层的理解,也许有理解不到位、或者错误,欢迎指正交流。

<>2.几个证书

证书,是区块链中进行身份验证、识别的重要依据。在FISCO-BCOS平台中,含有多种证书的出现:

*
链证书:一般在环境搭建好后,按照步骤搭完链(手动或按企业级物料包搭链)后会在生成链的目录下保存一个ca.crt,即为链证书,另一个ca.key
是该链的私钥。一条链(私有区块链)只有一个链证书,也只有一份私钥。

*
机构证书
:对一条已存在的区块链而言,会有不同的机构根据不同的合约与机制要求上链(参链);不同的机构可能具有不同的用处或负责不同的功能。也就是说同一条链会存在若干个不同的参与机构的参链。
这其中,每个机构会有一个机构证书如agency.crt,用来完成和对应的链的验证识别。同样,机构证书也有一个唯一的属于自己的私钥如agency.key。

机构证书的生成需要指定链的参与,在生成的机构目录中,也会有链证书ca.crt的副本

*
节点证书:节点可以是任意生成的,不过一般若干个同类的节点附属于某个机构。每个节点的生成后,会在节点目录下生成节点证书,用于完成到机构的验证识别。节点目录下的
node.crt为节点证书,node.key为节点的唯一私钥。
节点的生成需要指定链和机构的参与,在生成的节点目录下,会有链证书ca.crt和机构证书agency.crt的副本

*
sdk证书:在FISCO-BCOS中,机构可以封装为SDK,为客户端提供sdk支持;在机构的相关证书、节点生成后,可以生产出对应机构的sdk证书。
sdk.crt和sdk.key分别为sdk证书和私钥。

*
客户端证书:sdk生成后,会在其文件目录中为客户端提供一个client.keystore
的文件,也即client证书。该证书主要是用于①和节点连接的sdk身份验证;②
和其他sdk的连接验证;③作为sdk交易时的私钥证书。在客户端sdk中会生成一个新的ca.crt是由原链证书ca.crt和当前机构证书agency.crt
组合而成的,主要是验证sdk连接节点的节点证书的合法性。

<>3. 概念参考图



<>参考的wiki

* 证书安装:点这里
<https://github.com/FISCO-BCOS/FISCO-BCOS/tree/master/doc/manual#21-%E7%94%9F%E6%88%90%E9%93%BE%E8%AF%81%E4%B9%A6>
* sdk证书的说明:点这里
<https://github.com/FISCO-BCOS/web3sdk#322-%E7%94%9F%E6%88%90%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%AF%81%E4%B9%A6>