具隐密性的KYC数据共享系统及其方法与流程

文档序号:20701432发布日期:2020-05-12 15:45阅读:416来源:国知局
具隐密性的KYC数据共享系统及其方法与流程

本发明涉及一种数据共享系统及其方法,特别是具隐密性的kyc数据共享系统及其方法。



背景技术:

近年来,随着金融科技的推广与蓬勃发展,各种基于金融科技的应用便如雨后春笋般出现,然而,为了提供合适的金融商品给客户,甚至避免洗钱的情况发生,金融机构会要求客户填写一份“认识你的客户(knowyourcustomer,kyc)”」的资料。

一般而言,金融机构可以根据kyc数据,了解客户对投资风险的承受能力,进而提供合适的金融商品,也能够实现客户身份认证、背景与信用记录的查核。不过,由于每一个金融机构皆会要求填写kyc数据,当来往的金融机构数量众多时,重复填写相同内容的kyc数据将造成客户的困扰与不便,由于无法仅填写一份kyc数据供所有金融机构使用,故具有kyc数据的可用性不佳的问题。另外,在不同时间点填写的kyc数据,其内容可能也不尽相同,造成内容统一性不佳的问题。

有鉴于此,便有厂商提出将kyc数据储存在客户端的技术手段,提供客户在金融机构开户时使用。然而此一方式需要金融机构愿意配合,而且同样无法解决在不同时间点的kyc数据,其内容可能不尽相同的问题。另外,亦有人提出将kyc数据存放于云端供金融机构共享,然而,存放于云端的kyc数据容易遭到篡改,所以如何使各金融机构信任存放于云端的kyc数据便是一大问题,而且存放于云端的kyc数据也容易有隐私泄漏的情况发生。

综上所述,可知先前技术中长期以来一直存在kyc数据的隐密性、可用性及内容统一性不佳之问题,因此实有必要提出改进的技术手段,来解决此一问题。



技术实现要素:

本发明披露一种具隐密性的kyc数据共享系统及其方法。

首先,本发明披露一种具隐密性的kyc数据共享系统,应用在执行智能合约的区块链网络,此系统包含:权责端、客户端及金融端。其中,所述权责端包含:初始模块、验证模块及注册模块。其中,所述初始模块用以于初始时,通过区块链交易发布kyc数据注册合约以提供注册及更新kyc数据合约,以及通过区块链交易发布kyc数据请求注册合约以提供注册及记录kyc数据请求合约,其中,所述kyc数据注册合约包含数据注册事件及数据更新事件,所述kyc数据请求注册合约包含请求注册事件及授权响应事件;所述验证模块用以接收kyc数据以进行验证,此kyc数据报含多个数据项,以及根据客户端公钥分别对通过验证的kyc数据中的每一数据项进行加密生成相应的第一加密内容,再根据权责端私钥对每一数据项的哈希值进行签章生成相应的哈希签章值;注册模块用以通过区块链交易发布包含账号地址、每一数据项的第一加密内容及每一数据项的哈希签章值的kyc数据合约,并且获得对应的kyc数据合约地址,以及将此kyc数据合约地址注册在kyc数据注册合约中,用以触发数据注册事件产生注册完成通知。

接着,所述客户端包含:生成模块、侦测模块及加解密模块。其中,生成模块用以生成kyc数据,并且将此kyc数据传送至权责端;侦测模块用以持续侦测数据请求通知,当侦测到数据请求通知且其包含的账号地址与所述客户端其中之一相符后,由相符的客户端自区块链网络中读取对应客户端的kyc数据合约以获得其中的账号地址、每一数据项的第一加密内容及每一数据项的哈希签章值,并且允许设定每一数据项的授权权限;加解密模块用以根据授权权限及客户端私钥对获得的每一数据项的第一加密内容进行解密,以及产生一组密钥对解密后的每一数据项进行加密生成相应的第二加密内容,再以金融端公钥对此组密钥进行加密生成一组加密密钥,并且传送每一数据项的第二加密内容、每一数据项的哈希签章值及此组加密密钥以触发授权响应事件产生授权响应通知。

至于所述金融端,其包含:请求模块、接收模块及审阅模块。其中,请求模块用以在请求所述客户端的kyc数据时,通过区块链交易发布对应所述客户端的kyc数据请求合约,并且将kyc数据请求合约注册在kyc数据请求注册合约中,用以触发请求注册事件产生数据请求通知;接收模块用以持续侦测kyc数据请求注册合约的授权响应事件,当授权响应事件被触发产生授权响应通知后,接收每一数据项的第二加密内容、每一数据项的哈希签章值及此组加密密钥,并且以金融端私钥解密此组加密密钥以获得一组密钥,再以此组密钥解密每一数据项的第二加密内容;审阅模块用以根据权责端公钥及每一数据项的哈希签章值,对已解密的每一数据项执行哈希值及签章的验证,并且在通过验证且确认哈希签章值由权责端生成时,对已解密的每一数据项进行审阅。

