一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

区块链交易审计方法、装置、设备及存储介质与流程

2022-04-16 16:19:36 来源:中国专利 TAG:


1.本发明一般涉及区块链技术领域,具体涉及一种区块链交易审计方法、装置、设备及存储介质。


背景技术:

2.随着互联网技术的不断发展,区块链技术应运而生,其作为一种去中心化的分布式互联网数据库,是分布式存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,已经广泛应用到金融领域中,尤其是匿名区块链。其中,匿名区块链是一种可以隐藏交易双方和交易金额的区块链,例如zcash区块链,该链使用了零知识证明技术对交易的双方和交易的金额进行了加密处理,从而使其对第三方不可见。由于监管要求,一般会通过审计方需要对交易信息等链上数据进行审计,以发现上链数据是否符合审计要求,从而有利于促进金融机构内部控制,完善社会信用体系。
3.目前,相关技术中通过交易方将交易密钥提供给审计方,使得审计方采用交易密钥解密得到交易明文,然后对交易明文进行审计,但是该方法打破了交易方对交易数据的匿名性和隐私性,并且增加了交易明文发生泄漏的风险。


技术实现要素:

4.鉴于现有技术中的上述缺陷或不足的至少之一,期望提供一种区块链交易审计方法、装置、设备及存储介质,能够在不打破隐私保护的前提下对交易数据进行合规性审计,提高了交易数据的隐私性,进而减少了交易数据发生泄漏的风险。
5.第一方面,本发明提供了一种区块链交易审计方法,该方法包括:
6.从匿名区块链获取交易数据,所述交易数据包括交易标识、零知识证明公开见证信息和交易密文信息,所述匿名区块链用于隐藏交易发送方地址、交易接收方地址以及双方交易金额;
7.根据预设的审计规则,采用零知识工具编制与所述交易标识对应的零知识审计电路;
8.基于所述零知识审计电路,采用生成算法生成证明密钥和验证密钥,并发送所述证明密钥至交易发送方;
9.接收交易发送方发送的零知识证明文件,所述零知识证明文件是所述交易发送方采用零知识证明算法基于所述证明密钥、交易明文和交易密文生成的;
10.基于所述验证密钥和所述零知识证明文件对所述交易数据进行审计处理。
11.在其中一个实施例中,基于所述验证密钥和所述零知识证明文件对所述交易数据进行审计处理,包括:
12.判断所述交易数据是否属于所述匿名区块链上的链上交易;
13.若是,基于所述验证密钥验证所述零知识证明文件的正确性;
14.当验证所述零知识证明文件正确时,基于所述交易标识确定与所述交易标识对应
的审计类型;
15.验证所述交易数据是否符合与所述审计类型对应的审计规则。
16.在其中一个实施例中,判断所述交易数据是否属于所述匿名区块链上的链上交易,包括:
17.从所述交易数据中获取交易接收方公钥、交易金额、支票序号和承诺值;
18.对所述交易接收方公钥、交易金额和支票序号进行哈希处理,得到哈希结果;
19.将所述哈希结果与所述承诺值进行比对,得到比对结果;
20.当所述比对结果指示所述哈希结果与所述承诺值相等时,确定所述交易数据属于所述匿名区块链上的链上交易。
21.在其中一个实施例中,所述审计类型包括交易金额审计类型和黑名单审计类型。
22.在其中一个实施例中,当所述审计类型为交易金额审计类型时,验证所述交易数据是否符合与所述交易金额审计类型对应的审计规则,包括:
23.从与所述交易金额审计类型对应的审计规则中确定交易阈值;
24.判断交易金额是否小于所述交易阈值;
25.当所述交易金额小于所述交易阈值时,确定所述交易数据符合与所述交易标识对应的审计规则。
26.在其中一个实施例中,当所述审计类型为黑名单审计类型时,验证所述交易数据是否符合与所述黑名单审计类型对应的审计规则,包括:
27.分别从所述交易数据获取交易发送方的交易发送方公钥和交易接收方对应的交易接收方公钥,以及从与所述黑名单审计类型对应的审计规则中确定预设黑名单的黑名单公钥列表;
28.对所述黑名单公钥列表进行拆分处理,得到对应的公钥数组,所述公钥数组中包括多个公钥元素;
29.基于所述交易发送方公钥、所述交易接收方公钥和所述公钥数组,判断所述交易发送方和所述交易接收方是否存在所述黑名单中。
30.在其中一个实施例中,基于所述发送方公钥、所述接收方公钥和所述公钥数组,判断所述交易发送方和所述交易接收方是否存在所述黑名单中,包括:
31.分别将所述交易发送方和所述交易接收方作为待审计方,将所述交易发送方公钥和所述交易接收方公钥作为待审计方公钥;
32.基于所述待审计方公钥和所述公钥数组,判断所述待审计方是否存在于所述黑名单中。
33.在其中一个实施例中,基于所述待审计方公钥和所述公钥数组,判断所述待审计方是否存在于所述黑名单中,包括:
34.对所述待审计方公钥和与所述公钥数组中的每个公钥元素进行二进制处理,得到二进制格式的待审计方公钥和二进制格式的公钥元素;
35.将所述二进制格式的待审计方公钥与所述公钥数组中每个二进制格式的公钥元素进行异或运算处理,得到多个异或结果,所述异或结果的数量与所述公钥元素的数量相等;
36.将多个所述异或结果中的每个异或结果进行反向运算处理,得到对应的多个变量
结果;
37.对所述多个变量结果中除第一个变量结果外的其它变量结果进行相乘计算,得到乘积结果;
38.将所述多个变量结果中的第一个变量结果与所述乘积结果相乘,得到计算结果;
39.当所述计算结果为零时,确定所述待审计方存在所述黑名单中。
40.第二方面,本发明提供了一种区块链交易审计装置,该装置包括:
41.获取模块,用于从匿名区块链获取交易数据,所述交易数据包括交易标识、零知识证明公开见证信息和交易密文信息,所述匿名区块链用于隐藏交易发送方地址、交易接收方地址以及双方交易金额;
42.编制模块,用于根据预设的审计规则,采用零知识工具编制与所述交易标识对应的零知识审计电路;
43.生成模块,用于基于所述零知识审计电路,采用生成算法生成证明密钥和验证密钥,并发送所述证明密钥至所述交易发送方;
44.接收模块,用于接收交易发送方发送的零知识证明文件,所述零知识证明文件是所述交易发送方采用零知识证明算法基于所述证明密钥、所述交易明文和交易密文生成的;
45.审计模块,用于基于所述验证密钥和所述零知识证明文件对所述交易数据进行审计处理。
46.第三方面,本技术实施例提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述所述区块链交易审计方法。
47.第四方面,本技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述区块链交易审计方法。
48.综上所述,本技术提供的一种区块链交易审计方法、装置、设备及存储介质,通过从匿名区块链获取交易数据,该交易数据包括交易标识、零知识证明公开见证信息和交易密文信息,并根据预设的审计规则,采用零知识工具编制与交易标识对应的零知识审计电路,并基于零知识审计电路,采用生成算法生成证明密钥和验证密钥,并发送证明密钥至交易发送方,然后接收交易发送方发送的零知识证明文件,基于验证密钥和零知识证明文件对交易明文进行审计处理。该技术方案中审计方不能对交易密文进行解密,能够采用零知识证明的方式在不打破隐私保护的前提下对交易数据进行合规性审计,提高了交易数据的隐私性,进而减少了交易数据发生泄漏的风险。
附图说明
49.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本技术的其它特征、目的和优点将会变得更明显:
50.图1为本发明实施例提供的区块链交易审计系统结构示意图;
51.图2为本发明实施例提供的区块链交易审计方法的流程示意图;
52.图3为本发明实施例提供的匿名区块链中节点进行交易证明的流程示意图;
53.图4为本发明另一个实施例提供的区块链交易审计系统的结构示意图;
54.图5为本发明实施例提供的判断交易数据是否属于链上交易方法的流程示意图;
55.图6为本发明实施例提供的验证交易数据是否符合审计规则方法的流程示意图;
56.图7为本发明另一实施例提供的验证交易数据是否符合审计规则方法的流程示意图;
57.图8为本发明实施例提供的区块链交易审计装置的流程示意图;
58.图9为本发明实施例提供的计算机系统的结构示意图。
具体实施方式
59.下面结合附图和实施例对本技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
60.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。为了便于理解,下面对本技术实施例涉及的一些技术术语进行解释:
61.零知识证明:是指证明者能够在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或者更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。零知识证明具有完备性、合理性、零知识性等特点。
62.其中,完备性:是指如果证明方和验证方都是诚实的,并遵循证明过程的每一步,进行正确的计算,那么这个证明一定是成功的,验证方一定能够接受证明方。
63.合理性:是指没有人能够假冒证明方,使这个证明成功。
64.零知识性:是指证明过程执行完成之后,验证方只获得了“证明方拥有这个知识”的信息,而没有获得关于这个知识本身的任何信息。
65.zksnark(zero-knowledge succint non-interactive arguments of knowledge):可称为非交互式零知识证明,是指零知识证明的一个变体,它使得证明者能够简洁地使任何验证者相信给定论断的有效性,并且实现计算零知识,而不需要证明者与任何验证者之间进行交互。其具有以下用途:

被用于证明和验证计算的完整性,并以np声明表示;

一个掌握np生命验证部分知识的证明者,可以产生一个简洁的证明,证实了np声明的真实性;

任何人都可以验证这个简短的证明。其具有以下特点:
66.①
零知识性:是指证明者在证明的过程中不透露任何内情,验证者处理从证明中了解到声明真实性之外,什么也无法得到。
67.②
简洁性:是指验证过程不涉及大量数据传输,同时验证算法简单。
68.③
无交互性:证明需要证明者和验证者之间进行交互。
69.④
证明在计算上是证明的,即伪造假np声明的证明是不可行的。
70.⑤
该证明不仅证明np生命是真实的,而且证明者知道为什么是这样的。
71.如背景技术中提到的,匿名区块链作为一种可以隐藏交易双方和交易金额的区块链,已经广泛应用在金融科技等领域,其采用零知识证明机制,可提供安全的支付保密性,同时仍能够使用公有区块链来维护一个去中心化网络。其中,在由多方参与组成的联盟链中,各用户等交易方在匿名区块链上的交易行为并未得到规范,可能会出现某些用户滥用
区块链上计算资源和存储资源的问题,因此需要对匿名区块链上用户的交易行为进行审计监管,以保障匿名区块链网络的安全性和可用性。
72.目前,相关技术中可以通过交易方提供交易密钥至审计方,使得审计方用交易密钥解密得到交易明文,然后通过审计规则对交易明文进行审计,然而上述方法打破了交易方对交易数据的匿名性和隐私性,并且增加了交易明文发生泄漏的风险。
73.基于上述缺陷,本技术提供了一种区块链交易审计方法、装置、设备及存储介质。与现有技术相比,该技术方案中审计方不能对交易密文进行解密,能够采用零知识证明的方式在不打破隐私保护的前提下对交易数据进行合规性审计,提高了交易数据的隐私性,进而减少了交易数据发生泄漏的风险。
74.可以理解,本技术提供的区块链交易审计方法可以应用于区块链系统中,如图1为本技术应用场景下的系统结构图,该系统包括交易发送10、审计方20、交易接收方30和匿名区块链40。其中,匿名区块链40分别与所述交易发送方10、审计方20、交易接收方30之间进行通信,交易发送方10与审计方20之间进行通信。
75.上述交易方10可以是交易数据发起方使用的客户端,该交易数据例如可以是转账交易。上述审计方20可以为受匿名区块链信任的审计过程执行方,可以为区块链网络中的节点,也可以不是区块链网络中的节点,其与区块链网络中的每一节点进行通信连接。上述交易接收方30可以是交易数据接收方使用的客户端。
76.上述匿名区块链40包括多个区块链节点,每两个区块链节点之间可以进行通信。可选的,上述交易发送方10、交易接收方30或审计方20可以运行在终端设备上,该终端设备可以是笔记本电脑、平板电脑、台式电脑、智能手机等移动式便携终端,或者该电子设备可以是智能眼镜、智能手表等智能可穿戴设备,本实施例对此不进行具体限定。上述匿名区块链40可以是服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。
77.交易发送方10用于向匿名区块链40发送私密交易数据,以及用于从审计方获取交易标识,根据交易标识判断该交易是否与自身相关,若相关则接收审计方发送的证明密钥,采用零知识证明算法基于证明密钥、交易明文和交易密文生成零知识证明文件并发送至审计方。
78.交易接收方30用于交易接收方用于从匿名区块链获取私密交易数据,并对该交易数据中的交易密文进行解密处理,获取解密后的交易明文。
79.审计方20用于从匿名区块链获取交易数据,并根据预设的审计规则,采用零知识工具编制与交易标识对应的零知识审计电路,并基于零知识审计电路,采用生成算法生成证明密钥和验证密钥,并发送证明密钥至交易发送方,以及用于接收交易发送方发送的零知识证明文件,基于验证密钥和零知识证明文件对交易数据进行审计处理。
80.上述匿名区块链40用于接收交易发送方发送的交易数据,且上述匿名区块链中的节点可以通过零知识证明的方式验证交易数据是否合法,当合法时,将该交易数据进行上链存储;当不合法时,返回错误提示。以及用于向审计方和交易接收方发送交易数据。其中,上述匿名区块链能够隐藏交易发送方地址、交易接收方地址以及双方交易金额等关键数据。
81.终端设备与服务器之间可以通过有线或无线网络建立通信连接。可选的,上述的
无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(local area network,lan)、城域网(metropolitan area network,man)、广域网(wide area network,wan)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。
82.为了便于理解和说明,下面通过图2至图9详细说明本技术实施例提供的区块链交易审计方法、装置、设备及存储介质。
83.图2为本技术实施例提供的区块链交易审计方法的流程示意图,如图2所示,该方法可以应用于审计方,该方法包括:
84.s101、从匿名区块链获取交易数据,交易数据包括交易标识、零知识证明公开见证信息和交易密文信息,匿名区块链用于隐藏交易发送方地址、交易接收方地址以及双方交易金额。
85.具体的,交易发送方可以向匿名区块链发送交易数据,该交易数据可以包括交易标识、零知识证明公开见证信息和交易密文信息,其中,交易密文信息只有交易接收方可以解密,零知识证明公开见证信息包括证明交易合法的零知识证明文件和该证明的相关参数,该相关参数可以包括公开见证参数:交易中的默克尔树根、交易中的cm1值、交易中的cm2值、交易中的nf值。匿名区块链中的节点只能验证该交易是否合法但无法得知交易发送方地址、交易接收方地址和双方交易金额等关键数据。
86.匿名区块链在接收到交易数据后,通过匿名区块链中的节点采用零知识证明的方式验证交易数据是否合法,当合法时将交易数据进行上链存储。匿名区块链可以将交易数据打包成区块并发送至审计方,使得审计方从匿名区块链获取交易数据。为了更清楚的理解本技术中的匿名区块链,以下为匿名区块链的相关原理。首先是对匿名区块链中的相关参数的介绍:
87.账户account中包含的参数:
88.sk:用户私钥,是一个随机数;
89.pk:用户公钥/地址,通过用户私钥进行mimc_hash算法得来。
90.支票note中包含的参数有:
91.pk:支票归属人地址;v:金额;r:随机数,支票序号。
92.支票确认hash中包含的参数:
93.commitment:新生成note的pk v r拼接后mimc_hash结果;
94.commitment set:节点维护的所有commitment的集合。
95.支票消费hash中包含的参数:
96.nullfiller:被消费note的sk r拼接后mimc_hash的结果;
97.nullfiller set:节点维护的所有nullfiller的集合。
98.默克尔root中包含的参数:
99.root:commitment set组成的默克尔树的根hash;
100.交易tx中包含的参数:
101.root:commitment默克尔树根hash;
102.nf:被消费note的nullfiller值;
103.cm1:新生成note的commitment值;
104.cm2:找零note的commitment值;
105.ekey1:被新生成note中pk加密后的密钥,可以通过对应sk解密;
106.ekey2:被找零note中pk加密后的密钥,可以通过对应sk解密;
107.cdata1:被ekey1加密后新生成note的密文;
108.cdata2:被ekey2加密后找零note的密文;
109.proof:该交易的证明。
110.交易证明proof中包含的参数:
111.public:公开见证参数:
112.root:交易中的默克尔树树根;cm1:交易中的cm1值;cm2:交易中的cm2值;nf:交易中的nf值。
113.private:私有见证参数(交易发送方传入):
114.sk_in:交易发送方的私钥,消费note中pk对应的sk;v_in:消费note对应的v;r_in:消费note对应的r;merkle_nodes:消费note commitment对应的默克树路径;pk1_out:新note中的pk(接收方pk);v1_out:新note中的v;r1_out:新note中的r;pk2_out:找零note的pk(发送方的pk);v2_out:找零note的v;r2_out:找零note的r。
115.需要说明的是,该匿名区块链的原理满足utxo(unspent transaction outputs)模型。其中,utxo模型是指关联比特币地址的比特币金额的集合,是一个包含数据和可执行代码的数据结构。例如,交易发送方向交易接收方转账,当消费note的金额大于新生成note金额时,则会生成找零的note,该note中的pk指向交易发送方;当消费note金额等于新生成note金额时,则不生成找零note。即:
116.v_in=v1_out v2_out;
117.其中,v_in是指消费note对应的v;v1_out是指新note中的v;v2_out是指找零note的v。
118.进一步地,图3为匿名区块链中节点进行交易证明过程的流程示意图,请参见图3所示,该图中包括私有witness、公开witness和中间生成参数。可以对交易发送方的私钥sk_in进行哈希运算处理,得到交易发送方的公钥pk_in,即可以通过mimc_hash(sk_in)=》pk_in表示。可以将交易发送方的公钥pk_in、消费note对应的金额v_in、消费note对应的支票序号r_in进行哈希运算处理,得到交易发送方消费的commitment,即可以通过mimc_hash(pk_in v_in r_in)=》交易发送方消费的commitment表示。可以通过默克尔证明计算出默克尔树根merkle_root,如果与交易中的root相等,则证明该commitment存在于交易commitment列表中且归属于交易发送方。
119.其中,可以判断v_in与v1_out v2_out之和是否相等,即通过v_in==v1_out v2_out表示,证明utxo是否合法;当v_in与v1_out v2_out之和相等时,证明utxo合法;当v_in与v1_out v2_out之和不相等时,证明utxo不合法。可以将交易发送方的私钥sk_in和消费note对应的支票序号r_in进行哈希运算处理,得到被消费note的nullfiller值;还可以判断将交易发送方的私钥sk_in和消费note对应的支票序号r_in进行哈希运算处理得到的结果与被消费note的nullfiller值是否相等,证明nf是否合法,可以通过mimc_hash(sk_in r_in)==nf表示,当该结果与nf相等时,证明nf为合法;当不相等时,证明nf为不合法。还可以判断交易发送方的公钥pk_in与找零note的交易发送方的公钥pk2_out是否相等,即可
以通过pk_in==pk2_out表示,证明utxo是否合法;当相等时,证明utxo为合法;当不相等时,证明utxo为不合法。还可以将新note中的pk(接收方的pk)pk1_out、新note中的金额v1_out、新note中的支票序号r1_out进行哈希运算得到新生成note的commitment值cm1,可以通过(pk1_out v1_out r1_out)=》cm1表示。还可以将找零note的pk(发送方的pk)pk2_out、找零note的金额v2_out、找零note的支票序号r2_out进行哈希运算得到找零note的commitment值cm2,可以通过(pk2_out v2_out r2_out)=》cm2表示。
120.需要说明的是,匿名区块链中的节点在接收到交易数据后,可以将nf添加到nullfiller set并判断是否有重复,cm1和cm2添加到commitment set并判断是否有重复,防止双花。节点还可以通过零知识证明验证proof,判断交易是否合法。
121.本实施例中的匿名区块链不仅可以实现交易过程中对交易金额和交易双方地址的双重隐藏,而且能够能够验证交易是否合法为整个零知识审计工具提供假设依赖项。
122.s102、根据预设的审计规则,采用零知识工具编制与交易标识对应的零知识审计电路。
123.本步骤中,上述零知识工具可以是基于zksnark的工具库,例如可以采用c 的libsnark,golang的gnark,还有用于以太坊的zokrates。
124.其中,gnark是一个以零知识执行和验证算法的框架,它提供了高级api,并且采用go语言,使用类似go的dsl描述电路。可选的,审计方在从匿名区块链获取到交易数据后,可以根据预设的审计规则,通过golang与gnark api编制与交易标识对应的零知识审计电路。
125.需要说明的是,上述审计规则可以是审计人员预先根据不同的审计类型自定义的,可以包括审计转账金额是否超出阈值,或者交易账户黑名单审计等。例如当审计类型为交易金额审计时,对应的审计规则为交易金额不超过1000元;又如当审计类型为黑名单审计时,对应的审计规则为交易发送方和交易接收方均不在预设的黑名单中。
126.可选的,请参见图4所示,交易发送方可以向匿名区块链发送私密交易数据,且只有交易接收方能够对从匿名区块链获取到的私密交易数据进行解密。可选的,审计方可以包括审计员和审计平台,匿名区块链可以将交易数据进行打包成区块,使得审计员可以通过区块获取账本信息并解析得到交易数据,从而获取到交易标识txid等交易明文信息,审计员采用零知识工具,根据预设的审计规则编制与交易标识对应的零知识审计电路之后,可以通过审计平台进行公开发布,使得交易发送方基于交易标识判断该待审计的交易数据是否与自身相关,如果相关,则从审计平台下载零知识审计电路和审计工具,在本地通过工具离线生成零知识证明文件,并上传至审计平台,从而使得审计员下载零知识证明文件并进行验证,如果验证通过,则表示符合审计规则;如果验证不通过则表示不符合审计规则。
127.s103、基于零知识审计电路,采用生成算法生成证明密钥和验证密钥,并发送证明密钥至交易发送方。
128.本实施例中,在编制得到零知识审计电路后,可以通过gnark库提供的frontend.compile()方法将零知识审计电路编译为电路文件,其中,该电路文件例如可以是r1cs格式文件。然后通过执行gnark库中的setup命令,基于零知识审计电路生成用于提供证明文件proof的证明密钥proving key和用于验证证明的验证密钥verifying key。并将证明密钥发送至交易发送方。其中,验证密钥和证明密钥相对应。
129.s104、接收交易发送方发送的零知识证明文件,零知识证明文件是交易发送方采
用零知识证明算法基于证明密钥、交易明文和交易密文生成的。
130.具体的,交易发送方在接收到证明密钥后,可以采用零知识证明算法基于证明密钥、交易明文和交易密文生成零知识证明文件并发送至审计方,使得审计方接收到零知识证明文件。可选的,可以通过零知识证明工具中的generateproof(pk,witness)生成零知识证明文件,其中,pk是指证明密钥,witness是指交易数据中的交易明文和交易密文。
131.s105、基于验证密钥和零知识证明文件对交易数据进行审计处理。
132.本步骤中,在基于验证密钥和零知识证明文件对交易数据进行审计处理时,可以先判断交易数据是否属于匿名区块链上的链上交易,如果判断出属于匿名区块链上的链上交易,则基于验证密钥验证零知识证明文件的正确性,可以根据验证密钥、零知识证明文件和公开数据采用验证算法验证证明文件的正确性;如果判断出不属于匿名区块链上的链上交易,则返回错误提示。
133.当验证零知识证明文件正确时,基于交易标识确定与交易标识对应的审计类型,并验证交易数据是否符合与审计类型对应的审计规则。其中,该审计类型可以包括交易金额审计类型或黑名单审计类型。
134.作为一种可实现方式,图5为本技术实施例提供的判断交易数据是否属于匿名区块链上的链上交易方法的流程示意图。如图5所示,该方法包括:
135.s201、从交易数据中获取交易接收方公钥、交易金额、支票序号和承诺值。
136.s202、对交易接收方公钥、转账金额和支票序号进行哈希处理,得到哈希结果。
137.s203、将哈希结果与承诺值进行比对,得到比对结果。
138.s204、当比对结果用于指示哈希结果与承诺值相等时,确定交易数据属于匿名区块链上的链上交易。
139.具体的,为了更准确地验证交易数据是否符合对应的审计规则,需要首先验证交易数据是否属于匿名区块链上的链上交易,可以从交易数据中获取交易接收方公钥、交易金额、支票序号和交易中的承诺值。其中,该支票序号可以为随机数。
140.然后对交易接收方公钥、转账金额和支票序号进行哈希处理,得到哈希结果,并将哈希结果与承诺值进行比对,判断哈希结果是否与承诺值相等,从而得到比对结果,当比对结果用于指示哈希结果与承诺值相等时,确定交易数据属于匿名区块链上的链上交易;当比对结果用于指示哈希结果与承诺值不相等时,确定交易数据不属于匿名区块链上的链上交易,并返回错误提示。
141.本实施例中通过验证交易数据是否属于匿名区块链上的链上交易,能够证明该交易数据是否为真,进而在该交易数据为真的基础上验证交易数据是否符合审计规则,从而提高审计效率。
142.作为一种可实现方式,在上述实施例的基础上,当审计类型为交易金额审计类型时,图6为验证交易数据是否符合审计规则方法对应的流程示意图,如图6所示,该方法包括:
143.s301、从与交易金额审计类型对应的审计规则中确定交易阈值。
144.s302、判断交易金额是否小于交易阈值。
145.s303、当交易金额小于交易阈值时,确定交易数据符合与交易标识对应的审计规则。
146.本实施例中,当审计类型为交易金额审计类型时,上述与交易金额审计类型对应的审计规则可以包括审计交易金额是否超出阈值,且主要审计作用于审计接收方。
147.具体的,上述与交易金额审计类型对应的审计规则对应的电路代码可以参见如下表示:
[0148][0149]
具体地,可以首先判断该交易数据是否属于匿名区块链上的链上交易,通过从交易数据中获取交易接收方公钥pk1_out、交易金额v1_out、支票序号r1_out和承诺值cm1,然后对交易接收方公钥pk1_out、交易金额v1_out和支票序号r1_out进行哈希处理,得到哈希结果,将哈希结果与所述承诺值cm1进行比对,得到比对结果,当比对结果指示哈希结果与承诺值相等时,确定交易数据属于所述匿名区块链上的链上交易。
[0150]
当判断出属于匿名区块链上的链上交易时,然后基于交易数据中确定交易金额v1_out,并从与交易金额审计审计类型对应的审计规则中确定交易阈值bound,其中,该交易阈值可以是何根据交易数据预先根据实际需求自定义设置的。
[0151]
然后判断交易金额v1_out是否小于交易阈值bound,当交易金额v1_out小于交易阈值bound时,确定交易数据符合与交易标识对应的审计规则;当交易金额v1_out不小于交易阈值bound时,表示交易金额已经超出阈值,从而确定交易数据不符合与交易标识对应的审计规则。
[0152]
本实施例中通过预先设计好与交易金额审计类型对应的审计规则,能够使得审计方可以在无需解密密文的前提下对交易金额进行合规性审计,以达到穿透式监管的目标。
[0153]
作为另一种可实现方式,在上述实施例的基础上,当审计类型为黑名单审计类型时,图7为验证所述交易数据是否符合审计规则方法对应的流程示意图,如图7所示,该方法包括:
[0154]
s401、分别从交易数据获取交易发送方的交易发送方公钥和交易接收方对应的交易接收方公钥,以及从与黑名单审计类型对应的审计规则中确定预设黑名单的黑名单公钥列表。
[0155]
s402、对黑名单公钥列表进行拆分处理,得到对应的公钥数组,公钥数组中包括多个公钥元素。
[0156]
s403、基于交易发送方公钥、交易接收方公钥和公钥数组,判断交易发送方和交易接收方是否存在黑名单中。
[0157]
具体的,当审计类型为黑名单审计类型时,上述与黑名单审计类型对应的审计规则可以包括审计交易发送方和交易接收方是否存在于黑名单中,且主要审计作用于审计发送方和审计接收方。
[0158]
具体的,上述与黑名单审计类型对应的审计规则对应的电路代码可以参见如下表示:
[0159][0160]
具体地,可以首先判断该交易数据是否属于匿名区块链上的链上交易,通过从交易数据中获取交易接收方公钥pk1_out、交易金额v1_out、支票序号r1_out和承诺值cm1,然后对交易接收方公钥pk1_out、交易金额v1_out和支票序号r1_out进行哈希处理,得到哈希结果,将哈希结果与所述承诺值cm1进行比对,得到比对结果,当比对结果指示哈希结果与承诺值相等时,确定交易数据属于所述匿名区块链上的链上交易。
[0161]
当判断出交易数据属于匿名区块链上的链上交易时,可以采用assertisinarray()判断交易发送方和交易接收方是否存在于黑名单中,零知识证明需要将证明的逻辑过程最终收敛为l*r==o的表达式。通过分别将交易发送方和交易接收方作为待审计方,将交易发送方公钥和交易接收方公钥作为待审计方公钥,基于待审计方公钥和公钥数组pk数组,判断待审计方是否存在于黑名单list中。
[0162]
该步骤中,在基于待审计公钥交易和公钥数组,判断待审计方是否存在于黑名单list中,可以通过对待审计方公钥与公钥数组中的每个公钥元素进行二进制处理,得到二进制格式的待审计公钥和二进制格式的公钥元素,并将二进制格式的待审计公钥与公钥数组中的每个二进制格式的公钥元素进行异或运算处理,得到多个异或结果,该异或结果的数量与公钥元素的数量相等,并将多个异或结果中的每个异或结果进行反向运算处理,得到多个对应的变量结果,然后对多个变量结果中除第一个变量结果外的其余变量结果进行
相乘计算,得到乘积结果,并将多个变量结果中的第一个变量结果与乘积结果相乘,得到计算结果,当计算结果为零时,确定待审计方存在黑名单中;当计算结果不为零时,确定待审计方不存在于黑名单中。
[0163]
示例性地,以待审计公钥为交易发送方公钥pk_in为例,首先将黑名单公钥列表list进行拆分处理,得到对应的公钥数组pk数组,该pk数组中包括多个公钥元素,然后将交易发送方公钥pk_in与pk数组中每个元素进行二进制tobinary()运算,得到二进制格式的交易发送方公钥pk_in和二进制格式的公钥元素,将二进制格式的交易发送方公钥pk_in与pk数组中每个二进制格式的公钥元素进行异或运算处理,得到多个异或结果x1,x2,x3...,然后将每个异或结果x1,x2,x3...进行反向运算处理,得到对应的多个变量结果,然后将多个变量结果中除第一个变量结果外的其它变量结果x2,x3,x4..进行相乘计算,得到乘积结果xn,并设定l=x1,r=xn,o=0,如果list中存在交易发送方,则异或运算过程中一定有结果0,反之,不会出现结果0,因此,当l*r==o时,说明list中存在交易发送方,否则,说明list中不存在交易发送方。同理,可以采用该方法判断list中是否存在交易接收方。
[0164]
本技术提供的一种区块链交易审计方法,通过从匿名区块链获取交易数据,该交易数据包括交易标识,并根据预设的审计规则,采用零知识工具编制与交易标识对应的零知识审计电路,并基于零知识审计电路,采用生成算法生成证明密钥和验证密钥,并发送证明密钥至交易发送方,然后接收交易发送方发送的零知识证明文件,基于验证密钥和零知识证明文件对交易明文进行审计处理。该技术方案中审计方不能对交易密文进行解密,能够采用零知识证明的方式在不打破隐私保护的前提下对交易数据进行合规性审计,提高了交易数据的隐私性,进而减少了交易数据发生泄漏的风险。
[0165]
应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0166]
另一方面,图8为本技术实施例提供的区块链交易审计装置的结构示意图。如图8所示,该装置包括:
[0167]
获取模块10,用于从匿名区块链获取交易数据,交易数据包括交易标识、零知识证明公开见证信息和交易密文信息,匿名区块链用于隐藏交易发送方地址、交易接收方地址以及双方交易金额;
[0168]
编制模块20,用于根据预设的审计规则,采用零知识工具编制与交易标识对应的零知识审计电路;
[0169]
生成模块30,用于基于零知识审计电路,采用生成算法生成证明密钥和验证密钥,并发送证明密钥至交易发送方;
[0170]
接收模块40,用于接收交易发送方发送的零知识证明文件,零知识证明文件是交易发送方采用零知识证明算法基于证明密钥、交易明文和交易密文生成的;
[0171]
审计模块50,用于基于验证密钥和零知识证明文件对交易数据进行审计处理。
[0172]
可选的,审计模块50,用于:
[0173]
判断交易数据是否属于匿名区块链上的链上交易;
[0174]
若是,基于验证密钥验证零知识证明文件的正确性;
[0175]
当验证零知识证明文件正确时,基于交易标识确定与交易标识对应的审计类型;
[0176]
验证交易数据是否符合与审计类型对应的审计规则。
[0177]
可选的,审计模块50,具体用于:
[0178]
从交易数据中获取交易接收方公钥、交易金额、支票序号和承诺值;
[0179]
对交易接收方公钥、交易金额和支票序号进行哈希处理,得到哈希结果;
[0180]
将哈希结果与承诺值进行比对,得到比对结果;
[0181]
当比对结果指示哈希结果与承诺值相等时,确定交易数据属于匿名区块链上的链上交易。
[0182]
可选的,审计类型包括交易金额审计类型或黑名单审计类型。
[0183]
可选的,审计模块50,具体用于:
[0184]
从与交易金额审计类型对应的审计规则中确定交易阈值;
[0185]
判断交易金额是否小于交易阈值;
[0186]
当交易金额小于交易阈值时,确定交易数据符合与交易标识对应的审计规则。
[0187]
可选的,审计模块50,具体用于:
[0188]
分别从交易数据获取交易发送方的交易发送方公钥和交易接收方对应的交易接收方公钥,以及从与黑名单审计类型对应的审计规则中确定预设黑名单的黑名单公钥列表;
[0189]
对黑名单公钥列表进行拆分处理,得到对应的公钥数组,公钥数组中包括多个公钥元素;
[0190]
基于交易发送方公钥、交易接收方公钥和公钥数组,判断交易发送方和交易接收方是否存在黑名单中。
[0191]
可选的,审计模块50,具体用于:
[0192]
分别将交易发送方和交易接收方作为待审计方,将交易发送方公钥和交易接收方公钥作为待审计方公钥;
[0193]
基于待审计方公钥和公钥数组,判断待审计方是否存在于黑名单中。
[0194]
可选的,审计模块50,具体用于:
[0195]
对待审计方公钥和与公钥数组中的每个公钥元素进行二进制处理,得到二进制格式的待审计方公钥和二进制格式的公钥元素;
[0196]
将二进制格式的待审计方公钥与公钥数组中每个二进制格式的公钥元素进行异或运算处理,得到多个异或结果,异或结果的数量与公钥元素的数量相等;
[0197]
将多个异或结果中的每个异或结果进行反向运算处理,得到对应的多个变量结果;
[0198]
对多个变量结果中除第一个变量结果外的其它变量结果进行相乘计算,得到乘积结果;
[0199]
将多个变量结果中的第一个变量结果与乘积结果相乘,得到计算结果;
[0200]
当计算结果为零时,确定待审计方存在黑名单中。
[0201]
本实施例提供的区块链交易审计装置,可以执行上述方法的实施例,其实现原理和技术效果类似,在此不再赘述。
[0202]
下面参考图9,其示出了适于用来实现本技术实施例的的计算机系统600的结构示
意图,该计算机系统可以应用于服务器。
[0203]
如图9所示,计算机系统600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分603加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram 603中,还存储有系统600操作所需的各种程序和数据。cpu601、rom602以及ram 603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
[0204]
以下部件连接至i/o接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
[0205]
特别地,根据本技术公开的区块链交易审计方法的实施例,上文参考图6描述的过程可以被实现为计算机软件程序。例如,本技术公开的主控模块的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,该计算机程序包含用于执行图2-图4的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分605从网络上被下载和安装,和/或从可拆卸介质611被安装。
[0206]
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0207]
而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0208]
附图中的流程图和框图,图示了按照本技术各种计算机系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执
行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0209]
描述于本技术实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块、编制模块、生成模块、接收模块及审计模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,获取模块还可以被描述为“用于从匿名区块链获取交易数据,所述交易数据包括交易标识、零知识证明公开见证信息和交易密文信息,所述匿名区块链用于隐藏交易发送方地址、交易接收方地址以及双方交易金额”。
[0210]
作为另一方面,本技术还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中前述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,前述程序被一个或者一个以上的处理器用来执行描述于本技术的区块链交易审计方法,具体执行:
[0211]
从匿名区块链获取交易数据,所述交易数据包括交易标识、零知识证明公开见证信息和交易密文信息,所述匿名区块链用于隐藏交易发送方地址、交易接收方地址以及双方交易金额;
[0212]
根据预设的审计规则,采用零知识工具编制与所述交易标识对应的零知识审计电路;
[0213]
基于所述零知识审计电路,采用生成算法生成证明密钥和验证密钥,并发送所述证明密钥至交易发送方;
[0214]
接收交易发送方发送的零知识证明文件,所述零知识证明文件是所述交易发送方采用零知识证明算法基于所述证明密钥、交易明文和交易密文生成的;
[0215]
基于所述验证密钥和所述零知识证明文件对所述交易数据进行审计处理。
[0216]
综上所述,本技术提供的一种区块链交易审计方法、装置、设备及存储介质,通过从匿名区块链获取交易数据,该交易数据包括交易标识、零知识证明公开见证信息和交易密文信息,并根据预设的审计规则,采用零知识工具编制与交易标识对应的零知识审计电路,并基于零知识审计电路,采用生成算法生成证明密钥和验证密钥,并发送证明密钥至交易发送方,然后接收交易发送方发送的零知识证明文件,基于验证密钥和零知识证明文件对交易明文进行审计处理。该技术方案中审计方不能对交易密文进行解密,能够采用零知识证明的方式在不打破隐私保护的前提下对交易数据进行合规性审计,提高了交易数据的隐私性,进而减少了交易数据发生泄漏的风险。
[0217]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0218]
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/
或者将一个步骤分解为多个步骤执行等。通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献