CN107492031A - 一种基于函数契约旁路分析的准实时金融系统对账方法 - Google Patents

一种基于函数契约旁路分析的准实时金融系统对账方法 Download PDF

Info

Publication number
CN107492031A
CN107492031A CN201710547261.9A CN201710547261A CN107492031A CN 107492031 A CN107492031 A CN 107492031A CN 201710547261 A CN201710547261 A CN 201710547261A CN 107492031 A CN107492031 A CN 107492031A
Authority
CN
China
Prior art keywords
contract
function
bypass
account
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710547261.9A
Other languages
English (en)
Other versions
CN107492031B (zh
Inventor
杨益明
殷静雯
林恩临
李鹏
侯响响
张驰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Generale Digital Financial Services (shanghai) Ltd By Share Ltd Ste
Original Assignee
Generale Digital Financial Services (shanghai) Ltd By Share Ltd Ste
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Generale Digital Financial Services (shanghai) Ltd By Share Ltd Ste filed Critical Generale Digital Financial Services (shanghai) Ltd By Share Ltd Ste
Priority to CN201710547261.9A priority Critical patent/CN107492031B/zh
Publication of CN107492031A publication Critical patent/CN107492031A/zh
Application granted granted Critical
Publication of CN107492031B publication Critical patent/CN107492031B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting

Abstract

本发明公开了一种基于函数契约旁路分析的准实时金融系统对账方法,包括如下步骤:在系统开发阶段产生包含函数契约规则的可执行文件,通过函数注解方式、定义和账务相关的关键函数执行后需要满足的契约,并利用面向方面编程对旁路触发契约验证代码进行编译器织入;在系统运行时,由旁路监听器接受数据,在数据库运行契约验证;当发现契约被违反后,执行补偿规则并报警。本发明在不影响系统运行效率的前提下,使金融系统中错账数据被更加及时的发现,降低因为系统错误造成的经济损失。

Description

一种基于函数契约旁路分析的准实时金融系统对账方法
技术领域
本发明涉及一种金融系统的账务对账系统实现方法,具体地,涉及到通过定义函数契约,在系统运行时触发对数据的旁路分析,从而对金融系统的账务准确性进行验证的方法。
背景技术
目前的账务类金融系统,采用每日日终跑批方式,对数据库中所有当天发现的交易进行会计对账的方式,保证账务的正确性,该技术的原理是利用会计等式,核对存储在数据库中各会计要素数据是否满足会计规则,从而发现错账,并对错账进行事后处理。错账的原因一般为运行时软件的BUG引起,例如数据库事务未正确执行、高并发情况下对竞争资源的使用不当、逻辑错误等。该方法的局限性主要体现在:时效性低、影响运行时系统性能。
发明内容
针对上述现有技术中的缺陷,本发明要解决的技术问题体现在以下几点:1)采用更细粒度的函数级规则定义,实现局部数据对账;2)采用旁路分析方法,不影响运行时系统性能;3)提高发现错账的时效性,进行及时补偿操作。
针对上述技术问题,本发明提供了一种基于函数契约旁路分析的准实时金融系统对账方法,在程序语言的关键函数中定义契约规则,并在函数运行完成后触发对契约规则的准实时旁路数据分析,能够达到快速发现账务错误并进行补偿行为的功效。
为实现上述目的,本发明是根据以下技术方案实现的:
一种基于函数契约旁路分析的准实时金融系统对账方法,包括如下步骤:
步骤S1:在系统开发阶段产生包含函数契约规则的可执行文件,通过函数注解方式、定义和账务相关的关键函数执行后需要满足的契约,并利用面向方面编程对旁路触发契约验证代码进行编译期织入;
步骤S2:在系统运行时,由旁路监听器接受数据,在数据库从库中运行契约验证;
步骤S3:当发现契约被违反后,执行补偿规则并报警。
上述技术方案中,步骤S1具体包括:
步骤S101:根据业务规则及系统数据模型设计,建立系统核心规则的不变式及识别不变式中变量可能被改变的场景;
步骤S102:在函数上编写注释,注释内容包括契约规则、补偿规则;例如,在虚拟账户充值函数后,对虚拟账户和实体账户数据进行校验的契约为“转入资金和-转出资金和=实体余额”且“余额变动表中,引起余额变动的交易类型为充值,则必须有且仅有一条原交易流水号对应这种余额的变化”;
步骤S103:在程序编译阶段,解析函数注释上的契约规则,转换为可执行的验证脚本;将转换后的契约规则验证脚本、原程序代码、触发旁路验证的客户端代码,通过面向方面编程的编织技术,共同编译成可执行代码,产生可运行的可执行文件。
上述技术方案中,步骤S2具体包括:
步骤S201:系统运行时,首先执行正常业务逻辑函数,数据会被写入数据库主库中,利用数据库自身的数据主从同步技术,将该次操作变动的数据备份到从库中;
步骤S202:当带有契约规则定义的正常业务逻辑函数被执行后,编织到可执行文件中的旁路验证客户端将在正常业务逻辑函数结束时,将函数输出、输出、契约验证脚本、验证失败补偿脚本通过异步通讯的方式发送到旁路分析服务器;
步骤S203:旁路分析服务器的契约监听收到信息后,到数据库从库中获取契约验证需要的数据,并验证契约规则是否被满足;
步骤S204:当发现契约被违反后,执行补偿规则并报警。
由于采用了上述技术方案,本发明的有益效果是:
本发明在不影响系统运行效率的前提下,使金融系统中错账数据被更加及时的发现,降低因为系统错误造成的经济损失。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1为本发明的金融系统对账方法示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
图1为本发明的金融系统对账方法示意图,如图1所示,本发明的一种基于函数契约旁路分析的准实时金融系统对账方法,包括如下步骤:
步骤S1:在系统开发阶段产生包含函数契约规则的可执行文件,通过函数注解方式、定义和账务相关的关键函数执行后需要满足的契约,并利用面向方面编程对旁路触发契约验证代码进行编译器织入;
步骤S2:在系统运行时,由旁路监听器接受数据,在数据库从库中运行契约验证;
步骤S3:当发现契约被违反后,执行补偿规则并报警。
步骤S1具体包括:
步骤S101:根据业务规则及系统数据模型设计,建立系统核心规则的不变式及识别不变式中变量可能被改变的场景;不同的业务,包含不同的规则,大部分情况账务类的规则来自于会计科目的设置及会计公式。
步骤S102:在函数上编写注释,注释内容包括契约规则、补偿规则;契约规则用来验证账务数据的准确性,补偿规则用于契约规范被违反情况下所采取的补救措施。例如,在虚拟账户充值函数后,对虚拟账户和实体账户数据进行校验的契约为“转入资金和-转出资金和=实体余额”且“余额变动表中,引起余额变动的交易类型为充值,则必须有且仅有一条原交易流水号对应这种余额的变化”。补偿规则为“将此笔操作涉及的虚拟账户可用余额减少,将冻结金额增加,并通过短信报警”。
步骤S103:在程序编译阶段,解析函数注释上的契约规则,转换为可执行的验证脚本;将转换后的契约规则验证脚本、原程序代码、触发旁路验证的客户端代码,通过面向方面编程的编织技术,共同编译成可执行代码,产生可运行的可执行文件。
步骤S2具体包括:
步骤S201:系统运行时,首先执行正常业务逻辑函数,数据会被写入数据库主库中,利用数据库自身的数据主从同步技术,将该次操作变动的数据备份到从库中。
步骤S202:当带有契约规则定义的正常业务逻辑函数被执行后,编织到可执行文件中的旁路验证客户端将在正常业务逻辑函数结束时,将函数输出、输出、契约验证脚本、验证失败补偿脚本通过异步通讯的方式发送到旁路分析服务器。
步骤S203:旁路分析服务器的契约监听收到信息后,到数据库从库中获取契约验证需要的数据,并验证契约规则是否被满足。例如,针对用户充值的场景,支付交易的结果由第三方支付通道采用异步通知形式告知账务系统,可能由于网络延迟原因在同一时间针对一个订单通知2次。在更新数据库用户余额字段时,如果未对用户余额记录加锁,会造成重复更新数据问题,使得余额被重复累加。此时,契约监听模块会发现“余额变动表中,引起余额变动的交易类型为充值,则必须有且仅有一条原交易流水号对应这种余额的变化”规则中,“必须有且仅有一条原交易流水号对应这种余额的变化”被违反,从而立即处理补偿规则“对用户账号余额做冻结交由人工处理”,及时避免损失。
步骤S204:当发现契约被违反后,执行补偿规则并报警。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。