另外,本发明披露一种具隐密性的kyc数据共享方法,应用在执行智能合约的区块链网络,其步骤包括:权责端于初始时,通过区块链交易发布kyc数据注册合约以提供注册及更新kyc数据合约,以及通过区块链交易发布kyc数据请求注册合约以提供注册及记录kyc数据请求合约,其中,kyc数据注册合约包含数据注册事件及数据更新事件,kyc数据请求注册合约包含请求注册事件及授权响应事件;客户端生成对应的kyc数据,并且将kyc数据传送至权责端,kyc数据报含多个数据项;权责端验证接收到的kyc资料,并且根据客户端公钥分别对通过验证的kyc数据中的每一数据项进行加密生成相应的第一加密内容,再根据权责端私钥对每一数据项的哈希值进行签章生成相应的哈希签章值;权责端通过区块链交易发布包含账号地址、每一数据项的第一加密内容及每一数据项的哈希签章值的kyc数据合约,并且获得对应的kyc数据合约地址,以及将此kyc数据合约地址注册在kyc数据注册合约中,用以触发数据注册事件产生注册完成通知;金融端在请求客户端的kyc数据时,通过区块链交易发布对应客户端的kyc数据请求合约,并且将kyc数据请求合约注册在kyc数据请求注册合约中,用以触发请求注册事件产生数据请求通知;客户端侦测到数据请求通知且其包含的账号地址与所述客户端其中之一相符后,由相符的客户端自区块链网络中读取对应客户端的kyc数据合约以获得其中的账号地址、每一数据项的第一加密内容及每一数据项的哈希签章值,并且允许设定每一数据项的授权权限;客户端根据此授权权限及客户端私钥对获得的每一数据项的第一加密内容进行解密,以及产生一组密钥对解密后的每一数据项进行加密生成相应的第二加密内容,再以金融端公钥对此组密钥进行加密生成一组加密密钥,并且传送每一数据项的第二加密内容、每一数据项的哈希签章值及此组加密密钥以触发授权响应事件产生授权响应通知;金融端持续侦测kyc数据请求注册合约的授权响应事件,当授权响应事件被触发产生授权响应通知后,接收每一数据项的第二加密内容、每一数据项的哈希签章值及此组加密密钥,并且以金融端私钥解密此组加密密钥以获得一组密钥,再以此组密钥解密每一数据项的第二加密内容;金融端根据权责端公钥及每一数据项的哈希签章值,对已解密的每一数据项执行哈希值及签章的验证,并且在通过验证且确认哈希签章值由权责端生成时,对已解密的每一数据项进行审阅。

本发明所披露之系统与方法如上,与先前技术的差异在于本发明是通过客户端提供kyc数据至权责端以进行加密、签章及发布至区块链网络,并且在区块链网络上执行智能合约,使客户端、权责端及金融端能够执行智能合约的函数及侦测智能合约的事件,以便在金融端请求查询kyc数据时,客户端能够针对不同数据项设定授权权限,接着由金融端直接通过客户端接收授权的数据项,再验证数据项是否经权责端认证以确定是否进行审阅。

通过上述的技术手段,本发明可以达成提高kyc数据的隐密性、可用性及内容统一性的技术功效。

附图说明

图1为本发明具隐密性的kyc数据共享系统的系统方块图。

图2a至图2c为本发明具隐密性的kyc数据共享方法的方法流程图。

图3为应用本发明上传kyc数据的示意图。

图4为应用本发明在权责端加密及签章数据项的示意图。

图5为应用本发明在客户端进行加解密的示意图。

【附图标记列表】

10区块链网络

100权责端

101初始模块

102验证模块

103注册模块

104更新模块

110客户端

111生成模块

112侦测模块

113加解密模块

120金融端

121请求模块

122接收模块

123审阅模块

300编辑窗口

310数据输入区块

311编辑组件

312储存组件

313传送组件

400kyc资料

410第一加密内容

420哈希值

430哈希签章值

500解密的内容

510第二加密内容

步骤210权责端于初始时,通过区块链交易发布一kyc(knowyourcustomer)数据注册合约以提供注册及更新至少一kyc数据合约,以及通过区块链交易发布一kyc数据请求注册合约以提供注册及记录至少一kyc数据请求合约,其中,所述kyc数据注册合约包含一数据注册事件及一数据更新事件,所述kyc数据请求注册合约包含一请求注册事件及一授权响应事件

步骤220客户端生成对应的所述kyc数据,并且将所述kyc数据传送至所述权责端,所述kyc数据报含多个数据项

步骤230所述权责端验证接收到的所述kyc资料,并且根据一客户端公钥分别对通过验证的所述kyc数据中的每一数据项进行加密生成相应的一第一加密内容,再根据一权责端私钥对每一数据项的哈希值进行签章生成相应的一哈希签章值

步骤240所述权责端通过区块链交易发布包含一账号地址、每一数据项的所述第一加密内容及每一数据项的所述哈希签章值的所述kyc数据合约,并且获得对应的一kyc数据合约地址,以及将所述kyc数据合约地址注册在所述kyc数据注册合约中,用以触发所述数据注册事件产生一注册完成通知

步骤241在所述kyc资料更新完成后,根据所述kyc资料注册合约获得对应所述kyc数据的所述kyc数据合约,并且触发所述数据更新事件产生一更新完成通知

步骤250金融端在请求所述客户端的所述kyc数据时,通过区块链交易发布对应所述客户端的所述kyc数据请求合约,并且将所述kyc数据请求合约注册在所述kyc数据请求注册合约中,用以触发所述请求注册事件产生一数据请求通知

步骤260所述客户端侦测到所述数据请求通知且其包含的所述账号地址与所述客户端其中之一相符后,由相符的所述客户端自所述区块链网络中读取对应该客户端的所述kyc数据合约以获得其中的所述账号地址、每一数据项的所述第一加密内容及每一数据项的所述哈希签章值,并且允许设定每一数据项的一授权权限

步骤270所述客户端根据所述授权权限及一客户端私钥对获得的每一数据项的所述第一加密内容进行解密,以及产生一组密钥对解密后的每一数据项进行加密生成相应的一第二加密内容,再以一金融端公钥对所述组密钥进行加密生成一组加密密钥,并且传送每一数据项的所述第二加密内容、每一数据项的所述哈希签章值及所述组加密密钥以触发所述授权响应事件产生一授权响应通知

步骤280所述金融端持续侦测所述kyc数据请求注册合约的所述授权响应事件,当所述授权响应事件被触发产生所述授权响应通知后,接收每一数据项的所述第二加密内容、每一数据项的所述哈希签章值及所述组加密密钥,并且以一金融端私钥解密所述组加密密钥以获得所述组密钥,再以所述组密钥解密每一数据项的所述第二加密内容

步骤290所述金融端根据一权责端公钥及每一数据项的所述哈希签章值,对已解密的每一数据项执行哈希值及签章的验证,并且在通过验证且确认所述哈希签章值由所述权责端生成时,对已解密的每一数据项进行审阅

步骤291所述权责端于初始时,通过区块链交易发布一kyc执行注册合约,用以记录至少一kyc数据执行合约的执行结果,所述kyc数据执行合约记录所述金融端审阅过的每一数据项及其签章

步骤292所述权责端于初始时,通过区块链交易发布一账号链接合约,用以储存每一客户端对应的至少一账号地址,使所述账号地址对应同一所述kyc数据,以及允许新增或删除所述账号地址,并且在所述金融端验证所述账号地址后,允许以不同的所述账号地址接收同一所述kyc数据

具体实施方式

以下将配合附图及实施例来详细说明本发明的实施方式,由此对本发明如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。

在说明本发明所披露之具隐密性的kyc数据共享系统及其方法之前,先对本发明所应用的环境作说明,本发明是应用在执行智能合约的区块链网络中,在区块链网络中的计算器设备皆可视为区块链节点,所述区块链节点通过点对点(peertopeer)方式连接,并且用以处理区块链交易(blockchaintransactions)。在实际实施上,计算器设备可为服务器、计算机主机、笔记本电脑、平板计算机等等,用以执行计算机程序指令,例如:区块链程序“ethereum”。另外,所述智能合约是指依据既定的条件及传输的信息来驱动执行指令的计算机程序,在实际实施上,所述智能合约系通过程序语言,如:solidity、serpent、lll、etherscript、sidechain等等来撰写,其可包含各种不同的函数、事件、参数状态等等,以区块链程序“ethereum”为例,其智能合约是经编译后得到二进制编码及应用二进制接口(applicationbinaryinterface,abi),以便将智能合约广播至区块链网络,等候矿工(miner)将智能合约放上区块链并得到相应的地址,至此即完成智能合约的“发布”。之后,区块链网络节点便可根据此地址执行相应的智能合约,由不同的指令来改变智能合约在区块链上的状态。特别要说明的是,文中所述的“kyc数据注册合约”、“kyc数据合约”、“kyc数据请求注册合约”、“kyc数据请求合约”、“kyc评等合约”、“kyc评等注册合约”、“kyc执行注册合约”、“kyc数据执行合约”、“账号连结合约”等合约皆为智能合约,至于文中所提及的“注册”,则是指通过执行智能合约中的函数,建立不同智能合约之间的地址对应关系,以下便针对前述各智能合约作简要说明:

一、kyc数据合约,用以记录客户的kyc数据,在实际实施上,kyc资料的每一数据项会分别经过客户端公钥进行加密,并且还会通过哈希算法计算出相应的哈希值,接着,再以权责端私钥对计算出的哈希值签章后储存,也就是说,kyc数据合约并非储存kyc数据的明码,而是储存加密过的数据项,以及经过哈希与签章后的值,实际上,kyc数据合约还包含客户的账号地址,如:公钥。在实际实施上,所述kyc数据合约包含函数,如:“setdata()”,并且用以带入“kyc数据的数据项之代码”、“每一数据项的第一加密内容”、“每一数据项的哈希值”及“每一数据项的哈希签章值”等参数。

二、kyc数据注册合约,用以供kyc数据合约注册,并且提供相关事件(即:数据注册事件、数据更新事件)。在实际实施上,可在注册kyc数据合约的同时,通过函数产生kyc评等合约,并且注册到kyc评等注册合约中,以便授权的金融端可对相应的客户进行评等及风险标记。所述kyc数据注册合约包含函数,如:“registerkycdata()”、“updatekycdata()”,这两个函数皆带入kyc数据合约的地址和账号地址,并且执行这两个函数会触发相应事件,如:“kycdatadidregister”、“kycdatadidupdate”,前者在有kyc数据合约注册时被触发,后者在kyc数据合约更新时被触发。

三、kyc资料请求合约,用以供金融端对客户端发起请求,以便向客户取得审阅kyc数据的授权权限,也就是说,客户端同样会通过此kyc数据请求合约回复授权权限。在实际实施上,所述kyc数据请求合约包含函数,如:“addrequest()”、“addsignature()”、“isapproved()”、“approverequest()”、“rejectrequest()”、“revokerequest()”,分别用以在“金融端增加需要审阅的数据项”、“金融端设定签章供客户验证金融端来源”、“检查金融端是否有审阅指定数据项的授权权限”、“客户端授权审阅指定数据项的请求”、“客户端拒绝审阅指定数据项的请求”及“客户端取消已授权审阅指定数据项的授权权限”等情况下执行。

四、kyc数据请求注册合约,用以注册、记录金融端对审阅客户的kyc数据的请求,并且提供相应事件让客户得知有审阅请求,也让金融端得知有授权状态回复或更新。在实际实施上,kyc数据请求注册合约包含函数如:“requestkycdata()”及“responsekycdatarequest()”,分别用以提供金融端注册kyc数据请求合约,以及客户回复或更新kyc数据请求合约的授权状态后,通知合约已响应完毕。另外,执行这两个函数会触发相应的事件,如:“kycdatadidrequest”及“kycdatarequestdidresponse”,前者会在有新的kyc数据请求合约注册时被触发,通知客户端存在此请求,后者会在kyc数据请求合约的授权状态改变时被触发,通知金融端授权状态改变。

五、kyc数据执行合约,用以记录金融端执行kyc处理,其包含函数如:“executekyc()”,用以在金融端审阅kyc数据的指定数据项后签章,每一数据项皆须独立签章。

六、kyc执行注册合约,用以记录kyc数据执行合约的执行结果,其包含函数如:“registerkycexecution()”。

七、kyc评等合约,用以供金融端记录客户评等、风险标记,其包含函数如:“addnotes()”、“addflag()”及“addrating()”,分别用以“新增金融端对客户的笔记”、“新增金融端对客户的风险标记”及“新增金融端对客户的评等”。

八、kyc评等注册合约,用以提供注册kyc评等合约,其包含函数如:“register()”,其通过带入kyc评等合约的地址来完成kyc评等合约的注册。

九、账号连结合约,用以供客户绑定多重账号地址,以便达成隐私性,并且利用签章加密储存的账号地址,其可包含函数,如:“addassociation()”、“removeassociation()”及“getassociation()”,用以分别进行“新增绑定的签章”、“移除绑定的签章”及“查询某个签章绑定的账号地址”等处理。

