区块链实名参与方法和系统与流程

文档序号:16062672发布日期:2018-11-24 12:21阅读:305来源:国知局

本发明涉及通信技术领域,尤其涉及一种区块链实名参与方法和系统。

背景技术

通常,区块链技术由于通过基于节点与节点之间的信息交互实现交易的安全性的保证,降低了信任成本而得到广泛应用。

目前,区块链网络中的参与方式都是匿名的,只能证明所有的区块链行为为某一个节点对应的用户实施的,而不能被其他用户伪造,也就是说,区块链网络的实施环境和现实生活是分离的,难以对在现实生活中节点对应的用户进行管理等,比如,一旦区块链网络中的节点行为存在违法行为,比如洗黑钱等,完全无法追查,即便是由国家ca(certificateauthority,证书授权中心)机关发放的证书,也只能证明网络身份,而无法证明其现实身份,而ca机构如果要证明真实身份需要线下参与,非常复杂。因此,亟需一种有效确定区块链网络中的节点对应的现实生活中的真实用户身份的方法。



技术实现要素:

本发明提供一种区块链实名参与方法和系统,以解决现有技术中,无法对区块链的节点进行有效管理,以及无法维护区块链的合法性的技术问题。

本发明第一实施例提供一种区块链实名参与方法,包括:参与节点通过授权设备从申请用户的证件芯片内读取经过公安局私钥签名的用户证件图像和用户证件信息,并获取所述申请用户录制的认证视频,其中,所述认证视频包含:活体用户以及视频录制时间,并对所述认证视频进行哈希计算获取对应的哈希值发送给时间戳服务器;所述时间戳服务器记录收到所述哈希值的接收时间,并应用所述时间戳服务器的私钥对所述哈希值和所述接收时间进行签名发送给所述参与节点;所述参与节点计算所述视频录制时间与所述接收时间之间的时间差,若获知所述时间差满足预设的时间范围,则应用所述申请用户的私钥对认证广播消息进行签名后发送给区块链网络,其中,所述认证广播消息包括;经过所述时间戳服务器私钥签名的所述哈希值和所述接收时间、所述申请用户的公钥和用户基本信息、所述经过公安局私钥签名的用户证件图像和用户证件信息、以及所述认证视频;挖矿节点应用所述申请用户的公钥对接收的认证广播消息进行签名验证,验证通过后验证所述哈希值与所述认证视频是否匹配,若获知正确匹配,则验证所述用户证件图像和所述活体用户是否匹配,若获知正确匹配,则验证所述用户证件信息与所述用户基本信息是否匹配,若获知正确匹配,则计算所述视频录制时间与所述接收时间之间的时间差,若比较后获知所述时间差满足预设的时间范围,则确定所述申请用户的实名认证通过,并将认证成功消息写入到区块中并向所述区块链网络广播;所述挖矿节点判断在预设时间内是否接收其他挖矿节点发送的指示所述区块的无效广播消息,若获知没有接收到所述无效广播消息,则向所述区块链网络广播所述区块生效,并将所述区块写入区块链账本中。

本发明第二实施例提供一种区块链实名认证系统,包括:参与节点、时间戳服务器、挖矿节点,其中,所述参与节点,用于通过授权设备从申请用户的证件芯片内读取经过公安局私钥签名的用户证件图像和用户证件信息,并获取所述申请用户录制的认证视频,其中,所述认证视频包含:活体用户以及视频录制时间,并对所述认证视频进行哈希计算获取对应的哈希值发送给所述时间戳服务器;所述时间戳服务器,用于记录收到所述哈希值的接收时间,并应用所述时间戳服务器的私钥对所述哈希值和所述接收时间进行签名发送给所述参与节点;所述参与节点,用于计算所述视频录制时间与所述接收时间之间的时间差,若获知所述时间差满足预设的时间范围,则应用所述申请用户的私钥对认证广播消息进行签名后发送给区块链网络,其中,所述认证广播消息包括;经过所述时间戳服务器私钥签名的所述哈希值和所述接收时间、所述申请用户的公钥和用户基本信息、所述经过公安局私钥签名的用户证件图像和用户证件信息、以及所述认证视频;所述挖矿节点,用于应用所述申请用户的公钥对接收的认证广播消息进行签名验证,验证通过后验证所述哈希值与所述认证视频是否匹配,若获知正确匹配,则验证所述用户证件图像和所述活体用户是否匹配,若获知正确匹配,则验证所述用户证件信息与所述用户基本信息是否匹配,若获知正确匹配,则计算所述视频录制时间与所述接收时间之间的时间差,若比较后获知所述时间差满足预设的时间范围,则确定所述申请用户的实名认证通过,并将认证成功消息写入到区块中并向所述区块链网络广播;所述挖矿节点,用于判断在预设时间内是否接收其他挖矿节点发送的指示所述区块的无效广播消息,若获知没有接收到所述无效广播消息,则向所述区块链网络广播所述区块生效,并将所述区块写入区块链账本中。