Claims (3)

1.一种基于函数契约旁路分析的准实时金融系统对账方法,其特征在于,包括如下步骤:
步骤S1:在系统开发阶段产生包含函数契约规则的可执行文件,通过函数注解方式、定义和账务相关的关键函数执行后需要满足的契约,并利用面向方面编程对旁路触发契约验证代码进行编译期织入;
步骤S2:在系统运行时,由旁路监听器接受数据,在数据库从库中运行契约验证;
步骤S3:当发现契约被违反后,执行补偿规则并报警。
2.根据权利要求1所述的一种基于函数契约旁路分析的准实时金融系统对账方法,其特征在于,步骤S1具体包括:
步骤S101:根据业务规则及系统数据模型设计,建立系统核心规则的不变式及识别不变式中变量可能被改变的场景;
步骤S102:在函数上编写注释,注释内容包括契约规则、补偿规则;例如,在虚拟账户充值函数后,对虚拟账户和实体账户数据进行校验的契约为“转入资金和-转出资金和=实体余额”且“余额变动表中,引起余额变动的交易类型为充值,则必须有且仅有一条原交易流水号对应这种余额的变化”;
步骤S103:在程序编译阶段,解析函数注释上的契约规则,转换为可执行的验证脚本;将转换后的契约规则验证脚本、原程序代码、触发旁路验证的客户端代码,通过面向方面编程的编织技术,共同编译成可执行代码,产生可运行的可执行文件。
3.根据权利要求1所述的一种基于函数契约旁路分析的准实时金融系统对账方法,其特征在于,步骤S2具体包括:
步骤S201:系统运行时,首先执行正常业务逻辑函数,数据会被写入数据库主库中,利用数据库自身的数据主从同步技术,将该次操作变动的数据备份到从库中;
步骤S202:当带有契约规则定义的正常业务逻辑函数被执行后,编织到可执行文件中的旁路验证客户端将在正常业务逻辑函数结束时,将函数输出、输出、契约验证脚本、验证失败补偿脚本通过异步通讯的方式发送到旁路分析服务器;
步骤S203:旁路分析服务器的契约监听收到信息后,到数据库从库中获取契约验证需要的数据,并验证契约规则是否被满足;
步骤S204:当发现契约被违反后,执行补偿规则并报警。
CN201710547261.9A 2017-07-06 2017-07-06 一种基于函数契约旁路分析的准实时金融系统对账方法 Active CN107492031B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710547261.9A CN107492031B (zh) 2017-07-06 2017-07-06 一种基于函数契约旁路分析的准实时金融系统对账方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710547261.9A CN107492031B (zh) 2017-07-06 2017-07-06 一种基于函数契约旁路分析的准实时金融系统对账方法

