技术领域
[0001] 本
发明涉及区块链、超级账本fabric、哈希
算法技术领域,具体地说是一种基于区块链的可信时间戳服务的实现方法及系统。
背景技术
[0002] 超级账本fabric是一个区块链网络,核心是一个
分布式账本,在这个账本中记录了网络中发生的所有交易信息。使用加密技术保障了交易一旦被添加进账本中,就无法被篡改。
[0003]
智能合约,区块链上的智能合约是在满足特定条件下自动执行的
计算机程序,一旦部署在区块链上,则执行逻辑不可篡改。
[0004]
电子签名技术,电子签名是指通过
密码学技术对字典文档进行电子形式的签名,涉及到非对称密钥加密技术。将电子文件或其他内容做哈希运算,使用签名者的私钥对哈希值进行加密,结果就是签名值。在验证时只要对签名值用公钥解密,与原文的哈希值进行比对,若两个哈希值一致,说明原文没有被篡改。
[0005] 传统的可信时间戳是由某些机构签发的,能够证明电子数据在一个时间
节点是已经存在的、完整的并且是能够进行验证的一种电子凭证。这种时间戳需要第三方机构即签发机构来进行背书,一旦该机构的信用出现问题,那么其颁发的时间戳就变得毫无意义。故如何实现去除第三方机构的可信时间戳服务是目前
现有技术存在的技术问题。
[0006]
专利号为CN109726597A的专利文献公开了一种利用区块链实现的可信时间戳系统,包含时间戳初始化模块、时间戳审计模块、时间戳获取模块和电子文件签名模块。该技术方案是借助区块链技术保证了时间戳的真实性和不可篡改性,在同一时间向每一个区块链节点
请求的时间戳都是可信且相同的,同时将经过区块链共识的时间戳加盖到电子文件中,保证电子文件的时间戳的有效性,但是不能实现去除第三方机构的可信时间戳服务。
发明内容
[0007] 本发明的技术任务是提供一种基于区块链的可信时间戳服务的实现方法及系统,来解决如何实现去除第三方机构的可信时间戳服务的问题。
[0008] 本发明的技术任务是按以下方式实现的,一种基于区块链的可信时间戳服务的实现方法,该方法具体如下:
[0009] 超级账本fabric区块链网络搭建及用户注册:搭建超级账本fabric区块链网络,并在超级账本fabric区块链网络上部署用于保存电子数据相关信息的智能合约,用户在超级账本fabric区块链网络中注册身份;
[0010] 可信时间戳生成:用户使用
哈希算法对电子数据进行哈希操作取得
摘要,并将电子数据相关信息写入区块链中,同时将相应交易的交易时间作为可信时间戳对应的时间点,再返回由交易key值、交易哈希和时间戳组成的json结构作为可信时间戳;
[0011] 可信时间戳校验。
[0012] 作为优选,所述超级账本fabric区块链网络搭建及用户注册具体如下:
[0013] 搭建超级账本fabric区块链网络,部署智能合约用以将电子数据摘要的信息留痕存证;
[0014] 用户提供用户名称和密码,用以在fabric网络中注册身份;其中,用户名称记为U,密码记为P(密码一旦设定后便不可
修改)。
[0015] 更优地,所述电子数据为电子文件或文本。
[0016] 作为优选,所述可信时间戳生成具体如下:
[0017] 使用哈希算法获取电子数据的摘要,电子数据的摘要记为H;
[0018] 将电子数据的相关信息组装为json结构;
[0019] 实时生成长度为32的随机字符串,随机字符串记为ID,以ID作为key,以json结构中的字符串作为value,将数据写入超级账本fabric区块链网络;
[0020] 写入成功后生成一条交易,该交易的交易哈希记为TX,该交易的交易时间记为T,T即为可信时间戳的时间节点,组装json串作为可信时间戳返回给用户。
[0021] 更优地,所述json结构具体如下:
[0022] {
[0023] "proof_digest":"电子数据的摘要H",
[0024] "hash_algorithm":"取摘要时使用的算法,如MD5",
[0025] "description":"电子数据的描述",
[0026] "user_id":"用户U"
[0027] }。
[0028] 更优地,所述json串具体如下:
[0029] {
[0030] "timestamp_id":"随机字符串ID",
[0031] "transaction_id":"交易哈希TX",
[0032] "timestamp":"交易时间T"
[0033] }。
[0034] 作为优选,所述可信时间戳校验具体如下:
[0035] 从待校验可信时间戳的json串中取出timestamp_id、transaction_id和timestamp;
[0036] 以timestamp_id作为key从超级账本fabric区块链网络中查询value,value为相应的电子数据的相关信息的json字符串,从value中取出proof_digest、hash_algorithm和user_id;
[0037] 对相应的电子数据取摘要并对比proof_digest进行校验;
[0038] 根据transaction_id获取交易时间并对比timestamp进行校验;
[0039] 对比相应用户的用户名和user_id进行校验。
[0040] 作为优选,所述哈希操作由用户自行完成,哈希算法包括但不限于MD5、SHA1和SHA256。
[0041] 一种基于区块链的可信时间戳服务系统,该系统包括,
[0042] 超级账本fabric区块链网络搭建及用户注册单元,用于搭建超级账本fabric区块链网络,并在超级账本fabric区块链网络上部署用于保存电子数据相关信息的智能合约,用户在超级账本fabric区块链网络中注册身份;
[0043] 可信时间戳生成单元,用于用户使用哈希算法对电子数据进行哈希操作取得摘要,并将电子数据相关信息写入区块链中,同时将相应交易的交易时间作为可信时间戳对应的时间点,再返回由交易key值、交易哈希和时间戳组成的json结构作为可信时间戳;
[0044] 可信时间戳校验单元,用于可信时间戳的校验。
[0045] 作为优选,所述可信时间戳生成单元包括,
[0046] 电子数据摘要获取模块,用于使用哈希算法获取电子数据的摘要,电子数据的摘要记为H;
[0047] json结构组装模块,用于将电子数据的相关信息组装为json结构;
[0048] 数据写入模块,用于实时生成长度为32的随机字符串,随机字符串记为ID,以ID作为key,以json结构中的字符串作为value,将数据写入超级账本fabric区块链网络;
[0049] 可信时间戳返回模块,用于将写入成功后的数据生成一条交易,该交易的交易哈希记为TX,该交易的交易时间记为T,T即为可信时间戳的时间节点,组装json串作为可信时间戳返回给用户。
[0050] 本发明的基于区块链的可信时间戳服务的实现方法及系统具有以下优点:
[0051] (一)、本发明使用超级账本fabric区块链网络用以生成可信时间戳,并确保该时间戳不被篡改伪造以及产生时间的确切性,具体来说就是在
申请可信时间戳时,将电子证据的摘要信息以及其他相关信息写入区块链,成功写入后会生成一笔交易,该交易时间即为可信时间戳代表的时间节点;
[0052] (二)、本发明消除了传统可信时间戳中的第三方签发机构;
[0053] (三)、本发明将可信时间戳相关信息写在区块链网络中,任何区块链网络中的用户都可以自行去进行验证,且能确保信息不会被篡改;
[0054] (四)、发明的区块链网络上写入的是电子数据的摘要信息而不是原文,确保了电子数据安全不泄露。
附图说明
[0055] 下面结合附图对本发明进一步说明。
[0056] 附图1为基于区块链的可信时间戳服务的实现方法的流程
框图;
[0057] 附图2为附图1中超级账本fabric区块链网络搭建及用户注册的流程框图;
[0058] 附图3为附图1中可信时间戳生成的流程框图;
[0059] 附图4为附图1中可信时间戳校验的流程框图;
[0060] 附图5为基于区块链的可信时间戳服务的结构框图;
[0061] 附图6为附图5中可信时间戳生成单元的结构框图。
具体实施方式
[0062] 参照
说明书附图和具体
实施例对本发明的一种基于区块链的可信时间戳服务的实现方法及系统作以下详细地说明。
[0063] 实施例1:
[0064] 如附图1所示,本发明的基于区块链的可信时间戳服务的实现方法,该方法具体步骤如下:
[0065] S1、超级账本fabric区块链网络搭建及用户注册:搭建超级账本fabric区块链网络,并在超级账本fabric区块链网络上部署用于保存电子数据相关信息的智能合约,用户在超级账本fabric区块链网络中注册身份;其中,电子数据为电子文件或文本;
[0066] S2、可信时间戳生成:用户使用哈希算法对电子数据进行哈希操作取得摘要,并将电子数据相关信息写入区块链中,同时将相应交易的交易时间作为可信时间戳对应的时间点,再返回由交易key值、交易哈希和时间戳组成的json结构作为可信时间戳;其中,哈希操作由用户自行完成,哈希算法包括但不限于MD5、SHA1和SHA256;
[0067] S3、可信时间戳校验。
[0068] 如附图2所示,步骤S1中超级账本fabric区块链网络搭建及用户注册的具体步骤如下:
[0069] S101、搭建超级账本fabric区块链网络,部署智能合约用以将电子数据摘要的信息留痕存证;
[0070] S102、用户提供用户名称和密码,用以在fabric网络中注册身份;其中,用户名称记为U,密码记为P(密码一旦设定后便不可修改)。
[0071] 如附图3所示,步骤S2中可信时间戳生成的具体步骤如下:
[0072] S201、使用哈希算法获取电子数据的摘要,电子数据的摘要记为H;
[0073] S202、将电子数据的相关信息组装为json结构;
[0074] S203、实时生成长度为32的随机字符串,随机字符串记为ID,以ID作为key,以json结构中的字符串作为value,将数据写入超级账本fabric区块链网络;
[0075] S204、写入成功后生成一条交易,该交易的交易哈希记为TX,该交易的交易时间记为T,T即为可信时间戳的时间节点,组装json串作为可信时间戳返回给用户。
[0076] 步骤S202中的json结构具体如下:
[0077] {
[0078] "proof_digest":"电子数据的摘要H",
[0079] "hash_algorithm":"取摘要时使用的算法,如MD5",
[0080] "description":"电子数据的描述",
[0081] "user_id":"用户U"
[0082] }。
[0083] 步骤S204中json串具体如下:
[0084] {
[0085] "timestamp_id":"随机字符串ID",
[0086] "transaction_id":"交易哈希TX",
[0087] "timestamp":"交易时间T"
[0088] }。
[0089] 如附图4所示,步骤S3中可信时间戳校验的具体步骤如下:
[0090] S301、从待校验可信时间戳的json串中取出timestamp_id、transaction_id和timestamp;
[0091] S302、以timestamp_id作为key从超级账本fabric区块链网络中查询value,value为相应的电子数据的相关信息的json字符串,从value中取出proof_digest、hash_algorithm和user_id;
[0092] S303、对相应的电子数据取摘要并对比proof_digest进行校验;
[0093] S304、根据transaction_id获取交易时间并对比timestamp进行校验;
[0094] S305、对比相应用户的用户名和user_id进行校验。
[0095] 实施例2:
[0096] 如附图5所示,用于实现实施例1的基于区块链的可信时间戳服务系统,该系统包括,
[0097] 超级账本fabric区块链网络搭建及用户注册单元M1,用于搭建超级账本fabric区块链网络,并在超级账本fabric区块链网络上部署用于保存电子数据相关信息的智能合约,用户在超级账本fabric区块链网络中注册身份;
[0098] 可信时间戳生成单元M2,用于用户使用哈希算法对电子数据进行哈希操作取得摘要,并将电子数据相关信息写入区块链中,同时将相应交易的交易时间作为可信时间戳对应的时间点,再返回由交易key值、交易哈希和时间戳组成的json结构作为可信时间戳;
[0099] 可信时间戳校验单元M3,用于可信时间戳的校验。
[0100] 其中,如附图6所示,可信时间戳生成单元M2包括,
[0101] 电子数据摘要获取模块M201,用于使用哈希算法获取电子数据的摘要,电子数据的摘要记为H;
[0102] json结构组装模块M202,用于将电子数据的相关信息组装为json结构;
[0103] 数据写入模块M203,用于实时生成长度为32的随机字符串,随机字符串记为ID,以ID作为key,以json结构中的字符串作为value,将数据写入超级账本fabric区块链网络;
[0104] 可信时间戳返回模块M204,用于将写入成功后的数据生成一条交易,该交易的交易哈希记为TX,该交易的交易时间记为T,T即为可信时间戳的时间节点,组装json串作为可信时间戳返回给用户。
[0105] 其中,数据写入模块M203中json结构具体如下:
[0106] {
[0107] "proof_digest":"电子数据的摘要H",
[0108] "hash_algorithm":"取摘要时使用的算法,如MD5",
[0109] "description":"电子数据的描述",
[0110] "user_id":"用户U"
[0111] }。
[0112] 可信时间戳返回模块M204中json串具体如下:
[0113] {
[0114] "timestamp_id":"随机字符串ID",
[0115] "transaction_id":"交易哈希TX",
[0116] "timestamp":"交易时间T"
[0117] }。
[0118] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。