以下配合附图对本发明具隐密性的kyc数据共享系统及其方法做进一步说明,请先参阅图1,图1为本发明具隐密性的kyc数据共享系统之系统方块图,应用在执行智能合约的区块链网络10,此系统包含:权责端100、客户端110及金融端120。其中,权责端100的部分,其可为政府权责单位或政府合法授权单位,其目的是为了提供验证自然人或组织的kyc数据服务(例如:验证资料是否正确属实),实际上,权责端100作为区块链节点与区块链网络10相连,所述权责端100包含:初始模块101、验证模块102及注册模块103。其中,初始模块101用以于初始时,通过区块链交易发布kyc数据注册合约以提供注册及更新kyc数据合约,以及通过区块链交易发布kyc数据请求注册合约以提供注册及记录kyc数据请求合约,其中,所述kyc数据注册合约包含数据注册事件及数据更新事件,所述kyc数据请求注册合约包含请求注册事件及授权响应事件。当执行kyc数据注册合约的注册函数来注册kyc数据合约时,此注册函数会触发数据注册事件,也就是说,当有新的kyc数据合约注册时,数据注册事件会被触发;当执行kyc数据注册合约的更新函数更新kyc数据合约时,此更新函数会触发数据更新事件,也就是说,当既有的kyc数据合约更新时,数据更新事件会被触发。

在实际实施上,所述kyc数据合约储存的数据包含“客户的账号地址”、“每一数据项的加密内容(即:第一加密内容)”及“经过哈希及签章处理的哈希签章值”,前述客户的账号地址可以公钥的形式呈现;加密内容是通过客户端公钥加密生成;签章则是通过权责端私钥来实现。另外,初始模块101还可通过区块链交易发布kyc执行注册合约用以记录kyc数据执行合约的执行结果,所述kyc数据执行合约记录金融端120审阅过的每一数据项及其签章。如此一来,往后藉由验证签章即可得知审阅过kyc数据的是哪一个金融端120。除此之外,权责端100于初始时,亦可通过区块链交易发布账号链接合约,用以储存每一客户端110对应的所有账号地址,使其所有账号地址对应同一kyc数据,以及允许新增或删除所述账号地址,那么,当金融端120验证账号地址并确认是由客户端110产生之后,即可允许在不同的账号地址接收同一kyc数据。换句话说,客户端110可以使用不同的账号地址让金融端120执行kyc处理,甚至避免藉由账号地址得知客户端110的身份。

验证模块102用以接收kyc数据以进行验证,此kyc数据报含多个数据项,例如:姓名、身份证字号、性别等等,以及根据客户端公钥分别对通过验证的kyc数据中的每一数据项进行加密生成相应的第一加密内容,再根据权责端私钥对每一数据项的哈希值进行签章生成相应的哈希签章值。在实际实施上,每一个数据项皆具有对应的代码,如:身份证字号的代码为“id”、财产证明代码为“wealth_proof”等等。另外,文中所提及的公钥(如:客户端公钥)及私钥(如:权责端私钥)皆可通过第三方公信凭证单位(例如:台湾网络认证中心)发行的凭证提供。

注册模块103用以通过区块链交易发布包含账号地址、每一数据项的第一加密内容及每一数据项的哈希签章值的kyc数据合约,并且获得对应的kyc数据合约地址,以及将此kyc数据合约地址注册在kyc数据注册合约中,用以触发数据注册事件产生注册完成通知。在实际实施上,在注册新的kyc数据合约的同时,还可通过区块链交易发布对应客户端110的kyc评等合约,并且将kyc评等合约的kyc评等合约地址注册到初始模块101预先发布的kyc评等注册合约,用以允许获得授权权限的金融端120对相应的客户端110的kyc数据进行评等及风险标记。举例来说,其评等可为信用评分;风险标记则可注记是否为警示账户。

在实际实施上,权责端100更可包含更新模块104用以在kyc数据更新后,根据kyc资料注册合约获得对应kyc数据的kyc数据合约,并且触发数据更新事件产生更新完成通知。也就是说,当区块链中既有的kyc数据被更新时,kyc数据注册合约的数据更新事件会被触发以通知区块链网络10中的区块链节点。

在客户端110的部分,所述客户端110本身可为区块链节点或通过第三方(例如:权责端100、金融端120或任何有权限连上区块链节点的服务提供商)提供区块链节点服务,换句话说,客户端110可直接或间接使用区块链节点与区块链网络10相连,进而侦测智能合约事件,其中,“直接”是指客户端110本身即为区块链网络10内的区块链节点,其使用区块链客户端程序连接区块链网络10;至于“间接”则是指使用第三方整合服务,如金融机构提供基于区块链节点的钱包服务。假设客户端110本身为区块链节点,将直接监控“kyc数据请求注册合约”的“请求注册事件”,当所述请求注册事件被触发时,检验kyc资料请求合约是否针对客户端110发起,若是,则通知客户处理;假设客户端110是通过第三方提供的区块链节点服务,那么,需要提供监控地址,以便监控kyc数据请求注册合约的请求注册事件,当注册的kyc数据请求合约是针对服务的客户,则通知客户处理此kyc资料请求合约,其通知方式可通过行动应用程序、电子邮件、电话等等来达成。

承上所述,每一客户端110皆包含:生成模块111、侦测模块112及加解密模块113。其中,生成模块111用以生成kyc数据,举例来说,提供图形用户界面(graphicaluserinterface,gui)供客户输入并作为kyc数据,并且将kyc数据传送至权责端100,以供权责端100进行加密、签章及发布相应的kyc数据合约至区块链网络10。

侦测模块112用以持续侦测数据请求通知,当侦测到数据请求通知且其包含的账号地址与所述客户端其中之一相符后,由相符的客户端110自区块链网络10中读取对应客户端110的kyc数据合约以获得其中的账号地址、每一数据项的第一加密内容及每一数据项的哈希签章值,并且允许设定每一数据项的授权权限。在实际实施上,所述设定授权权限是指针对每一个数据项设定相应的授权权限,如:允许、拒绝、取消等等。

加解密模块113用以根据授权权限及客户端私钥对获得的每一数据项的第一加密内容进行解密,以及产生一组密钥对解密后的每一数据项进行加密生成相应的第二加密内容,再以金融端公钥对此组密钥进行加密生成一组加密密钥,并且传送每一数据项的第二加密内容、每一数据项的哈希签章值及此组加密密钥以触发授权响应事件产生授权响应通知。在实际实施上,产生一组密钥的方式可利用对称式加密(symmetricencryption)算法生成,并且同时用于加密及解密,相较于使用非对称式加密(asymmetricencryption)算法生成密钥,前者能够提升每一数据项的加解密处理效率。实际上,所述第一加密内容与第二加密内容的差异仅在于前者是通过客户端公钥加密,而后者是通过密钥加密。特别要说明的是,额外产生一组密钥对数据项加密而非直接使用客户端私钥对数据项加密的目的,是为了将数据项提供给指定的金融端120,避免同样拥有客户端公钥的其它区块链节点也能够对数据项进行解密。

接着,在金融端120的部分,所述金融端120必须与权责端100相连,也必须作为区块链节点与区块链网络10相连,每一金融端120皆包含:请求模块121、接收模块122及审阅模块123。其中,请求模块121用以在请求所述客户端110的kyc数据时,通过区块链交易发布对应客户端110的kyc资料请求合约,并且将所述kyc数据请求合约注册在kyc数据请求注册合约中,用以触发请求注册事件产生数据请求通知。如此一来,客户端110藉由侦测请求注册事件是否被触发即可得知金融端120是否有向其请求kyc资料。在实际实施上,数据请求通知可包含:“客户端110的账号地址”、“数据项的代码”及“金融端120的签章”等资料。

接收模块122用以持续侦测kyc数据请求注册合约的授权响应事件,当授权响应事件被触发产生授权响应通知后,接收每一数据项的第二加密内容、每一数据项的哈希签章值及此组加密密钥,并且以金融端私钥解密此组加密密钥以获得一组密钥,再以此组密钥解密每一数据项的第二加密内容。由于加密密钥仅能够被金融端私钥解密,所以只有拥有金融端私钥的区块链节点(即:指定的金融端120)能够经由解密获得此组密钥,进而再利用此组密钥对第二加密内容进行解密以获得未加密的数据项,故可确保数据项的隐密性。

审阅模块123用以根据权责端公钥及每一数据项的哈希签章值,对已解密的每一数据项执行哈希值及签章的验证,并且在通过验证且确认哈希签章值由权责端100生成时,对已解密的每一数据项进行审阅。在实际实施上,由于“哈希签章值”的生成方式是利用“权责端私钥”对“哈希值”进行签章,所以金融端120在验证“哈希签章值”时,可以利用根据数据项所计算出的“哈希值”搭配“哈希签章值”推算出“权责端公钥”,接着再将推算出的“权责端公钥”与已知的“权责端公钥”进行比对,倘若比对结果相同即代表数据未被篡改,并且确认“哈希签章值”由权责端100生成,故哈希值及其签章通过验证,反之,倘若“权责端公钥”不同则代表数据已被篡改或是哈希签章值并非由权责端100生成,故哈希值及其签章的验证不通过。

