APP下载

区块链+电子商务虚拟实验系统的建设

2018-01-04张宝明魏程益

计算机时代 2018年11期
关键词:智能合约区块链电子商务

张宝明 魏程益

摘 要: 传统电子商务存在假货、刷单、物流、隐私保护等痛点,这些痛点与信任缺失有关。区块链作为一种分布式账本,具有去中心化、透明,很难篡改的特点;将其引入电子商务,能创造信任,解决痛点。为此,分析了区块链+电子商务虚拟实验系统的功能组成、拓扑结构,提出了开发维护的方法及建设中需要注意的问题,实现了区块链在电子商务中的应用。这为今后电子商务及其仿真实验的建设提供了新思路和新方法。

关键词: 区块链; 电子商务; 信任机制; 链上代码; 智能合约

中图分类号:TP311 文献标志码:A 文章编号:1006-8228(2018)11-41-04

Abstract: Traditional e-commerce has some pain points such as fake goods, false transaction, logistics and privacy protection. These pain points are related to the lack of trust. As a distributed ledger, blockchain has the characteristics of decentralization, transparency and difficult tampering, and can create trust and solve the pain point by introducing it into e-commerce. Therefore, the functional composition and topology of the blockchain + e-commerce virtual experiment system are analyzed, the methods of development and maintenance and the problems to be paid attention to in the construction are put forward, and the application of blockchain in electronic commerce is realized. This provides new ideas and new methods for the construction of electronic commerce and its simulation experiment in the future.

Key words: blockchain; electronic commerce; trust mechanism; chain code; smart contract

0 引言

区块链是分布式账本,能存储不同的交易、支付与转账信息等。由于采用了分布式存储、签名加密、区块链接等技术,因而区块链具有去中心化、透明,很难篡改等特点。这不仅可以用来解决交易过程中的重复支付和双花问题,还能在更高的维度上解决交易中的信任缺失问题,从而达到降低交易成本、提高交易效率的目的。因此,利用区块链技术来改造传统的应用系统成为了许多人的共识[1-2]。

基于人才培养和创新实验教学模式的需要,在已有《国家级应用经济虚拟仿真实验》建设成果的基础上,对区块链+电子商务虚拟实验系统进行了分析。本文内容和实现,可为今后电子商务及其仿真实验的建设,提供新思路和新方法。

1 系统建设的必要性

在传统的电子商务中,由于对相关主体缺少必要的信用制约和限制,致使假货、刷单、退换货和隐私保护等问题一直存在。借助区块链,利用区块链去中心化的特点,将交易信息和信用信息完整的记录到区块链中,使区块链变成一台创造信任的机器,可以有效地解决这个问题[3]。

具体来说,首先,针对假货问题,可以将电子商务供应链上所有环节的商品信息,如照片、视频、地理位置和时间等数据上传到区块链,这样商家就无法作假和修改,客户也无需怀疑或质疑。在交易过程中,若再将客户的浏览、购买、评价等行为,也上传到区块链,这样可控制刷单行为。其次,针对退换货问题及其给物流所带来的“牛鞭效应”压力,可以将物流、库存数据上传到区块链,供商家和物流企业随时查询、追踪和调度,这样就能减轻物流压力,提高工作效率,减少运营成本。再次,针对隐私保护问题,可利用区块链的匿名性,将不需要公布的客户信息进行匿名化处理,这样也能提升用户体验,减少垃圾广告和杀生、杀熟的威胁。

总之,区块链+电子商务,不仅可以在假货刷单、退货换货、追踪货物、隐私保护、成本控制等方面更为有效,更为自动化,而且可以在客户体验、信任水平上更为友好,更为可信。

2 系统的功能组成

整个区块链+电子商务系统的功能如图1所示(这里以IBM公司的Hyperledger fabric区块链服务为基础)[1,4-6]。

2.1 电子商务功能

电子商务过程中涉及商家、客户、物流、第三方支付等相关角色,因而区块链+电子商务系统的基本功能就应包括注册服务、授权管理、商品管理、订单管理、支付管理、物流管理和信任管理等内容。在这些功能中,嵌入区块链功能,适时利用区块链来记录交易信息和信用信息,不仅可以提高系统的安全性和可信性,而且还能达到隐私保护和商品信息溯源的目的。

2.2 区块链功能

区块链功能主要包括角色管理、区块链管理、链上代码管理这三个主要功能[7-9]。

⑴ 角色管理。负责管理用户标识、隐私、以及网络的保密性和可审计性。

⑵ 区块链管理。负责将交易(Transaction)规约为合约流程,每个合约流程可以通过调用若干个不同的合约服务,结合非對称加密/解密和信息摘要等技术,实现去中心化的可信的分布式账本功能。具体包括三部分。一是记账功能,即将相关的交易信息,如商品信息、订单信息、支付信息、物流信息、评价信息等,以“一物一码”或“一批次一码”的形式打包,包装成交易合约,以明文或者密文的方式广播到区块链系统中,写入区块链,固化在区块链的账本中。这样,就能构建一个去中心化、防篡改、可追溯的大数据存储系统。二是查账功能,主要包括交易主体的身份查询、产品溯源与交易情况的跟踪、评价信息的查询等。三是规则管理。又称政策管理,即依照现有的法律、行政法规,制定并发布包括用户管理、业务品种、链上资产管理、智能合约、账本记录、架构管理、开发管理、运营管理、信息安全、风险管理、从业资格等相关的规则、规章,以便对区块链平台及其活动进行监管。