本发明第三实施例提供一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述实施例所述的区块链实名参与方法。

本发明第四实施例提供一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例所述的区块链实名参与方法。

本发明实施例提供的技术方案可以包括以下有益效果:

基于公安局提供的用户相关信息实现了对区块链中节点的实名认证,保证了实名认证的准确性和可靠性,将区块链网络中的节点与现实生活中的真实用户身份对应起来,便于对节点的管理和维护区块链的合法性。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,

图1是根据本发明一个实施例的区块链实名参与系统的结构示意图;

图2是根据本发明一个实施例的区块链实名参与系统的交互示意图;

图3是根据本发明另一个实施例的区块链实名参与系统的交互示意图;

图4是根据本发明一个实施例的区块链实名参与方法的流程图;

图5是根据本发明另一个实施例的区块链实名参与方法的流程图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

基于背景技术的描述,不难理解,现有技术中,由于区块链网络中的参与节点参与方式均是匿名的,基于区块链网络仅仅能确认参与节点的网络身份,而无法确定出在参与节点对应的操作用户在现实生活中的真正身份,从而导致无法对区块链网络的运行进行有效的监管。

在区块链技术发展迅速的当下,区块链技术越来越被应用来承载实体用世界的财产,而匿名会衍生众多的欺诈行为,这制约了区块链技术的推广。

为了解决上述技术问题,本发明提出了一种区块链实名参与方法,在该方法中,将区块链中的参与节点与真实世界中的用户的身份信息紧密联系在一起,从而,有利于基于用户的真实信息对参与节点的管理,以及对区块链网络环境的合法性保证。

其中,为了描述的清楚,首先对本发明实施例的区块链实名参与系统进行描述,图1是根据本发明一个实施例的区块链实名参与系统的结构示意图,如图1所示,该系统包括参与节点100、挖矿节点200和时间戳服务器300,其中,参与节点100为首次申请加入区块链网络的节点、参与节点100成功加入区块链网络后,作为挖矿节点行使记账功能等,时间戳服务器300用于对区块链网络中的节点行为,包括交易行为等,进行时间标记,以避免交易被伪造等。

参照图2,在实际执行过程中,参与节点获取申请用户录制的认证视频(步骤1),其中,申请用户可以为个人也可以为企业,其中,认证视频包含:活体用户以及视频录制时间,并且标记该认证视频的唯一性,对认证视频进行哈希计算获取对应的哈希值发送给时间戳服务器,然而考虑到当非法用户使用假的用户证件进行身份认证时,也会完成实名认证,因而,为了进一步保证实名认证的准确性,参与节点通过授权设备从申请用户的证件芯片内读取经过公安局私钥签名的用户证件图像和用户证件信息(步骤2)。

时间戳服务器记录收到哈希值的接收时间,并应用时间戳服务器的私钥对哈希值和接收时间进行签名发送给参与节点,从而,通过时间戳服务器对认证视频进行私钥签名,避免对认证视频的伪造(步骤3)。

参与节点计算视频录制时间与接收时间之间的时间差,若获知时间差满足预设的时间范围,则表明该认证视频能够真实反映参与节点对应的申请用户的真实信息,从而,应用申请用户的私钥对认证广播消息进行签名后发送给区块链网络(步骤4),其中,认证广播消息包括;经过时间戳服务器私钥签名的哈希值和接收时间、申请用户的公钥和用户基本信息、以及认证视频。

进一步地,挖矿节点应用申请用户的公钥对接收的认证广播消息进行签名验证,以避免其他非法节点伪装成参与节点进行身份认证(步骤51)。

应当理解的是,本发明的实施例中,基于公钥证书技术对区块链的参与节点对应的申请用户进行身份认证,公钥证书技术的而核心为一对密钥,其基本原理是:由一个密钥进行加密的信息内容,只能由与之配对的另一个密钥才能进行解密。加密公钥可以广泛地发给与自己有关的通信者即挖矿节点,加密私钥则需要十分安全地存放起来。使用中,参与节点可以用参与节点的签名私钥对广播信息进行加密并传送给挖矿节点,挖矿节点可以使用参与节点的加密公钥完成解密。