接着,请参阅图2a至图2c,图2a至图2c为本发明具隐密性的kyc数据共享方法之方法流程图,应用在执行智能合约的区块链网络10,其步骤包括:权责端100于初始时,通过区块链交易发布kyc数据注册合约以提供注册及更新kyc数据合约,以及通过区块链交易发布kyc数据请求注册合约以提供注册及记录kyc数据请求合约,其中,kyc数据注册合约包含数据注册事件及数据更新事件,kyc数据请求注册合约包含请求注册事件及授权响应事件(步骤210);客户端110生成对应的kyc数据,并且将kyc数据传送至权责端100,kyc数据报含多个数据项(步骤220);权责端100验证接收到的kyc资料,并且根据客户端公钥分别对通过验证的kyc数据中的每一数据项进行加密生成相应的第一加密内容,再根据权责端私钥对每一数据项的哈希值进行签章生成相应的哈希签章值(步骤230);权责端100通过区块链交易发布包含账号地址、每一数据项的第一加密内容及每一数据项的哈希签章值的kyc数据合约,并且获得对应的kyc数据合约地址,以及将此kyc数据合约地址注册在kyc数据注册合约中,用以触发数据注册事件产生注册完成通知(步骤240);金融端120在请求客户端110的kyc数据时,通过区块链交易发布对应客户端110的kyc数据请求合约,并且将kyc数据请求合约注册在kyc数据请求注册合约中,用以触发请求注册事件产生数据请求通知(步骤250);客户端110侦测到数据请求通知且其包含的账号地址与所述客户端110其中之一相符后,由相符的客户端110自区块链网络10中读取对应客户端110的kyc数据合约以获得其中的账号地址、每一数据项的第一加密内容及每一数据项的哈希签章值,并且允许设定每一数据项的授权权限(步骤260);客户端110根据此授权权限及客户端私钥对获得的每一数据项的第一加密内容进行解密,以及产生一组密钥对解密后的每一数据项进行加密生成相应的第二加密内容,再以金融端公钥对此组密钥进行加密生成一组加密密钥,并且传送每一数据项的第二加密内容、每一数据项的哈希签章值及此组加密密钥以触发授权响应事件产生授权响应通知(步骤270);金融端120持续侦测kyc数据请求注册合约的授权响应事件,当授权响应事件被触发产生授权响应通知后,接收每一数据项的第二加密内容、每一数据项的哈希签章值及此组加密密钥,并且以金融端私钥解密此组加密密钥以获得一组密钥,再以此组密钥解密每一数据项的第二加密内容(步骤280);金融端120根据权责端公钥及每一数据项的哈希签章值,对已解密的每一数据项执行哈希值及签章的验证,并且在通过验证且确认哈希签章值由权责端100生成时,对已解密的每一数据项进行审阅(步骤290)。通过上述步骤,即可通过客户端110提供kyc数据至权责端100以进行加密、签章及发布至区块链网络10,并且在区块链网络10上执行智能合约,使客户端110、权责端100及金融端120能够执行智能合约的函数及侦测智能合约的事件,以便在金融端请求查询kyc数据时,客户端110能够针对不同数据项设定授权权限,接着由金融端120直接通过客户端110接收授权的数据项,再验证数据项是否经权责端100认证以确定是否进行审阅。

特别要说明的是,在步骤240之后,还可在kyc资料更新完成后,根据kyc资料注册合约获得对应kyc数据的kyc数据合约,并且触发数据更新事件产生更新完成通知(步骤241),以使区块链网络10的所有节点都能够由侦测到更新完成通知而得知kyc数据已经更新。接着,在步骤290之后,倘若权责端100于初始时,通过区块链交易发布kyc执行注册合约,用以记录kyc数据执行合约的执行结果,所述kyc数据执行合约记录金融端120审阅过的每一数据项及其签章(步骤291)。另外,权责端100还可于初始时,通过区块链交易发布账号链接合约,用以储存每一客户端110对应的所有账号地址,使所有账号地址对应同一kyc数据,以及允许新增或删除所述账号地址,并且在金融端120验证所述账号地址后,允许以不同的账号地址接收同一kyc数据(步骤292)。如此一来,可供客户绑定多个账号地址,降低经由账号地址识别客户的机率,有助于提高隐私性。

以下配合图3至图5以实施例的方式进行如下说明,请先参阅图3,图3为应用本发明上传kyc数据之示意图。假设客户端110要上传kyc数据,位于客户端110的客户可以开启编辑窗口300,并且在数据输入区块310中键入客户自己的kyc数据,例如:姓名、身份证字号等等,并且点选储存组件312以储存kyc数据,倘若欲修改已储存的kyc数据亦可点选编辑组件311进行编辑。接下来,可通过点选传送组件313将已储存的kyc数据传送至权责端100,以便权责端100根据此kyc数据通过区块链交易发布相应的kyc数据合约。

如图4所示意,图4为应用本发明于权责端加密及签章数据项之示意图。当权责端100接收到客户端110传送的kyc数据400,权责端100会使用客户端公钥对每一数据项分别进行加密以生成相应的第一加密内容410,并且还会使用哈希算法,如:md5、sha-1、sha-256等等,对每一数据项进行哈希计算以获得相应的哈希值420,再将这些哈希值420以权责端私钥进行签章以生成哈希签章值430。接着,权责端100便可通过区块链交易发布包含账号地址(如:客户端公钥)、第一加密内容410及哈希签章值430的kyc数据合约。如此一来,经过一段时间使交易验证完成后,区块链网络10中的所有区块链节点,其自身的区块链都会有此kyc数据合约,并且获得对应此合约的kyc数据合约地址。接下来,将kyc数据合约地址注册在kyc数据注册合约中,即可触发数据注册事件产生注册完成通知。至此,完成kyc数据合约的发布与注册。

如图5所示意,图5为应用本发明于客户端进行加解密之示意图。当客户端110侦测到金融端120触发请求注册事件时,假设客户端110比对账号地址后发现与自己的账号地址相同,代表金融端120欲向自己请求kyc数据,所以此客户端110会读取相应的kyc数据合约以获得其中的账号地址、每一数据项的第一加密内容410、每一数据项的哈希签章值430。接着,允许客户设定每一数据项的授权权限,如:允许、拒绝、取消等等,举例来说,假设客户欲授权允许金融端120审阅其kyc数据中的姓名,便可通过图形用户界面设定为“允许”,反之若拒绝,则客户可设定为“拒绝”,或是欲取消原本的授权权限,则客户可设定为“取消”。

接下来,客户端110即可根据授权权限及客户端私钥对第一加密内容410进行解密以获得解密的内容500,然后利用对称式加密算法产生一组密钥,以便通过此组密钥对解密的内容500进行加密以生成第二加密内容510,至于哈希签章值430则维持不变。之后,使用发出请求的金融端120之金融端公钥对此组密钥进行加密以生成相应的加密密钥,以确保只有发出请求的金融端120能够利用其金融端私钥进行解密来获得此组密钥,换句话说,由此方式能够保证第二加密内容510只有发出请求的金融端120能够利用此组密钥进行解密。最后,客户端110传送第二加密内容510、哈希签章值430及加密密钥以触发授权响应事件产生授权响应通知。金融端120侦测到授权响应通知后,即得知其请求已经被客户端110响应,于是在接收到第二加密内容510、哈希签章值430及加密密钥之后,通过金融端私钥对加密密钥进行解密以获得一组密钥,再以此组密钥对第二加密内容510进行解密以得到客户的kyc数据。

接着,为了确保kyc数据的正确性且未被篡改,金融端120会计算前述对第二加密内容510进行解密所得到的kyc数据的每一数据项之哈希值,并且利用此哈希值与哈希值签章430以回推方式计算出权责端公钥,如果计算出的权责端公钥为已知的权责端公钥,则代表:一、哈希签章值430由权责端100产生。二、哈希签章值430由kyc资料之哈希值所签章生成,亦即代表kyc资料未被篡改。也就是说,假设计算出的哈希值搭配哈希签章值的确可使用回推方式计算出权责端公钥,即代表此kyc资料是经过权责端100认证的,那么,金融端120便会对已解密的每一数据项进行审阅。

综上所述,可知本发明与先前技术之间的差异在于通过客户端110提供kyc数据至权责端100以进行加密、签章及发布至区块链网络10,并且在区块链网络10上执行智能合约,使客户端110、权责端100及金融端120能够执行智能合约的函数及侦测智能合约的事件,以便在金融端请求查询kyc数据时,客户端110能够针对不同数据项设定授权权限,接着由金融端120直接通过客户端110接收授权的数据项,再验证数据项是否经权责端100认证以确定是否进行审阅,藉由此一技术手段可以解决先前技术所存在的问题,进而达成提高kyc数据的隐密性、可用性及内容统一性之技术功效。

虽然本发明以前述之实施例披露如上,然其并非用以限定本发明,任何熟习相像技艺者,在不脱离本发明之精神和范围内,当可作些许之更动与润饰,因此本发明之专利保护范围须视本说明书所附之申请专利范围所界定者为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1