⑷ 链上代码管理。链上代码(chaincode)又称智能合约(smart contract),其任务主要是负责实现对链上代码的全生命周期的管理。

2.3 相关服务

分为三种类型的服务,分别为成员服务、区块链服务、链上代码服务。

⑴ 成员服务。在无权限的区块链中,参与者不需要授权就可进行交易;而在Hyperledger Fabric许可链系统中,参与者需要预先注册,获得一个身份凭据才能进入区块链系统,并通过交易证书管理者(TCA)进一步获得假名凭据(即交易证书),才能进行交易、保存、归类和审计。

⑵ 区块链服务。区块链服务通过使用基于HTTP2的P2P协议来管理分布式账簿,核心功能包括安全控制、共识服务、链上服务及其管理、治理服务等。

安全控制主要是进行隐私保护和权限控制。对于公有链,由于参与交易的各方未受到安全约束,出于安全考虑,往往需要一个与交易无关的第三方来对交易进行验证,为此需要将交易信息和交易者的身份信息隔离开来,以匿名的方式来保护交易者的隐私。而对于像Fabric这样的许可链,由于各参与方预先受到安全控制,因而防范网络攻击的需求没有那么高,在共识机制上只需要在技术层面上确保一致和完备,对交易的验证可直接由交易相关方自己进行,其他无关方不可能看到交易内容[10]。

共识服务是区块链建立信任的基石。不同类型的区块链出于不同的考虑会在部署中可以使用和配置不同的共识算法或其组合算法,如PBFT,Raft,PoW,PoS等。共识的内容包括账本的规范化、交易执行结果的确定性、交易的非双花性和交易的顺序完备性。

链上服务主要包括合约流程服务、合约服务、公共技术服务等,对其管理需要在遵循区块链治理体制和治理流程规则的前提下,完成诸如合约流程(或服务)的建立、版本升级、排队、执行、挂起和退出等的管理。

治理服务的目的,是为了让区块链能平稳安全的运行,并保证不同角色的参与者都能积极参与和维护区块链的生产、管理和治理。基本方法是通过激励、惩罚、征税等手段,必要时还可以诉诸于现实世界中的法律手段。

⑶ 链上代码服务。主要包括链上代码的编写、合规性检查,链上代码的安装、配发、执行、执行结果查询,智能合约模板的定制、智能合约的一致性检查等等[11-12]。

3 系统的拓扑结构

与传统的电子商务系统相比,区块链+电子商务系统的拓扑结构,分为前端和后端。其中,前端是电子商务系統与用户交互的界面,由浏览器及相关页面来实现,涉及HTML、Javascript和CSS等相关语言;后端是描述商务处理过程、商务业务规则和区块链服务内容的功能部件,由MCBV(Model-Control-Blockchain-

View)框架部件来实现,分为三个部分:一是代理服务,负责接收前端的请求,并进行路由解析;二是电子商务服务,负责商务处理;三是区块链服务,负责区块链管理、链上代码管理,如图2所示。

3.1 电子商务服务系统

后端的电子商务服务系统,开发工具主要为:Eclipse、Spring MVC、Spring、Hibernate。其中,Eclipse是一个可视化的Java开发平台,而Spring MVC、Spring、Hibernate是三个框架软件,对应电子商务应用的三个功能层次,即页面表示层、业务逻辑层和数据访问层。

3.2 区块链服务系统

区块链服务软件采用Hyperledger Fabric。它是一种开源的许可链系统,采用了松耦合的设计,不仅能将共识机制、身份验证等组件模块化,还能将智能合约放在docker容器中运行;此外,它还采用了成员服务、多验证节点(validating peer)和非验证节点等安全机制,来实现Client客户机、Peer节点机、Orderer排序器、Channel通道等相关功能。

4 系统的开发和运行

在系统开发和运行过程中,需要相关人员对合约流程、合约服务、合约代码、技术与规则等相关客体进行开发和维护。

首先,需要架构人员、业务人员和法律人员参与完成交易合约及其规约的制定,并设计出完整的合约流程、合约服务及其规格说明书;然后,交由技术人员开发相应的合约代码。在此过程中,还需其他人员参与提炼出一些通用的服务,如法律条款检查服务、通用技术服务等。

其次,在开发过程中,需要开发人员利用已有的通用服务软件和不同的语言,来开发合约服务逻辑,以保证合约服务语义层面的一致性和合约的分布性。

再次,在测试过程中,需要每一个参与主体,特别是验证节点,参与到区块链平台的测试和维护中,完成诸如运行节点服务的容器化集群、动态扩展能力的提供、多语言多VM实现节点的安装、多节点并行运行、并行验证等相关任务。

