主页 > imtoken钱包地址转账查询 > 基于Fabric/四帅帅的产业联盟链技术研究

基于Fabric/四帅帅的产业联盟链技术研究

imtoken钱包地址转账查询 2023-04-22 06:04:38

本文选自《交易技术前沿》(2017年12月)第29期

区块链被誉为第二代互联网技术,它使我们从信息互联网时代进入价值互联网时代。 价值可以像信息一样在网络节点之间自由流动,无需信任机构的背书。 为保证价值流转的正常运行,证券行业催生了登记机构、托管机构、交易机构、中央对手方等信用机构,导致交易中间环节多、交易周期长、和高风险。 才能解决这些问题。

一、区块链简介

近年来,比特币的底层实现技术——区块链受到了全球各大证券交易所的关注,各大交易所纷纷投入人力、物力进行区块链项目的研发。 纳斯达克通过区块链项目Linq提供私募股权注册服务,SEC批准Overstock通过区块链技术发行股票,全球最大的42家银行推出名为R3 DEV1的区块链项目。 上交所也积极加入区块链技术在证券行业应用的探索队伍。

区块链是以去中心化的方式集体维护的不可篡改的共识账本。 区块由选出的记账节点产生,所有节点都可以验证区块内交易的准确性,将记账权与验证权分离并结合非对称加密算法,保证交易信息不可篡改和不可否认。共识机制保证了交易的一致性所有节点的账本数据,每个区块都指向前一个区块,保证了区块内交易的可追溯性。 区块链的特性保证了价值的转移不需要信托机构的参与。 该技术为高度依赖信任的证券交易提供了无限的想象空间。

2. 区块链性能与技术瓶颈分析

今年,某科技公司与国内某区块链初创公司展开高性能联盟链合作,探索高性能联盟链。 比特币区块链只能达到每秒7笔交易的吞吐量,成本高。 原因如下。 第一,比特币区块链采用公链的设计模式,任何节点都可以加入(无恶意节点过滤机制),节点数量庞大,在p2p网络上达成共识的延迟比较大; 第二,比特币采用工作量证明机制。 为了提供工作量证明,矿工需要做很多无用功,浪费资源,效率低下; 第三,比特币区块链中的区块大小为1M。 虽然争议中批准了近期的扩容计划,但只有2M,容量较小,导致每个区块保存的交易记录有限。 每十分钟出块的设计使得交易确认延迟较大,导致比特币性能较低。 针对比特币区块链存在的问题,有以下解决方案来提升性能。 第一,采用联盟链的设计模式,控制加入节点的质量,防止恶意节点加入; 二是采用其他共识机制,如权益证明机制(POS)、DPOS或PBFT共识机制等; 第三,可以根据网络带宽限制适当增加块大小,从而提高吞吐量。 根据联合项目的研究总结可以看出,目前联盟链的性能限制主要是数字签名技术和网络带宽。 需要很长时间才能完成,尤其是使用国密算法时,延迟会更大,大大降低了区块链的性能。 针对数字签名带来的性能下降,可以将多个交易打包签名,减少签名验证次数,从而提高性能,相应的研究还在进行中。

3. 智能合约

3.1 智能合约介绍

智能合约,又称智能合约,由多产的跨学科法律学者尼克萨博提出。 他对智能合约的定义是,智能合约是以数字形式定义的一组承诺,包括合约参与方可以执行这些承诺的协议。 承诺是合同双方同意的(通常是相互的)权利和义务,它定义了合同的性质和目的。 从程序员的角度来看,智能合约是一段可以用任何语言编写,运行在区块链系统上比特币区块链的经济机制包括,在满足一定条件时自动执行的代码。

3.2 智能合约的特点

与传统程序相比,智能合约程序具有以下特点。 首先,智能合约处理的数据是透明的,因为区块链上的所有数据都是公开透明的,所有节点都保存着完整的交易记录;其次,智能合约执行的痕迹不可篡改、伪造、不可否认. 该特性依赖于区块链采用的密码学算法,确保运行智能合约的节点不必担心其他节点恶意修改代码和数据; ,永久运行,支撑区块链网络的节点往往数以万计,部分节点故障不会导致智能合约停止,只要有一个节点在运行,智能合约就可以继续运行,从而保证智能合约可以像纸质合约一样始终有效; 第四,由于区块链对于每笔交易都会与全网所有节点验证交易的准确性,所以智能合约也是所有节点同时运行的相同代码并对结果进行验证,只有当大部分节点的输出结果是一致的,输出将作为官方数据写入区块链,因此恶意修改部分节点不会影响整个网络的最终运行结果,有效实现数据安全。 一致性。

4. 各种区块链开源技术对比

sitebishijie.com 比特币区块链_比特币区块链的经济机制包括_区块链与比特币