Publications (2)

Publication Number Publication Date
CN107492031A true CN107492031A (zh) 2017-12-19
CN107492031B CN107492031B (zh) 2020-05-29

Family

ID=60644340

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710547261.9A Active CN107492031B (zh) 2017-07-06 2017-07-06 一种基于函数契约旁路分析的准实时金融系统对账方法

Country Status (1)

Country Link
CN (1) CN107492031B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108319521A (zh) * 2018-01-29 2018-07-24 中国工商银行股份有限公司 自动补账处理方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050149601A1 (en) * 2003-12-17 2005-07-07 International Business Machines Corporation Method, system and computer program product for real-time data integrity verification
CN201150070Y (zh) * 2007-11-19 2008-11-12 上海久隆电力科技有限公司 集中审计数据采集处理系统
CN102129653A (zh) * 2011-03-01 2011-07-20 南京审计学院 一种基于审计逻辑单元的电子商务审计方法
CN103136245A (zh) * 2011-11-29 2013-06-05 深圳市腾讯计算机系统有限公司 一种虚拟货币余额旁路查询方法及系统
CN104021454A (zh) * 2014-06-23 2014-09-03 国网山东省电力公司 用于集团企业资金账户数据监控的方法及系统
CN105894376A (zh) * 2016-03-07 2016-08-24 浙江爱贷金融服务外包股份有限公司 一种金融账户资金管理系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050149601A1 (en) * 2003-12-17 2005-07-07 International Business Machines Corporation Method, system and computer program product for real-time data integrity verification
CN201150070Y (zh) * 2007-11-19 2008-11-12 上海久隆电力科技有限公司 集中审计数据采集处理系统
CN102129653A (zh) * 2011-03-01 2011-07-20 南京审计学院 一种基于审计逻辑单元的电子商务审计方法
CN103136245A (zh) * 2011-11-29 2013-06-05 深圳市腾讯计算机系统有限公司 一种虚拟货币余额旁路查询方法及系统
CN104021454A (zh) * 2014-06-23 2014-09-03 国网山东省电力公司 用于集团企业资金账户数据监控的方法及系统
CN105894376A (zh) * 2016-03-07 2016-08-24 浙江爱贷金融服务外包股份有限公司 一种金融账户资金管理系统及方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108319521A (zh) * 2018-01-29 2018-07-24 中国工商银行股份有限公司 自动补账处理方法及装置