就开发过程而言,具体到本系统,主要包括:构建网络、安装VirtualBox虚拟机、安装Docker容器、部署Hyperledger fabric环境、启动Hyperledger fabric区块链服务、开发应用程序。

整个Hyperledger fabric区块链服务系统的启动过程示例如下:

⑴ 产生证书密钥和四个artifacts部件

../bin/cryptogen generate --config=./crypto-config.yaml

../bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock

./channel-artifacts/genesis.block

export CHANNEL_NAME=mychannel &&

../bin/configtxgen -profile

TwoOrgsChannel -outputCreateChannelTx

./channel-artifacts/channel.tx -channelID $CHANNEL_NAME

../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate

./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP

../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate

./channel-artifacts/Org2MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP

⑵ 启动Docker容器与网络服务

CHANNEL_NAME=mychannel TIMEOUT=10000

DELAY=3 LANG=golang docker-compose -f

docker-compose-cli.yaml up -d

⑶ 建立并加入通道

docker exec -it cli bash

peer channel join -b mychannel.block

⑷ 更新通道

peer channel update -o orderer.example.com:7050 -c

$CHANNEL_NAME -f ./channel-artifacts/

Org2MSPanchors.tx --tls --cafile /opt/gopath/src/github

.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

5 系统建设中需要注意的问题

由于区块链技术本身尚不成熟,相关的规则、标准和应用还处于开发和测试过程中,因而在区块链+电子商务系统的建设过程中,难免会碰到一些障碍。

首先,可选的区块链软件不多,缺乏统一标准。目前区块链软件屈指可数,开源的很少,常见的有:以太坊联盟的Ethereum、微软的Bletchley,IBM的Hyperledger Fabric,CoinprismRChain的Openchain、深圳前海微众银行的BCOS等。这些软件大部功能还不完善,产品兼容性和互通性也较差,在标准化语言、数据交换、客户身份识别、通信机制、信任实现等方面还缺乏共识,很难完全融入电子商务体系。其次,低效率高能耗。区块链的去中心化特征,意味着所有节点都需要参与计算和存储,这需花费很多时间,非常耗费电力与算力。因而在电子商务系统中引入区块链,会降低交易处理的效率,提高维护的成本。再次,存在安全与监管问题。

因此,在区块链+电子商务系统建设的过程中,只能遵循循序渐进的原则,先易后难,先开发后完善,并权衡安全性、易开发性、网络算力等因素,统筹进行。

6 结束语

建立在区块链基础上的电子商务,即区块链+电子商务,不仅能够创造更多的客户信任,而且还能提升客户体验和成本控制的优势。为此,文中重点对其功能组成、拓扑结构、开发和维护方法等内容进行了分析,最终实现了区块链在电子商务中的应用。所有这些,不仅为今后电子商务及其仿真实验的建设提供了新思路和新方法,而且为今后国家制造业和服务业的转型升级带来了新抓手。高校,尤其是笔者所在的国家级应用经济虚拟实验室,理应在这方面走在前列。不过,基于区块链技术及其应用的不成熟,今后还需继续跟踪与研究。

参考文献(References):

[1] Hyperledger fabric. A Blockchain Platform for the Enterprise[EB/OL],http://hyperledger-fabric.readthedocs.io,2017-03-07

[2] 庹小忠.区块链在身份认证中的应用[J].科技经济导刊,2017.2(3):26-27

[3] 朱兴雄,何清素,郭善琪.区块链技术在供应链金融中的应用[J].中国流通经济,2018.32(3):111-119

[4] 浦东平,樊重俊,梁贺君.基于区块链视角的电商系统体系构建及应用[J].中国流通经济,2018.32(3):44-51

[5] 张衍斌.区块鏈引领电子商务新变革[J].当代经济管理,2017.39(10):14-22

[6] 韩秋明,王革.区块链技术国外研究述评[J].科技进步与对策,2018.35(2):154-160

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

[8] 涂奔,张李义,陈晶.一种基于私有区块链的信息保护预测模型研究[J].情报理论与实践,2017.31(10):106-111

[9] MIT Media Lab. A W3C Workshop on Distributed Ledgers on the Web[EB/OL]. https://www.w3.org/2016/04/blockchain-workshop/,2016-06-29

[10] 刘海英.“大数据+区块链”共享经济发展研究[J].技术经济与管理研究,2018.1:91-95

[11] 胡凯,白晓敏,高灵超等.智能合约的形式化验证方法[J].信息安全研究,2016.2(12):1080-1089

[12] 郁莲,邓恩艳.区块链技术[J].中国计算机学会通讯,2017.13(5):10-15

猜你喜欢

智能合约区块链电子商务
《电子商务法》如何助力直销
电子商务
区块链技术在互联网保险行业的应用探讨
区块链技术的应用价值分析
“区块链”的苟且、诗和远方
基于区块链技术的数字货币与传统货币辨析
关于加快制定电子商务法的议案
智能合约与金融合约
跨境电子商务中的跨文化思考
用“区块链”助推中企走出去