进一步的,在验证通过后验证哈希值与认证视频是否匹配(步骤52),避免非法用户使用其他视频进行实名认证,若获知正确匹配,则验证用户证件图像和活体用户是否匹配(步骤53),若获知正确匹配,则验证用户证件信息与用户基本信息是否匹配(步骤54),若获知正确匹配,则表明用户证件信息等有效,进而,计算视频录制时间与接收时间之间的时间差(步骤55),若比较后获知时间差满足预设的时间范围,则确定申请用户的实名认证通过,并将认证成功消息写入到区块中并向区块链网络广播(步骤56)。

在本实施例中,为了进一步验证参与节点的有效性,避免其破坏区块链网络的运行环境,挖矿节点判断在预设时间内是否接收其他挖矿节点发送的指示区块的无效广播消息,即确定该参与节点加入区块链网络中,是否正常行使记账功能,若获知没有接收到无效广播消息,则表明该参与节点加入区块链网络后,正常行使记账功能,则向区块链网络广播区块生效,并将区块写入区块链账本中(步骤6)。

在实际执行过程中,可能其他挖矿节点发生记账错误从而误判当前参与节点记账错误,而发送了无效广播消息,因而,为了进一步提高参与节点参与到区块链网络时的验证的准确性,在本发明的一个实施例中,如图3所示,在上述图2所示的基础上,还包括以下步骤:若获知接收到无效广播消息,则判断发送无效广播消息的挖矿节点的个数是否超过预设阈值(步骤7),比如是否超过半数的挖矿节点,如果获知个数小于预设阈值,则向区块链网络广播区块生效,并将区块写入区块链账本中,若获知个数大于等于预设阈值,则向区块链网络广播区块无效(步骤8)。

由此,本发明实施例的区块链实名参与系统,在参与节点申请加入区块链网络时,对参与节点对应的活体用户进行实名认证,且基于共安全认证的用户证件等进行身份认证,进一步提高了实名认证的准确性和可靠性。

为了更加详细的说明本发明实施例的区块链实名参与系统执行时的细节,使得本领域的技术人员对本发明的区块链实名参与过程更加清楚,下面集中在区块链实名参与方法侧进行参与过程的细节的描述。

图4是根据本发明一个实施例的区块链实名参与方法的流程图,如图4所示,该方法包括:

步骤101,参与节点通过授权设备从申请用户的证件芯片内读取经过公安局私钥签名的用户证件图像和用户证件信息,并获取申请用户录制的认证视频,其中,认证视频包含:活体用户以及视频录制时间,并对认证视频进行哈希计算获取对应的哈希值发送给时间戳服务器。

其中,授权设备可以为可包括由公安局等权威机构授权的硬件设备,该硬件设备可以读取证件芯片中存储的用户证件图像和用户证件信息等。

可以理解,在本发明的实施例中,参与节点通过授权设备从申请用户的证件芯片内读取经过公安局私钥签名的用户证件图像和用户证件信息,而不是获取申请用户上传的用户证件图像和证件信息,从而,避免了持假证注册的非法用户的有机可乘。上述用户证件包括包含用户证件图像和用户证件信息的身份证、护照、学生证、医疗保险证等。

其中,视频录制时间包括显示当前具体时刻的时间电子钟图表,比如,包括显示出当前年月日时间时分秒的电子钟图表,或者,活体用户朗读的当前具体时刻等,即以语音的形式表示当前的具体时刻,视频录制时刻用以指示用户录制视频的具体时间,以避免用户上传的认证视频录制的时间较为久远,与用户真实的面貌信息相差较大等(比如,26岁的申请用户上传了其在18岁录制的认证视频)。

具体地,为了实现对参与节点申请用户的实名认证,用户需要预先录制好一段认证视频,该认证视频中包括活体用户(即真实的申请用户,而不是人形立牌等图像),以及视频录制时间,进而,参与节点获取申请用户录制的认证视频,其中,参与节点获取认证视频的方式可以为用户主动上传,也可以是用户使用参与节点对应的设备比如智能手机录制后,参与节点从相关设备中主动提取的。

进而,到参与节点对认证视频进行哈希值的计算,已通过该哈希值标注该认证视频的唯一性,并将该哈希值发送给时间戳服务器,以便于进一步获取时间戳服务器发送的可靠的时间签名。

步骤102,时间戳服务器记录收到哈希值的接收时间,并应用时间戳服务器的私钥对哈希值和接收时间进行签名发送给参与节点。

