第一章 FISCO BCOS的介绍

发布于 2020-05-25 10:11:32

  FISCO BCOS是中国工信部认可两大开源区块链底层之一,它建立了完善的开源社区,开发者参与度高,并且产品体系的说明文档齐全,如果想了解这套底层的基础部分,可以参考官方文档,如果想通过视频学习,可以参考笔者的公开课视频,目前该系列视频已经在FISCO BCOS 官方公众号上连载,详细请参考附录。

  官方出品的区块部署教程是在单机上模拟多机构部署,对于很多开发者而言,学习FISCOBCOS的目的是想在真实的生产环境下,搭建好一套区块链底层,进行业务开发,单机的模拟部署相对于真实的多服务器部署模式还存在细节差异,对于初学者而言,可能出现概念不清晰、细节理解错误,导致部署配置不成功等问题,所以我们一开始的切入点,就是完全根据真实环境进行部署搭建,手把手教学,实现FiSCO BCOS的部署学习。

  接下来我们会搭建一条由四个节点组成的联盟链,这条链初始由A、B两个机构发起,机构A、机构B各自分别拥有两个节点。在未来,这个联盟链可能引进机构C、机构D等其他不同组织进行扩充。

  我们使用官方提供的企业级部署工具 FISCO BCOS generator,配合腾讯云购买的多台服务器来进行部署搭建,再建立链之前,我们认定机构A作为主要牵头机构,负责群组初始化,以及创世区块生成的准备工作。

  部署过程中,我们使用官方默认的CA证书(x509协议),采用三级的证书结构,自上而下分别为链证书、机构证书、节点证书。但在真实生产环境中很多联盟链采用指定CA公司提供签发的证书,来提高链的安全性。

  搭建FISCO BCOS区块链底层有很多方式,一种是去云服务商付费开通区块链服务,选择对应的区块链底层进行搭建。这种方式无需人工操作部署,快速便捷,并且拥有配套的CA服务,但费用较高;另一种是由开发团队进行手动部署,这种过程较为繁琐,但成本相对较低,并且团队可以正对底层进行定制化改造,建链者按需选择组合。

(一)基本介绍

  FISCO BCOS generator为企业用户提供了部署、管理和监控多机构多群组联盟链的便捷工具。

  • 本工具降低了机构间生成与维护区块链的复杂度,提供了多种常用的部署方式。
  • 本工具考虑了机构间节点安全性需求,所有机构间仅需要共享节点的证书,同时对应节点的私钥由各机构自己维护,不需要向机构外节点透露。
  • 本工具考虑了机构间节点的对等性需求,多机构间可以通过交换数字证书对等安全地部署自己的节点。

5b35c4bd6aa602b2021e717e0e1d8bc0.png

             区块链分层结构图

(二)设计背景

  在联盟链中,多个对等机构是不完全信任的。联盟链的节点之间需要使用数字证书互相进行身份认证。证书是机构对外身份的凭证,生成证书的过程中需要使用机构本身的公钥和私钥对。私钥即为机构在互联网上的身份信息,是私密的,不可对外告诉其他人的。节点在启动、运行过程中,需要使用私钥对数据包进行签名,从而完成身份认证过程。假设私钥泄露,则任何人都可以伪装成对应的机构,在不经过该机构授权行使该机构的权利。即在联盟链部署、运行过程中,机构节点的私钥是不应该告诉任何人,应当只能由本机构生成和保管。

  在FISCO BCOS的群组初始化过程中,需要多个节点协商生成群组的创世区块。创世区块在同一个群组中是唯一的,其中包含了初始节点身份信息的区块。这些身份信息需要通过交换数字证书的方式来构建。

  现有的联盟链运维管理工具在初始化时都没有考虑联盟链间多个企业地位对等安全的诉求。联盟链在初始化时,需要协商创世节点中包含的节点信息。因此谁来生成这些信息就显得十分重要。现有做法为某一机构生成自己的节点信息,启动区块链,再加入其它机构的节点;或是由权威第三方机构直接生成所有机构内的节点信息,并将节点配置文件夹发送给各机构。

  另一方面,FISCO BCOS 2.0引入了隐私性和可扩展性更强的多群组架构。在群组架构下,群组间数据、交易相互隔离,每个群组运行独立的共识算法,可满足区块链场景中的隐私保护需求。

  在上述模式中,总有一个机构会优先加入到联盟链之中;并且在这种模式中,总有一个机构会获得所有节点的私钥。

  如何保证企业间如何对等、安全、隐私地新建群组。新建群组之后如何保证节点可靠,有效的运行;群组账本的隐私性和安全性,以及企业建立群组、使用群组操作的隐私性都需要一个有效的方式来保证。

  不同机构间通过协商节点证书、IP、端口号等数据的模式,填写配置项,每个机构都可以在本地生成不含节点私钥的节点配置文件夹,节点的私钥可以不出内网,即使节点配置文件丢失,防止恶意攻击者伪装节点的同时,不会泄露链上任何信息。使用这种方式,在保证节点可用的同时,保护节点的安全性。

  用户通过协商生成创世区块,生成节点配置文件夹后,启动节点,节点会根据用户配置信息进行多群组组网。

0 条评论

发布
问题