基于区块链的关联交易溯源方法与流程

文档序号:30788292发布日期:2022-07-16 08:59阅读:295来源:国知局
基于区块链的关联交易溯源方法与流程

1.本发明涉及信息技术领域,具体涉及一种基于区块链的关联交易溯源方法。


背景技术:

2.企业在经营中涉及到对专用资金的使用,如经营性贷款、专项贷款和监管账户资金等。对专用资金的使用需要限制在专门的用途,不得违规使用。比如将经营性贷款违规流入股市或者房地产,不仅破坏企业的信誉,而且影响市场的公平竞争和健康发展。为此银行需要监控贷款及其他专用资金的最终用途。资金违规使用产生的交易链路,通常涉及到多个银行或者其他金融机构,给银行监控资金使用带来了不便。目前涉及多个金融机构的资金交易追踪途径为线下函件的形式进行。银行及其他金融机构之间通过线下的合作,完成资金的追踪和监管。但线下函件的效率极低,难以及时有效发现专用资金的违规使用行为,对违规企业个威慑力不强。因此有必要研究线上实现交易关联和追溯的技术。
3.如中国专利cn113711265a,公开日2021年11月26日,一种区块链交易追溯的方法及装置,用以解决现有技术无法快速构建交易的追溯路径且系统开销较大的问题。其中方法包括:获取待追溯交易的信息,待追溯交易的信息包括待追溯交易的输入值,根据待追溯交易的输入值和区块链系统中每个区块对应的布隆过滤器,确定待追溯交易的叶子节点,布隆过滤器中存储有区块包含的交易的输出值,根据待追溯交易的叶子节点,生成待追溯交易的追溯路径。其技术方案基于每个区块对应的布隆过滤器和待追溯交易的输入值进行交易追踪,能够快速生成待追溯交易的追溯路径,有助于提高追溯路径的追溯效率,降低系统开销。但其技术方案不能解决跨机构的关联交易追溯问题。


技术实现要素:

4.本发明要解决的技术问题是:目前缺乏能够兼顾隐私安全的银行间线上进行交易信息关联的技术方案的问题。提出了一种基于区块链的关联交易溯源方法,基于交易id的哈希值实现交易信息的关联,为资金用途监管提供了线上通道,有助于提高资金监管的效率。
5.为解决上述技术问题,本发明所采取的技术方案为:基于区块链的关联交易溯源方法,包括:设置若干个监督账户,监督账户所在银行记为发起行,当监督账户发生收款交易且交易金额超过预设阈值时,所述收款交易记为待追溯交易;发起行在区块链上发布追溯智能合约,所述追溯智能合约公开收款交易id的哈希值;接入所述区块链的若干个其他银行记为追溯行,若干个追溯行轮询区块链;当追溯行存在出款交易的交易id与追溯智能合约公开的收款交易id的哈希值相符时,追溯行读取所述出款交易的出款账户和交易金额;所述追溯行判断所述出款账户在预设时长内是否存在若干笔收款交易的交易金额总和与所述出款交易的交易金额相差在预设范围内;若存在,则将若干笔收款交易的收款交易信息采用限时加密算法加密后上传区块链存储,将限时加密算法的秘钥使用发起行的公钥加密后发送给发起行;所述追踪行将若干笔收款交易的交易id的哈希值追加到所述追溯智
能合约公开;所述发起行轮询区块链,在限时内解密收款交易信息,解密获得的全部收款交易信息构成待追溯交易的溯源交易;若溯源交易中存在出款账户涉及监管资金,则发起线下核实惩戒程序。
6.作为优选,所述追溯行统计所述出款账户在预设时长内,使得交易金额总和与所述出款交易的交易金额相差在预设范围内的出款交易的数量记为n;所述发起行设置阈值n_max并公开,所述追溯行比较n和n_max的大小,若n》n_max,则将预设的终止追溯标识符关联收款交易id的哈希值上传所述追溯智能合约。
7.作为优选,所述追溯行根据所述出款账户的历史惩戒记录,在预设范围内修正n_max的值,若所述出款账户无历史惩戒记录,则保持n_max的值不变,若所述出款账户存在历史惩戒记录,则在预设的范围内增加n_max的值。
8.作为优选,任意银行在区块链上发布限时参照智能合约,所述限时参照智能合约包括若干个参照栏和接收栏,所述参照栏包括栏编号、剩余更新时长和m个样本点(xi,yi),i∈[1,m],剩余更新时长为0时,所述参照栏的样本点被更新,所述限时参照智能合约公开参照栏的栏编号和样本点;所述追溯行将收款交易信息采用限时加密算法加密的方法包括:将限时时长写入接收栏,所述限时参照智能合约读取限时时长后,选择相应剩余更新时长对应的参照栏,将参照栏的栏编号使用所述追溯行的公钥加密后写入接收栏;所述追溯行解密获得栏编号,读取参照栏的栏编号和m个样本点;所述追溯行生成随机整数n,n《m,生成一元多项式f(x),一元多项式经过m个样本点中的n个;计算剩余m-n个样本点与一元多项式的距离d,d=|f(xj)-yj|,(xj,yj)为样本点的坐标值,全部样本点与一元多项式的距离和记为样本距离;穷举过n个样本点的一元多项式,获得样本距离最小的一元多项式,记为加密多项式;将收款交易信息采用对称加密算法加密,获得交易密文,加密秘钥记为秘钥key,将交易密文上传区块链;使用加密多项式加密秘钥key,获得key密文,将key密文、栏编号和数值n使用发起行的公钥加密后,上传到区块链存储;发起行轮询区块链,使用私钥解密获得key密文、栏编号和数值n;所述发起行在限时内读取栏编号对应的参照栏的m个样本点;穷举过n个样本点的一元多项式,获得样本距离最小的一元多项式,记为复原加密多项式;使用复原加密多项式解密获得秘钥key,使用秘钥key解密获得收款交易信息。
[0009]
作为优选,追溯行使用加密多项式加密秘钥key的方法包括:将秘钥key转换为二进制流,按照预设长度截断为若干个二进制数b;生成数据组合(b1,x1,b2,x2,

,bn,xn,

),bi∈{0,1},使得b=∑(-1)^bi*f(xi)+