具体地,时间戳服务器记录收到哈希值的接收时间,并应该时间戳服务器的私钥对哈希值和接收时间进行签名发送给参与节点,比如,通过nfc(nearfieldcommunication,近距离无线通讯技术)、wifi等发送给参与节点,由此,实现了对参与节点的申请的认证视频的可靠的时间签名。

步骤103,参与节点计算视频录制时间与接收时间之间的时间差,若获知时间差满足预设的时间范围,则应用申请用户的私钥对认证广播消息进行签名后发送给区块链网络,其中,认证广播消息包括;经过时间戳服务器私钥签名的哈希值和接收时间、申请用户的公钥和用户基本信息、经过公安局私钥签名的用户证件图像和用户证件信息、以及认证视频。

应当理解的是,参与节点如果判断时间戳服务器接收到哈希值的接收时间如果与视频录制时间差距较大,则有可能是非法设备端伪装了时间戳服务器向参与节点发送的哈希值进行了签名,并将该签名发送给参与节点,从而导致接收时间与视频录制时间差距较大,因而,在本发明的实施例中,通过计算视频录制时间与接收时间之间的时间差,对参与节点的合法性进行初步认证。

具体地,计算视频录制时间与接收时间之间的时间差,比如,提取显示当前具体时刻的时间电子钟图表中显示的视频录制时间,计算出该视频录制时间与接收时间之间的时间差,判断时间差是否满足预设的时间范围,该预设的时间范围是根据大量实验数据标定的,通常在该预设的时间范围内,合法的参与节点可以完成将录制的认证视频成功上传至时间戳服务器,以及时间戳服务器可以完成签名的反馈直到参与节点接收到。

如果时间差满足预设的时间范围,则表明对哈希值的签名方是时间戳服务器,从而,应用申请用户的私钥对认证广播消息签名后发送给区块链网络,以便于区块链网络根据该认证广播消息进行申请用户的合法性的再次认证。其中,申请用户的私钥仅仅由申请用户持有。

上述认证广播消息包括经过时间戳服务器到私钥签名的哈希值和接收时间,申请用户的公钥和用户基本信息、认证视频以及经过共安全私钥签名的用户证件图像和用户证件信息,其中,用户基本信息包括的用户身份证号等标识用户唯一性的信息,用户名称包括用户姓名等标识用户身份的信息,其中,用户基本信息与用户证件信息对应,以便于进一步根据用户基本信息与用户证件信息进行申请用户的实名认证。

步骤104,挖矿节点应用申请用户的公钥对接收的认证广播消息进行签名验证,验证通过后验证哈希值与认证视频是否匹配,若获知正确匹配,则验证用户证件图像和活体用户是否匹配,若获知正确匹配,则验证用户证件信息与用户基本信息是否匹配,若获知正确匹配,则计算视频录制时间与接收时间之间的时间差,若比较后获知时间差满足预设的时间范围,则确定申请用户的实名认证通过,并将认证成功消息写入到区块中并向区块链网络广播。

正如前述描述的,参与用户的私钥和认证广播消息中的参与用户的公钥互为一对密码,因而,在本发明的实施例中,挖矿节点应用申请用户的公钥对接收的经过参与用户的私钥签名的认证广播消息进行签名的认证,当申请用户的公钥与认证广播消息中的签名的申请用户的私钥对应时,则表明发送认证广播消息的为参与节点本身,从而完成对参与节点的合法性的再次验证。

进一步地,验证通过后验证哈希值到与认证视频是否匹配,由此,避免其他参与节点发送的认证视频混淆实名认证过程,如果正确匹配,则确定出当前参与认证的认证视频与对应用户的参与节点对应。

更进一步地,对申请用户进行实名认证,验证用户证件图像与活体用户是否匹配,即活体用户是否使用本人的用户证件进行认证,如果匹配,则验证用户证件信息与用户基本信息是否匹配,以验证进一步保证活体用户使用本人的相关信息进行实名认证的,比如,当用户证件信息包括证件号和用户证件名称,用户基本信息包括用户标识和用户名称时,可以验证证件号和用户标识是否相同,以及验证用户证件名称和用户名称是否相同。

如果用户的证件信息与用户基本信息匹配,则表明活体用户使用本人的相关信息进行实名认证,此时,完成对认证视频本身内容的合法性验证,并且,认证的用户的证件信息和用户证件图像是公安局认证的,保证了认证可靠性。

