基于区块链技术的存在证明及认证服务方法及系统的制作方法

文档序号:10597191阅读:501来源:国知局
基于区块链技术的存在证明及认证服务方法及系统的制作方法
【专利摘要】本发明提出基于区块链技术的存在证明及认证服务方法,该方法包括在公有区块链中为每个用户设置至少一对公/私钥,对数字化物品进行哈希运算,生成哈希值,使用所述私钥对所述哈希值进行签名,将所述签名进行哈希运算,生成新哈希值,将所述新哈希值嵌入所述标准消息中,生成新标准消息;在用户向所述公有区块链广播新标准消息之前,将新标准消息的发送者设为用户自己的地址,广播所述新标准消息,若新标准消息被用户打包且新标准消息被确认,返回新标准消息的哈希值,如果新标准消息所在的区块被确认,返回所述区块的哈希值;如果未存在用户打包新标准消息,且过了新标准消息存在的合法时间,标记新标准消息为无效,重新构造新标准消息。
【专利说明】
基于区块链技术的存在证明及认证服务方法及系统
技术领域
[0001]本发明涉及存在证明与认证服务领域,特别涉及基于区块链技术的存在证明及认证服务方法及系统。
【背景技术】
[0002]近百年来,如何证明某件物品(如音乐,学历,文档等)的存在时间、合法性以及所有者的归属一直是社会学问题中的研究热点,随着信息时代的到来,物品(如音乐,学历,文档)越来越多的被数字化,极大的方便了其传播,与此同时许多问题暴露了出来,如何证明一份文档、一首音乐作品的完整性、合法性以及产生的时间,来保护当事人的合法权益不被侵害,因此产生了数字签名、时间戳服务等方法,这些方法无一例外的需要第三方可信机构的认证参与,如果第三方可信认证机构被黑客攻击,或者第三方机构主动的篡改行为都将使当事人的合法权益受到侵害,在2008年,伴随于比特币出现的区块链技术第一次从数学、密码学角度实现了去中心化的服务,无需第三方机构(中央银行)的参与,可靠安全的实现了货币的产生、交易,由于人们对第三方机构的不信任,导致对去中心的服务需求越来越多,但是现下还没有出现能提供去中心化的物品存在证明以及认证的服务。

【发明内容】

