一种基于不可区分混淆的链上多机构信用评估方法与系统
文献发布时间:2024-04-18 20:00:50
技术领域
本发明属于信息安全数据处理领域,涉及一种基于不可区分混淆的链上多机构信用评估方法与系统。特别涉及针对恶意数据挖掘攻击,满足用户数据隐私保护及不同数据机构之间安全共享的需要,保证在不泄露数据的同时正确对用户进行信用评估,以不可区分混淆(indistinguishability Obfuscation,iO)和简洁非交互零知识证明(zero-knowledge Succinct Non-interactive Argument of Knowledge,zk-SNARK)为核心工具,结合承诺和公钥加密算法,利用区块链(Blockchain),设计了一种基于不可区分混淆的链上多机构信用评估方法与系统。
背景技术
随着社会的发展与信息技术的成熟,数字信用扮演着越来越重要的角色,对社会和经济的发展的影响力越来越强。因此,信用评估的作用越来越重要,银行对用户的信用评估主要是请求中国人民银行征信机构根据用户的金融交易记录进行评估;电商主要是根据用户的交易记录、贷还款记录等进行评估,其他机构也会根据自己的数据进行信用评估。
对于不同的机构来说,由于竞争关系或其他原因是不愿意泄露自己内部用户的信用数据,导致数据不公开、不透明、不共享,进而不能全面地对用户进行信用评估。另外,即使用户的信用数据共享,大多数情况下,信用信息是以明文形式公开的,极易导致个人信息泄露。基于此,如何在保护用户和多方信用数据机构的信息的基础上满足信用评估的需求,成为了信息处理技术领域与信息安全领域的热点。
2001年,Barak等人给出了程序混淆的形式化定义及虚拟黑盒(VBB)混淆的安全性要求,但他们证明了通用函数(任意大小、深度和功能的电路)达到完美虚拟黑盒安全功能的混淆是不可能实现的。随后,他们提出了较弱的混淆的概念---不可区分混淆(indistinguishability Obfuscation,iO),对于任意两个大小相似用于计算相同函数的电路C
零知识证明技术(Zero-Knowledge Proof),是由S.Goldwasser等人在20世纪80年代初提出的。它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或多方的协议,即两方或多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。大量事实证明,零知识证明在密码学中非常有用。如果能够将零知识证明用于验证,将可以有效解决许多问题。
简洁非交互零知识证明(zero-knowledge Succinct Non-interactive Argumentof Knowledge,zk-SNARK)是一种特殊的零知识证明,在具有零知识证明的特性同时,具有简洁性、非交互性,即证明者生成的证明很小和双方不需要进行交互即可完成证明。由此可知,简洁非交互零知识证明可用于保护各机构中用户信用数据的隐私保护,当被询问某人的信用情况时,只发送信用数据的密文形式以及零知识证明,通过零知识证明来证明信息是正确的。
区块链(Blockchain)技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。简单来讲,在区块链系统中,每过一段时间,各参与主体产生的交易数据会被打包成一个数据区块,数据区块按照时间顺序依次排列,形成数据区块的链条,各参与主体拥有同样的数据链条,且无法单方面篡改,任何信息的修改只有经过约定比例的主体同意方可进行,并且只能添加新的信息,无法删除或修改旧的信息,从而实现多主体间的信息共享和一致决策,确保各主体身份和主体间交易信息的不可篡改、公开透明。由此可知,区块链可用于存放多方信用数据机构在与用户交易过程中产生的信用信息的承诺和征信机构生成的各类数据的权重的承诺,并部署多种智能合约实现数据上传、数据验证及信用评分计算。
发明内容
针对现有技术中的问题,本发明通过区块链实现数据的不可篡改性,公钥加密、零知识证明及不可区分混淆的隐私保护和正确计算,实现一种基于不可区分混淆的链上多机构信用评估方法与系统,以解决上述技术问题。
本发明的一种基于不可区分混淆的链上多机构信用评估方法与系统的具体技术方案如下:
一种基于不可区分混淆的链上多机构信用评估方法与系统,包括以下步骤:
步骤1:系统初始化;授权机构对用户、多方信用数据机构、征信机构及放贷机构进行注册,并创建多个智能合约以及给不同的机构授予相应的运行权限;进一步地,具体包括如下步骤:
步骤1.1:授权机构设计信用数据与承诺一致性检查的算数电路和信用数据正确性验证算数电路,并生成相应的两组证明密钥及验证密钥;同时,授权机构调用承诺方案的初始化算法和加密方案的初始化算法分别生成承诺密钥及加密密钥和解密密钥;
步骤1.2:授权机构在区块链节点上部署数据更新智能合约、简洁非交互零知识证明验证智能合约及基于不可区分混淆的通用信用评分计算智能合约;
步骤1.3:用户及其他各种机构向授权机构进行注册申请;同时多方信用数据机构、征信机构及放贷机构向授权机构申请运行智能合约的权限和证明密钥、承诺密钥及加密密钥等;
步骤1.4:授权机构审核材料并决定是否同意注册申请,若同意,则向用户返回唯一的身份标识符;向多方信用数据机构返回唯一的标识符及相应的证明密钥、承诺密钥、加密密钥;向征信机构返回唯一标识符及相应的证明密钥、承诺密钥、加密密钥;向放贷机构返回唯一标识符;同时授予多方信用数据机构和征信机构运行数据更新智能合约的权限,授予放贷机构运行简洁非交互零知识证明验证及基于不可区分混淆的通用信用评分计算智能合约的权限。
步骤1.5:征信机构生成各类数据的权重值并运行承诺算法对各类数据的权重值进行承诺且使用简洁非交互零知识证明生成算法生成证明,其中承诺与权重值满足一致性关系(承诺的确由对应的权重值生成),最后运行数据更新智能合约将承诺和证明上传至区块链;
步骤2:信用数据生成;用户与多方信用数据机构进行资金往来从而产生相对应的信用数据;进一步地,具体包括如下步骤:
步骤2.1:假设用户与信用数据结构进行资金往来,将自己身份标识符使用随机函数进行匿名化后发送给信用数据机构;
步骤2.2:信用数据机构产生相应的用户信用数据,不同的信用数据机构产生独立的信用数据;
步骤3:用户信用数据上传;多方信用数据机构生成信用数据的承诺和证明数据承诺一致性的零知识证明,并通过数据更新智能合约上传到区块链;进一步地,具体包括如下步骤:
步骤3.1:多方信用数据机构使用承诺算法对用户的信用数据进行承诺,并运行简洁非交互零知识证明生成算法生成零知识证明,其中承诺与用户数据满足一致性NP关系(承诺的确由对应的用户数据生成);
步骤3.2:多方信用数据机构使用数据更新智能合约将用户数据的承诺及零知识证明上传到区块链;
步骤4:填写贷款请求;用户向放贷机构提出贷款申请时,填写贷款业务请求,将自己的身份信息匿名化发送给放贷机构;
步骤5:信用评分计算初始化;放贷机构根据贷款业务请求指定信用评分计算函数,并使用用户身份信息运行区块链上的信用评分计算智能合约进行信用评分计算;进一步地,具体包括如下步骤:
步骤5.1:在收到用户的贷款业务请求和匿名身份信息后,放贷机构制定相对应的信用评分计算函数,并将用户的匿名唯一标识符和函数输入到基于不可区分混淆的通用信用评分计算智能合约。
步骤6:信用数据请求;信用评分计算智能合约向多方信用数据机构及征信机构申请用户的信用数据;进一步地,具体包括如下步骤:
步骤6.1:基于不可区分混淆的通用信用评分计算智能合约将用户匿名身份信息发送给多方信用数据机构及征信机构,等待其秘密输入;
步骤7:信用数据输入;多方信用数据机构及征信机构向信用评分计算智能合约反馈用户的加密信用数据及证明其正确性的零知识证明;进一步地,具体包括如下步骤:
步骤7.1:在收到指定用户的身份信息,多方信用机构检索自己的数据库查找对应的信用数据;
步骤7.2:每个多方信用数据机构使用自己的加密密钥调用加密算法生成用户信用数据的密文,并调用简洁非交互零知识证明算法生成证明,其中承诺、密文及用户数据同时满足承诺与用户数据一致性NP关系与加密密文与用户数据一致性NP关系,最后多方信用机构将密文及证明发送给信用评分计算智能合约;
步骤7.3:征信机构调用加密算法生成权重值的密文且调用简洁非交互零知识证明生成算法生成证明,其中承诺、密文及权重值同时满足承诺与权重值一致性NP关系与加密密文与权重值一致性NP关系,最后征信机构将权重值的密文及证明发送给信用评分计算智能合约。
步骤8:信用评分计算并回复放贷机构;智能合约验证数据的零知识证明,验证通过则计算用户的信用评分,反之,向授权机构反馈取消对应信用数据机构的权限,并利用其他正确的信用数据进行应用评分的计算;最后将用户的信用评分发送给放贷机构;进一步地,具体包括如下步骤:
步骤8.1:信用评分计算智能合约运行简洁非交互零知识证明验证算法对链上用户信用数据的承诺及零知识证明和权重值的承诺及零知识证明进行检查,将无效数据反馈给授权机构,授权机构将取消对应信用数据机构的权限;另外,如果权重值的承诺错误,则反馈给征信机构重新生成。
步骤8.2:信用评分计算智能合约对接收到的密文及证明其正确性的零知识证明与区块链上存储的信用数据承诺进行验证,若验证失败,则向授权机构反馈取消对应信用数据机构的权限;另外,如果权重值的密文错误,则反馈给征信机构重新生成;反之,则根据信用评分计算流程执行下一步处理;
步骤8.3:信用评分计算智能合约执行混淆后的用户信用评分计算程序,程序主要包括使用解密密钥对接收到的密文进行解密得到明文,并按照之前放贷机构输入的函数进行计算,最后将信用评分返回给放贷机构;
步骤9:返回贷款申请结果;放贷机构根据具体的信用评分及本地数据库中用户的信用数据进行决策并向用户返回贷款申请结果,贷款成功或具体无法放贷的原因。进一步地,具体包括如下步骤:
步骤9.1:在收到用户的信用评分后,使用检索本地数据库,查找用户的交易记录,并结合放贷风险和利润收成比例决定是否向贷款方发放贷款;
步骤9.2:向用户回复贷款请求,若同意贷款,则进行放贷;反之,回复给用户被拒绝的原因。
本发明的一种基于不可区分混淆的链上多机构信用评估方法与系统具有以下优点:
本发明确保各机构关于贷款方的用户信息隐私在外部攻击、内部攻击和恶意数据挖掘攻击下不被泄露,具有很高的实用性。
第一,各机构在将用户的信息上传区块链之前,对其进行承诺从而实现信息上传到区块链后不会被泄露;并且由于区块链的不可篡改性实现数据的安全、真实;
第二,当用户向放贷机构申请贷款时,放贷机构并没有向其他机构直接请求查询贷款方的信用数据,而是运行基于不可区分混淆的信用评分计算智能合约,使用智能合约计算信用评分。利用不可区分混淆的函数与输入的隐私性实现隐私保护及正确性保证。并且在各个机构输入自己的信用数据时发送证明其正确性的零知识证明,这样既保证了输入的正确性,也保证了隐私性。满足了数据隐私及正确;同时,引入了惩罚机制,进一步保证了信用数据的正确性。
第三,放贷机构在收到信用评分后,同时检索自己的数据库,实现两个相结合进行决策,从而实现自己数据库中的信息更具有说服力。
第四,在信用评估的过程中,放贷机构会根据不同用户的不同贷款申请进行函数制定,以及在信用评分计算中引入了权重值这一概念,提高了系统的通用性,适用于多个场景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根绝这些附图获得其他的附图。
图1是本发明提供的一种基于不可区分混淆的链上多机构信用评估方法与系统的流程示意图。
图2是本发明提供的一种基于不可区分混淆的链上多机构信用评估方法与系统的具体流程示意图。
图3是本发明提供的一种基于不可区分混淆的链上多机构信用评估方法与系统的具体实例流程示意图。
具体实施方式
为了便于更好地了解本发明的目的、结构及功能,下面结合附图及实施示例对本发明的一种基于不可区分混淆的链上多机构信用评估方法与系统作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
请见图2,本发明提供的一种基于不可区分混淆的链上多机构信用评估方法与系统,系统涉及的实体包括授权机构、用户、多方信用数据机构、征信机构及放贷机构。
假设具体实施实例包括一个授权机构、一个用户、两个信用数据机构、一个征信机构及一个放贷机构,其中每个信用数据机构具有用户的一条信用信息。
如图3所示,一种基于不可区分混淆的链上多机构信用评估方法与系统,包括如下步骤:
步骤1:系统初始化;授权机构CA对用户、两个信用数据机构、放贷机构及征信机构进行注册,并创建多个智能合约以及给不同的机构授予相应的运行权限;进一步地,具体包括如下步骤:
步骤1.1:授权机构CA设计信用数据与承诺一致性检查的算数电路C
步骤1.2:授权机构CA在区块链节点上部署数据更新智能合约、简洁非交互零知识证明验证智能合约及基于不可区分混淆的通用信用评分计算智能合约;
步骤1.3:用户及其他各种机构向授权机构进行注册申请;同时多方信用数据机构、征信机构及放贷机构向授权机构申请运行智能合约的权限和证明密钥、承诺密钥及加密密钥等;
步骤1.4:授权机构审核材料并决定是否同意注册申请,若同意,则向用户返回唯一的身份标识符ID;向一个信用数据机构返回唯一的标识符Mpda
步骤1.5:征信机构生成各类数据的权重值并运行承诺算法
步骤2:信用数据生成;用户与多方信用数据机构进行资金往来从而产生相对应的信用数据;进一步地,具体包括如下步骤:
步骤2.1:假设用户ID与信用数据结构Mpda
步骤2.2:不同的信用数据机构产生相应的私密信用数据
步骤3:用户信用数据上传;多方信用数据机构生成信用数据的承诺和证明数据承诺一致性的零知识证明,并通过数据更新智能合约上传到区块链;进一步地,具体包括如下步骤:
步骤3.1:两个信用数据机构使用承诺算法
步骤3.2:两个信用数据机构使用数据更新智能合约将独有的私密数据承诺及零知识证明上传到区块链;
步骤4:填写贷款请求;用户向放贷机构提出贷款申请时,填写贷款业务请求,将自己的身份信息匿名化发送给放贷机构;
所述的贷款业务请求信息包括:用户的个人信息,用户身份标识符的匿名化R
步骤5:信用评分计算初始化;放贷机构根据贷款业务请求指定信用评分计算函数,并使用用户身份信息运行区块链上的信用评分计算智能合约进行信用评分计算;进一步地,具体包括如下步骤:
步骤5.1:在收到用户的贷款业务请求和匿名身份信息R
步骤6:信用数据请求;信用评分计算智能合约向多方信用数据机构及征信机构申请用户的信用数据;进一步地,具体包括如下步骤:
步骤6.1:基于不可区分混淆的通用信用评分计算智能合约将用户匿名身份信息R
步骤7:信用数据输入;多方信用数据机构及征信机构向信用评分计算智能合约反馈用户的加密信用数据及证明其正确性的零知识证明;进一步地,具体包括如下步骤:
步骤7.1:在收到指定用户的身份信息P
步骤7.2:两个多方信用数据机构分别使用自己的加密密钥
步骤7.3:征信机构调用加密算法Enc(mk
步骤8:信用评分计算并回复放贷机构;智能合约验证数据的零知识证明,验证通过则计算用户的信用评分,反之,向授权机构反馈取消对应信用数据机构的权限,并利用其他正确的信用数据进行应用评分的计算;最后将用户的信用评分发送给放贷机构;进一步地,具体包括如下步骤:
步骤8.1:信用评分计算智能合约运行简洁非交互零知识证明验证算法
步骤8.2:信用评分计算智能合约对接收到的密文及证明其正确性的零知识证明与区块链上存储的信用数据承诺进行验证,若验证失败,则向授权机构反馈取消对应信用数据机构的权限;反之,则根据信用评分计算流程执行下一步处理;
步骤8.3:信用评分计算智能合约执行计算用户ID信用评分程序Prog
步骤9:返回贷款申请结果;放贷机构根据具体的信用评分及本地数据库中用户的信用数据进行决策并向用户返回贷款申请结果,贷款成功或具体无法放贷的原因。进一步地,具体包括如下步骤:
步骤9.1:在收到用户ID的信用评分后,使用R
步骤9.2:向用户回复贷款请求,若同意贷款,则进行放贷;反之,回复给用户被拒绝的原因。
本发明基于不可区分混淆、承诺、公钥加密算法和零知识证明技术实现了一种基于不可区分混淆的链上多机构信用评估方法与系统,该方案不仅实现了抗外部攻击和内部攻击,而且还实现了抗恶意数据挖掘攻击。
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
应当理解的是,本发明是通过一些实施例进行描述的,本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围。
- 一种查询图构建方法、装置、电子设备及计算机存储介质
- 桑基图的生成方法、装置、存储介质和电子设备
- 一种影像矢量化方法、装置、电子设备及介质
- 一种基于用户特征的室内导航方法、电子设备及存储介质
- 一种分布式系统部署方法、系统、电子设备及存储介质
- 一种矢量布图方法、存储介质及电子设备
- 矢量调图速度优化方法、系统、电子设备及存储介质