,其中i∈[1,n],

为修正值;数据组合按顺序组成的集合即为key密文。
[0010]
作为优选,任意银行在区块链上发布限时参照智能合约,所述限时参照智能合约包括若干个参照栏和接收栏,所述参照栏包括栏编号、剩余更新时长和m个样本点(xi,yi),i∈[1,m],剩余更新时长为0时,所述参照栏的样本点被更新,所述限时参照智能合约公开参照栏的栏编号和样本点;所述追溯行将收款交易信息采用限时加密算法加密的方法包括:将限时时长写入接收栏,所述限时参照智能合约读取限时时长后,选择相应剩余更新时长对应的参照栏,将参照栏的栏编号使用所述追溯行的公钥加密后写入接收栏;所述追溯行解密获得栏编号,读取参照栏的栏编号和m个样本点;所述追溯行生成随机整数n,n《m,生成一元多项式f(x),一元多项式经过m个样本点中的n个;计算剩余m-n个样本点与一元多项式的距离d,d=|f(xj)-yj|,(xj,yj)为样本点的坐标值,全部样本点与一元多项式的距离和
记为样本距离;穷举过n个样本点的一元多项式,按照样本距离升序排列一元多项式;选择其中一个一元多项式作为加密多项式,获得加密多项式排序的序号s;将收款交易信息采用对称加密算法加密,获得交易密文,加密秘钥记为秘钥key,将交易密文上传区块链;使用加密多项式加密秘钥key,获得key密文,将key密文、栏编号、数值n和序号s使用发起行的公钥加密后,上传到区块链存储;发起行轮询区块链,使用私钥解密获得key密文、栏编号和数值n;所述发起行在限时内读取栏编号对应的参照栏的m个样本点;穷举过n个样本点的一元多项式,按照样本距离升序排列一元多项式,序号s对应的一元多项式记为复原加密多项式;使用复原加密多项式解密获得秘钥key,使用秘钥key解密获得收款交易信息。
[0011]
本发明的实质性效果是:通过交易id的哈希值在不同金融机构之间实现交易的关联,借助限时加密使金融机构之间共享的交易信息扩散范围受到管控,有助于提高交易信息共享的安全性;借助改进的限时加密算法,能够提高限时加密的效率,同时降低对区块链节点算力的消耗。
附图说明
[0012]
图1为实施例一关联交易溯源方法示意图。
[0013]
图2为实施例一采用限时加密算法加密方法示意图。
[0014]
图3为实施例一使用加密多项式加密秘钥key方法示意图。
具体实施方式
[0015]
下面通过具体实施例,并结合附图,对本发明的具体实施方式作进一步具体说明。
[0016]
实施例一:基于区块链的关联交易溯源方法,请参阅附图1,包括:步骤a01)设置若干个监督账户,监督账户所在银行记为发起行,当监督账户发生收款交易且交易金额超过预设阈值时,发起行在区块链上发布追溯智能合约,追溯智能合约公开收款交易id的哈希值;步骤a02)接入区块链的若干个其他银行记为追溯行,若干个追溯行轮询区块链;步骤a03)当追溯行存在出款交易的交易id与追溯智能合约公开的收款交易id的哈希值相符时,追溯行读取出款交易的出款账户和交易金额;步骤a04)追溯行判断出款账户在预设时长内是否存在若干笔收款交易的交易金额总和与出款交易的交易金额相差在预设范围内;步骤a05)若存在,则将若干笔收款交易的收款交易信息采用限时加密算法加密后上传区块链存储,将限时加密算法的秘钥使用发起行的公钥加密后发送给发起行;步骤a06)追踪行将若干笔收款交易的交易id的哈希值追加到追溯智能合约公开;步骤a07)发起行轮询区块链,在限时内解密收款交易信息,解密获得的全部收款交易信息构成待追溯交易的溯源交易;步骤a08)若溯源交易中存在出款账户涉及监管资金,则发起线下核实惩戒程序。
[0017]
账户资金溯源是一项较难完成的课题,其原因在于资金在交易过程中,不断在不同的账户汇总和分散。资金不具有差异性,专用资金进入某个账户,和普通资金混合后,再流入限制行业时,难以判定是专用资金流入限制行业还是普通资金流入了限制行业。为此最终确定资金违规使用,还需要借助线下核实程序。但违规使用资金具有一定的规律可循,通过银行之间线上分享交易信息,建立追溯机制,能够发现可疑的资金违规使用行为。本实施例中,监督账户为限制流入的行业的企业的账户,如若干个房地产开发商或者销售企业
的账户。当有资金流入这类企业时,监督账户所在的银行发起追溯,向上溯源资金的来源,若溯源发现资金来源于专用资金时,则发起线下核实和惩戒程序。借助线上系统,自动发现涉及到专用资金的交易,再结合线下核实程序,能够整体上提高资金监管的效率,及时发现资金违规使用的情况。哈希值是由数据输入散列函数获得,哈希值为预设长度的十六进制数,如0x 2d3fd3

