logo资料库

基于区块链智能合约的代币系统.pdf

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
计算机应用研究 Application Research of Computers ISSN 1001-3695,CN 51-1196/TP 《计算机应用研究》网络首发论文 基于区块链智能合约的代币系统 题目: 方燚飚,周创明 作者: 10.19734/j.issn.1001-3695.2019.09.0560 DOI: 收稿日期: 2019-09-02 网络首发日期: 2020-03-27 引用格式: 方燚飚,周创明.基于区块链智能合约的代币系统[J/OL].计算机应用研究. https://doi.org/10.19734/j.issn.1001-3695.2019.09.0560 网络首发:在编辑部工作流程中,稿件从录用到出版要经历录用定稿、排版定稿、整期汇编定稿等阶 段。录用定稿指内容已经确定,且通过同行评议、主编终审同意刊用的稿件。排版定稿指录用定稿按照期 刊特定版式(包括网络呈现版式)排版后的稿件,可暂不确定出版年、卷、期和页码。整期汇编定稿指出 版年、卷、期、页码均已确定的印刷或数字出版的整期汇编稿件。录用定稿网络首发稿件内容必须符合《出 版管理条例》和《期刊出版管理规定》的有关规定;学术研究成果具有创新性、科学性和先进性,符合编 辑部对刊文的录用要求,不存在学术不端行为及其他侵权行为;稿件内容应基本符合国家有关书刊编辑、 出版的技术标准,正确使用和统一规范语言文字、符号、数字、外文字母、法定计量单位及地图标注等。 为确保录用定稿网络首发的严肃性,录用定稿一经发布,不得修改论文题目、作者、机构名称和学术内容, 只可基于编辑规范进行少量文字的修改。 出版确认:纸质期刊编辑部通过与《中国学术期刊(光盘版)》电子杂志社有限公司签约,在《中国 学术期刊(网络版)》出版传播平台上创办与纸质期刊内容一致的网络版,以单篇或整期出版形式,在印刷 出版之前刊发论文的录用定稿、排版定稿、整期汇编定稿。因为《中国学术期刊(网络版)》是国家新闻出 版广电总局批准的网络连续型出版物(ISSN 2096-4188,CN 11-6037/Z),所以签约期刊的网络版上网络首 发论文视为正式出版。
网络首发时间:2020-03-27 10:24:23 网络首发地址:http://kns.cnki.net/kcms/detail/51.1196.TP.20200326.1051.016.html 第 37 卷第 12 期 录用定稿 计算机应用研究 Application Research of Computers Vol. 37 No. 12 Accepted Paper 基于区块链智能合约的代币系统 * 方燚飚 a,周创明 b (空军工程大学 a. 研究生院; b. 防空反导学院, 西安 710038) 摘 要:针对传统代币中存在的公信力不足、监管困难等问题,结合区块链和智能合约技术,设计了一种去中心化 的区块链代币系统。以此区块链代币系统为基础,通过部署代币合约、众筹合约,构建了一个基于区块链的众筹系 统,实现了基本的众筹功能。同时设计了资金管理合约,实现了众筹成功后对发起者的监督和资金的管理。最后通 过以太坊平台进行系统测试,分析了代币系统的功能性、安全性以及时间性能。结果表明,基于区块链的代币系统 在实现代币基本功能的同时,能够有效提升代币的安全性和功能性。 关键词:代币;众筹;智能合约;区块链;以太坊 中图分类号:TP311 doi: 10.19734/j.issn.1001-3695.2019.09.0560 Token system based on blockchain smart contract Fang Yibiaoa, Zhou Chuangmingb (a. Graduate School, b. Air & Missile Defense College, Air Force Engineering University, Xi’an 710038, China) Abstract: In order to solve the problems existing in the traditional token, such as the trusts insufficiency, regulatory difficulties and so on. This paper designed a decentralized blockchain token system. The token system combined the characteristics of blockchain and smart contract. Based on the blockchain token system, this paper constructed a blockchain based crowdfunding system. Through token contract and crowdfunding contract, the crowdfunding system realizes the basic crowdfunding function. The crowdfunding system also designed a fund management contract. The contract enables the management of crowdfunding sponsors and funds. Finally, this paper tested the functionality, security and time performance of the token system. The result shows that the token system realizes the basic token function and improves the security and functionality of token. Key words: token; crowdsourcing; smart contract; blockchain; ethereum 0 引言 代币原指一种形状及尺寸与货币相似,具有支付职能和 指定流通范围的货币代用品[1]。早期,代币主要以购物券、电 子消费卡等形式出现。此类代币属于国家法定之外的变相货 币,它的发行和流通直接影响了国家货币政策的实施[2]。因 此此类代币一经出现国家就明令禁止其的流通使用,但是由 于其在吸收资金、躲避监察等方面的特殊“优势”,此类代币 呈现出越禁越火的态势。后期,随着消费方式的演进和互联 网的发展,传统代币逐渐消失,取而代之的是以点券、Q 币 等为代表的网络虚拟货币。最初,网络虚拟货币只是网络游 戏中的“买卖凭证”。随着网络技术的发展,网络虚拟货币的 应用范围越来越广泛,并与现实世界产生联系。网络虚拟货 币逐渐成为一种在网络空间中流通的、具有货币职能的代币。 代币的出现弥补了互联网结算方式的缺陷、促进了消费 形式的进步、为卖方市场提供了一种低成本的融资方式。同 时,它也存在着以下问题:一是监管难度大。由于代币不属 于国家法定货币范围,它的发行商以商业银行、网络服务公 司为主。职能部门无法掌握代币的发行量、流通范围、流通 周期等要素,造成了监管上的困难。二是信息不透明。代币 工具的流通方式、使用期限等规则都通常由发行方单方面制 定,并且发行方拥有这些规则的修改权及最终解释权,造成 了信息的不透明。 区块链是一种基于多种技术的、去中心化的、防窜改的 分布式账本,具有分布式储存、可靠数据库、安全可信、集 体维护、不可窜改等特点[3]。区块链的特点十分有利于解决 —————————— 代币流通发行过程中监管困难、信息不透明等关键问题。目 前,国内外也开展了许多基于区块链技术的代币应用的研究 工作。刘杰良[4]以区块链中的代币体系为基础,引进投票代 币,将传统的投票形式用账户间转账的方式来代替,构建了 基于区块链的投票管理系统。曾茜[5]提出了一种基于电子代 币的银行电子优惠券系统,通过区块链技术帮助商户实现对 优惠券的发行和确权的自主控制,实现了去中心化的电子优 惠券交易。Zhang[6]等利用区块链技术,开发了一种用于电子 交易的物联网币,以该物联网币为交易媒介,设计了一种去 第三方的电子交易模式。 智能合约[7]最早由计算机科学家尼克萨博提出,是指一 种具有自我执行、自我验证功能的计算机协议。它是以太坊 等区块链 2.0 构架[8]平台的核心技术之一,结合以太坊等具 有图灵完备的脚本语言的区块链构架[9],大大提高了合约的 灵活性,拓展了区块链技术的应用范围。 本文基于区块链智能合约设计了一种去中心化的代币系 统,借助区块链技术,实现数字代币的自主管理,在股权、 债券、众筹等金融场景中具有良好的应用前景。本文以众筹 项目为基础,分析了此代币系统的功能性、安全性和时间性 能。利用区块链技术不可窜改、可追溯的特点,将众筹数据 保存在参与者本地或是去中心化的数据库中,保证了交易数 据的公开透明。通过众筹全周期管理合约,实现了众筹过程 的去中心化管理,解决了众筹平台的信任问题;通过建立众 筹代币合约,为众筹投资者确权的同时,提供了投资者交易 渠道,实现了投资者之间的直接交易。 收稿日期:2019-09-02;修回日期:2019-10-28 基金项目:国家自然科学基金资助项目(61703426,61503407) 作者简介:方燚飚(1995-),男,浙江诸暨人,硕士研究生,主要研究方向为区块链及其应用(947988724@qq.com);周创明(1967-),男,湖南益阳人, 副教授,硕导,博士,主要研究方向为智能信息处理、信息安全.
录用定稿 1 相关背景知识 1.1 区块链简介 区块链一词源于中本聪的比特币白皮书,文献中将区块 链描述为一种以链式结构为基础的去中心化账本[10]。区块链 并不是单点的创新,而是密码学[11]、分布式一致性协议[12]、 点对点网络通信 [13]、智能合约等多种技术的有机结合。区块 链建立了一种去中心化的、无须信任积累的信用范式,通过 建立一个共同维护且不可窜改的分布式数据库来记录的数据, 保证了数据的真实可信。区块链的出现有效地解决了数字货 币体系中的“双花”问题和拜占庭将军问题[14],大大提高了数 字货币的实用性。 区块链是由数据区块组成的一种链式结构,数据区块一 般包含区块头和区块体两部分。区块头中通常封装有前区块 哈希值、随机数、时间戳[15]、默克尔树根等数据,其中时间 戳和前区块哈希值保证了数据区块的顺序连接,默克尔树根 保证了区块中数据信息的不可窜改性;区块体中主要包含数 据计数和数据详情,数据计数记录了该区块体中的数据个数, 数据详情是区块链系统中的账本系统,记录了数据区块中所 有的信息。区块结构如图 1 所示。 方燚飚,等:基于区块链智能合约的代币系统 第 37 卷第 12 期 a) 准确性。智能合约中所有流程都被提前规定,并且在 生存周期内无法被恶意窜改。对于同一输入,合约总能保证 得到相同的输出。 b) 高效性和低成本。智能合约自治化的特性大大降低了 合约执行过程中的成本,提高了合约执行的效率。 c) 去人为干预性。合约部署之后,合约内容和合约执行 过程都不会受到人为的干预,保证了合约的权威性。 d) 实时性。基于区块链的智能合约在调用、执行过程中 不需要第三方平台的参与,任意用户在任意时间都能够调用 合约。 图 2 智能合约运行框架 Fig. 2 The operating framework of the intelligent contract 图 1 区块结构 Fig. 1 The structure of the block 总体看来,区块链的应用价值主要有以下几个方面:a) 简化流程,提升效率;b) 降低交易的信用风险;c) 减少结算、 清算时间;d) 增加资金流动性,提高资产利用率;e) 提高监 管透明度和监管效率。 1.2 智能合约简介 智能合约是一种由计算机处理的、可执行交易条款的计 算机协议[16]。其总体目标是实现合约条款的自动执行,最小 化恶意或意外事件发生的可能性,并最小化中介需求。区块 链技术的出现为智能合约提供了良好的应用环境,智能合约 也成为了区块链的核心技术之一。 区块链去中心化、不可窜改的技术特点很好地满足了智 能合约所需的运行环境,而智能合约自治化的特性则能够大 大提拓展区块链技术的应用范围。目前,区块链网络上的去 中心化应用 [17]已经形成了一个庞大的去中心化应用市场,使 区块链的应用范围从单一的金融领域向物流、云计算、供应 链等多个领域拓展。 在区块链构架中,智能合约以链上代码[18]的形式储存在 数据区块中,任何用户在任意时刻都可以调用或者部署智能 合约。用户通过合约接口调用智能合约,来执行特定的操作, 合约的执行过程即验证过程则需要在特定的沙箱环境中进行 [19],该过程通常由矿工来完成。调用过程通过密码学手段保 证交互行为按照既定的规则执行。合约的部署过程同合约的 调用过程类似,用户发布智能合约后,经一定数量的矿工验 证之后才能够将合约部署到区块链上。图 2 为智能合约运行 框架。 智能合约的应用使区块链的技术范围得到了极大的拓展, 引起了政府、企业、媒体等多方面的关注。总得来看,智能 合约的应用带来了以下几个优点[8]: 2 系统模型与要求 2.1 系统模型 基于区块链智能合约的代币系统结构如图 3 所示,系统 主要包括用户、代币账户、区块链网络三个部分。代币发起 者发布代币智能合约,区块链网络分配相应合约地址即代币 账户地址。用户通过区块链网络进行代币交易,交易过程中 用户将资金转入代币账户,代币账户收到用户转账后,向用 户发送等价的代币。交易完成后,由矿工对交易进行验证, 若交易合法则将该交易数据上传到区块链中。下面对代币系 统中的主要成分进行描述: a) 用户。用户是代币系统的参与者,通过区块链网络与 代币合约账户进行交易,此外用户之间也能够直接进行代币 交易。 b) 代币账户。代币账户即代币合约地址,是控制代币交 易的主体。代币账户在接收到用户的交易请求后,根据预先 设定好的规则执行操作,交易完成后,将交易数据发布到区 块链网络中进行验证。 c) 区块链网络。区块链网络主要负责交易信息的验证以 及交易数据的保存,区块链去中心化的存储模式保证了交易 数据的不可窜改性和可靠性。 图 3 代币系统模型 Fig. 3 The model of the token system
录用定稿 方燚飚,等:基于区块链智能合约的代币系统 第 37 卷第 12 期 系统以区块链网络作为交易媒介,通过分布式账本进行 代币资产的确权,摈弃了传统的第三方平台,在保证数据的 不可窜改和交易信息的公开透明的同时,也降低了潜在的安 全风险。结合区块链去中心化的特性,代币系统中各个节点 都具有平等的地位,因此用户之间能够进行直接的代币交易, 打破了以用户与第三方平台交易为主的传统模式,提高了系 统中资金的流动性,对代币应用的推广、资金的筹集等具有 积极作用。在实际项目的设计、构建过程中,可以对区块链 网络中的 JSON-RPC 等公共接口和一些基础合约进行封装, 从而减少项目的开发和后期系统拓展的工作量。 2.2 系统总体要求 以此保证众筹发起者合理使用众筹资金,按时推进项目进程。 众筹智能合约的部署分为以下四个步骤: a) 搭建私有链网络。为便于合约的部署、调试,本实验 搭建了以太坊私有链作为实验环境,表 1 为环境搭建所需软 件。 b) 部署代币合约。实现基本的交易功能,设定众筹目标。 c) 部署众筹合约。众筹合约传入代币合约,创建代币账 户。 d) 部署资金管理合约。众筹成功后,进行资金管理。 实验环境:Windows10 操作系统,Core i5-7700HQ 处理 器,主频为 2.50GHz,solidity 语言,8G 内存。 基于区块链智能合约的代币系统的主要应用于金融领域, 表 1 环境搭建软件 为保证实际应用中的交易安全,在实现基本的交易功能的基 础上,还应满足以下要求: a) 安全性。代币合约发起者只有在满足一定条件时,才 能使用代币账户中的资金。 b) 便捷性。满足交易基本条件的情况下,任意用户在任 意时刻,能够与任意在线对象进行实时交易。 c) 匿名性。交易过程及最终交易信息中,均不涉及交易 双方的实际信息。 d) 高流动性。代币持有者无须通过代币账户就能够与其 他用户直接进行代币交易。 3 基于区块链智能合约的众筹代币系统 3.1 需求分析 众筹是指一种以团购加预售的形式,向外界募集资金的 模式[20],因其低门槛、多样性的特点,迅速得到了筹资者和 投资人的追捧。目前,众筹主要有四种形式:股权众筹、债 券众筹、奖励众筹和捐赠众筹。主流的众筹模式由发起人、 投资人、众筹平台组成,众筹发起者和投资者通过众筹平台 进行交互,众筹平台负责储存、管理众筹项目本身以及众筹 参与者的信息。但是这种中心化的管理模式存在着以下问题: a) 平台可信度。传统众筹模式下,众筹各方的数据被储 存在中心化的数据库中,众筹平台具有账户数据的直接操作 权限,用户的账户数据存在着被窜改的风险。 b) 平台安全性。由于众筹平台使用中心化的数据库存储 数据,一旦数据库被攻击,隐私数据就会面临极大的安全风 险。 Tab. 1 Software of experment enviroment 软件 Geth Mist Node.js Tedtrpc EthFiddle 3.3 系统部署 3.3.1 搭建私有链 描述 以太坊客户端 以太坊钱包客户端 JavaScript 运行环境 本地以太坊测试环境 Solidity 语言编译环境 私有链的搭建过程主要有配置创世区块和启动节点两步。 通过创世区块的配置,能够确定私有链的基本属性,是对私 有链基本属性的设定,创世区块实质上是 json 文件,其主要 参数如表 2 所示。为便于区块的生成和合约的部署,本次实 验采用较为简单的参数进行创世区块的配置,具体配置如下: { "config": { "chainId": 666, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 }, "alloc": {}, "coinbase":"0x0000000000000000000000000000000000000000 ", "difficulty": "0xf5c3", "extraData": "", c) 灵活性。传统的众筹模式中,投资者投资后,无法直 "gasLimit": "0xffffffff", 接与其他投资者进行众筹凭证的交易,资金灵活性不足。 "nonce": "0x0000000000000042", 另外,基于区块链的众筹模式采用了去中心化的运行模 式,因此在成功完成众筹后,无法对众筹资金和众筹发起者 进行监管。当发生众筹发起者私自挪用、盗用众筹资金或是 众筹发起者对项目不作为、不按时推进项目进程等情况时, 众筹系统无法进行有效处理,存在一定的发起者道德风险。 为解决以上问题,本文借助基于区块链智能合约的代币 系统,设计了一种去中心化的众筹系统。 3.2 系统设计 众筹代币合约是在众筹项目发起阶段,制定众筹规则的 代码化合约,合约中明确了众筹各个阶段的规则和参与各方 的责任。众筹代币合约储存在区块链网络上,借助区块链技 术保证合约的不可窜改性、自主性。众筹代币合约包括代币 合约、众筹合约和资金管理合约三个部分,其中代币合约负 责众筹代币的交易功能的实现、众筹额度的设定以及交易安 全性的保证;众筹合约负责众筹功能的实现,保证在众筹结 束之前,发起者无法使用合约账户中的资金,并进行众筹期 限的设定和众筹结果的判定;资金管理合约负责众筹完成后, 对众筹资金的管理,将众筹资金分阶段地发放给众筹发起者, "mixhash":"0x00000000000000000000000000000000000000000 00000000000000000000000", "parentHash":"0x00000000000000000000000000000000000000 00000000000000000000000000", "timestamp": "0x00" } 表 2 区块参数 Tab. 2 The parameter of the block 参数 ChainId alloc coinbase difficulty extraData gasLimit nonce parentHash timestamp 描述 区块链 ID 预设账号及以太币数量 币基地址即默认账户地址 挖矿难度值 区块附加信息 gas 上限,用于限制合约步骤 用于挖矿的随机数 前区块哈希值 创世区块时间戳
录用定稿 方燚飚,等:基于区块链智能合约的代币系统 第 37 卷第 12 期 完成创世区块配置后,就可以启动节点。节点的启动过 程包括区块链网络名称的标志、区块文件的储存路径设置和 rpc 客户端的启动等等。启动文件参数会因实验环境、所选区 块链结构等因素的改变而改变,并且由于本次实验采用私有 链网络,启动文件的配置较为简单,在此不再赘述。 3.3.2 部署代币合约 在部署众筹合约前,需要部署代币合约,来实现众筹代 币系统的交易功能。为实现较好的兼容性,本系统采用 ERC- 20 标准作为众筹的代币标准。代币合约满足以下要求: a) 实现基本交易功能,合约主要有以下几个功能:取款 支付功能、异步发送功能、代币买卖功能、资产冻结功能、 代币增发功能。对于有特殊要求的众筹系统还可以增加代币 管理员、gas 自动补充等高级代币功能。表 3 为本系统中代 币合约功能的描述。 b) 根据众筹代币和以太币的汇率以及众筹额度,确定众 筹代币的发行量,由于以太币与实体货币的汇率变化较快, 必要时可以利用增发功能进行代币增发。 c) 保证代币合约的安全性。代币合约的安全主要有两个 方面:一是交易逻辑的安全,在编写代币合约前,要充分了 解众筹交易的各个细节,并对合约逻辑进行合理设计,保证 交易逻辑的严密性。二是合约代码的安全,在合约代码的编 写、调试过程中,要尽可能消除代码漏洞。 得资金转入资金管理合约;若未达到额度,则执行退款。 c) 保证众筹过程的安全性、公正性。在众筹结束前,众 筹资金储存在合约账户中,确保任何人没有使用该资金的权 限;设定代币增发条件,防止众筹代币被恶意增发;最终众 筹凭证以众筹代币持有量为准,保护、促进个体用户之间的 众筹代币交易,增强众筹灵活性。 表 4 为众筹合约中各功能的描述,众筹算法如下: 输入:众筹额度、众筹期限、最小投资金额。 输出:若众筹成功,则将筹得资金转入资金管理合约;若众筹失败, 则将现有金额返还投资者。 调用众筹合约进行判断; 初始众筹额度 fundingGoalReached = false; If 众筹期限 crowdsaleClosed = false then If 投资金额_value > 最小投资金额 minvalue then 准许交易; else 调整投资额度; end If else 拒绝交易; end If If fundingGoalReached = true then 调用函数 FundTransfer(,,true)将众筹资金转入资金管理合约; 表 3 为代币合约中主要功能的描述,合约交易算法如下: else 输入:投资金额_value。 调用函数 FundTransfer(,,false)将众筹资金返还给投资者; 输出:若验证合法,则完成等值代币交换;若交易不满足条件,则结 end If 束投资进程。 调用代币合约发起投资; 输入投资金额_value; If 投资者余额 balanceof [_from] < _value + Gas break; else If 代币账户余额 balanceof [_to] + _value > balanceof [_to] then 输入支付密码; 调用函数 transfer()进行代币交易; end If end If If 用户现有余额 == 用户初始余额 - _value – Gas && 合约现有 余额 == 合约原有余额 + _value then 发布交易进行验证; end If 功能 代币交易 异步发送 代币买卖 资产冻结 代币增发 表 3 代币合约功能 Tab. 3 Functiona of the token contract 描述 接受以太币的同时发送等值的众筹代币 异步发送交易信息 众筹代币可进行二次交易 冻结账户交易 增加众筹代币发行量 3.3.3 部署众筹合约 众筹合约是众筹规则的程序化表现,在编写众筹合约前 要充分了解众筹的规则,合理设计众筹逻辑。部署众筹合约 首先要将众筹合约接入代币合约,创建众筹账户,然后实现 众筹功能,众筹合约的功能主要有以下几个方面: 表 4 众筹合约功能 Tab. 4 Function of the crowdsourcing contract 功能 增发条件 紧急停止 功能恢复 资金退回 描述 判断是否能够增发代币 突发事件下中断一切操作 突发事件解决后重新启动合约 未达到众筹目标时执行退款 3.3.4 部署资金管理合约 为避免众筹发起者在收到全部众筹资金后发生滥用资金 和消极执行项目等道德风险问题,在代币合约和众筹合约的 基础上还需要部署资金管理合约。具体过程如下: 首先,在众筹发起阶段,要求发起者在发布众筹交易的 同时必须发布对应项目的项目计划书(包括项目各阶段计划、 各阶段所需资金、完成各阶段后所能提供的凭证以及项目完 成后投资者能够得到的回报等等)。此项目计划书,一方面能 够使投资者更好地了解项目细节,为投资者提供参考。另一 方面,能够作为众筹资金使用依据。众筹完成后,除第一阶 段的资金外,其余阶段的资金都需要发起者提供上一阶段的 完成凭证后才能使用。 随后,众筹成功完成时,众筹合约将筹得资金转入资金 管理合约。合约将第一阶段资金发放给众筹发起者。而后, 若众筹发起者要使用下一阶段的资金,则需要提供上一阶段 的完成凭证。 最后,若发起者顺利完成了整个项目,则将此消息发送 到各投资者处,投资者领取相应回报;若在实施项目过程中, 发起者无法在期限内完成相应任务,则发起者需要提供相关 说明,资金管理合约将剩余资金及项目情况发送给投资者。 表 5 为资金管理合约各功能描述,资金发放算法如下: 输入:第 j 阶段完成凭证 voucher [j]。 a) 众筹期限的制定。众筹项目应有一个明确的时间期限, 输出:若凭证有效,则发放下一阶段资金;若无法提交凭证或凭证无 不允许发布无限众筹合约。 b) 众筹结果认定。到达众筹期限后,合约应对众筹项目 进行结果认定。若在众筹期限内,到达了众筹额度,则将筹 效,则按要求处理。 调用资金管理合约发放资金; 上传第 j 阶段的完成凭证 voucher [j];
录用定稿 方燚飚,等:基于区块链智能合约的代币系统 第 37 卷第 12 期 If 上传时间 up_time > 上传期限 up_deadline break; else If 上传凭证 voucher [j] == 预期凭证 voucher[j]_ expect then 调用函数 FundTransfer()将下一阶段资金发放给众筹发起者; else 调用函数 MisHandle()对现有情况进行判断、处理; end If end If 表 5 资金管理合约功能 Tab. 5 Functiona of the fund management contract 功能 凭证判断 资金发放 消息分发 资金退回 描述 验证上传时间及凭证的有效性 发放下一阶段所需资金 发送项目进展相关情况 将剩余资金退还投资者 4 系统测试与分析 4.1 系统测试 本小节通过以太坊平台来进行系统的测试。以太坊是具 有 完 整 编 程 语 言 环 境 和 以 太 坊 虚 拟 机 (Ethereum virtual machine,EVM)的区块链平台,EVM 是智能合约运行环境, 规定了智能合约的执行方式。本文通过以太坊私有链搭建实 验环境,进行系统测试。测试过程主要有三个步骤:编译合 约、部署合约、系统测试。 a) 编译合约。合约编译是指将合约代码转换为 EVM 能 够识别的以太坊虚拟机代码,程序编译通过合约编译器进行。 本文使用的编程语言为 solidity,solidity 内核版本为 0.4.16, 编译器为 Ethfiddle- Solidity。将代币合约与众筹合约同时进 行编译,编译结果如图 4 所示。 b) 部署合约。完成合约编译后,将合约代码部署到私有 链上。本实验中所用的账户均为 Ethfiddle 预存账户,其中主 账户作为合约发起账户,其余账户为投资账户。完成代币合 约和众筹合约的部署之后,就可以来测试众筹系统的功能性 和安全性。 c) 系统测试。系统测试主要有功能性测试和安全性测试 两个方面。功能性测试主要关注系统众筹功能是否完善;安 全性测试则是对众筹过程安全的测试。 系统功能主要包括三个方面: 交易模块的完整性;合理 的众筹规则;众筹结果的判定。图 5~7 分别为合约参数设置、 投资、资金查询过程。测试结果知,系统已经能够完成投资、 查询等基础操作。除了实现基本的众筹操作外,基于区块链 的众筹系统还具有以下特点:(a) 用户间直接交易。不同于传 统的众筹模式中以用户与众筹平台交易为主,在该众筹系统 中,通过图 6 所示界面用户之间能够进行直接交易,大大提 升了众筹资金的灵活性。(b) 众筹过程公开透明。众筹过程中 的交易数据、众筹进度等信息均可被查询,众筹参与者能够 实时掌握众筹进度,监督众筹过程。(c) 执行自动化。系统的 数据储存和众筹的相关操作都由区块链网络和众筹合约自动 执行,减少了人工维护的需求和人为干预带来的隐患,降低 了系统运营成本。 图 4 合约编译 Fig. 4 Compilation of contract 系统安全性上,针对传统众筹模式中的安全问题,结合 区块链和智能合约的性质,系统有了如下改进:(a) 数据安全 方面。不同于传统的中心化存储方式,系统的交易信息储存 在区块链网络的节点中,用户的账户数据则储存在用户本地 节点中,这种分布式的储存结构,大大提升了数据的安全性, 减小了交易数据丢失和用户信息泄露的可能性。(b) 众筹安 全方面。合约部署后,任何人都不能改动合约中的内容,这 能够保证众筹规则的一致性和众筹过程的安全性。同时,合 约条款的自动执行保证了众筹过程的公开公正以及众筹资金 的合理使用,降低了因众筹发起者单方面失信而造成用户损 失的可能性。(c) 用户隐私方面。如图 6、7 所示,用户在投 资、众筹进度查询等操作中,只需提供目标账户地址而不涉 及投资者的真实信息,因而不会出现泄露用户隐私的情况, 保证了投资者隐私的安全性。 图 5 合约参数设置 Fig. 5 Setting of contract parameter
录用定稿 方燚飚,等:基于区块链智能合约的代币系统 第 37 卷第 12 期 图 6 投资过程 Fig. 6 Process of investment 币智能合约,使众筹系统中的所有交易均不涉及用户的真实 信息,保证了用户的隐私安全;通过部署众筹合约和资金管 理合约保证了众筹过程和众筹资金的安全,降低了发生发起 者道德风险的可能和系统的运维成本。实验结果表明,本系 统实现了基本的代币功能,并且在安全性上有了较大的提高。 但在复杂环境下的交易系统中,系统的交易效率还有待提高, 后续研究中要对系统的共识算法进行改进,同时结合应用实 际找出合适的挖矿系数,增强系统的时间性能和鲁棒性。 参考文献: [1] 付小青, 杨一涛. 一种改进的移动支付系统模型 [J]. 华中科技大学 学报: 自然科学版, 2004, 32 (12): 49-50, 74. (Fu Xiaoqing, Yang Yitao. An improved model for mobile payment system [J]. Journal of Huazhong University of Science and Technology: Nature Science Edition, 2004, 32 (12): 49-50, 74.) 图 7 资金查询过程 [2] 黎宗仁. 我国预付式代币卡规制法律制度之反思 [J]. 财经理论与 Fig. 7 The process of funds inquiry 实 践 , 2012, 33 (1): 124-128. (Li Zongren. The introspection about 4.2 系统性能分析 完成众筹系统的功能性测试后,需要对系统的运行性能 进行分析。结合 4.1 节部署的众筹智能合约,本小节对众筹 系统完成一次区块验证的耗时情况进行测试。然后,对比不 同挖矿系数下的验证效率,分析众筹系统地交易处理能力。 测试的硬件环境及软件环境与本文 3.2 节所述相同,测 试时为众筹系统分配 5 个线程进行运算。测试方法如下:改 变众筹样例中的挖矿系数,在不同挖矿系数下用户发起交易 进行验证,随后统计从用户发出交易请求待完成区块验证的 平均时间。测试中,所有交易请求均由同一节点发出,不同 系数值下测试次数相同,且每次测试的交易量和支付 Gas 量 均相同。图 8 为不同挖矿系数下的测试结果。 chinese supervisory system of prepaid card [J]. The Theory and Practice of Finance and Economics, 2012, 33 (1): 124-128.) [3] 刘敖迪, 杜学绘, 王娜, 等. 区块链技术及其在信息安全领域的研究 进展 [J]. 软件学报, 2018, 29 (7): 2092-2115. (Liu Aodi, Du Xuehui, Wang Na, et al. Research progress of blockchain technology and its application in information security [J]. Journal of Software, 2018, 29 (7): 2092-2115.) [4] 刘杰良. 基于区块链技术的投票系统的设计与实现 [D]. 内蒙古: 内蒙古大学, 2018. (Liu Liangjie. Design and implementation of voting system based on blockchain technology [D]. Inner Mongolia: Inner Mongolia University: 2018.) [5] 曾茜. 基于区块链技术的电子优惠券管理系统的设计与实现 [D]. 江西: 江西财经大学, 2018. (Zeng Qian. Design and implementation of electronic coupon management system based on block chain technology [D]. Jiangxi: Jiangxi University of Finance and Economics, 2018.) [6] Zhang Yu, Wen Jiangtao. An IoT electric business model based on the protocol of bitcoin [C]// International Conference on Intelligence in Next Generation Networks. Paris: IEEE, 2015: 184–191. [7] 陈伟利, 郑子彬. 区块链数据分析: 现状、趋势与挑战 [J]. 计算机 研 究 与 发 展 , 2018, 55 (9): 1853-1870. (Chen Weili, Zheng Zibin. Blockchain data analysis: a review of status, trends and challenges [J]. 图 8 不同挖矿系数下区块验证耗时情况 Journal of Computer Research and Development, 2018, 55 (9): 1853- Fig. 8 Block verification time with different mining coefficients 1870.) 实验结果表明,随着挖矿系数减小,众筹系统完成区块 验证的时间也逐渐减少,但即使是在交易环境十分简单且挖 矿系数较小的测试链中,众筹系统完成一次区块验证的时间 仍然较长。可见,与传统众筹平台相比,基于区块链的众筹 系统在执行交易方面的时间性能还有待提高。 综上测试分析可知,基于区块链的众筹系统已经能够实 现基本的众筹功能。同时,区块链众筹系统能使众筹进程更 加透明、众筹信息更加开放、用户隐私更加安全,降低了众 筹进程中的安全风险,提高了众筹项目的可信度,具有数据 分布式存储、交易自动执行、用户信息全匿名等特点。但在 执行交易的时间性能上与传统模式还有差距,在后续研究中 需要对系统的共识算法进行改进。 5 结束语 针对传统代币中存在的公信力不足等问题,本文提出了 一种基于区块链智能合约的新型代币系统,并且基于此代币 系统设计了一种众筹系统。本系统采用分布式的存储结构, 解决了传统模式中数据中心化储存带来的潜在风险;借助代 [8] 贺海武, 延安, 陈泽华. 基于区块链的智能合约技术与应用综述 [J]. 计算机研究与发展, 2018, 55 (11): 2452-2465. (He Haiwu, Yan An, Chen Zehua. Survey of smart contract technology and application based on blockchain [J]. Journal of Computer Research and Development, 2018, 55 (11): 2452-2465.) [9] 邵奇峰, 金澈清, 张召, 等. 区块链技术: 架构及进展 [J]. 计算机 学报, 2018, 41 (5): 969-988. (Shao Qifeng, Jin Cheqing, Zhang Zhao, et al. Blockchain: architecture and research progress [J]. Chinese Journal of Computers, 2018, 41 (5): 969-988.) [10] Nakamoto S. Bitcoin: a peer-to-peer electronic cash system [EB/OL]. (2008) [2019-07-20]. http://www. bitcoin. org/bitcoin. pdf. [11] Stallings W. Cryptography and network security: principles and practice [J]. Int’l Annals of Criminology, 1999, 46 (4): 121–136. [12] Olfati S R, Murray R M. Consensus problems in networks of agents with switching topology and time delays [J]. Automatic Control, 2004, 49 (9): 1520-1533. [13] 周华良, 郑玉平, 姜雷, 等. 基于点对点通信的分布式实时控制技术 [J]. 电力系统自动化, 2015, 39 (10): 107-111. (Zhou Hualiang, Zheng
录用定稿 方燚飚,等:基于区块链智能合约的代币系统 第 37 卷第 12 期 Yuping, Jiang Lei, et al. A distributed real-time control technology based [18] Rao Y S, Dutta R. Decentralized ciphertext-policy attribute-based on point-to-point communication [J]. Automation of Electric Power encryption scheme with fast decryption [C]// Proceedings of the 14th Systems, 2015, 39 (10): 107-111.) IFIP TC6/TC11 International Conference on International Conference on [14] Antonopoulos A M. Mastering Bitcoin: unlocking digital crypto- Communication and Multimedia Security. Magdevurg: Springer Verlag, currencies [M]. Sebastopol: O’Reilly Media, 2014. 2013: 66-81. [15] Binxing Fang, Kui Ren, Yan Jia. The new frontiers of cybersecurity [J]. [19] 欧阳丽炜, 王帅, 袁勇, 等. 智能合约: 架构及进展 [J]. 自动化学 Engineering, 2018, 4 (1): 1-2. 报, 2019, 45 (3): 445-454. (Ouyang Liwei, Wang Shuai, Yuan Yong, et [16] Buterin V. A next-generation smart contract and decentralized application al. Smart Contracts: Architecture and Research Progresses [J]. Acta platform [EB/OL]. (2018) [2019-07-20]. https://cryptorating. Automatica Sinica, 2019, 45 (3): 445-454.) eu/whitepapers/Ethereum/Ethereum_white_paper. pdf. [20] Yablonsky S. Crowdfunding innovations [J]. International Journal of [17] Vasek M. The age of cryptocurrency [J]. Science, 2015, 348 (6241): Services, Economics and Management, 2016, 7 (2-4): 246-264. 1308-1309.
分享到:
收藏