APP下载

基于区块链的数字资产交易系统设计与实现

2018-09-26吕坤鲍可进

软件导刊 2018年7期
关键词:智能合约区块链

吕坤 鲍可进

摘要:随着“互联网+”的快速发展,人们拥有的数字资产越来越多,而传统数字资产交易系统存在互不信任、相互独立、无法满足资产安全性及跨机构流通需求等问题。基于区块链的数字资产交易系统,应用区块链技术的多中心化、可信任、可追溯等特性,使联盟企业的数字资产交易系统相互连通,实现数字资产跨机构安全流转。通过智能合约的设计,系统可实现灵活的数字资产交易策略。实测证明该系统能够稳定处理交易,基本满足小联盟的数字资产交易需求。

关键词:区块链;数字资产交易;联盟链;智能合约;分布式系统

DOI:10.11907/rjdk.173109

中图分类号:TP399

文献标识码:A文章编号:1672-7800(2018)007-0209-04

Abstract:Withtherapiddevelopmentof"Internet+",peoplehavemoreandmoredigitalassets.However,thetraditionaldigitalassettradingsystemsdistrustandareindependentwitheachother,theycan'tmeetthedemandofthesecurityofassetsandcross-agencycirculation.Thispaperproposesadigitalassettransactionsystembasedonblockchain.Sincethemulti-center,trustworthinessandtraceablecharacteristicsoftheblockchaintechnology,oursystemconnectsthedigitalassettradingsystemsoftheallianceenterprises,whichguaranteesthesafetyofthecross-agencycirculation.Throughthedesignofsmartcontracts,thesystemcanachieveaflexibledigitalassettradingstrategy.Theexperimentalresultsindicatethatthesystemcandealwiththetransactionstably,whichbasicallymeetstheneedsofdigitalassettradingforsmallalliance.

KeyWords:blockchain;digitalassettransaction;consortiumblockchain;smartcontract;distributedsystem

0引言

传统资产依赖实体凭据,如发放票据、实体卡等,资产流通依赖于面对面的物物交换,防伪认证过程复杂、成本高、效率低、风险大。随着互联网技术的快速应用,资产数字化进程也在不断提速。理论上一切可标准化数字化的实体资产都会逐步成为数字资产,常见的数字资产包括数字积分、虚拟货币、电子优惠券、虚拟游戏道具等。虽然数字资产方便了人们支配,但各类数字资产的发行与管理相对封闭,通常在中心化的系统中完成,没有统一接口,难以实现数字资产的跨机构流通[1]。同时,由于传统的数字资产统一存储于企业数据库中,存在被篡改的风险,导致数字资产流失。

2008年中本聪首次发表《比特币:一种点对点电子现金系统》论文[2],并在2009年发布首个比特币区块链系统,区块链技术以其去中心化、可信任、可追溯等特点而广受关注。由于区块链分布式架构及账本共维护可信任特性,适合构建一个多方协作的分布式系统,各个合作方无需信任即可完成价值传递过程。

基于区块链的多中心化数字资产交易系统,任何被许可的机构或联盟都可在系统中发行与管理数字资产。系统利用区块链共识机制、智能合约、分布式账本及链式数据区块等技术,具有以下优势:①实现不同机构间无需互相信任即可进行数字资产的跨机构交易;②各类交易能够根据智能合约设定的规则自动处理,账本实时同步,实现交易的实时对账结算;③交易数据安全不可篡改且具有可追溯性,防止交易抵赖。

1区块链相关技术

1.1区块链定义

区块链技术是最近几年新兴的技术,由计算机经典技术合成,包括去中心化与非对称数据加密、时间戳、分布式计算、共识算法等技术[3]。区块链技术通过采用加密技术和分布式消息传输协议,提供了可以简化对账流程的共享分布式账本,以去中心化的方式对大量数据进行组织和维护,提高了数据处理效率,在保证数据安全的同时提供信息共享功能。与传统技术相比,区块链技术具有可持续性、可兼容性、共享和互联性等特点。目前主流的区块链框架有Bitcoin[2]、Ethereum[4]、超级账本Fabric[5],它们的特点如表1所示。

区块链一般分为公有链、联盟链及专有链[6],其主要特点如下:

公有链:面向社会公开,任何节点都可自由加入或退出,数据完全共享,依靠共识机制完成节点间协作,一般依赖代币激励机制维护系统安全运行。

联盟链:一般应用于达成联盟的机构间,联盟成员通过该系统完成相互协作,该类区块链系统具备权限控制功能,被许可的联盟成员才能拥有该系统的核心节点,参与账本维护。

专有链:一般应用于机构内部,运行规则可由机构内部设定,信息不公开。但该类系统性能低于现有分布式系统,适用性较差。

1.2共识机制

区块链共识机制是区块链分布式系统协作一致的核心,通过共识机制可使分布式区块链节点间的账本保持一致。它与传统的分布式一致性机制有很多相似之处,如都强调消息序列化,但是传统的分布式一致性算法很少考虑拜占庭容错,只考虑节点宕机、通信故障等。目前区块链共识机制的发展呈现多样化趋势。以比特幣为代表的公有链系统多采用POW(ProofofWork,工作量证明)[2]和POS(ProofofStake,权益证明)[7-8]等共识机制,而以超级账本项目为代表的联盟链系统多采用BFT(ByzantineFaultTolerance,拜占庭容错)[9-11]等容错共识机制。也有学者在传统分布式一致性算法基础上结合实际运行环境变化,设计一种在可信及不可信环境间相互切换的共识机制。

1.3智能合约

智能合约最早由NickSzabo博士[12]提出,它被认为是以数字形式定义的能够自动执行条款的合约。而在区块链技术领域,智能合约指基于预定事件触发、不可篡改、自动执行的计算机程序[13]。智能合约也具有分布式记录和验证、不可篡改和伪造等特性。签署合约的各参与方就合约内容达成共识后,合约可不依赖任何中心机构自动执行。同时,智能合约的可编程特性使各参与方在达成共识的情况下增加任意复杂的条款[3]。联盟链智能合约由授权成员安装并实例化到区块链中,终端用户通过与网络对等体接口的客户端应用程序调用智能合约。

2数字资产交易系统设计

本项目设计的区块链数字资产交易系统,主要实现机构发行并管理数字资产及数字资产跨机构交易流通功能。由于交易仅对互联机构可见,且交易过程不依赖任何代币,因此本项目采用带权限控制的联盟链模型。在联盟链的基础上构建基于区块链的多中心化数字资产交易系统,实现数字资产的跨机构交易。系统业务根据其与数字资产的关联程度分为以下两类:

(1)核心业务:数字资产注册、交易、汇率表创建及更新等资产类业务。

(2)非核心业务:用户会员等级设置、用户留言、系统介绍等非资产类业务。

为防止区块链账本数据增长过快,仅将与联盟各个节点相关的核心业务数据记录到区块链中,通过核心数据即可完成正常的交易过程。由于非核心业务的处理与传统的中心化系统处理过程基本相同,因此本文重点介绍需要区块链系统参与的核心业务处理过程。

2.1系统整体架构

区块链数字资产交易系统分为客户端、交易后台和区块链服务器3个部分。客户端支持C/S和B/S两种架构模式,普通用户通过手机APP完成数字资产交易过程。交易后台主要完成用户请求的处理,提取核心业务到区块链服务器处理,并完成非核心业务处理。区块链服务器主要完成核心业务处理,调用智能合约执行交易,并将交易结果打包成区块,经过共识后写入区块链账本。每个机构部署一台区块链服务器,共同组成一个分布式的区块链服务器网络。系统整体架构如图1所示。

与传统单一的中心化系统架构相比,区块链数字资产交易系统在交易后台采用中心化架构,而在区块链服务器网络中采用分布式架构,它具有以下优势:

(1)系统业务处理分交易后台和区块链服务器系统两层,机构间仅通过区块链服务器网络连通,交易后台出现故障不会对区块链服务器系统造成任何影响,即不会影响其它机构执行交易。

(2)区块链服务器系统采用分布式架构,利用拜占庭容错的共识机制,在容错范围内具有较强的安全性。

(3)核心业务通过区块链智能合约执行,并广播全网共识,有效保证核心交易数据的有效性和透明性,能够实现多机构实时结算。

(4)非核心业务通过各个机构内部处理,在保证区块链数据共享的同时实现不同机构的差异化发展,有效保证机构内重要数据的隐私性。

2.2系统逻辑层次设计

系统逻辑层分为应用层、服务层和区块链层。其中应用层主要是数字资产交易等相关业务,如用户注册、数字资产登记、数字资产交易等。服务层提供应用层与区块链层沟通,主要包含账户中心、智能合约、开放接口等。区块链层主要由区块链数据库、共识机制、区块链安全机制、网络通信模块等组成,形成各机构共同维护的底层平台。系统整体逻辑层次如图2所示。

2.3智能合約设计

本项目智能合约实质上是控制区块链网络中的相关方对数字资产交易按照规则进行编码,能够自动执行逻辑的程序。为防止系统环境与合约执行环境相互影响,本系统使用Docker[14]作为智能合约的执行环境。Docker是一种软件技术层面可移植的轻量容器,它不受底层操作系统限制。任何运行Docker引擎的机器上都可以运行虚拟化解决方案而不受底层系统变化的影响。本系统智能合约执行逻辑如图3所示。

数字资产交易智能合约用来处理系统交易核心业务,分为机构内业务、机构间业务和查询业务。其中机构内业务主要为用户注册、数字资产发放、数字资产交易等。机构间业务主要为资产汇率表建立、更新、跨机构交易等。查询业务主要实现数字资产、汇率表查询等。为保证上述业务只由相应权限的人操作,智能合约执行交易前需要根据交易的数字签名校验交易相关方的身份。数字资产交易智能合约接口如表2所示。

3区块链数字资产交易系统实现

3.1系统业务逻辑

本系统基本业务处理逻辑主要为用户发送交易请求,交易后台响应并转发核心业务请求到区块链服务器。区块链服务器接收并广播交易,在各个区块链节点达成共识后记入区块链账本并向交易后台返回交易结果。交易后台记录交易结果并处理非核心业务,成功后向用户返回最终交易结果,具体业务处理逻辑如图4所示。

3.2数字资产交易系统实现

3.2.1用户注册

用户注册在客户端生成公私钥对,并将公钥进行编码后形成用户ID,向交易后台发送注册请求。机构接收到用户注册信息后进行校验,校验通过后将交易进行签名打包并发送到区块链中。区块链系统调用智能合约注册接口完成用户注册请求,并广播至各区块链节点,达成共识并记帐后用户注册完成。

3.2.2跨机构资产交易

不同机构间数字资产流通依赖资产汇率表的建立,汇率表主要包含机构双方数字资产的汇率及可交易数额。数字资产汇率表由双方共同发起建立,创建后不同机构间即可进行数字资产交易。区块链系统接收到跨机构交易时,先检查交易发起者身份,再查询两种数字资产交易汇率表,查询通过后检查发起方机构可交易余额,如果余额充足则执行交易并返回交易结果。汇率表建立及跨机构数字资产交易流程如图5所示。

3.2.3智能合约实现

智能合约给区块链提供核心交易处理的应用接口,通过调用该接口交易能自动执行,并向区块链系统返回执行结果。区块链系统达成共识后将交易结果写入区块链账本中,其中跨机构交易处理代码结构如下:

if

发起人信息及交易数字签名正确

then

{

获取跨机构交易资产类型

查询汇率表及可交易余额

交易金额根据汇率进行转换

执行交易

}

4系统测试及分析

本系统利用4台相同型号服务器搭建分布式测试环境,每台服务器的基本硬件配置为:Intel四核3.40GHzCPU,16G内存,CentOs7.0操作系统。测试在局域网中进行并采用相同的共识机制,排除网络带宽及共识机制对测试结果的影响。

系统测试的主要指标为并发交易时系统的交易处理率和交易平均延时。交易请求速率指单位时间内系统接收到的待处理交易数量,交易处理率指并发交易过程中系统能成功处理的交易数占总交易数的比率,交易平均延时指系统完成一笔正常交易所需的平均响应时间。通过设置不同的交易请求速率,测试区块链系统的交易平均延时和交易处理率,测试系统总体性能。两个指标的计算公式如下:

交易平均延时=交易总延时/交易笔数

交易处理率=正常处理交易数/总交易笔数

图6为并发交易时交易请求速率与系统的交易处理率及交易平均延时之间的关系。