622a1d。常用的散列函数有sha256、sha512和sm2。本领域中提及哈希值时,通常会连同提及对应的散列函数名称。使用相同的散列函数对相同的数据进行提取哈希值运算,所得哈希值相同。
[0018]
通过哈希值对比能够判断交易id是否相同,同时又不会泄露交易id,交易id指金融系统为每笔转账生成的id,交易id具有唯一性。每一笔收款交易,都对应有一笔出款交易,对应的收款交易和出款交易可能在同一家银行,也可能在两家银行,但涉及的银行都知晓交易的全部相关信息,包括出款账户、收款账户、交易id、交易金额和交易时间。因此建立交易的关联时,仅需要根据交易id建立即可,不需要提供出款账户、收款账户或者交易金额的信息,能够减少区块链需要存储的数据量,加快交易建立关联的效率。
[0019]
当监督账户产生一笔交易金额超过预设阈值的收款交易时,这笔资金的来源可能涉及多笔交易。如监督账户为账户a,账户a收到一笔来自账户b的资金,账户b的资金则分别来源于账户c、账户d和账户e。相应的,在预设时长内,账户b就会有3笔分别来自账户c、账户d和账户e的收款交易。而账户c、账户d和账户e则同样具有相应的资金来源涉及的收款交易。通过追溯行轮询区块链,不断发现匹配的交易id的哈希值,从而使追溯智能合约公开的交易id的哈希值不断增加,直到追溯的资金的源头,即专用资金出借的银行或者金融机构,或者追溯到某个账户涉及的交易金额小且数量多,这样的账户会阻断交易溯源。但金额相对小且交易数量多的账户进行资金违规转移的成本高,通常不在违规使用资金的转移途径内。且交易金额小且数量多的违规资金转移,容易被单个银行直接发现,不需要银行间建立合作进行发现识别,不在本实施例讨论的范围。
[0020]
追溯行统计出款账户在预设时长内,使得交易金额总和与出款交易的交易金额相差在预设范围内的出款交易的数量记为n;发起行设置阈值n_max并公开,追溯行比较n和n_max的大小,若n》n_max,则将预设的终止追溯标识符关联收款交易id的哈希值上传追溯智能合约。将专用资金分散为若干部分,通过不同的账户转入违规账户,是常见的违规使用专用资金的方式。实践总结这种资金违规使用一般实践跨度不超过半个月,涉及账户通常不超过5个。本实施例中,若资金来源超过5个账户,因此n_max的值设置为5即可。比如账户c收到一笔专用资金,账户c在正常经营中将专用资金支付给了账户b。账户b在经营中还收到了账户d和账户e的资金。账户b将3比资金汇总后,在自身投资意愿下,将资金投入了股市或者房地产行业。此时,由于账户汇集的资金笔数少于5,则账户b所在银行会作为追溯行,将账户b在半个月内涉及的收款交易通过本实施例提供的方式共享到区块链上。最终会引发线下核实程序,经核实后确定非违规使用行为。
[0021]
同样的,若账户b半月内另外三个账户转入的资金连通账户c、账户d和账户e汇总后,转入账户a,则涉及到6笔收款交易,超过了n_max的值,此时账户b所在银行就不会共享账户b的收款交易信息,也不会触发线下核实程序。发起行发现无相关共享交易信息,也会判定账户a收到的资金来源较为分散,属于违规使用的情况的概率较低。
[0022]
进一步的,追溯行根据出款账户的历史惩戒记录,在预设范围内修正n_max的值,
若出款账户无历史惩戒记录,则保持n_max的值不变,若出款账户存在历史惩戒记录,则在预设的范围内增加n_max的值。
[0023]
任意银行在区块链上发布限时参照智能合约,限时参照智能合约包括若干个参照栏和接收栏,参照栏包括栏编号、剩余更新时长和m个样本点(xi,yi),i∈[1,m],剩余更新时长为0时,参照栏的样本点被更新,限时参照智能合约公开参照栏的栏编号和样本点。请参阅附图2,追溯行将收款交易信息采用限时加密算法加密的方法包括:步骤b01)将限时时长写入接收栏,限时参照智能合约读取限时时长后,选择相应剩余更新时长对应的参照栏,将参照栏的栏编号使用追溯行的公钥加密后写入接收栏;步骤b02)追溯行解密获得栏编号,读取参照栏的栏编号和m个样本点;步骤b03)追溯行生成随机整数n,n《m,生成一元多项式f(x),一元多项式经过m个样本点中的n个;步骤b04)计算剩余m-n个样本点与一元多项式的距离d,d=|f(xj)-yj|,(xj,yj)为样本点的坐标值,全部样本点与一元多项式的距离和记为样本距离;步骤b05)穷举过n个样本点的一元多项式,获得样本距离最小的一元多项式,记为加密多项式;步骤b06)将收款交易信息采用对称加密算法加密,获得交易密文,加密秘钥记为秘钥key,将交易密文上传区块链;步骤b07)使用加密多项式加密秘钥key,获得key密文,将key密文、栏编号和数值n使用发起行的公钥加密后,上传到区块链存储;步骤b08)发起行轮询区块链,使用私钥解密获得key密文、栏编号和数值n;步骤b09)发起行在限时内读取栏编号对应的参照栏的m个样本点;步骤b10)穷举过n个样本点的一元多项式,获得样本距离最小的一元多项式,记为复原加密多项式;步骤b11)使用复原加密多项式解密获得秘钥key,使用秘钥key解密获得收款交易信息。
[0024]
表1 参照智能合约的参照栏栏编号剩余更新时长样本点11d(1,26),(2,30),(3,64),(5,36),(7,28),(8,40)22d(2,16),(3,40),(5,29),(6,36),(7,39),(9,12)
……ꢀ
6060d(2,36),(3,50),(4,18),(6,26),(8,19),(9,20)
……ꢀ
9090d(1,67),(2,15),(3,37),(5,16),(7,47),(9,84)如表1中记载,参照智能合约公开了90个参照栏,每个参照栏有6个样本点。待更新时长从1d至90d,d表示天。即最长的限时时长为90天,最短的限时时长为1天。若选择第1个参照栏,完成限时加密,则第二天样本点就会被更新。更新后则无法再正确解密获得key,从而终止了交易信息的共享。栏编号为1参照栏在第二天更新后,剩余更新时长变为90d,相应的栏编号为90的参照栏的剩余更新时长则变为89d。
[0025]
追溯行选择栏编号为60的参照栏,即限时时长为60天。随机整数n的值取3,则从样本点组中选择3个样本点。如:(2,36),(3,50),(4,18),构成的一元多项式为f(x)=-23*x^2+129*x-130。一元多项式f(x)=-23*x^2+129*x-130与样本点(6,26)的距离为dist=|f(6)-26|=210。同样的计算获得一元多项式f(x)=-23*x^2+129*x-130与其他样本点的距离,计算获得距离和,记为样本距离。穷举6个样本点中选择3个样本点的组合,获得多个一元多项式。其中样本点距离最小的作为加密多项式。
[0026]
请参阅附图3,追溯行使用加密多项式加密秘钥key的方法包括:步骤c01)将秘钥
key转换为二进制流,按照预设长度截断为若干个二进制数b;步骤c02)生成数据组合(b1,x1,b2,x2,

,bn,xn,

),bi∈{0,1},使得b=∑(-1)^bi*f(xi),其中i∈[1,n],