目前比较流行的开源区块链实现主要有比特币区块链、以太坊、fabric、CITA、BCOS、小蚁区块链等。 以太坊由以太坊基金会领导和开发。 Fabric 最初由 IBM 开发,后来贡献给了 Linux 基金会。 CITA是秘猿科技研发的企业级区块链产品。 其特点是首次采用微服务架构。 近期发布了开源版本,BCOS是万向区块链、微众银行、矩阵元科技联合开发的区块链实现技术,现已开源。 下面将对比较流行的区块链开源技术比特币blockchain、以太坊、hyperledger2做详细的对比分析。

表 1 区块链开源框架对比分析

比特币区块链掀起了区块链研究的热潮。 比特币区块链是专门为货币发行而设计的。 它采用了挖掘和非图灵完备脚本语言等特性。 这种设计很难适用于复杂的业务场景。 以太坊参考了比特币区块链的挖矿机制,但采用了幽灵协议来提高效率,新的共识算法也在开发中。 Fabric定位是一个企业级的区块链解决方案,适用于定制各种特定的商业联盟链,包括金融领域的应用场景,而Fabric是面向智能合约的,可以利用智能合约开发复杂的业务流程,并具有扩展性强。

5.面料应用产业联盟链设计流程

5.1 项目架构设计

Fabric是区块链3的底层实现,也是智能合约的运行环境。 Fabric账本中的数据必须通过链码(chaincode)进行修改; fabric-sdk-node是一个封装好的nodeSDK,可以调用部署在fabric上的智能合约实现设定的业务逻辑。 这里主要有四个js文件,一个是install.js,用于在fabric上安装智能合约,一个是instantiate.js,用于实例化智能合约,一个invoke.js用于调用智能合约中的方法,一个是query.js,查询链上数据。 这四个js文件是按照nodejs语法设计的,通过exports导出; 为了达到更好的用户体验,我们设计了单独的应用服务器。 它一方面通过fabric-node-sdk调用智能合约比特币区块链的经济机制包括,另一方面将运行结果反馈给前端接口。 前端界面采用流行的设计框架,包括jQuery.js、booststrap等,架构图设计如图1所示。

比特币区块链的经济机制包括_区块链与比特币_sitebishijie.com 比特币区块链

图1 项目架构设计图

5.2 fabric运行时架构

Fabric runtime架构主要由以下模块4组成,membership是fabric-ca节点,用于提供用户身份管理服务,peer节点提供endorser和committer服务,更新Ledger books,存储和运行合约代码,以及o-service 代表排序节点 提供排序服务。

sitebishijie.com 比特币区块链_区块链与比特币_比特币区块链的经济机制包括

比特币区块链的经济机制包括_区块链与比特币_sitebishijie.com 比特币区块链

图2 fabric运行时流程图

5.3 fabric网络服务器设置

产业联盟链的设计思路是多个机构组成联盟链,每个机构运行自己的节点。 Fabric实现了产业联盟链,由提供共识服务的订单节点、代表机构或组织的peer节点和提供鉴权服务的fabric-ca节点组成。 下面详细介绍各个节点的配置信息。

Order节点的配置信息如图3所示,Orderer节点可以组成一个集群,在Fabric网络中提供排序服务。 主要配置容器内的容器名称、镜像名称、环境变量配置信息。

区块链与比特币_比特币区块链的经济机制包括_sitebishijie.com 比特币区块链

图3 server order节点配置信息

Peer节点配置如图4所示,在本次POC中,我们配置了5个节点,代表5家机构,包括央行节点、交易所节点和经纪节点,共有3个经纪节点。 其中一个对等节点的配置详情如图4所示,其他对等节点的配置信息类似。

区块链与比特币_比特币区块链的经济机制包括_sitebishijie.com 比特币区块链

图4 服务器对端节点配置信息

ca节点配置如下,ca节点提供节点认证服务。

图5 服务器ca节点配置信息

区块链与比特币_比特币区块链的经济机制包括_sitebishijie.com 比特币区块链

5.4 测试网络客户端配置

命令节点配置信息,设置端口号、服务器主机名、tls证书位置信息。

图7 客户端下单节点配置信息

Peer节点配置信息,配置五个机构信息,为每个机构配置admin、strder和btrader角色,admin代表管理员账户,strder代表自营账户,btrader代表经纪账户,配置详情见图8,这里需要注意的是,配置的端口号要和服务器端配置的端口号一一对应。 strder和btrader用户的key需要通过fabric-ca分别注册。

sitebishijie.com 比特币区块链_比特币区块链的经济机制包括_区块链与比特币

图8 客户端对端节点配置信息

5.5 智能合约开发

在fabric中,智能合约程序也称为链码(chaincode),可以用Nodejs、java、go语言开发。 fabric上的链码分为系统链码和用户链码。 系统链码用于实现系统级功能,包括系统配置、用户链码部署和升级、用户交易签名和验证策略等。用户链码用于实现用户应用功能,即具体的业务逻辑。 开发人员将链代码部署到结构网络,最终用户通过与网络节点交互的客户端应用程序调用链代码。 chaincode被编译成一个独立的应用程序,运行在一个隔离的Docker容器中,部署chaincode时自动生成合约的Docker镜像。