另外,时间戳服务器接收到哈希值的接收时间如果与视频录制时间差距较大,则有可能是其他非法设备截获了参与节点发送的哈希值,伪装成参与节点向时间戳服务器发送了截获的哈希值等,从而导致接收时间与视频录制时间差距较大,因而,在本发明的实施例中,通过计算视频录制时间与接收时间之间的时间差,对参与节点的合法性进行认证。为了避免非法用户使用其他用户的认证视频进行实名认证,再次计算视频录制时间与接收时间的时间差,比较获知时间差满足预设的时间范围,则表明该认证视频确实为参与节点本身发送的对应申请用户的认证视频,确定申请用户的实名认证通过,并将认证成功消息写入到区块中并向区块链网络广播。

其中,在不同的应用场景下,认证成功消息可以为约定的表示认证成功的字符串,也可以是具体的表示认证成功的文字信息等,在此不作限制。

考虑到在一些场景下,可能有些非法用户通过截获并重放其他用户的认证视频进行实名认证,因而,为了进一步保证参与节点提供的认证视频对应于申请用户本人,在本发明的一个实施例中,认证视频中还包括活体用户朗读预设的认证视频用途的语音片段,如图5所示,在上述确定申请用户的实名认证通过之前,该方法还包括:

步骤201,挖矿节点对活体用户的唇语进行检测获取唇语内容,并将唇语内容与语音片段的文本内容进行比较。

步骤202,挖矿节点若获知唇语内容与语音片段的文本内容一致,则确定申请用户的实名认证通过。

可以理解,为了避免被其他用户非法利用,申请用户在进行认证视频的录制时,朗读一段包含自己个人信息的语音,比如,朗读一段“这是小明用来区块链实名认证的视频”语音等,从而,挖矿节点对活体用户的唇语进行检测获取唇语内容,并将唇语内容与预设的语音片段的文本内容进行比较,挖矿节点若获知唇语内容与语音片段的文本内容一致,则确定申请用户的实名认证通过。由此,一方面,基于唇语进行合法性的认证,避免了非法用户通过接货的视频来配音进行认证,另一方面,保证了即使非法用户截获其他用户的认证视频,也由于其活体无法与截获的认证视频对应而无法攻击。

步骤105,挖矿节点判断在预设时间内是否接收其他挖矿节点发送的指示区块的无效广播消息,若获知没有接收到无效广播消息,则向区块链网络广播区块生效,并将区块写入区块链账本中。

不难理解的是,参与节点成功接入区块链网络后,及时完成了实名认证,也有可能该实名认证的用户是非法用户等,从而,为了保证该参与节点正常进行记账活动,而不是进行洗黑钱等违法活动,需要对该参与节点是否执行正常合法的记账活动进行验证。

具体地,区块链网络中的挖矿节点将账本中记录的交易信息等与该参与节点记录的同样的交易的交易信息进行比对,如果不一致,则该挖矿节点判定参与节点记账错误,判断该参与节点对应的认证成功消息的区块无效,挖矿节点判断在预设时间内是否接收到其他挖矿节点发送的指示区块无效的广播信息,若获知没有接收到无效广播消息,则向区块链网络广播所述区块生效,并将区块写入区块链账本中。

当然,在实际执行过程中,可能其他挖矿节点发生记账错误从而误判当前参与节点记账错误,而发送了无效广播消息,因而,为了进一步提高参与节点参与到区块链网络时的验证的准确性,在本发明的一个实施例中,挖矿节点若获知接收到无效广播消息,则判断发送无效广播消息的挖矿节点的个数是否超过预设阈值,该预设阈值与挖矿节点的总数和区块链网络中的挖矿节点的权威性有关,挖矿节点的总数越多,挖矿节点的权威性越低(比如仅仅为普通的参与节点),则对应的预设阈值越低。

挖矿节点若获知个数小于预设阈值,则表明该大部分的挖矿节点是认同该区块的,或者,没有权威性的挖矿节点认为该区块是无效的,因而,此时向区块链网络广播区块生效,并将区块写入区块链账本中,反之,若获知个数大于等于预设阈值,则向区块链网络广播所述区块无效。

综上所述,本发明实施例的区块链实名参与方法,基于公安局提供的用户相关信息实现了对区块链中节点的实名认证,保证了实名认证的准确性和可靠性,将区块链网络中的节点与现实生活中的真实用户身份对应起来,便于对节点的管理和维护区块链的合法性。

为了实现上述实施例,本发明还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如前述实施例描述的区块链实名参与方法。

为了实现上述实施例,本发明还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,当该计算机程序被处理器执行时能够实现如前述实施例所述的区块链实名参与方法。

在本发明中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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