为修正值;步骤c03)数据组合按顺序组成的集合即为key密文。
[0027]
将key转换为二进制表示为:01111011 01010011 01101001 01100111 01101110 01000001 00101100 01010011 01101001 01100111 01101110 01000010 00101100 00110001 00110000 00110000 00101100 00110001 00110110 00110100 00110111 00110101 00110000 00110110 00111001 00110110 00110100 01111101,共28个字节。以4字节截取获得7个二进制数,分别为:{2069064039,1849764947,1768386114,741421104,741422644,926232630,959853693}。加密多项式为f(x)=-23*x^2+129*x-130。二进制数b=2069064039d,可以表示为2069064039d=-f(9300)-f(1800)-f(530)+313219,即数据组合为(1, 9300,1,1800,1,530,313219)。
[0028]
本实施例的有益技术效果是:通过交易id的哈希值在不同金融机构之间实现交易的关联,借助限时加密使金融机构之间共享的交易信息扩散范围受到管控,有助于提高交易信息共享的安全性;借助改进的限时加密算法,能够提高限时加密的效率,同时降低对区块链节点算力的消耗。
[0029]
实施例二:基于区块链的关联交易溯源方法,本实施例对限时加密算法提出了新的技术方案。
[0030]
在实施例一中,若未获得正确的n值,每个样本点组仅包括了6个样本点,则通过6个样本点能够复原出6个加密多项式。通过穷举攻击能够轻易的破解限时加密。为此实施例一记载方案在实施时需要增加每个样本点组包含的数字对数量,比如增加到512个或者1024个样本点。当增加到512个样本点时,能够复原出512个加密多项式,仍然不足以提供足够的安全性保证。因此本实施例在实施例一的基础上,提供了新的技术方案。
[0031]
本实施例中,任意银行在区块链上发布限时参照智能合约,限时参照智能合约包括若干个参照栏和接收栏,参照栏包括栏编号、剩余更新时长和m个样本点(xi,yi),i∈[1,m],剩余更新时长为0时,参照栏的样本点被更新,限时参照智能合约公开参照栏的栏编号和样本点;追溯行将收款交易信息采用限时加密算法加密的方法包括:将限时时长写入接收栏,限时参照智能合约读取限时时长后,选择相应剩余更新时长对应的参照栏,将参照栏的栏编号使用追溯行的公钥加密后写入接收栏;追溯行解密获得栏编号,读取参照栏的栏编号和m个样本点;追溯行生成随机整数n,n《m,生成一元多项式f(x),一元多项式经过m个样本点中的n个;计算剩余m-n个样本点与一元多项式的距离d,d=|f(xj)-yj|,(xj,yj)为样本点的坐标值,全部样本点与一元多项式的距离和记为样本距离;穷举过n个样本点的一元多项式,按照样本距离升序排列一元多项式;选择其中一个一元多项式作为加密多项式,获得加密多项式排序的序号s;将收款交易信息采用对称加密算法加密,获得交易密文,加密秘钥记为秘钥key,将交易密文上传区块链;使用加密多项式加密秘钥key,获得key密文,将key密文、栏编号、数值n和序号s使用发起行的公钥加密后,上传到区块链存储;发起行轮询区块链,使用私钥解密获得key密文、栏编号和数值n;发起行在限时内读取栏编号对应的参照栏的m个样本点;穷举过n个样本点的一元多项式,按照样本距离升序排列一元多项式,序号s对应的一元多项式记为复原加密多项式;使用复原加密多项式解密获得秘钥key,使用
秘钥key解密获得收款交易信息。
[0032]
本实施例中,确定n的值后,穷举从m个数值对中选择n个数值对的组合。计算过每个组合中n个点的一元多项式,而后计算一元多项式的样本点距离。能够获得c(m,n)个一元多项式。将c(m,n)个一元多项式按照样本点距离升序排列,每个一元多项式将具有次序s。使得在每个n的值下,能够作为加密多项式的候选一元多项式的数量为c(m,n),通过次序s指定其中的一个作为加密多项式。
[0033]
如选择序号为60的数值对组,选定n的值为2,则能够生成15个一元多项式。一元多项式及相应的样本点距离如表2所示。
[0034]
表2 一元多项式及相应的样本点距离一元多项式样本点距离f(x)=14/1*x+8/1327f(x)=-9*x+54133f(x)=-2.5*x+4133f(x)=-17/6*x+125/334.3f(x)=-16/7*x+284/733.8f(x)=-32*x+146409f(x)=-8*x+7473f(x)=-31/5*x+343/558.6f(x)=-5390*x+6561f(x)=4*x+295f(x)=1/4*x+1759f(x)=2/5*x+82/559f(x)=-7/2*x+4737f(x)=-2*x+3835f(x)=x+1171当两个一元多项式的样本点距离相同时,按照一元多项式高次项系数的较小值排序在前进行排序。
[0035]
表3 样本点距离升序排列后的一元多项式次序s一元多项式样本点距离1f(x)=-2.5*x+41332f(x)=-16/7*x+284/733.83f(x)=-17/6*x+125/334.34f(x)=-2*x+38355f(x)=-7/2*x+47376f(x)=-31/5*x+343/558.67f(x)=1/4*x+17598f(x)=2/5*x+82/5599f(x)=-5390*x+656110f(x)=x+1171
11f(x)=-8*x+747312f(x)=4*x+29513f(x)=-9*x+5413314f(x)=14/1*x+8/132715f(x)=-32*x+146409如表3所示,为按照样本点距离升序排列后的一元多项式的排序,排序的次序s如表3中所记载。当选择n=2,s=9时,对应的加密多项式为f(x)=-5390*x+65。当每个数值对组包含6个数值对时,能够生成64个一元多项式。当每个数值对组包含48个数值对时,能够生成2^48个一元多项式。继续提高数值对组包含的数值对,即能够提供足够多的组合,应对穷举攻击。
[0036]
以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1