Chaincode必须实现两个接口,一个是init(stub shim.ChaincodeStubInterface),用于合约初始化和升级初始化动作,另一个是Invoke(stub shim.ChaincodeStubInterface),是peer调用chaincode的入口函数。 这两个接口的实现代码如下图所示。 ChaincodeStub包含丰富的账本操作,常用的getCallerCertificate()用于获取调用者证书信息,可用于判断调用者是否为合法调用者,getState(k)用于获取k对应的值,即当前世界状态(wordstate),putState(k,v)用于更新k对应的值,该操作会修改链上数据,invokeChaincode(…)用于调用其他合约代码,使用该方法需要注意,调用方和被调用方必须属于同一通道的不同链码,即chaincodeId不能相同。 操作rangeQueryState(k1,k2)用于范围查询,获取k1和k2之间的所有值。 getTxId()用于获取交易的Id(transactionId)等。在chaincode开发过程中,常用的操作可以概括为一个基类,两个查询,一个写入。 这两个查询指的是 getState(k) 和 rangeQueryState(k1,k2)。 前者的查询操作是根据k获取value,后者的查询操作是指获取k1到k2的所有kv对象,返回一个Map对象,其中k1,k2是按字典顺序排序的。 write指的是putState(k,v),写入数据。 但是,这个操作不会立即落入账本。 直到第二次交易提交共识达成后,数据才会落地。

比特币区块链的经济机制包括_区块链与比特币_sitebishijie.com 比特币区块链

图9 Init接口实现代码

区块链与比特币_比特币区块链的经济机制包括_sitebishijie.com 比特币区块链

sitebishijie.com 比特币区块链_区块链与比特币_比特币区块链的经济机制包括

图10 Invoke接口实现代码

链码开发经验总结。 首先,使用json存储业务实体,并在key上建立索引。 Fabric 分类帐是一个键值数据库。 Couchdb 只是额外的备份数据,方便重新查询操作。 值采用 json 格式,以便快速检索数据。 解析。 Fabric的kv库使用leveldb,插入的key值使用字典序,所以索引字段值必须有固定长度; 其次,在fabric上,通过petState写入的数据不会立即更新账本数据,需要等到第一阶段交易中所有peer节点达成共识后数据才会落地,所以无法立即获取先前写入的数据; 第三,链码中的方法不需要加锁,peer节点已经实现了消息队列,发送给链码的消息是顺序执行的,不是并行的; 第四,合约中类型结构中的分段首字母必须大写,否则分段无法以json格式5保存到账本中,如图11所示。

区块链与比特币_sitebishijie.com 比特币区块链_比特币区块链的经济机制包括

图 11 类型字段设计

6、区块链技术实现证券交易系统的特点

一、实现DVP结算

目前市场上的债券交易结算方式包括即期支付债券、见票即付、纯债券转让等,均无法实现资金与债券的同时交割,这使得两者双方处于不平等地位,很可能造成汇款转账速度慢和资金清算不及时等问题。 智能合约使 DVP 成为可能。 债券数字化后上链,无需托管机构参与。 债券上链的过程就是目前债券注册的过程。 区块链上的交易直接完成不同账户之间资金和优惠券的转移,实现交易的结算,从而实现优惠券支付6。

二、7*24不间断运行

区块链系统运行在所有节点上,有数万个节点。 任何一个或多个节点的关闭或故障不会影响区块链系统的正常运行。 所有节点都保存完整的交易记录,共识机制保证了各节点账本数据的一致性,从而实现业务的连续性。

三、不需要中央对手方

sitebishijie.com 比特币区块链_区块链与比特币_比特币区块链的经济机制包括

中央对手方作为一种清算机制,通过干预清算机构自身已完成的交易,成为卖方的买方和买方的卖方,确保金融市场系统性风险的重要防范手段。已达成交易的正常履行。 在区块链系统上,数字货币和金融资产的锚定使得交易过程成为资产转移的过程,因此不需要中央对手方来保证交易的正常进行。 对于生命周期较长的衍生品交易,情况会略有不同。 衍生品本质上是金融合约,在其生命周期中可能涉及多次现金流交换。 可通过智能合约锁定相关资产,确保交易安全。 交易对方能够执行约定的权利和义务。

总结

从比特币区块链来看,虽然没有机构为比特币交易背书,但是安全运行了这么多年。 在没有第三方权威机构担保的情况下,比特币区块链可以注册、存储和转移数字资产。 这种创新是前所未有的。

区块链技术可以很好地解决证券交易中的信任问题,可以降低建立证券交易系统信任的巨大成本。 虽然目前世界上还没有颠覆性的区块链应用解决方案,但交易所应该积极投入区块链技术的研究,寻找适合的业务场景,推动区块链应用。

参考

一、巴氏资料

2.

3.

4.

5.

6、区块链技术对国内证券行业的影响分析,牛庄

------------------------上海证券交易所为证券公司、基金管理公司等市场参与者和相关行业组织提供交易技术支持和服务服务包括日常交易技术支持、技术交流讲座、市场调查反馈、证券信息技术知识库、测试等服务。

结束

学fabric的时候看到这篇文章,觉得写的不错。 请转载。