本申请涉及区块链技术领域,具体而言,涉及一种基于区块链的资产验证方法及区块链网络系统。
背景技术:
现有技术中,若用户想要进行资产抵押时,用户需要提供其拥有的资产的有效文件,验证方可能是专门的机构或专门评估人员,验证方通过法定或公允的标准和程序,验证用户提供的资产文件的有效性,并出具相关的证明文件。
例如,用户需要向银行进行抵押贷款,银行要求用户出具其房屋相关的产权证明,在这种场景下,验证方是银行放贷部门。用户需要提供其房屋产权证、个人身份信息等信息给银行,银行经审核验证后,为用户发放贷款,由于银行在对用户的资产进行验证时,用户需要向银行提供某些个人隐私信息,如身份证号、详细家庭地址等,这就可能存在恶意的验证方故意泄露用户的隐私信息的情况,从而无法保证用户的隐私信息的安全性。
技术实现要素:
本申请实施例的目的在于提供一种基于区块链的资产验证方法及区块链网络系统,以改善现有技术中用户在进行资产验证时存在隐私信息泄露进而导致无法保证用户的信息安全的问题。
第一方面,本申请实施例提供了一种基于区块链的资产验证方法,应用于区块链网络中的区块链节点,所述区块链节点包括第一节点和第二节点,所述方法包括:所述第一节点获取用户的待验证资产的第一资产身份信息以及所述用户的身份信息;所述第一节点根据所述用户的身份信息查找预先存储的所述用户的第二资产身份信息,所述第二资产身份信息为所述第二节点根据所述用户的待验证资产的资产数据生成的;所述第一节点根据所述第一资产身份信息与所述第二资产身份信息的比对结果,确定所述用户的待验证资产是否验证通过。
在上述实现过程中,用户在进行资产验证时,只需向区块链节点中的第一节点提供待验证资产的第一资产身份信息以及用户的身份信息,然后第一节点查找到第二节点根据资产数据生成的第二资产身份信息,再根据第一资产身份信息与第二资产身份信息的比对结果,确定用户的待验证资产是否验证通过,通过区块链技术的不可篡改特性,用户在进行资产验证时,只需提供资产的身份信息即可,而无需提供具体的资产信息,由此,用户可不用泄露自己的隐私信息即可完成资产的验证,进而保证了用户的信息安全。
可选地,所述第一节点根据所述第一资产身份信息与所述第二资产身份信息的比对结果,确定所述用户的待验证资产是否验证通过,包括:若所述比对结果为所述第一资产身份信息与所述第二资产身份信息一致,则所述第一节点确定所述用户的待验证资产验证通过;若所述比对结果为所述第一资产身份信息与所述第二资产身份信息不一致,则所述第一节点确定所述用户的待验证资产验证不通过。
在上述实现过程中,通过资产身份信息的比对,可防止用户提供的第一资产身边信息是伪造的情况,由于区块链的不可篡改性,第二资产身份信息无法进行更改,所以,第一节点只需将用户提供的第一资产身份信息与第二资产身份信息进行比对即可知晓用户提供的第一资产身份信息是否是伪造的,相比于现有技术中还需查询大量的证据来证明用户提供的信息的可靠性,该方案中可有效节省验证的时间。
可选地,所述第一节点获取用户的待验证资产的第一资产身份信息以及所述用户的身份信息之前,所述方法还包括:所述第一节点接收所述第二节点通过所述区块链网络共享的所述第二资产身份信息并存储。
在上述实现过程中,通过第二节点将第二资产身份信息共享至第一节点,从而可以防止第二资产身份信息被恶意篡改,进而保证第二资产身份信息的可靠性。
可选地,所述第二资产身份信息为所述第二节点根据预设哈希算法对所述资产数据生成的第一资产哈希值。通过哈希算法生成第一资产哈希值作为第二资产身份信息,从而可以防止第二资产身份信息被恶意篡改,进而保证第二资产身份信息的可靠性。
可选地,所述第一节点获取用户的待验证资产的第一资产身份信息以及所述用户的身份信息之前,所述方法还包括:所述第一节点获取所述用户的资产数字证书中的资产数字签名,所述资产数字证书为所述第二节点采用预设私钥对所述资产数据进行签名后获得的,所述资产数字证书包括所述第一资产身份信息、所述资产数据以及所述资产数字签名;所述第一节点利用所述预设私钥对应的预设公钥对所述资产数字签名进行验证,若验证通过,则获取所述资产数字证书中的资产数据;所述第一节点根据所述预设哈希算法生成所述资产数字证书中的资产数据对应的第二资产哈希值;所述第一节点将所述第一资产哈希值与所述第二资产哈希值进行比对,若比对一致,则执行步骤:所述第一节点获取用户的待验证资产的第一资产身份信息以及所述用户的身份信息。
在上述实现过程中,为了验证用户提供的第一资产身份信息是否为有效信息,还可以通过获取用户的资产数字证书,对用户的资产数字证书进行验证,以验证资产数字证书是否为第一节点所颁发的,进而保证了从资产数字证书中获取的第一资产身份信息的可靠性。
可选地,所述资产数据包括多个资产属性以及根据每个所述资产属性对应的属性值生成的属性哈希值。
可选地,所述用户的身份信息为加密后的身份信息,由此可防止用户的身份信息被泄露。
第二方面,本申请实施例提供了一种基于区块链的资产验证方法,应用于区块链网络中的区块链节点,所述区块链节点包括第一节点和第二节点,所述方法包括:所述第二节点获取用户的待验证资产的资产数据以及所述用户的身份信息;所述第二节点根据所述资产数据生成所述待验证资产的第二资产身份信息;所述第二节点将所述第二资产身份信息以及所述用户的身份信息通过所述区块链网络共享到所述第一节点,以使所述第一节点获取所述用户的待验证资产的第一资产身份信息以及所述用户的身份信息,再根据所述用户的身份信息查找预先存储的所述用户的第二资产身份信息,并根据所述第一资产身份信息与所述第二资产身份信息的比对结果,确定所述用户的待验证资产是否验证通过。
可选地,所述第二节点将所述第二资产身份信息以及所述用户的身份信息通过所述区块链网络共享到所述第一节点之后,所述第一节点接收所述第二节点发送的第二资产身份信息以及用户的身份信息并存储之前,所述方法还包括:
所述第二节点采用预设私钥对所述资产数据进行签名,获得资产数字证书,并将所述资产数字证书发送给所述用户,所述资产数字证书包括所述第一资产身份信息、所述资产数据以及资产数字签名。
可选地,所述第二节点根据所述资产数据生成所述待验证资产的第二资产身份信息,包括:
所述第二节点根据预设哈希算法对所述资产数据生成的第一资产哈希值,所述第一资产哈希值为所述第二资产身份信息。
第三方面,本申请实施例提供一种基于区块链的资产验证方法,应用于区块链网络中的区块链节点,所述区块链节点包括第一节点和第二节点,所述方法包括:所述第二节点获取用户的待验证资产的资产数据以及所述用户的身份信息;所述第二节点根据所述资产数据生成所述待验证资产的第二资产身份信息;所述第二节点将所述第二资产身份信息以及所述用户的身份信息通过所述区块链网络共享到所述第一节点;所述第一节点接收所述第二节点发送的第二资产身份信息以及用户的身份信息并存储;所述第一节点获取所述用户的待验证资产的第一资产身份信息以及所述用户的身份信息;所述第一节点根据所述用户的身份信息查找预先存储的所述用户的第二资产身份信息;所述第一节点根据所述第一资产身份信息与所述第二资产身份信息的比对结果,确定所述用户的待验证资产是否验证通过。
第四方面,本申请实施例提供一种区块链网络系统,包括第一节点和第二节点;所述第二节点,用于获取用户的待验证资产的资产数据以及所述用户的身份信息;所述第二节点,用于根据所述资产数据生成所述待验证资产的第二资产身份信息;所述第二节点,用于将所述第二资产身份信息以及所述用户的身份信息通过所述区块链网络共享到所述第一节点;所述第一节点,用于接收所述第二节点发送的第二资产身份信息以及用户的身份信息并存储;所述第一节点,用于获取所述用户的待验证资产的第一资产身份信息以及所述用户的身份信息;所述第一节点,用于根据所述用户的身份信息查找预先存储的所述用户的第二资产身份信息;所述第一节点,用于根据所述第一资产身份信息与所述第二资产身份信息的比对结果,确定所述用户的待验证资产是否验证通过。
第五方面,本申请实施例提供一种区块链网络中的第一节点,所述第一节点包括:
信息获取模块,用于获取用户的待验证资产的第一资产身份信息以及所述用户的身份信息;
信息查找模块,用于根据所述用户的身份信息查找预先存储的所述用户的第二资产身份信息,所述第二资产身份信息为所述第二节点根据所述用户的待验证资产的资产数据生成的;
验证模块,用于根据所述第一资产身份信息与所述第二资产身份信息的比对结果,确定所述用户的待验证资产是否验证通过。
第六方面,本申请实施例提供一种区块链网络中的第二节点,所述第二节点包括:
数据获取模块,用于获取用户的待验证资产的资产数据以及所述用户的身份信息;
身份信息生成模块,用于根据所述资产数据生成所述待验证资产的第二资产身份信息;
信息共享模块,用于将所述第二资产身份信息以及所述用户的身份信息通过所述区块链网络共享到所述第一节点,以使所述第一节点获取所述用户的待验证资产的第一资产身份信息以及所述用户的身份信息,再根据所述用户的身份信息查找预先存储的所述用户的第二资产身份信息,并根据所述第一资产身份信息与所述第二资产身份信息的比对结果,确定所述用户的待验证资产是否验证通过。
第七方面,本申请实施例提供一种区块链节点,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面或第二方面提供的所述方法中的步骤。
第八方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面或第二方面提供的所述方法中的步骤。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种区块链节点的交互示意图;
图2为本申请实施例提供的一种区块链节点的结构示意图;
图3为本申请实施例提供的一种基于区块链的资产验证方法的第一流程图;
图4为本申请实施例提供的一种基于区块链的资产验证方法的第二流程图;
图5为本申请实施例提供的一种基于区块链的资产验证方法的交互流程图;
图6为本申请实施例提供的一种区块链网络中的第一节点的结构框图;
图7为本申请实施例提供一种区块链网络中的第二节点的结构框图;
图8为本申请实施例提供的一种区块链网络系统的结构框图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在介绍本申请的具体实施例之前,先对本申请的应用场景进行简单介绍。
本申请提供的区块链网络与现有的各种区块链网络相同,区块链网络的基本架构由数据层、网络层、共识层、激励层、合约层和应用层组成。其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等技术;网络层包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激烈层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层封装了区块链的各种应用场景和案例。
本申请的区块链网络也是由多个节点组成,每个节点都是具有运算与存储功能的区块链节点或模块。例如每个节点是一台或一组计算机、或者是其中具有独立运算和存储功能的一个模块。
区块链是由区块链网络中所有节点共同参与维护的去中心化分布式数据库系统,它是由一系列基于密码学方法产生的数据块组成,每个数据块即为区块链中的一个区块。根据产生时间的先后顺序,区块被有序地链接在一起,形成一个数据链条,被形象地称为区块链。下面对区块链网络的一些概念进行介绍。
区块链网络中的节点可以称为区块链节点,其中区块链网络基于p2p(peertopeer,对等网络)网络,每个参与交易和区块存储、验证、转发的p2p网络节点都是一个区块链网络中的节点。
另外,区块链网络中的账本用于记录两方有效交易,且可以永久查验此交易,如本申请实施例中,该账本用于记录在第一节点以及第二节点上产生的交易,如第二节点生成第二资产身份信息这一动作作为交易信息被记录在账本中。区块链中的交易记录呈现为一条键值对数据记录,所有键值对的状态转换记录组成了区块链的账本,账本具有有序和防篡改的特点,状态转换是系统中的参与各方提交链码调用产生的结果,每个交易会产生一组资产键值树,这些键值对作为“创建”、“更新”或者“删除”提交给账本。
链码是区块链提供的智能合约,是上层应用于底层区块链交互的媒介。应用程序通过链码与账本进行交互,向区块链上写入数据,或从状态数据库中取出资产的当前状态,如第二节点在获得用户的资产数据后,将该资产数据通过链码写入到账本中。
第一节点和第二节点之间共享的数据通过通道进行传输,通道是多个区块链节点之间通信的私有“子网”,用于进行私人和机密的交易处理,只有授权加入通道的节点才可访问通道内的账本数据,链码中提供的所有操作都必须在一个通道上执行。通道间不能交叉通信,保证了数据的安全性,在本实施例中,可以为不同的资产定义不同的通道,这样只有经过授权的用户才可访问指定的资产数据,如本实施例中,第一节点可以访问第二资产身份信息。
如图1所示,区块链节点中的节点p1和节点p2加入了通道c1,节点p2和节点p3加入了通道c2,因此,节点p1拥有账本l1,节点p2拥有账本l1和l2,节点p3拥有账本l2。节点p1只能访问账本l1,无法访问账本l2,节点p3只能访问账本l2,无法访问账本l1,而节点p2可以同时访问账本l1和l2。
请参照图2,图2为本申请实施例提供的一种区块链节点的结构示意图,所述区块链节点可以包括:至少一个处理器110,例如cpu,至少一个通信接口120,至少一个存储器130和至少一个通信总线140。其中,通信总线140用于实现这些组件直接的连接通信。其中,本申请实施例中设备的通信接口120用于与其他节点设备进行信令或数据的通信。存储器130可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器130可选的还可以是至少一个位于远离前述处理器的存储装置。存储器130中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器110执行时,区块链节点执行下述图3或图4所示方法过程。
请参照图3,图3为本申请实施例提供的一种基于区块链的资产验证方法的第一流程图,该方法应用于区块链网络中的区块链节点,该区块链节点包括第一节点和第二节点,该方法包括如下步骤:
步骤s110:所述第一节点获取用户的待验证资产的第一资产身份信息以及所述用户的身份信息。
第一节点是指对用户的待验证资产进行验证的区块链节点,例如若用户想用待验证资产去银行进行抵押贷款,则银行需对用户的待验证资产进行验证,以验证该用户是否有该资产,这种情况下,第一节点就是该银行用于对用户的待验证资产进行验证的区块链节点。
在对用户的待验证资产进行验证时,可通过第一节点输入待验证资产的第一资产身份信息以及该用户的身份信息,由此,第一节点可获取到第一资产身份信息以及用户的身份信息。
其中,第一资产身份信息并不是指具体的待验证资产的资产数据,其是一种用于标识资产数据的另一种标识信息,例如,待验证资产为用户的房产时,其资产数据可以包括房产地址、价格等信息,第一资产身份信息则是用于标识这些资产数据的,即第一节点并不会真正获得对应的资产数据,而是获得第一资产身份信息,如此用户就不需向第一节点提供具体的资产数据,从而保证了用户的具体资产数据不被泄露,进而保护了用户的隐私。
另外,第一资产身份信息可以是第二节点根据用户的待验证资产的资产数据生成后发送给用户的,即第二节点获取用户的待验证资产的资产数据以及该用户的身份信息,然后根据资产数据生成待验证资产的第一资产身份信息。
示例性地,若用户想去权威机构对自己的资产进行证明,则可通过上述的第二节点对用户的资产数据进行证明,即上述的第二节点可以为权威机构对应的区块链节点,该第二节点在确认用户的待验证资产为真实时,可以根据待验证资产的资产数据生成第一资产身份信息,然后第二节点还可以将第一资产身份信息作为该用户的待验证资产的证明提供给用户。由此,用户去使用其待验证资产时,可无需提供具体的资产数据证明,只需提供第一资产身份信息即可,所以第一节点可获取用户提供的第一资产身份信息以及用户的身份信息。
作为一种示例,为了保证用户的身份信息也不被泄露,则用户的身份信息可以为加密后的身份信息,即第二节点还可将用户的身份信息也经过哈希算法获得对应的身份哈希值作为加密后的身份信息,然后将加密后的身份信息发送给用户,并共享到第一节点中,所以,第一节点从第二节点处获得的用户的身份信息也并不是用户真实的身份信息,以及第一节点从用户处获得的身份信息也不是用户真实的身份信息,而是加密后的身份信息,以此可以保证用户的身份可以不被第一节点所泄露。
需要说明的是,待验证资产并不仅仅指上述举例的房产,还可以指用户的金钱、各种学历证书、专业证书等,且若从广义上理解,用户的待验证资产还可以指用户本身所具备的一些技能,即无形资产,所以,本申请实施例中对用户的待验证资产进行验证可以理解为是对用户所持有的一些有形或无形财富的验证,也可以是对用户本身所具有的某些隐私信息进行验证,从而将用户的隐私信息以身份信息的方式去验证其是否有效,进而保证用户的隐私可不被泄露。另外,本申请实施例中为了便于理解,将待验证资产以有形资产如房产为例进行说明,而在实际应用中,该用户的待验证资产可以是上述所列举的或其他未列举的各种形式的资产,其均应在本申请的保护范围之内。
步骤s120:所述第一节点根据所述用户的身份信息查找预先存储的所述用户的第二资产身份信息。
第一节点根据用户的身份信息查找预先存储的用户的第二资产身份信息,该第二资产身份信息也是第二节点根据用户的待验证资产的资产数据生成的,也就是说,第二节点获取用户提供的待验证资产的资产数据以及用户的身份信息,然后第二节点根据资产数据生成待验证资产的第二资产身份信息,第二节点在生成第二资产身份信息后将第二资产身份信息以及用户的身份信息通过区块链网络共享到第一节点,然后第一节点将获得的第二资产身份信息进行存储,所以,第一节点可根据用户的身份信息查找到第一节点上存储的该用户的第二资产身份信息。
在上述实现过程中,通过第二节点将第二资产身份信息共享至第一节点,从而可以防止第二资产身份信息被恶意篡改,进而保证第二资产身份信息的可靠性。
可以理解地,上述第一资产身份信息为第一节点从用户处获取的资产身份信息,第二资产身份信息是第一节点通过第二节点共享获得的,其均是第二节点根据资产数据生成的,可以理解地,第二节点在根据资产数据生成第一资产身份信息发送给用户时,同时第二节点也将该第一资产身份信息作为第二资产身份信息共享到第一节点,所以第一节点可接收第二节点通过区块链网络共享的第二资产身份信息并将其进行存储。
步骤s130:所述第一节点根据所述第一资产身份信息与所述第二资产身份信息的比对结果,确定所述用户的待验证资产是否验证通过。
由于区块链本身的不可篡改性,所以,第二节点共享到第一节点的第二资产身份信息不能更改,但是若用户自己获得的第一资产身份信息若被更改,则可能导致第一资产身份信息与第二资产身份信息不一致,进而导致对该用户的待验证资产无法验证通过,所以,为了防止用户提供假的资产身份信息,还需将第一资产身份信息与第二资产身份信息进行比对,获得比对结果。
在上述获得比对结果后,作为一种示例,若比对结果为第一资产身份信息与第二资产身份信息一致,表示第一资产身份信息未被篡改,则确定该用户的待验证资产验证通过,若比对结果为第一资产身份信息与第二资产身份信息不一种,表示第一资产身份信息可能被篡改,则确定该用户的待验证资产验证不通过,以此可对用户的待验证资产进行验证。所以,通过资产身份信息的比对,可防止用户提供的第一资产身边信息是伪造的情况,由于区块链的不可篡改性,第二资产身份信息无法进行更改,所以,第一节点只需将用户提供的第一资产身份信息与第二资产身份信息进行比对即可知晓用户提供的第一资产身份信息是否是伪造的,相比于现有技术中还需查询大量的证据来证明用户提供的信息的可靠性,该方案中可有效节省验证的时间。
在上述实现过程中,用户在进行资产验证时,只需向区块链节点中的第一节点提供待验证资产的第一资产身份信息以及用户的身份信息,然后第一节点查找到第二节点根据资产数据生成的第二资产身份信息,再根据第一资产身份信息与第二资产身份信息的比对结果,确定用户的待验证资产是否验证通过,通过区块链技术的不可篡改特性,用户在进行资产验证时,只需提供资产的身份信息即可,而无需提供具体的资产信息,由此,用户可不用泄露自己的隐私信息即可完成资产的验证,进而保证了用户的信息安全。
作为一种示例,为了防止数据的篡改,第二资产身份信息为第二节点根据预设哈希算法对资产数据生成的第一资产哈希值。通过哈希算法生成第一资产哈希值作为第二资产身份信息,从而可以防止第二资产身份信息被恶意篡改,进而保证第二资产身份信息的可靠性。
其中,哈希算法又称为散列算法,是将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值,其实就是把一段数据转换为一个固定长度的字符串。哈希算法包括md2、md4、md5和sha-1等,本实施例中的预设哈希算法可以采用这些哈希算法中的任意一种。
在区块链中,通过哈希算法对一个交易区块中的交易信息进行加密,并把信息压缩成由一串数字和字母组成的散列字符串,区块链的哈希值能够唯一而准确地标识一个区块,区块链中任意节点通过简单的哈希计算都可以获得这个区块的哈希值,计算出的哈希值没有变化也就意味这区块中的信息没有被篡改。
上述将资产数据根据预设哈希算法生成对应的第一资产哈希值可参考现有的实现方式,在此不过多阐述。
作为一种示例,第二节点在生成第二资产身份数据后,还可以生成资产数据的资产数字证书,该资产数字证书包括对资产数据进行签名获得的资产数字签名,资产数字签名用于证实资产数据的完整性和来源,数字签名涉及到公钥、私钥。可以理解地,数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者,接收者只有用发送者发送的公钥才能解密被加密的摘要信息,然后用哈希算法对接收到的原文产生一个摘要信息,与解密的摘要信息对比,如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。
在本实施例中,第二节点在获取到用户的资产数据后,利用数字签名技术对资产数据进行签名,即利用预设私钥对资产数据进行加密,获得资产数字签名,然后再生成最终的资产数字证书。该资产数字证书由证书认证机构(certificationauthority,ca)来签发,资产数字证书用于验证公钥的合法性,第二节点在采用预设私钥生成资产数字签名时,会将预设私钥对应的预设公钥发送给第一节点,资产数字证书中包括版本、序列号、签名算法类型、签发者信息、有效期、被签发人、签发的公开密钥、ca数字签名、其他信息等等。
其中,资产数字证书中最重要的包括签发的公开密钥(即上述的预设公钥)以及ca数字签名(即上述的资产数字签名),所以,只要通过证书就可证明预设公钥是合法的。
另外,资产数字证书中还可以包括第一资产身份信息以及资产数据。需要说明的是,本实施例中所指的资产数据并不是最原始的资产数据,以房产为例,其原始的资产数据可以为:房产地址:1路123号,房产价格:100万,而资产数据包括多个资产属性以及根据每个所述资产属性对应的属性值生成的属性哈希值,即资产属性包括房产地址和房产价格,属性哈希值包括“1路123号”对应的哈希值以及“100万”对应的哈希值,所以,资产数据包括:(房产地址,地址属性哈希值)以及(房产价格,价格属性哈希值)。
上述的资产数据可以是特定的权威机构获取用户原始的资产数据然后通过哈希算法生成的包括资产属性以及属性哈希值的数据,然后让该数据发送至第二节点,由此,第二节点获取的不是最原始的资产数据,而是最原始的资产数据对应的哈希值,所以,第二节点也就无法获得用户具体的资产数据了。由于区块链网络的共享特性,从而使得在区块链网络中只能知晓原始的资产数据对应的哈希值,而无法知晓最原始的资产数据,进而确保了用户的隐私数据不被泄露。
可以理解地,资产数据可以是现实生活中各种实际证明的抽象数学表示,由一系列相互关联的属性组合在一起,构成完整的资产描述。资产数据可以由header和body两部分构成,header中包含了资产的一系列元数据,如资产编号,生成时间,资产类型以及权威机构(即第二节点)对该资产数据的签名。body中包含了实际的资产相关属性(如上述的房产地址和房产价格),不同类型的资产会具有不同的属性。以房屋产权证明为例,body中还包含了该产权证明的哈希值(即属性哈希值),计算该哈希的算法名称,房屋所有权人的身份数据,是否已抵押给其他银行等一系列相关属性。
所以,资产数字证书中的资产数据并不是原始的资产数据,第二节点将生成的资产数字证书发送给用户,用户在进行资产验证时,向第一节点提供该资产数字证书,然后第一节点可以先验证资产数字签名是否正确,所以第一节点先从资产数字证书中获得资产数字签名,然后利用上述预设私钥对应的预设公钥对该资产数字签名进行验证,该签名验证通过,表示该资产数字证书是由第二节点颁发的,进而再获取资产数字证书中的资产数据,为了保证该资产数据未被篡改过,则可根据上述是预设哈希算法生成资产数字证书中的资产数据对应的第二资产哈希值,然后将第一资产哈希值与第二资产哈希值进行比对,若比对一致,则表示该资产数字证书中的资产数据未被篡改过,所以,第一节点可从资产数字证书中获得第一资产身份信息。
在上述实现过程中,为了验证用户提供的第一资产身份信息是否为有效信息,还可以通过获取用户的资产数字证书,对用户的资产数字证书进行验证,以验证资产数字证书是否为第一节点所颁发的,进而保证了从资产数字证书中获取的第一资产身份信息的可靠性。
请参照图4,图4为本申请实施例提供的一种基于区块链的资产验证方法的第二流程图,该方法应用于区块链网络中的区块链节点,所述区块链节点包括第一节点和第二节点,所述方法包括如下步骤:
步骤s210:所述第二节点获取用户的待验证资产的资产数据以及所述用户的身份信息。
步骤s220:所述第二节点根据所述资产数据生成所述待验证资产的第二资产身份信息。
步骤s230:所述第二节点将所述第二资产身份信息以及所述用户的身份信息通过所述区块链网络共享到所述第一节点。
在第二节点将第二资产身份信息以及用户的身份信息共享到第一节点后,通过第一节点获取所述用户的待验证资产的第一资产身份信息以及所述用户的身份信息,再根据所述用户的身份信息查找预先存储的所述用户的第二资产身份信息,并根据所述第一资产身份信息与所述第二资产身份信息的比对结果,确定所述用户的待验证资产是否验证通过。
所以,通过第二节点生成资产数据的第二资产身份信息,进而用户在进行资产验证时,只需向区块链节点中的第一节点提供待验证资产的第一资产身份信息以及用户的身份信息,然后第一节点查找到第二节点根据资产数据生成的第二资产身份信息,再根据第一资产身份信息与第二资产身份信息的比对结果,确定用户的待验证资产是否验证通过,通过区块链技术的不可篡改特性,用户在进行资产验证时,只需提供资产的身份信息即可,而无需提供具体的资产信息,由此,用户可不用泄露自己的隐私信息即可完成资产的验证,进而保证了用户的信息安全。
该方法的具体实施方式可以参照上述方法实施例的具体实现过程,为了描述的简洁,在此不再过多描述。
请参照图5,图5为本申请实施例提供的一种基于区块链的资产验证方法的交互流程图,该方法包括如下步骤:
步骤s310:所述第二节点获取用户的待验证资产的资产数据以及所述用户的身份信息。
步骤s320:所述第二节点根据所述资产数据生成所述待验证资产的第二资产身份信息。
步骤s330:所述第二节点将所述第二资产身份信息以及所述用户的身份信息通过所述区块链网络共享到所述第一节点。
步骤s340:所述第一节点接收所述第二节点发送的第二资产身份信息以及用户的身份信息并存储。
步骤s350:所述第一节点获取所述用户的待验证资产的第一资产身份信息以及所述用户的身份信息。
步骤s360:所述第一节点根据所述用户的身份信息查找预先存储的所述用户的第二资产身份信息。
步骤s370:所述第一节点根据所述第一资产身份信息与所述第二资产身份信息的比对结果,确定所述用户的待验证资产是否验证通过。
所以,通过第二节点生成资产数据的第二资产身份信息,进而用户在进行资产验证时,只需向区块链节点中的第一节点提供待验证资产的第一资产身份信息以及用户的身份信息,然后第一节点查找到第二节点根据资产数据生成的第二资产身份信息,再根据第一资产身份信息与第二资产身份信息的比对结果,确定用户的待验证资产是否验证通过,通过区块链技术的不可篡改特性,用户在进行资产验证时,只需提供资产的身份信息即可,而无需提供具体的资产信息,由此,用户可不用泄露自己的隐私信息即可完成资产的验证,进而保证了用户的信息安全。
该方法的具体实施方式也可以参照上述方法实施例的具体实现过程,为了描述的简洁,在此不再过多描述。
请参照图6,图6为本申请实施例提供的一种区块链网络中的第一节点400的结构框图,所述第一节点400包括:
信息获取模块410,用于获取用户的待验证资产的第一资产身份信息以及所述用户的身份信息;
信息查找模块420,用于根据所述用户的身份信息查找预先存储的所述用户的第二资产身份信息,所述第二资产身份信息为所述第二节点220根据所述用户的待验证资产的资产数据生成的;
信息查找模块420,用于根据所述第一资产身份信息与所述第二资产身份信息的比对结果,确定所述用户的待验证资产是否验证通过。
可选地,所述信息查找模块420,具体用于若所述比对结果为所述第一资产身份信息与所述第二资产身份信息一致,则所述第一节点400确定所述用户的待验证资产验证通过;若所述比对结果为所述第一资产身份信息与所述第二资产身份信息不一致,则所述第一节点400确定所述用户的待验证资产验证不通过。
可选地,所述第一节点400还包括:
信息接收模块,用于接收所述第二节点220通过所述区块链网络共享的所述第二资产身份信息并存储。
可选地,所述第二资产身份信息为所述第二节点220根据预设哈希算法对所述资产数据生成的第一资产哈希值。
可选地,所述第一节点400还包括:
资产数字证书获取模块,用于获取所述用户的资产数字证书中的资产数字签名,所述资产数字证书为所述第二节点220采用预设私钥对所述资产数据进行签名后获得的,所述资产数字证书包括所述第一资产身份信息、所述资产数据以及所述资产数字签名;
签名信息查找模块420,用于利用所述预设私钥对应的预设公钥对所述资产数字签名进行验证,若验证通过,则获取所述资产数字证书中的资产数据;
哈希值生成模块,用于根据所述预设哈希算法生成所述资产数字证书中的资产数据对应的第二资产哈希值;
哈希值比对模块,用于将所述第一资产哈希值与所述第二资产哈希值进行比对。
可选地,所述资产数据包括多个资产属性以及根据每个所述资产属性对应的属性值生成的属性哈希值。
可选地,所述用户的身份信息为加密后的身份信息。
请参照图7,图7为本申请实施例提供一种区块链网络中的第二节点500的结构框图,所述第二节点500包括:
数据获取模块510,用于获取用户的待验证资产的资产数据以及所述用户的身份信息;
身份信息生成模块520,用于根据所述资产数据生成所述待验证资产的第二资产身份信息;
信息共享模块530,用于将所述第二资产身份信息以及所述用户的身份信息通过所述区块链网络共享到所述第一节点400,以使所述第一节点400获取所述用户的待验证资产的第一资产身份信息以及所述用户的身份信息,再根据所述用户的身份信息查找预先存储的所述用户的第二资产身份信息,并根据所述第一资产身份信息与所述第二资产身份信息的比对结果,确定所述用户的待验证资产是否验证通过。
可选地,所述第二节点500还包括:
数据签名模块,用于采用预设私钥对所述资产数据进行签名,获得资产数字证书,并将所述资产数字证书发送给所述用户,所述资产数字证书包括所述第一资产身份信息、所述资产数据以及资产数字签名。
可选地,所述身份信息生成模块520,用于根据预设哈希算法对所述资产数据生成的第一资产哈希值,所述第一资产哈希值为所述第二资产身份信息。
应理解,第一节点400与上述图3方法实施例对应,能够执行图3方法实施例涉及的各个步骤,第二节点500与上述图4方法实施例对应,能够执行图4方法实施例涉及的各个步骤,上述图6和图7中各个模块可以通过硬件实现,也可以通过软件实现,本申请实施例并不限于此。该第一节点400和第二节点500具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。
请参照图8,图8为本申请实施例提供的一种区块链网络系统600的结构框图,所述区块链网络系统600包括第一节点400和第二节点500;
所述第二节点500,用于获取用户的待验证资产的资产数据以及所述用户的身份信息;
所述第二节点500,用于根据所述资产数据生成所述待验证资产的第二资产身份信息;
所述第二节点500,用于将所述第二资产身份信息以及所述用户的身份信息通过所述区块链网络共享到所述第一节点400;
所述第一节点400,用于接收所述第二节点500发送的第二资产身份信息以及用户的身份信息并存储;
所述第一节点400,用于获取所述用户的待验证资产的第一资产身份信息以及所述用户的身份信息;
所述第一节点400,用于根据所述用户的身份信息查找预先存储的所述用户的第二资产身份信息;
所述第一节点400,用于根据所述第一资产身份信息与所述第二资产身份信息的比对结果,确定所述用户的待验证资产是否验证通过。
该系统的具体实施方式也可以参照上述方法实施例的具体实现过程,为了描述的简洁,在此不再过多描述。
本申请实施例提供一种可读存储介质,所述计算机程序被处理器执行时,执行如图3或图4所示方法实施例中区块链节点所执行的方法过程。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
综上所述,本申请实施例提供一种基于区块链的资产验证方法及区块链网络系统,该方法中,用户在进行资产验证时,只需向区块链节点中的第一节点提供待验证资产的第一资产身份信息以及用户的身份信息,然后第一节点查找到第二节点根据资产数据生成的第二资产身份信息,再根据第一资产身份信息与第二资产身份信息的比对结果,确定用户的待验证资产是否验证通过,通过区块链技术的不可篡改特性,用户在进行资产验证时,只需提供资产的身份信息即可,而无需提供具体的资产信息,由此,用户可不用泄露自己的隐私信息即可完成资产的验证,进而保证了用户的信息安全。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。