[0003]针对现有技术的不足,本发明提出基于区块链技术的存在证明及认证服务方法及系统。
[0004]本发明提出一种基于区块链技术的存在证明及认证服务方法,所述区块链为公有区块链,包括:
[0005]步骤I,在公有区块链中为每个用户设置至少一对公/私钥,将用户的数字化物品通过哈希函数进行哈希运算,生成哈希值,使用所述私钥对所述哈希值进行签名,将所述签名进行哈希运算,生成新哈希值,根据所述公有区块链中标准消息的格式,将所述新哈希值嵌入所述标准消息中,生成新标准消息,在所述新标准消息中加入代币;
[0006]步骤2,在用户向所述公有区块链广播所述新标准消息之前,将所述新标准消息的发送者设为用户自己的地址,广播所述新标准消息,若所述新标准消息被用户打包且所述新标准消息被确认,则返回所述新标准消息的哈希值,如果所述新标准消息所在的区块被确认,返回所述区块的哈希值;如果未存在用户打包所述新标准消息,且过了所述新标准消息存在的合法时间,标记所述新标准消息为无效,重新构造所述新标准消息,增加所述代币,以便被参与所述公有区块链打包的用户打包确认。
[0007]所述步骤I中的所述哈希函数满足:
[0008]给定一个哈希值h,找不到一个消息m使得hash(m) =h;
[0009]给定一个消息m,找不到一个消息η使得hash(m) =hash(n)。
[0010]所述代币为在所述公有区块链上产生、流通的货币。
[0011]所述步骤2中将用户的公钥进行编码产生所述地址。
[0012]所述步骤2还包括若只为所述数字化物品的存在时间证明以及认证服务,则将接收者设定为无效地址;若允许转移所述数字化物品,则将接收者设定为所述地址或者其它用户的地址。
[0013]本发明还提出一种基于区块链技术的存在证明及认证服务系统,所述区块链为公有区块链,包括:
[0014]生成标准消息模块,用于在公有区块链中为每个用户设置至少一对公/私钥,作为所述公有区块链的标识,将用户的数字化物品通过哈希函数进行哈希运算,生成哈希值,根据所述公有区块链中标准消息的格式,将所述哈希值嵌入所述标准消息中,生成新标准消息,在所述新标准消息中加入代币;
[0015]广播模块,用于在用户向所述公有区块链广播所述新标准消息之前,将所述新标准消息的发送者设为用户自己的地址,广播所述新标准消息,若所述新标准消息被用户打包且所述新标准消息被确认,则返回所述新标准消息的哈希值,如果所述新标准消息所在的区块被确认,返回所述区块的哈希值;如果未存在用户打包所述新标准消息,且过了所述新标准消息存在的合法时间,标记所述新标准消息为无效,重新构造所述新标准消息,增加所述代币,以便被参与所述公有区块链打包的用户打包确认。
[0016]所述生成标准消息模块中的所述哈希函数满足:
[0017]给定一个哈希值h,找不到一个消息m使得hash(m) =h;
[0018]给定一个消息m,找不到一个消息η使得hash(m) =hash(n)。
[0019]所述代币为在所述公有区块链上产生、流通的货币。
[0020]所述广播模块中将用户的公钥进行编码产生所述地址。
[0021]所述广播模块还包括若只为所述数字化物品的存在时间证明以及认证服务,则将接收者设定为无效地址;若允许转移所述数字化物品,则将接收者设定为所述地址或者其它用户的地址。
[0022]由以上方案可知,本发明的优点在于:
[0023]本发明通过将数字化后的物品的哈希值放入到一条公有的区块链中,实现不可篡改,保证该物品在区块生成的时间戳之前存在,以及认证该物品的所有者等特性,整个过程无需第三方的参与,基于区块链技术的安全性、可认证性,从技术角度实现了去中心化的服务。
【附图说明】
[0024]图1为一次数字化物品记录于区块链中的流程图;
[0025]图2为本发明系统结构图。
【具体实施方式】
[0026]区块链分公有链、私有链、联盟链三种,所谓公有链,意味着每一个人都可以参与区块链的产生,并且可以查看区块链中包含的信息,比特币所依附的区块链就是公有链的一种;私有链则是某一企业内部使用的区块链,不对外开放;联盟链服务于同一个联盟的企业,属于同一联盟的企业共享区块链,不难看出,公有链是最大化地实现了去中心化特性的区块链技术,联盟链次之,私有链最弱。
[0027]由于公有区块链的公开性,人人都可以参与,真正与去中心化的理念相符合,因此本发明建立于公有的区块链基础之上,当下比较流行的区块产生方式为POW(工作量证明)和POS(权益证明)两种,POW最大限度地保证了区块链产生的公平性,通过消耗计算机的计算能力来产生区块,缺点就是造成了计算资源以及电力资源的浪费;POS虽然缓解了计算资源和电力资源的浪费,但是却某种程度上提高了人人参与区块打包的门槛,降低了区块链产生的公平性,其中构建于区块链技术之上最流行的应用比特币网络采取的正是P0W,区块一旦产生且被全网参与人认同,就很难被篡改,如果在当前区块之后已经链接了 N个区块,那么我们认为,该区块的内容一定不会被篡改。
[0028]本发明是构建于区块链技术基础之上的存在证明及认证服务的一种实现方法,每个用户在该区块链中都拥有不少于一对的公私钥,作为在该区块链上独一无二的标识,将数字化的物品的哈希值嵌入到能在该公有区块链上流通的标准消息格式中,然后广播该消息到全网中,等待参与该区块链打包的用户确认该消息的正确性,一旦消息被确认正确,则打包该消息即将该消息放入到区块中,一个区块可包含多个消息,一旦该消息被打包到某一区块,且该区块被参与该区块链的所有用户确认,区块的确认需要满足一定的规则,例如在比特币系统中,当根据区块头的信息计算出的哈希值小于其目标值时,我们就可以认为该区块被确认。我们可以基本认为该消息一经确认不可被篡改,在该区块之后如果又经历N个区块的确认,我们一定认为,该消息不可被篡改,且该物品的产生时间不会比该区块中的时间戳更晚,例如比特币交易所在的区块,一旦在该交易所在的区块被确认,且该区块之后又产生并链接了 6个区块,则在攻击者有10%的机会产生下一区块的场景下,可以达到攻击目的的概率只有0.02428%,而且随着区块链的长度增大,攻击者的概率是呈指数下降的。
[0029]本发明是构建于区块链技术基础之上的存在证明及认证服务一种实现方法,其实现方法如下:
[0030]A用户希望将自己的数字化的物品(如音乐,学历,专利等)存放在公有区块链中,来证明该物品属于A用户自己,且在该区块的时间戳之前已经存在。
[0031]首先,将数字化后的物品进行一次哈希运算,得到独一无二的哈希值,所使用的哈希函数必须包括以下两个特性:1、给定一个哈希值h,找到一个消息m使得hash(m) =h是极其困难的;2、给定一个消息m,找到一个消息η使得hash (m) = hash (η)是及其困难的,该哈希函数可以选择被广泛使用的SHA256函数。
[0032]接着,对生成的哈希值使用A用户的私钥进行签名,然后将得到的签名再次进行哈希,得到哈希值。这样做的目的是只有A用户的公钥可以验证该签名的准确性,从而证明该物品的所有者是A用户;使用哈希值的目的是,保证我们要保护的物品不会明文出现在公有区块链上而被他人读取,而且该物品一旦被篡改,它的哈希值就会变得跟原来哈希值完全不一样。
[0033]其次,根据该公有区块链的标准消息的格式,将上步得到的哈希值嵌入到标准消息中中;在此过程中要保证该消息的合法性即不能违背标准消息格式,也要保证该交易的有效性即参与该公有区块链的用户愿意打包该交易,所以我们可以在该消息中加入一定的代币(在此区块链上产生、流通的货币),作为奖励给打包该交易的用户,例如,在已经成熟的比特币网络中,有一种标准的交易格式,该交易消息的输出部分操作码是0P_RETURN,意味着该输出是不可作为比特币交易的输入而被使用的,即不可被花费,将哈希值嵌入到0P_RETURN后,此时该笔交易的输入的值应该是大于输出的值,差值作为打包该笔交易的矿工的奖励,若该交易没有成功被打包且过了存在的有效时间,则重新构造该交易消息,加大该交易输入与输出的差值,即给矿工的费用,来得到更大的被打包到区块的机会。
[0034]然后在A用户向公有区块链广播该消息之前,将该消息的发送者设定为A用户自己的地址,该地址是由A用户的公钥进行一定合理的编码产生。如若只是为了该物品的存在时间证明以及认证服务,则将接收者设定为无效地址(这样可以保证无法被转移);如若还允许该物品的转移,则将接收者设定为A用户自己的地址或者其它用户的地址。
[0035]最后广播该消息,等待参与该区块链的用户进行打包,如果该消息被确认,则返回该消息的哈希值,如果该消息所在的区块被确认,返回该区块的哈希值;如果没有用户愿意打包该消息,且过了该消息存在的合法时间,标记该消息无效,重新构造该消息,加大奖励,以便被参与区块链打包的用户打包确认。
[0036]以下为本发明的具体实施例,如下所示:
[0037]图1中,一次数字化物品存在时间证明以及认证的步骤如下:
[0038]步骤S1.1:A用户希望进行存在证明及认证服务的数字化物品;
[0039]步骤S1.2:使用哈希函数对该数字化物品进行哈希运算,得到哈希值;
[0040]步骤S1.3:使用A用户的私钥对S1.2中得到的哈希值进行签名;
[0041]步骤S1.4:使用哈希函数对S1.3中的签名进行哈希运算,得到哈希值;
[0042]步骤S1.5:将S1.4得到的哈希值嵌入到消息中;
[0043]步骤S1.6:判断用户是否允许该数字化物品转移,允许进入S1.7,不允许进入S1.8;
[0044]步骤S1.7:将消息发送者设为A用户地址,接收者设为A用户的地址或者其它用户的地址;
[0045]步骤S1.8:将消息发送者设为A用户地址,接收者设为无效地址;
[0046]步骤S1.9:判断构造好的消息是否合法,合法进入S1.10,不合法进入S1.5;
[0047]步骤S1.10:向全网广播该消息;
[0048]步骤S1.11:该消息是否被参与区块链打包的用户打包,并且打包该消息的区块是否被确认,被确认进入S1.12,未被确认进入S1.13;
[0049]步骤S1.12:得到该消息以及包含该消息的区块的哈希值,作为凭证,基于区块链技术的数字化物品存在证明及认证服务的过程结束;
[0050]步骤S1.13:判断该消息是否超过合法的存在时间,超过进入S1.5,没有进入S1.14;
[0051]步骤S1.14:等待至超时,进入S1.5。
[0052]如图2所示,本发明还包括一种基于区块链技术的存在证明及认证服务系统,所述区块链为公有区块链,包括:
[0053]生成标准消息模块,用于在公有区块链中为每个用户设置至少一对公/私钥,作为所述公有区块链的标识,将用户的数字化物品通过哈希函数进行哈希运算,生成哈希值,根据所述公有区块链中标准消息的格式,将所述哈希值嵌入所述标准消息中,生成新标准消息,在所述新标准消息中加入代币;
[0054]广播模块,用于在用户向所述公有区块链广播所述新标准消息之前,将所述新标准消息的发送者设为用户自己的地址,广播所述新标准消息,若所述新标准消息被用户打包且所述新标准消息被确认,则返回所述新标准消息的哈希值,如果所述新标准消息所在的区块被确认,返回所述区块的哈希值;如果未存在用户打包所述新标准消息,且过了所述新标准消息存在的合法时间,标记所述新标准消息为无效,重新构造所述新标准消息,增加所述代币,以便被参与所述公有区块链打包的用户打包确认。
[0055]所述生成标准消息模块中的所述哈希函数满足:
[0056]给定一个哈希值h,找不到一个消息m使得hash(m) =h;
[0057]给定一个消息m,找不到一个消息η使得hash(m) =hash(n)。
[0058]所述代币为在所述公有区块链上产生、流通的货币。
[0059]所述广播模块中将用户的公钥进行编码产生所述地址。
[0060]所述广播模块还包括若只为所述数字化物品的存在时间证明以及认证服务,则将接收者设定为无效地址;若允许转移所述数字化物品,则将接收者设定为所述地址或者其它用户的地址。
【主权项】
1.一种基于区块链技术的存在证明及认证服务方法,所述区块链为公有区块链,其特征在于,包括: 步骤I,在公有区块链中为每个用户设置至少一对公/私钥,将用户的数字化物品通过哈希函数进行哈希运算,生成哈希值,使用所述私钥对所述哈希值进行签名,将所述签名进行哈希运算,生成新哈希值,根据所述公有区块链中标准消息的格式,将所述新哈希值嵌入所述标准消息中,生成新标准消息,在所述新标准消息中加入代币; 步骤2,在用户向所述公有区块链广播所述新标准消息之前,将所述新标准消息的发送者设为用户自己的地址,广播所述新标准消息,若所述新标准消息被用户打包且所述新标准消息被确认,则返回所述新标准消息的哈希值,如果所述新标准消息所在的区块被确认,返回所述区块的哈希值;如果未存在用户打包所述新标准消息,且过了所述新标准消息存在的合法时间,标记所述新标准消息为无效,重新构造所述新标准消息,增加所述代币,以便被参与所述公有区块链打包的用户打包确认。2.如权利要求1所述的基于区块链技术的存在证明及认证服务方法,其特征在于,所述步骤I中的所述哈希函数满足: 给定一个哈希值h,找不到一个消息m使得hash(m) =h; 给定一个消息m,找不到一个消息η使得hash(m) =hash(n)。3.如权利要求1所述的基于区块链技术的存在证明及认证服务方法,其特征在于,所述代币为在所述公有区块链上产生、流通的货币。4.如权利要求1所述的基于区块链技术的存在证明及认证服务方法,其特征在于,所述步骤2中将用户的公钥进行编码产生所述地址。5.如权利要求1所述的基于区块链技术的存在证明及认证服务方法,其特征在于,所述步骤2还包括若只为所述数字化物品的存在时间证明以及认证服务,则将接收者设定为无效地址;若允许转移所述数字化物品,则将接收者设定为所述地址或者其它用户的地址。6.—种基于区块链技术的存在证明及认证服务系统,所述区块链为公有区块链,其特征在于,包括: 生成标准消息模块,用于在公有区块链中为每个用户设置至少一对公/私钥,作为所述公有区块链的标识,将用户的数字化物品通过哈希函数进行哈希运算,生成哈希值,根据所述公有区块链中标准消息的格式,将所述哈希值嵌入所述标准消息中,生成新标准消息,在所述新标准消息中加入代币; 广播模块,用于在用户向所述公有区块链广播所述新标准消息之前,将所述新标准消息的发送者设为用户自己的地址,广播所述新标准消息,若所述新标准消息被用户打包且所述新标准消息被确认,则返回所述新标准消息的哈希值,如果所述新标准消息所在的区块被确认,返回所述区块的哈希值;如果未存在用户打包所述新标准消息,且过了所述新标准消息存在的合法时间,标记所述新标准消息为无效,重新构造所述新标准消息,增加所述代币,以便被参与所述公有区块链打包的用户打包确认。7.如权利要求6所述的基于区块链技术的存在证明及认证服务系统,其特征在于,所述生成标准消息模块中的所述哈希函数满足: 给定一个哈希值h,找不到一个消息m使得hash(m) =h; 给定一个消息m,找不到一个消息η使得hash(m) =hash(n)。8.如权利要求6所述的基于区块链技术的存在证明及认证服务系统,其特征在于,所述代币为在所述公有区块链上产生、流通的货币。9.如权利要求6所述的基于区块链技术的存在证明及认证服务系统,其特征在于,所述广播模块中将用户的公钥进行编码产生所述地址。10.如权利要求6所述的基于区块链技术的存在证明及认证服务系统,其特征在于,所述广播模块还包括若只为所述数字化物品的存在时间证明以及认证服务,则将接收者设定为无效地址;若允许转移所述数字化物品,则将接收者设定为所述地址或者其它用户的地址。
【文档编号】H04L9/32GK105959307SQ201610513011
【公开日】2016年9月21日
【申请日】2016年6月30日
【发明人】孙毅, 李康, 张建军, 李军
【申请人】中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1