Also Published As

Publication number Publication date
CN107492031B (zh) 2020-05-29

Similar Documents

Publication Publication Date Title
Grishchenko et al. A semantic framework for the security analysis of ethereum smart contracts
JP7431934B2 (ja) ブロックチェーン実装スクリプトベースのバイト解釈のための方法とシステム
Kalra et al. Zeus: analyzing safety of smart contracts.
Grishchenko et al. Foundations and tools for the static analysis of ethereum smart contracts
JP2022535785A (ja) ブロックチェーンネットワークにおけるスマートコントラクトをサポートするための方法及びコントラクト書き換えフレームワークシステム
EP3021225B1 (en) Automated configuration code based selection of test cases for payment terminals
CN110532536B (zh) 一种规则配置方法及装置
US20200201838A1 (en) Middleware to automatically verify smart contracts on blockchains
CN109614262B (zh) 业务校验方法、装置及计算机可读存储介质
Zhang et al. Demystifying exploitable bugs in smart contracts
Cordy et al. Counterexample guided abstraction refinement of product-line behavioural models
CN107590070A (zh) 一种业务流程调试方法及装置
Shishkin Debugging smart contract’s business logic using symbolic model checking
CN115409590A (zh) 一种统一对账方法、装置、设备及存储介质
CN106843818B (zh) 一种业务模型生成方法及装置
CN110032515B (zh) 一种界面测试案例生成方法、装置及存储介质
CN111260336A (zh) 基于规则引擎的业务核对方法、装置及设备
CN112613288B (zh) 结算单生成方法、装置、计算机设备和存储介质
Fekih et al. Towards Model checking approach for Smart contract validation in the EIP-1559 Ethereum
CN117575583A (zh) 一种中间账户资金监管方法、系统及设备
CN107492031A (zh) 一种基于函数契约旁路分析的准实时金融系统对账方法
Azzopardi et al. Runtime verification using VALOUR
CN112070503A (zh) 一种基于区块链的合同执行方法、装置、设备和存储介质
CN110580624B (zh) 链码升级方法及装置
CN112819621B (zh) 一种智能合约资损测试方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant