基于区块链技术的网络交易体系研究

2019-06-15 03:31于万钧吴远
现代电子技术 2019年12期
关键词:需求分析区块链技术

于万钧 吴远

摘  要: 由于目前中心化交易平臺的种种弊端,提出采用区块链技术的去中心化的交易平台体系。文中首先分析目前的网络交易方式存在的安全问题,接着深入研究该体系中的核心区块链技术,包括P2P网络技术、非对称加密技术、共识机制及智能合约等技术。建立基于区块链技术的网络交易体系模型,并对该模型进行需求分析、数据结构设计、数据模型设计和可扩展性设计。最后对区块链技术在网络交易中的应用进行总结和展望。

关键词: 网络交易体系; 区块链技术; 需求分析; 数据结构设计; 数据模型设计; 可扩展性设计

中图分类号: TN915?34                        文献标识码: A                        文章编号: 1004?373X(2019)12?0025?04

Abstract: In allusion to the disadvantages of the current centralized trading platform, a decentralized trading platform system based on the block chain technology is proposed. The security problems existing in the current network trading mode are analyzed in this paper. The core block chain technologies in the system are deeply researched, including the P2P network technology, asymmetric encryption technology, consensus mechanism, and smart contract technology. A network trading system model based on the block chain technology is built, for which the demand analysis, data structure design, data model design and extensibility design are conducted. The applications of the block chain technology in network transactions are summarized and prospected in the end.

Keywords: network transaction system; block chain technology; demand analysis; data structure design; data model design; extensibility design

0  引  言

随着互联网的发展,网络购物成为目前的主要购物方式。当前的电商平台是一种中心化的商业模式,这种模式容易带来交易安全方面的问题。现在网购的安全风险来自互联网本身,如黑客入侵、木马病毒、钓鱼欺诈网站的威胁等。随着区块链技术的发展,去中心化应用的研究正以不可抵挡之势展开。

文献[1]提出一种点对点式的电子现金系统,描述了怎样建立一套全新的、去中心化的、无需信任的点对点交易体系的方法。Vitalik在2013年提出以太坊,它是基于区块链技术搭建的一个编程平台,开发人员可以在这个平台建立和发布下一代分布式的应用。以太坊通过一种图灵完备的脚本语言来创建应用[2]。2015年Linux基金会发起了超级账本开源项目,目的是让成员共同合作,共同建设开放平台[3]。

区块链技术是一项整合了密码学、计算机科学和数学等学科的新技术[4]。本文主要针对中心化的交易平台的缺陷提出基于区块链技术构建的去中心化的网络交易体系。深入研究了区块链的技术原理,包括P2P网络技术、非对称加密技术、共识机制、智能合约等关键技术。建立基于区块链技术的网络交易体系模型,并对该模型进行需求分析、数据结构设计、数据模型设计和可扩展性设计。最后对区块链技术在网络交易中的应用进行总结和展望。

1  区块链关键技术

1.1  区块链架构及数据结构

区块链的基础架构分为数据层、网络层、共识层、激励层和应用层。其中:数据层包含区块数据、数字签名、哈希函数和非对称加密算法等;网络层包含P2P网络的传播和验证机制;共识层主要是系统中采用各种共识机制算法;激励层包含虚拟货币的发行和分配机制;应用层封装了各种应用。

区块链在区块的数据结构上分为区块头和区块体两部分,如图1所示。区块头包含上一个区块的哈希值、版本号、随机数、难度目标、Merkle根等。上一个区块的哈希值能保证准确链接到上一个区块,保证了区块链数据库的完整。区块体中存储了区块创建过程中发生的全部交易记录。区块链的交易记录一旦形成就不可篡改,这点保证了数据库的严谨性和交易记录的真实可靠性。

图1  区块链数据结构示意图

1.2  P2P网络技术

区块链的P2P网络技术主要用于节点间传输交易数据,该技术节点之间采用中继转发的模式进行通信[5?6]。接收方从网络中收到的交易信息,不需要直接和发送方进行通信,攻击者很难通过窃听发现网络中传播信息的真实来源与去向。采用P2P网络技术的系统有去中心化、容错健壮、保护隐私、难以实现网络窃听、防止无效数据传播等优点。

1.3  非对称加密技术

区块链系统内采用的是非对称加密算法。在非对称加密算法中,有一对密钥,即公钥和私钥,公钥是公开存储在数据库中,私钥是用户自己保存。非对称加密技术通信时:发送者用接收者的公钥加密,接收者收到密文之后,用自己的私钥解密得到明文。通信过程的函数表达为:[E(K1,C)=M],[D(K2,M)=C]。其中:[E]代表加密算法;[D]代表解密算法;[K1]代表加密密钥;[K2]代表解密密钥;[C]代表明文;[M]代表密文。

1.4  共识机制

1.4.1  PoW共识机制

工作量证明机制(Proof of Work,PoW)的核心思想是通过分布式节点的算力竞争来保证数据的一致性和共识的安全性[7]。在比特币系统中,节点通过自己自身的算力来解决一个求解过程复杂但是结果容易验证的SHA256数学难题,最先得到答案的节点得到区块记账权,而且得到系统自动生成比特币作为奖励。这种工作量证明的共识机制能够确保数据的一致性和安全性,但是会耗费巨大的电力资源和算力资源。

1.4.2  PoS共识机制

权益证明机制(Proof of Stake,PoS)可以解决PoW中资源浪费的问题。从本质上来说,PoS是采用权益证明来代替PoW中基于哈希算力的工作量证明,系统中有最高权益的节点可以获得区块的记账权[8]。权益证明机制缩短了区块的产生时间和交易的确认时间,解决了PoW中浪费算力的问题。

1.4.3  拜占庭共识机制

拜占庭共识机制(PBFT)是能够容忍恶意行为的共识机制。PBFT算法要求在有3f+1个节点的分布式系统中,失效节点数量不超过f [9],该算法分为3个阶段:预准备阶段、准备阶段和确认阶段。在预准备阶段,主节点发送含待验证的所有记录的预准备消息,其他节点在接收到预准备消息后进入准备阶段;在准备阶段,主节点向其他节点发送包含待验证记录的准备消息,节点收到信息后验证它的正确性,并且保存正确记录后发送给其他节点,当某个节点接收到全网2f个不同节点发送的记录而且该记录和预准备阶段接收的记录一样时,这个节点开始向其他节点广播确认消息,系统进入确认阶段;在确认阶段,协议在每个诚实节点都收到2f+1个确认消息时终止。PBFT算法较好地解决了分布式系统中的共识问题,提升了系统效率,比较适用于联盟链。

1.5  智能合约

智能合约可以称为链上代码,区块链可以实时监控智能合约的运行状态,当满足特定的触发条件被激活后执行合约。智能合约的运行机制如图2所示。为了防止合约中含有的漏洞或者恶意代码威胁到区块链节点的安全,智能合约运行在隔离的沙箱环境中[10]。目前主流的区块链平台中的智能合约主要运行在虚拟机或者容器中,实现了对合约使用的资源进行隔离和限制,保证了区块链系统的安全性。

2  基于区块链技术的网络交易体系

2.1  需求分析

1) 一致性需求

构建基于区块链技术的网络交易体系,为了保证网络中各节点数据的一致性需要使用一致性协议,因为PBFT共识机制有很好的容错性,故本体系采用该共识机制。

图2  智能合约的运行机制

2) 软件设计需求

由于当前中心化电商平台的弊端,提出构建基于区块链技术的网络交易体系。该体系能保证每笔交易的可追溯性,同时防止假冒伪劣产品的上链。在功能方面,能够实现用户的注册、登录、开店、发布商品、下单、付款、退货等流程。这些功能的实现需要使用智能合约来实现,智能合约需要运行在隔离的沙箱环境中,保证代码的安全可靠。

3) 可扩展性需求

由于共識算法的影响,当节点数增加,系统的整体处理能力会下降。基于区块链技术的网络交易体系可以采用分片的方式实现系统的可扩展性。分片的方式可以提升每秒交易的数量,加快交易速度,实现本体系的可扩展性需求。

4) 数据库需求

传统的数据库具有原子性、隔离性、持久性、一致性。在区块链数据库中利用分布式账本来保证数据的一致性,事物处理是靠建块来完成,每块包含多个交易,多个交易一起处理。

2.2  体系架构

基于区块链技术的网络交易体系架构图分为三层,分别是底层平台、区块链服务、应用层,如图3所示。其中用户管理包括账号管理、密钥管理、权限管理等,基础服务提供了接口适配、共识机制、网络通信和数据库存储等,智能合约包括合约的注册、执行、触发、风控等。区块链的服务层包含一些接口和服务。应用层包括用户的下单、支付、商品搜索、签订合约等功能。

用户下载基于区块链技术的网络交易客户端,操作完成交易过程步骤如下:

1) 用户下载客户端,注册账号后得到一个账户地址,一对非对称密钥。用户可以发布要卖的商品,上传照片和提交商品价格、性能等信息。

2) 买家在客户端搜索要购买的商品,卖家上传的所有商品按照销量和信誉两种方式显示给买家。

3) 买方首先选择要购买的产品,然后用他的私钥签署订单并将其发送给卖方。

4) 卖方首先使用买方的公钥解密接收到的订单,然后验证订单信息,并用自己的私钥签署并返回给买方。

5) 买家用户收到返回的订单后,用卖家的公钥解密,验证订单确认之后进行支付。买家用自己的私钥对账单签名,发送给卖家。

6) 卖家收到账单之后,先用买家的公钥解密,然后验证钱款是否到账,确认到账之后通过物流接口通知物流配送,并在原账单上加上物流账单,用自己私钥签名后发送给买家。如果一定时间,卖家没有发货,支付账单签名为真实的,卖家会被处罚,限制发布商品或永久取消销售功能。

7) 买家收到货后,对账单再次签名确认,并加入区块链。

图3  基于区块链技术的网络交易体系架构图

2.3  区块链接口设计

设计基于区块链技术的网络交易体系的接口为OBCC(Open Blockchain Connector),包括写入接口和查询接口[11],如图4所示。写入接口定义是Put(Action,Data),其中Action代表用户处理数据的目的,包括创建、更新、插入等,提供用户对数据的操作方式;Data代表用户存储的数据,主要包括用户的账户信息和交易信息。查询接口的定义是Get(Condition),Condition是用户查询的条件,可以根据区块的哈希值或者交易的哈希值查询,也能根据某些关键字查询。当调用区块链功能时,OBCC的客户端代理把请求广播到区块链的其他节点的服务端代理,之后服务端代理调用区块链的功能并进行相关处理。

图4  网络交易体系的区块链接口设计

2.4  数据模型的设计

基于区块链技术的网络交易体系需要支持功能豐富的通用应用,因此可以采用基于账户的模型,可以基于账户快速查到当前余额或状态。基于账户的模型也比较适合构建智能合约。该网络交易体系的账户分为外部账户和合约账户。其中外部账户用来表达账户的余额状态、待发货订单、待收货订单、已完成订单等账户的基本信息;合约账户表达智能合约的状态数据,当账户中的一笔交易发生变化时,合约账户中的状态数据也会改变。

2.5  区块链存储设计

当系统中节点数增加,系统整体处理能力会随着下降[12],所以提高基于区块链技术的网络交易体系的可扩展性,设计合理的存储方案很重要。针对存储问题的设计,Hyperledger Fabric采用多通道的解决方案[13],多通道的方式将区块链网络从单链扩展到多链,多链上同时可以并发处理多笔交易,因此系统整体性能得到提升。在构建基于区块链技术的网络交易体系时采用分片的方式扩展区块链性能。将账户地址根据全网划分为多个相对独立的分片,每个分片独立维护一条子链,用户可以自由选择加入哪个分片的子链来执行自己的交易。分片很好地解决了系统的吞吐量和存储容量的问题,提高了交易速度的同时降低了交易成本。

3  结  语

区块链技术现在已经成了学术界和产业界争相研究的热门课题。区块链技术具有去中心化、不可篡改和可以编程的特性,使得区块链在各行各业都能得到广泛应用[14]。本文主要针对中心化的交易平台的缺陷提出基于区块链技术构建的去中心化的网络交易体系,并从P2P网络技术、非对称加密技术、共识机制、智能合约等核心关键技术出发深入分析了区块链的技术原理和该技术如何保证交易的安全可靠。最后从需求分析、数据结构设计、数据模型设计、可扩展性设计等方面设计了一种去中心化的网络交易体系。未来区块链的发展将与大数据、人工智能等新一代信息技术结合,应用到医疗、公益、教育、娱乐文化等领域,为人们的生活带来更多的便利。

参考文献

[1] NAKAMOTO S. Bitcoin: a peer?to?peer electronic cash system [J/OL]. [2013?03?27]. http://bitcoins.info/bitcoin.pdf.

[2] 何蒲,于戈,张岩峰,等.区块链技术与应用前瞻综述[J].计算机科学,2017,44(4):1?7.

HE Pu, YU Ge, ZHANG Yanfeng, et al. Survey on block chain technology and its application prospect [J]. Computer science, 2017, 44(4): 1?7.

[3] SOUSA J, BESSANI A, VUKOLI? M. A byzantine fault?tolerant ordering service for the hyperledger fabric blockchain platform [C]// Proceedings of the 1st Workshop on Scalable and Resilient Infrastructures for Distributed Ledgers. Las Vegas: ACM, 2017: 1?10.

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

YUAN Yong, WANG Feiyue. Blockchain: the state of the art and future trends [J]. Acta automatica sinica, 2016, 42(4): 481?494.

[5] BAHGA A, MADISETTI V K. Blockchain platform for industrial Internet of Things [J]. Journal of software engineering & applications, 2016, 9(10): 533?546.

[6] ANDROULAKI E, BARGER A, BORTNIKOV V, et al. Hyperledger fabric: a distributed operating system for permissioned blockchains [J/OL]. [2018?01?30]. https://arxiv.org/pdf/1801.10228v1.pdf.

[7] 夏清,张凤军,左春.加密数字货币系统共识机制综述[J].计算机系统应用,2017,26(4):1?8.

XIA Qing, ZHANG Fengjun, ZUO Chun. Review for consensus mechanism for cryptocurrency system [J]. Computer systems & applications, 2017, 26(4): 1?8.

[8] 王晓光.区块链技术共识算法综述[J].信息与电脑,2017(9):72?74.

WANG Xiaoguang. Summary of the consensus algorithm of block chain technology [J]. China computer & communication, 2017(9): 72?74.

[9] 韩璇,刘亚敏.区块链技术中的共识机制研究[J].信息网络安全,2017(9):147?152.

HAN Xuan, LIU Yamin. Research on the consensus mechanisms of blockchain technology [J]. Netinfo security, 2017(9): 147?152.

[10] 朱岩,甘国华,邓迪,等.区块链关键技术中的安全性研究[J].信息安全研究,2016,2(12):1090?1097.

ZHU Yan, GAN Guohua, DENG Di, et al. Security architecture and key technologies of blockchain [J]. Journal of information security research, 2016, 2(12): 1090?1097.

[11] 蔡维德,郁莲,王荣,等.基于区块链的应用系统开发方法研究[J].软件学报,2017,28(6):1474?1487.

CAI Weide, YU Lian, WANG Rong, et al. Blockchain application development techniques [J]. Journal of software, 2017, 28(6): 1474?1487.

[12] 安庆文.基于区块链的去中心化交易关键技术研究及应用[D].上海:东华大学,2017.

AN Qingwen. Research and applications on the key techniques of decentralized transaction based on blockchain [D]. Shanghai: Donghua University, 2017.

[13] 贾大宇,信俊昌,王之琼,等.区块链的存储容量可扩展模型[J].计算机科学与探索,2018,12(4):525?535.

JIA Dayu, XIN Junchang, WANG Zhiqiong, et al. Storage capacity scalable model for block chain [J]. Journal of frontiers of computer science & technology, 2018, 12(4): 525?535.

[14] DINH T T A, LIU R, ZHANG M, et al. Untangling blockchain: a data processing view of blockchain systems [J]. IEEE transactions on knowledge and data engineering, 2018, 30(7): 1366?1385.

猜你喜欢
需求分析区块链技术
利用区块链技术开展国际结算的探讨
区块链技术对我国绿色金融发展的影响分析
基于区块链技术的我国央行数字货币的前路展望
区块链技术在电子档案管理中的适用性和应用展望
区块链技术发展现状及其潜在问题文献综述
浅谈“一带一路”下区块链技术在金融领域的应用
研究生公共英语课程改革模式探索
服装设计智能化趋向及模式研究
大学师生需求发展分析
基于UML技术的高校贫困生管理系统建模分析