北京航空航天大学分布式实验室 北京航空航天大学云南创新研究院  孙赫,张学瀚

 

移动公司业务在计费、支付、积分等领域存在大量账户管理及账户交易需求,这些需求通常通过集中化的服务器来管理账户和记录交易。但随着业务量的快速增长和新业务需求的不断提出,集中式的账户管理及交易在性能、可靠性、可用性等方面,面临着越来越大的压力。区块链和智能合约技术则能有效解决集中化服务架构所遇到的性能瓶颈问题,而且带来系统在交易处理性能和可扩展性等方面的提升。区块链上的智能合约能够实现对业务流程的控制,提高区块链的处理效率,同时提高可信度。本文给出基于智能合约设计一种虚拟积分币的技术方案。

1.     移动业务智能合约设计

移动虚拟积分币系统将从发行、流通到回笼和清结算的过程全部实现,整个业务流程涉及到一级结构(总公司)、二级机构(子公司)和用户三方,系统利用权限管理系统为三者设置不同的权限,通过CA认证和双秘钥管理实现有效监管,利用零知识证明实现隐私保护。所有业务通过智能合约实现并将执行结果上链以保证不可篡改和可追溯。

虚拟积分币系统主要业务包括:虚拟积分币发行、虚拟积分币发放、用户充值、用户消费和用户退费,每一种业务都由一个智能合约来实现,积分币的各种交易行为都通过智能合约的形式进行存储在区块链中,这种方式可以在一定程度上杜绝人为因素的干扰,同时可以增加交易的可操作性,然后用户和机构可以根据不同的交易事件来触发执行不同的交易处理过程,主要包括系统角色的注册登记、积分币的发行和发放、用户的充值购买和消费等,如图1所示:

  图1  移动虚拟积分币流程

根据业务需求,系统将机构分为一级机构和二级机构进行代理。首先,用户和机构需要在区块链系统中进行注册,然后系统通过相应的密钥对生成合约为用户或机构生成属于他们的公私钥和交易地址等信息,如果用户已有自己的公私钥,则可以通过系统CA进行认证,生成相应的证书。

根据系统权限设置,一级机构可以通过发行合约完成积分币的发行,而二级机构可以通过营销活动触发发放合约完成积分币的发放,对于用户来说,他可以通过购买等行为触发购买合约来完成数字积分币的消费,通过充值行为触发充值合约来完成数字积分币的充值等。

最后,所有的交易都会在许可链中进行存储,所以第三方监管中心可以通过加入该系统中来获得完整的许可链账本,继而完成对账本的和系统的监管。

2     智能合约业务实现

前面说到,系统中按照功能和权限将系统角色划分为多级层次,主要包括一级机构,二级机构和用户账户。对于一级机构来说,它管理积分币的发行和回笼,同时,管理二级机构的状态,对于二级机构和用户账户来说,只有在一级机构进行积分币发行后,积分币才能用于交易,这里所说的积分币是指广义上的数字积分币(虚拟积分币)。对于二级机构来说,数字积分币可以通过营销发放或者用户充值兑换的方式从二级机构到达用户账户中,根据用户获得积分币方式的不同,所得到的积分币类型也不相同。对于用户来说,用户获得数字积分币后可以使用积分币进行消费,其中又分为购买和转账,在购买过程中可以使用多种积分币进行购买,但是用户转账只能针对于现金充值方式获得的积分币,根据这些规则,可以给出区块链的状态模型。

状态模型可以用一个四元组状态机

区块链会将所有的交易存储在区块中,便于后面的追溯查询,与Ethereum一样,区块链的最新状态会被存储在MPT(Merkle Patricia Trie)中,不仅可以即时生成最新状态的摘要,还可以根据key快速查找到所需信息。

系统采用区块链和MySQL数据库两种方式对积分币的流程和用户的状态进行存储。许可链中主要采用MPT对用户的状态和交易记录进行存储,而数据库中主要对用户的目前状态进行存储。因为许可链中查询速度比较慢,所以采用这种混合方式进行存储,一方面减少了许可链的交易数量,另一方面,也加快了用户的查询速度。在区块链中,智能合约驱动的状态转换如图2所示。

  图2 智能合约状态转换图

其中,主要包括6种状态:角色属性状态、积分币发行状态、积分币发放状态、用户充值状态、用户消费状态、用户转账状态和用户退费状态,系统中所有业务由发行合约、发放合约、充值合约、消费合约和退费合约六种合约来进行控制驱动,实现了交易高速执行、交易数据实时上链,提高了交易的安全和可追溯性并实现了合约可扩展性。该系统已经交付验收。

本文链接:https://www.8btc.com/media/529643
转载请注明文章出处

评论
登录 账号发表你的看法,还没有账号?立即免费 注册