通过测试数据可以看出,在4个节点的分布式区块链网络中,采用拜占庭容错的共识机制时,随着交易请求速率的提高,交易平均延时逐渐升高,交易处理率前期维持在100%的最高水平。当交易请求速率达到350笔/s时,交易处理率逐步下降。综合考虑上述因素,当系统接收交易速率约为300笔/s时能达到较好效果,此时的系统交易平均延时约为5s。本系统性能与传统系统性能对比参见表3。

注:以上区块链数字资产交易系统数据为运行积分资产时的基本性能,对比积分通兑平台数据来源于学术论文[15]

从表3可以看出,区块链数字资产交易系统能达到传统数字资产交易系统的基本功能及性能要求,同时具有跨机构交易优势。本系统能稳定处理交易,做到跨机构实时对账,基本满足小联盟跨机构数字资产交易需求。

5结语

本文针对中心化数字资产交易系统独立封闭、交易难以跨机构进行等缺点,研究设计了基于联盟链的数字资产交易系统。利用区块链分布式共维护特性,使数字资产可以跨机构交易。对系统进行了性能测试,从测试结果看区块链数字资产交易系统虽然能使互不信任的机构进行跨机构交易,但系统性能与中心化交易系统仍存在较大差距。下一步将充分利用联盟区块链系统的可信任优势,对共识机制、网络传播机制等进行优化,使系统达到更好的交易处理能力。

参考文献:

[1]郑康.A公司消费类数字资产流通平台商业模式与营销策略研究[D].南京:南京大学,2016.

[2]NAKAMOTOS.Bitcoin:apeer-to-peerelectroniccashsystem[J].Consulted,2008(1):2645-2652.

[3]袁勇,王飞跃.区块链技术发展现状与展望[J].自动化学报,2016,42(4):481-494.

[4]BUTERINV.Anext-generationsmartcontractanddecentralizedapplicationplatform[EB/OL].https://github.com/ethereum/wiki/wiki/White-Paper.

[5]CACHINC.ArchitectureoftheHyperledgerblockchainfabric[C].Chicago:WorkshoponDistributedCryptocurrenciesandConsensusLedgers.2016.

[6]工業和信息化部.中国区块链技术和应用发展白皮书[EB/OL].http://www.gongxiangxueshe.com/forum.php?mod=attachment&aid;=NzkwfGJlOGNlNjZifDE0Nzc0NjcxMzJ8Mjg5OXw2OTc3.

[7]KINGS,NADALS.PPCoin:Peer-to-peercrypto-currencywithproof-of-stake[EB/OL].http://peerco.in/assets/paper/peercoin-paper.pdf.

[8]LARIMERD.Delegatedproof-of-stakewhitepaper[EB/OL].http://www.bts.hk/dpos-baipishu.html.

[9]CASTROM,LISKOVB.Practicalbyzantinefaulttoleranceandproactiverecovery[J].AcmTransactionsonComputerSystems,2002,20(4):398-461.

[10]PLATANIAM,OBENSHAIND,TANTILLOT,etal.Onchoosingserver-orclient-sidesolutionsforBFT[J].ACMComputingSurveys,2016,48(4):1-30.

[11]CACHINC,SCHUBERTS,VUKOLIM.Non-determinisminByzantineFault-TolerantReplication[DB].arXivpreprintarXiv:2016,1603(07351):15-23.

[12]SZABON.Formalizingandsecuringrelationshipsonpublicnetworks[J].FirstMonday,1997,2(9):1524-1601.

[13]贵阳市人民政府.贵阳区块链发展与应用[EB/OL].http://www.cbdio.com/image/site2/20161231/3417eb9bbd5919d2122102.pdf.

[14]BUIT.Analysisofdockersecurity[DB].arXivpreprintarXiv,2015,1501(02967):96-99.

[15]赵建东.首旅集团积分通用通兑平台的研究和设计[D].天津:天津大学,2012.

(责任编辑:杜能钢)

猜你喜欢

智能合约区块链
农产品供应链金融信用体系框架设计
区块链技术在互联网保险行业的应用探讨
区块链技术的应用价值分析
“区块链”的苟且、诗和远方
用“区块链”助推中企走出去