CN112383611B - 基于区块链的文件存证方法、系统及服务器 - Google Patents

基于区块链的文件存证方法、系统及服务器 Download PDF

Info

Publication number
CN112383611B
CN112383611B CN202011251134.2A CN202011251134A CN112383611B CN 112383611 B CN112383611 B CN 112383611B CN 202011251134 A CN202011251134 A CN 202011251134A CN 112383611 B CN112383611 B CN 112383611B
Authority
CN
China
Prior art keywords
file
authorization information
encrypted
block chain
original
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011251134.2A
Other languages
English (en)
Other versions
CN112383611A (zh
Inventor
张�荣
张福哲
陈哲昺
谭人源
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Insurance Exchange Co ltd
Original Assignee
Shanghai Insurance Exchange Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Insurance Exchange Co ltd filed Critical Shanghai Insurance Exchange Co ltd
Priority to CN202011251134.2A priority Critical patent/CN112383611B/zh
Publication of CN112383611A publication Critical patent/CN112383611A/zh
Application granted granted Critical
Publication of CN112383611B publication Critical patent/CN112383611B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于区块链的文件存证方法、系统及服务器,该方法包括:客户端将原始文件发送至文件服务器;服务器对文件进行加密;保存加密文件,得到文件资源存储位置标识;组织加密文件的授权信息,将授权信息对应的唯一标识返回至客户端,授权信息包括:文件资源存储位置标识,授权地址,原始及加密唯一文件标识;客户端在接收到唯一标识时,向区块链网络发起存证请求;预言机在监听到该存证请求后,向服务器发送获取授权信息请求;服务器根据位置标识确认文件资源的有效性;有效时将授权信息发送至区块链网络;每一区块链节点将授权信息存储在授权地址对应的用户名下。本发明提供了一种安全方便的基于区块链进行文件存证的方案。

Description

基于区块链的文件存证方法、系统及服务器
技术领域
本发明涉及数据处理技术领域,尤其涉及基于区块链的文件存证方法、系统及服务器。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
现有基于区块链的文件存证方案中,一般是将文件数据直接记录在区块链上,直接通过区块链进行存证。采用文件直接上链的模式,因为区块链交易大小的限制,会严格限制文件的大小,存证方便,也会存在安全性隐患,不利于区块链技术的发展。
发明内容
本发明实施例提供一种基于区块链的文件存证方法,用以提供一种安全方便的基于区块链的文件存证的方案,该方法包括:
文件上传的步骤:客户端接收用户的原始文件,将原始文件及对应的原始唯一文件标识、区块链授权地址发送至文件服务器;
文件存储及得到授权信息的步骤:文件服务器对原始文件进行加密,得到加密文件及对应的加密唯一文件标识;保存加密文件,得到对应的文件资源存储位置标识;组织并存储加密文件的授权信息,将授权信息对应的唯一标识返回至客户端;所述授权信息包括:文件资源存储位置标识,区块链授权地址,原始唯一文件标识,以及加密唯一文件标识;所述原始唯一文件标识用于验证原始文件的完整性,所述加密唯一文件标识用于验证加密文件的完整性;
授权信息存证的步骤:
客户端在接收到授权信息对应的唯一标识时,向区块链网络发起存证请求;所述存证请求包括授权信息对应的唯一标识;
预言机在监听到区块链网络的存证请求后,向文件服务器发送获取授权信息请求;所述获取授权信息请求中包括授权信息对应的唯一标识;
文件服务器在接收到获取授权信息请求时,对授权信息对应的唯一标识进行验证;在验证通过时,根据授权信息中的文件资源存储位置标识,确认文件资源的有效性;在确认文件资源有效时,将授权信息通过预言机发送至区块链网络;
每一区块链节点将接收到的授权信息存储在区块链授权地址对应的用户名下。
在一个实施例中,所述文件上传的步骤具体包括:客户端将用户的公钥,原始文件及对应的原始哈希值、区块链授权地址发送至文件服务器;
所述文件存储及得到授权信息的步骤具体包括:文件服务器产生随机对称秘钥,利用随机对称秘钥加密原始文件,根据加密文件计算对应的加密哈希值,保存加密文件,产生对应的文件资源存储位置标识;通过用户的公钥加密所述随机对称秘钥;组织并存储加密文件的授权信息,将授权信息对应的哈希值返回至客户端;所述授权信息具体包括:文件资源存储位置标识,区块链授权地址,原始哈希值,加密哈希值,以及通过用户的公钥加密的随机对称秘钥;所述随机对称秘钥用于解密加密文件。
在一个实施例中,文件服务器产生随机对称秘钥,包括:根据原始文件,计算原始文件对应的哈希值,将计算出的哈希值与客户端发来的原始哈希值进行比对;在比对结果一致时,产生随机对称秘钥。
在一个实施例中,上述基于区块链的文件存证方法还包括:对原始文件进行浏览的步骤:
客户端接收用户的文件浏览请求,将文件浏览请求发送至区块链网络;所述浏览请求中包括:授权信息对应的唯一文件标识;
主区块链节点将所有区块链节点根据授权信息对应的唯一文件标识共识得到的授权信息反馈给客户端;
客户端对授权信息进行签名,将签名的授权信息和公钥发送至文件服务器;
文件服务器通过公钥验证签名;在验证通过时,计算公钥对应的地址,将公钥对应的地址与授权信息中的区块链授权地址比对;在比对结果一致时,根据授权信息中的文件资源存储位置标识,查找对应的加密文件,将加密文件返回至客户端;
客户端解密所述加密文件进行浏览。
在一个实施例中,文件服务器通过公钥验证签名,包括:文件服务器验证授权信息中文件资源存储位置标识是否存在,如果存在,通过公钥验证签名。
在一个实施例中,所述授权信息还包括:授权时效;
在比对结果一致时,根据授权信息中的文件资源存储位置标识,查找对应的加密文件,包括:在比对结果一致时,根据授权时效,验证授权信息是否过期,如果未过期,根据授权信息中的文件资源存储位置标识,查找对应的加密文件。
在一个实施例中,上述基于区块链的文件存证方法还包括:在用户通过客户端浏览解密后文件时共享文件的步骤:
客户端将被浏览文件作为共享文件,共享文件对应的唯一文件标识、授权地址、文件主人公钥发送至文件服务器;所述授权地址为被共享人的区块链授权地址;
文件服务器将共享文件作为所述原始文件,按照所述文件存储及得到授权信息的步骤,存储共享文件,得到共享文件的授权信息,将共享文件的授权信息对应的唯一标识返回至客户端;所述共享文件的授权信息包括:共享文件资源存储位置标识,区块链授权地址,原始唯一文件标识,加密唯一文件标识,以及根据文件主人公钥得到的文件主人地址;
客户端按照所述授权信息存证的步骤,将共享文件的授权信息存储在授权地址对应的被分享人名下。
在一个实施例中,所述共享文件的授权信息还包括:授权分享的时效;所述被分享人在授权分享的时效内向文件服务器申请浏览所述共享文件。
在一个实施例中,上述基于区块链的文件存证方法还可以包括:对授权信息对应文件进行交易的步骤:
文件提供方客户端接收并显示授权信息对应文件的出售信息;
文件需求方客户端针对所述出售信息发起交易请求至区块链网络;所述交易请求包括交易所需要的金额数据;
每一区块链节点接收交易请求,根据交易请求验证对应文件的授权信息,验证通过后,将交易请求发送至文件提供方客户端;
文件提供方客户端在接收到同意交易的确认指令后,通过所述共享文件的步骤,将授权信息对应文件存储在文件需求方授权地址对应的需求方名下;
主区块链节点根据所述金额数据完成交易请求对应资金数据的划转。
本发明实施例还提供一种基于区块链的文件存证方法,用以提供一种安全方便的基于区块链的文件存证的方案,该方法包括:
对原始文件进行加密,得到加密文件及对应的加密唯一文件标识;
保存加密文件,得到对应的文件资源存储位置标识;
组织并存储加密文件的授权信息,将授权信息对应的唯一标识返回至客户端;所述授权信息包括:文件资源存储位置标识,区块链授权地址,原始唯一文件标识,以及加密唯一文件标识;所述原始唯一文件标识用于验证原始文件的完整性,所述加密唯一文件标识用于验证加密文件的完整性;
在接收到获取授权信息请求时,对授权信息对应的唯一标识进行验证;
在验证通过时,根据授权信息中的文件资源存储位置标识,确认文件资源的有效性;
在确认文件资源有效时,将授权信息通过预言机发送至区块链网络。
在一个实施例中,对原始文件进行加密,得到加密文件及对应的加密唯一文件标识,包括:产生随机对称秘钥,利用随机对称秘钥加密原始文件,根据加密文件计算对应的加密哈希值;通过用户的公钥加密所述随机对称秘钥;
组织并存储加密文件的授权信息,将授权信息对应的唯一标识返回至客户端,包括:组织并存储加密文件的授权信息,将授权信息对应的哈希值返回至客户端;所述授权信息具体包括:文件资源存储位置标识,区块链授权地址,原始哈希值,加密哈希值,以及通过用户的公钥加密的随机对称秘钥。
在一个实施例中,产生随机对称秘钥,包括:根据原始文件,计算原始文件对应的哈希值,将计算出的哈希值与客户端发来的原始哈希值进行比对;在比对结果一致时,产生随机对称秘钥。
本发明实施例还提供一种基于区块链的文件存证系统,用以提供一种安全方便的基于区块链的文件存证的方案,该系统包括:
客户端,用于在执行文件上传的步骤时:接收用户的原始文件,将原始文件及对应的原始唯一文件标识、区块链授权地址发送至文件服务器;在执行授权信息存证的步骤时:在接收到授权信息对应的唯一标识时,向区块链网络发起存证请求;所述存证请求包括授权信息对应的唯一标识;
文件服务器,用于在执行文件存储及得到授权信息的步骤时:对原始文件进行加密,得到加密文件及对应的加密唯一文件标识;保存加密文件,得到对应的文件资源存储位置标识;组织并存储加密文件的授权信息,将授权信息对应的唯一标识返回至客户端;在执行授权信息存证的步骤时:在接收到获取授权信息请求时,对授权信息对应的唯一标识进行验证;在验证通过时,根据授权信息中的文件资源存储位置标识,确认文件资源的有效性;在确认文件资源有效时,将授权信息通过预言机发送至区块链网络;其中,所述授权信息包括:文件资源存储位置标识,区块链授权地址,原始唯一文件标识,以及加密唯一文件标识;所述原始唯一文件标识用于验证原始文件的完整性,所述加密唯一文件标识用于验证加密文件的完整性;
预言机,用于在监听到区块链网络的存证请求后,向文件服务器发送获取授权信息请求;所述获取授权信息请求中包括授权信息对应的唯一标识;
每一区块链节点,用于将接收到的授权信息存储在区块链授权地址对应的用户名下。
在一个实施例中,客户端具体用于将用户的公钥,原始文件及对应的原始哈希值、区块链授权地址发送至文件服务器;
文件服务器具体用于产生随机对称秘钥,利用随机对称秘钥加密原始文件,根据加密文件计算对应的加密哈希值,保存加密文件,产生对应的文件资源存储位置标识;通过用户的公钥加密所述随机对称秘钥;组织并存储加密文件的授权信息,将授权信息对应的哈希值返回至客户端;所述授权信息具体包括:文件资源存储位置标识,区块链授权地址,原始哈希值,加密哈希值,以及通过用户的公钥加密的随机对称秘钥;所述随机对称秘钥用于解密加密文件。
在一个实施例中,客户端还用于:接收用户的文件浏览请求,将文件浏览请求发送至区块链网络;对授权信息进行签名,将签名的授权信息和公钥发送至文件服务器;解密所述加密文件进行浏览;所述浏览请求中包括:授权信息对应的唯一文件标识;
主区块链节点,用于将所有区块链节点根据授权信息对应的唯一文件标识共识得到的授权信息反馈给客户端;
文件服务器还用于:通过公钥验证签名;在验证通过时,计算公钥对应的地址,将公钥对应的地址与授权信息中的区块链授权地址比对;在比对结果一致时,根据授权信息中的文件资源存储位置标识,查找对应的加密文件,将加密文件返回至客户端。
在一个实施例中,客户端还用于在执行共享文件的步骤时:将被浏览文件作为共享文件,共享文件对应的唯一文件标识、授权地址、文件主人公钥发送至文件服务器;所述授权地址为被共享人的区块链授权地址;按照所述授权信息存证的步骤,将共享文件的授权信息存储在授权地址对应的被分享人名下;
文件服务器还用于在执行共享文件的步骤时:将共享文件作为所述原始文件,按照所述文件存储及得到授权信息的步骤,存储共享文件,得到共享文件的授权信息,将共享文件的授权信息对应的唯一标识返回至客户端;所述共享文件的授权信息包括:共享文件资源存储位置标识,区块链授权地址,原始唯一文件标识,加密唯一文件标识,以及根据文件主人公钥得到的文件主人地址。
在一个实施例中,文件提供方的客户端还用于对授权信息对应文件进行交易的步骤:接收并显示授权信息对应文件的出售信息;在接收到同意交易的确认指令后,通过所述共享文件的步骤,将授权信息对应文件存储在文件需求方授权地址对应的需求方名下;
文件需求方的客户端还用于针对所述出售信息发起交易请求至区块链网络;所述交易请求包括交易所需要的金额数据;
每一区块链节点还用于接收交易请求,根据交易请求验证对应文件的授权信息,验证通过后,将交易请求发送至文件提供方客户端;
主区块链节点还用于根据金额数据完成交易请求对应资金数据的划转。
本发明实施例还提供一种基于区块链的文件存证服务器,用以提供一种安全方便的基于区块链的文件存证的方案,该服务器包括:
加密处理单元,用于对原始文件进行加密,得到加密文件及对应的加密唯一文件标识;
存储处理单元,用于保存加密文件,得到对应的文件资源存储位置标识;
反馈单元,用于组织并存储加密文件的授权信息,将授权信息对应的唯一标识返回至客户端;所述授权信息包括:文件资源存储位置标识,区块链授权地址,原始唯一文件标识,以及加密唯一文件标识;所述原始唯一文件标识用于验证原始文件的完整性,所述加密唯一文件标识用于验证加密文件的完整性;
验证单元,用于在接收到获取授权信息请求时,对授权信息对应的唯一标识进行验证;
确定单元,用于在验证通过时,根据授权信息中的文件资源存储位置标识,确认文件资源的有效性;
发送单元,用于在确认文件资源有效时,将授权信息通过预言机发送至区块链网络。
在一个实施例中,所述加密处理单元具体用于:产生随机对称秘钥,利用随机对称秘钥加密原始文件,根据加密文件计算对应的加密哈希值;通过用户的公钥加密所述随机对称秘钥;
所述反馈单元具体用于组织并存储加密文件的授权信息,将授权信息对应的哈希值返回至客户端;所述授权信息具体包括:文件资源存储位置标识,区块链授权地址,原始哈希值,加密哈希值,以及通过用户的公钥加密的随机对称秘钥。
在一个实施例中,所述加密处理单元具体用于:根据原始文件,计算原始文件对应的哈希值,将计算出的哈希值与客户端发来的原始哈希值进行比对;在比对结果一致时,产生随机对称秘钥。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于区块链的文件存证方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述基于区块链的文件存证方法的计算机程序。
本发明实施例中,基于区块链的文件存证方案,通过:首先,客户端接收用户的原始文件,将原始文件及对应的原始唯一文件标识、区块链授权地址发送至文件服务器;接着,文件服务器对原始文件进行加密,得到加密文件及对应的加密唯一文件标识;保存加密文件,得到对应的文件资源存储位置标识;组织并存储加密文件的授权信息,将授权信息对应的唯一标识返回至客户端;该授权信息包括:文件资源存储位置标识,区块链授权地址,原始唯一文件标识,以及加密唯一文件标识;所述原始唯一文件标识用于验证原始文件的完整性,所述加密唯一文件标识用于验证加密文件的完整性;接着,客户端在接收到授权信息对应的唯一标识时,向区块链网络发起存证请求;所述存证请求包括授权信息对应的唯一标识;接着,预言机在监听到区块链网络的存证请求后,向文件服务器发送获取授权信息请求;所述获取授权信息请求中包括授权信息对应的唯一标识;接着,文件服务器在接收到获取授权信息请求时,对授权信息对应的唯一标识进行验证;在验证通过时,根据授权信息中的文件资源存储位置标识,确认文件资源的有效性;在确认文件资源有效时,将授权信息通过预言机发送至区块链网络;最后,每一区块链节点将接收到的授权信息存储在区块链授权地址对应的用户名下,提供了一种安全方便的基于区块链的文件存证的方案。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中应用于系统的基于区块链的文件存证方法的流程示意图;
图2为本发明实施例中文件浏览的流程示意图;
图3为本发明实施例中应用于服务器的基于区块链的文件存证方法的流程示意图;
图4为本发明实施例中基于区块链的文件存证系统的结构示意图;
图5为本发明实施例中基于区块链的文件存证文件服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
由于发现了现有技术中存在的技术问题,发明人提出了一种基于区块链的文件存证方案,该方案为一种基于区块链的文件存证方法,以及基于此方法的文件分享以及交易等应用。本发明实施例包括文件服务器、预言机、区块链和客户端四个组成部分,其中:文件服务器负责对上传的原始文件进行加密保存,文件加密前加密后的哈希以及文件资源存储位置标识(例如URI)在区块链中存证;区块链通过预言机与文件服务进行交互,确保文件资源的有效性。基于以上设计,取得文件访问权限的用户可以凭借授权信息的唯一标识在授权时间内访问该文件,实现文件的分享或交易等。存储在文件服务器上的文件均为密文保存,可最大限度保护数据。下面对该基于区块链的文件存证方案进行介绍。
图1为本发明实施例中应用于系统的基于区块链的文件存证方法的流程示意图,如图1所示,该方法包括如下步骤:
文件上传的步骤:步骤101:客户端接收用户的原始文件,将原始文件及对应的原始唯一文件标识、区块链授权地址发送至文件服务器;
文件存储及得到授权信息的步骤:步骤102:文件服务器对原始文件进行加密,得到加密文件及对应的加密唯一文件标识;保存加密文件,得到对应的文件资源存储位置标识;组织并存储加密文件的授权信息,将授权信息对应的唯一标识返回至客户端;所述授权信息包括:文件资源存储位置标识,区块链授权地址,原始唯一文件标识,以及加密唯一文件标识;所述原始唯一文件标识用于验证原始文件的完整性,所述加密唯一文件标识用于验证加密文件的完整性;
授权信息存证的步骤:
步骤103:客户端在接收到授权信息对应的唯一标识时,向区块链网络发起存证请求;所述存证请求包括授权信息对应的唯一标识;
步骤104:预言机在监听到区块链网络的存证请求后,向文件服务器发送获取授权信息请求;所述获取授权信息请求中包括授权信息对应的唯一标识;
步骤105:文件服务器在接收到获取授权信息请求时,对授权信息对应的唯一标识进行验证;在验证通过时,根据授权信息中的文件资源存储位置标识,确认文件资源的有效性;在确认文件资源有效时,将授权信息通过预言机发送至区块链网络;
步骤106:每一区块链节点将接收到的授权信息存储在区块链授权地址对应的用户名下。
本发明实施例提供的基于区块链的文件存证方法实现了文件服务器负责对上传的原始文件进行加密保存,可最大限度保护数据,原始唯一文件标识、加密唯一文件标识、区块链授权地址及文件资源存储位置标识作为授权信息在区块链中存证,区块链通过预言机与文件服务器进行交互,确保文件资源的有效性,由此用户后续可以凭借授权信息的唯一标识对该文件进行安全地使用,提供了安全方便的基于区块链的文件存证的方案。
具体实施时,在上述步骤101之前,还包括:在客户端与文件服务器之间建立加密信道的步骤,这样后客户端与文件服务器之间传输交互数据更加安全可靠。
具体实施时,在上述步骤103中,客户端向区块链网络发起存证请求,即请求区块链接口把授权信息创建成以其唯一标识(哈希)为key的资产,并提供授权信息哈希以及用户的签名。
具体实施时,在上述步骤104中,区块连接点收到客户端的存证请求后,预言机监听到该请求,向文件服务器请求授权信息,并验证文件资源存储位置标识(例如URI)对应的文件资源是否存在,相当于预言机向服务器发出了一个获取授权信息请求,请求中包含需要验证资源有效性的说明。预言机的设置进一步保证了存证的安全性。
具体实施时,在上述步骤105中,文件服务接到预言机请求后验证授权信息哈希和用户签名,验证URI对应资源存在后,向预言机回复验证结果并将授权信息全文返回给预言机,并删除文件服务器的授权信息,删除授权信息的原因是:文件服务器不会长期维护文件的授权信息,文件的授权信息长期保存在区块链上,一旦预言机发起验证授权信息的请求,就意味着区块链正在存证授权信息,如果授权信息验证通过后,授权信息就会在区块链落账,文件服务器就没有保存授权信息的必要了,利于文件服务器的资源管理。
具体实施时,在上述步骤105中,文件服务器在接收到获取授权信息请求时,对授权信息对应的唯一标识进行验证,包括:文件服务器在收到获取授权信息请求时,获取对应的授权信息,根据授权信息计算对应的唯一标识,将计算的授权信息对应的唯一标识与获取授权信息请求中包含的授权信息对应的唯一标识进行比对,根据比对结果对授权信息对应的唯一标识进行验证。
具体实施时,上述对授权信息对应的唯一标识进行验证的实施方式保证了验证的准确性,因此进一步保证用户后续可以凭借授权信息的唯一标识对该文件进行更加安全地使用。
具体实施时,在上述步骤106中,每一区块链节点将接收到的授权信息存储在区块链授权地址对应的用户名下,即区块链节点取得授权信息后,将该授权信息资产记录在该用户名下。
在一个实施例中,所述文件上传的步骤具体可以包括:客户端将用户的公钥,原始文件及对应的原始哈希值、授权地址(此地址为用户的区块链地址)发送至文件服务器,上传文件的用户为文件的Owner(主人);
所述文件存储及得到授权信息的步骤具体包括:文件服务器产生随机对称秘钥,利用随机对称秘钥加密原始文件,根据加密文件计算对应的加密哈希值,保存加密文件,产生对应的文件资源存储位置标识;通过用户的公钥加密所述随机对称秘钥;组织并存储加密文件的授权信息,将授权信息对应的哈希值返回至客户端;所述授权信息具体包括:文件资源存储位置标识,区块链授权地址,原始哈希值,加密哈希值,以及通过用户的公钥加密的随机对称秘钥;所述随机对称秘钥用于解密加密文件。
具体实施时,上述文件存储及得到授权信息的步骤的详细实施方式进一步保证了文件存储的安全性,授权信息对应的哈希值返回至客户端,在后续用户使用文件时原始哈希值可以用于更好地验证原始文件的完整性,加密哈希值可以用于更好地验证加密文件地完整性,文件服务器还可以通过文件资源存储位置标识验证文件资源地有效性,因此进一步保证用户后续可以凭借授权信息的唯一标识对该文件进行更加安全地使用。
在一个实施例中,文件服务器产生随机对称秘钥,可以包括:根据原始文件,计算原始文件对应的哈希值,将计算出的哈希值与客户端发来的原始哈希值进行比对;在比对结果一致时,产生随机对称秘钥。
具体实施时,将根据原始文件计算出的哈希值与客户端发来的原始哈希值进行比对,验证文件完整性之后,再产生随机对称秘钥,进而执行后续步骤,保证存证的准确性。
在一个实施例中,如图2所示,上述基于区块链的文件存证方法还可以包括:对原始文件进行浏览的步骤:
步骤901:客户端接收用户的文件浏览请求,将文件浏览请求发送至区块链网络;所述浏览请求中包括:授权信息对应的唯一文件标识;
步骤902:主区块链节点将所有区块链节点根据授权信息对应的唯一文件标识共识得到的授权信息反馈给客户端;
步骤903:客户端对授权信息进行签名,将签名的授权信息和公钥发送至文件服务器;
步骤904:文件服务器通过公钥验证签名;在验证通过时,计算公钥对应的地址,将公钥对应的地址与授权信息中的区块链授权地址比对;在比对结果一致时,根据授权信息中的文件资源存储位置标识,查找对应的加密文件,将加密文件返回至客户端;
步骤905:客户端解密所述加密文件进行浏览。
具体实施时,上述对原始文件进行浏览的步骤安全可靠。
在一个实施例中,文件服务器通过公钥验证签名,可以包括:文件服务器验证授权信息中文件资源存储位置标识是否存在,如果存在,通过公钥验证签名。
具体实施时,在文件服务器验证授权信息中文件资源存储位置标识存在时,再通过公钥验证签名的实施方式进一步保证用户后续可以凭借授权信息的唯一标识对该文件进行更加安全地使用。
在一个实施例中,所述授权信息还包括:授权时效;
在比对结果一致时,根据授权信息中的文件资源存储位置标识,查找对应的加密文件,包括:在比对结果一致时,根据授权时效,验证授权信息是否过期,如果未过期,根据授权信息中的文件资源存储位置标识,查找对应的加密文件。
具体实施时,在根据授权时效,验证授权信息未过期,再根据授权信息中的文件资源存储位置标识,查找对应的加密文件,进一步保证用户后续可以凭借授权信息的唯一标识对该文件进行更加安全地使用。
具体实施时,在对原始文件进行浏览的步骤时,相当于用户通过区块链取得自己名下的授权信息资产。用户对文件授权信息签名并附带公钥发送给文件服务。文件服务器验证授权信息中文件资源存储位置标识是否存在,如果存在则进行后续操作,否则报错退出。文件服务通过公钥验证签名;计算公钥对应的地址,和授权地址比对如果和授权地址相同则进行后续操作,否则报错退出。文件服务验证授权是否过期,如果未过期则查找URI对应的资源并返回给客户端。否则报错退出。客户端使用用户的私钥解密授权信息中的对称秘钥并在客户端解密文件进行浏览。上述对原始文件进行浏览的步骤更加地安全可靠。
在一个实施例中,上述基于区块链的文件存证方法还包括:在用户通过客户端浏览解密后文件时共享文件的步骤:
客户端将被浏览文件作为共享文件,共享文件对应的唯一文件标识、授权地址、文件主人公钥发送至文件服务器;所述授权地址为被共享人的区块链授权地址;
文件服务器将共享文件作为所述原始文件,按照所述文件存储及得到授权信息的步骤,存储共享文件,得到共享文件的授权信息,将共享文件的授权信息对应的唯一标识返回至客户端;所述共享文件的授权信息包括:共享文件资源存储位置标识,区块链授权地址,原始唯一文件标识,加密唯一文件标识,以及根据文件主人公钥得到的文件主人地址;
客户端按照所述授权信息存证的步骤,将共享文件的授权信息存储在授权地址对应的被分享人名下。
具体实施时,上述用户通过客户端浏览解密后文件时共享文件的步骤安全可靠。另外,共享文件的授权信息包括文件主人地址,保证文件不会再次被分享。
在一个实施例中,所述共享文件的授权信息还包括:授权分享的时效;所述被分享人在授权分享的时效内向文件服务器申请浏览所述共享文件。
具体实施时,授权信息包括授权分享的时效,保证文件的安全性。
具体实施时,用户通过客户端浏览到自己的文件后,向文件服务申请共享文件操作,授权地址设定为接收人的地址,附带接收人公钥和owner公钥,设置共享有效期。Owner对共享请求签名。只有owner能分享文件,分享时需向文件服务器再次提交原始文件,文件服务接收到文件后计算文件哈希并验证文件的完整性。文件服务通过验证签名和公钥来确认是owner发送的请求,并产生新的URI和文件授权信息(在浏览文件的时候进行分享,即保证分享的是同一文件,又重新上传文件,产生新的授权信息,可以用新的授权信息给客户,保证自己原来文件的安全性和私密性)。客户端把新的文件授权信息上链并记录到接收人(被分享人)的名下。共享接收人,从客户端查询到自己的资产后,可在授权时间范围内向文件服务申请浏览文件内容。上述共享文件的步骤更加地安全可靠。
在一个实施例中,上述基于区块链的文件存证方法还可以包括:对授权信息对应文件进行交易的步骤:
文件提供方客户端接收并显示授权信息对应文件的出售信息;
文件需求方客户端针对所述出售信息发起交易请求至区块链网络;所述交易请求包括交易所需要的金额数据;
每一区块链节点接收交易请求,根据交易请求验证对应文件的授权信息,验证通过后,将交易请求发送至文件提供方客户端;
文件提供方客户端在接收到同意交易的确认指令后,通过所述共享文件的步骤,将授权信息对应文件存储在文件需求方授权地址对应的需求方名下;
主区块链节点根据所述金额数据完成交易请求对应资金数据的划转。
具体实施时,文件提供者(文件提供方,卖家)通过客户端在市场上挂出可交易的资产以及定价(出售信息)。需求方(文件需求方,买家)可通过客户端向智能合约(区块链网络)发送交易请求并附带交易所需要的token(金额数据),文件Owner如果同意交易,则通过文件分享操作将文件分享给需求方,同时向智能合约提供已分享的凭证,智能合约完成将交易token转移给Owner的操作完成交易。交易完成后需求方在授权期限内可通过授权信息浏览文件内容。上述交易的步骤安全可靠。
为了便于理解本发明如何实施,下面举例进行说明。
存在3个用户A、B、C,区块链地址分别为:
A:0D84AD396D96D6E1065337FE73C866F4173A98E0;
B:154C1CAEA0A36E707152CF5BC9DF10CC4F3800AE;
C:A6825F111F80F08308F3BB39E5E537469EF1A9A9。
A拥有一个制作面包的配方,以文件的形式记录假设为面包配方.txt(此处可以是任意格式的文件)。
A通过客户端将配方上传到系统,假设A配方的原文哈希是:4b258a75fc21f8b11a6dfe81b1795d81d0d20d046f724e38f92bbcd8db0b1e63。
文件服务器接收到文件以计算文件的哈希值,和用户传递过来的哈希值比对,以保证接收文件的完整性,后文件服务器随机产生一个对称密钥,利用对称密钥加密原始文件。服务器计算加密后文件哈希值。并用A的公钥加密随机密钥后组织授权信息。并把授权信息反馈给客户端。
授权信息可以包括:
Owner地址:0D84AD396D96D6E1065337FE73C866F4173A98E0;
授权地址:0D84AD396D96D6E1065337FE73C866F4173A98E0;
时效(Owner默认为永久):永久;
文件URI:服务器1/abcdefg/xxxxx;
使用公钥加密后的随机对称秘钥:xxxxxxxxx;
文件加密前哈希:
4b258a75fc21f8b11a6dfe81b1795d81d0d20d046f724e38f92bbcd8db0b1e63;
文件加密后哈希……(此处省略,参考加密前哈希)。
客户端收到文件服务器的反馈后将执行签名等相关操作并向区块链节点发送存证请求,并最终落账(中间过程用户并无操作,用户只通过客户端做了一个上传动作,其余操作时系统自动进行,直至区块链处理成功或者中途失败)。
再举一文件上传的例子:
用户A拥有一个记录有价值信息的文件,希望能得到妥善保存,又不希望信息泄露。A可以用本方案实现的系统达到这个目的。
A在系统中拥有一个区块链账户。A通过客户端上传自己的文件,文件上传成功后,A可以在客户端中看到自己上传文件生成的一个数字资产。这是用户端使用文件上传功能的体验。在此过程中系统已经完成了把文件上传到文件服务器,文件服务器加密文件并创建授权信息,客户端提交授权信息给区块链,以及区块链与文件服务器交互验证授权信息和区块链将授权信息创建成数字资产锁定在A用户名下等一系列操作。授权信息锁定在特定账户下,只有该账户能利用授权信息打开文件并获取文件的信息。
下面举一文件浏览的例子:
用户A在自己的客户端可以查询到自己已经上传的文件对应的数字资产。在客户端选择相应资产点击浏览,可以在客户端打开已上传的文件并浏览文件内容。(这是文件浏览的客户体验)。在此过程中系统完成了向文件服务器发送授权信息以及签名,文件服务器判定签名和权限,下载文件到客户端,客户端解密文件并展示的操作。通过一系列操作保证只有真正有权限的用户能访问到文件。
接着,举一文件分享的例子:
在浏览文件时,文件Owner可以把自己的文件分享给其他用户,如用户B。用户点击分享,填写或选择用户B的账号(区块链地址),提交后完成分享。在此过程中系统完成了文件上传,加密,新授权信息的创建,以及新授权信息资产锁定在用户B名下。等一系列操作。此时B将可以在系统中查询到A分享的文件,并可以打开浏览。因为不是给文件的owner所以不能再次分享。
接着,再举一文件交易的例子:
A有一个祖传秘方,记录在文件中并上传到系统保存。A想出售这个配方,在系统中挂出出售意愿和预期价格(用系统原生的结算单位)。用户C有意向购买此配方。点击该条求购信息,并输入愿意支付的金额,提交。此时系统将C拟支付的金额和求购信息发送给智能合约,智能合约创建一条购买请求给用户A。用户A看到此购买请求后点击,确认金额和文件内容(系统调用文件浏览流程,即调用对原始文件进行浏览的步骤)。如果同意本笔交易。则点击同意。文件则通过分享流程分享给用户C,相应的金额,将转账到A的账户下。如果A不同意此笔交易,则通过智能合约返还C已经支付的金额。如果A不处理此请求,超时后智能合约也会返还C已经支付的金额。
本发明实施例中还提供了一种应用于服务器的基于区块链的文件存证方法,如下面的实施例所述。由于该方法解决问题的原理与应用于系统的基于区块链的文件存证方法相似,因此该方法的实施可以参见应用于系统的基于区块链的文件存证方法的实施,重复之处不再赘述。
图3为本发明实施例中应用于服务器的基于区块链的文件存证方法的流程示意图,如图3所示,该方法包括如下步骤:
步骤201:对原始文件进行加密,得到加密文件及对应的加密唯一文件标识;
步骤202:保存加密文件,得到对应的文件资源存储位置标识;
步骤203:组织并存储加密文件的授权信息,将授权信息对应的唯一标识返回至客户端;所述授权信息包括:文件资源存储位置标识,区块链授权地址,原始唯一文件标识,以及加密唯一文件标识;所述原始唯一文件标识用于验证原始文件的完整性,所述加密唯一文件标识用于验证加密文件的完整性;
步骤204:在接收到获取授权信息请求时,对授权信息对应的唯一标识进行验证;
步骤205:在验证通过时,根据授权信息中的文件资源存储位置标识,确认文件资源的有效性;
步骤206:在确认文件资源有效时,将授权信息通过预言机发送至区块链网络。
在一个实施例中,对原始文件进行加密,得到加密文件及对应的加密唯一文件标识,包括:产生随机对称秘钥,利用随机对称秘钥加密原始文件,根据加密文件计算对应的加密哈希值;通过用户的公钥加密所述随机对称秘钥;
组织并存储加密文件的授权信息,将授权信息对应的唯一标识返回至客户端,包括:组织并存储加密文件的授权信息,将授权信息对应的哈希值返回至客户端;所述授权信息具体包括:文件资源存储位置标识,区块链授权地址,原始哈希值,加密哈希值,以及通过用户的公钥加密的随机对称秘钥。
在一个实施例中,产生随机对称秘钥,包括:根据原始文件,计算原始文件对应的哈希值,将计算出的哈希值与客户端发来的原始哈希值进行比对;在比对结果一致时,产生随机对称秘钥。
本发明实施例中还提供了一种基于区块链的文件存证系统,如下面的实施例所述。由于该系统解决问题的原理与应用于系统的基于区块链的文件存证方法相似,因此该系统的实施可以参见应用于系统的基于区块链的文件存证方法的实施,重复之处不再赘述。
图4为本发明实施例中基于区块链的文件存证系统的结构示意图,如图4所示,该系统包括:
客户端10,用于在执行文件上传的步骤时:接收用户的原始文件,将原始文件及对应的原始唯一文件标识、区块链授权地址发送至文件服务器;在执行授权信息存证的步骤时:在接收到授权信息对应的唯一标识时,向区块链网络发起存证请求;所述存证请求包括授权信息对应的唯一标识;
文件服务器20,用于在执行文件存储及得到授权信息的步骤时:对原始文件进行加密,得到加密文件及对应的加密唯一文件标识;保存加密文件,得到对应的文件资源存储位置标识;组织并存储加密文件的授权信息,将授权信息对应的唯一标识返回至客户端;在执行授权信息存证的步骤时:在接收到获取授权信息请求时,对授权信息对应的唯一标识进行验证;在验证通过时,根据授权信息中的文件资源存储位置标识,确认文件资源的有效性;在确认文件资源有效时,将授权信息通过预言机发送至区块链网络;其中,所述授权信息包括:文件资源存储位置标识,区块链授权地址,原始唯一文件标识,以及加密唯一文件标识;所述原始唯一文件标识用于验证原始文件的完整性,所述加密唯一文件标识用于验证加密文件的完整性;
预言机30,用于在监听到区块链网络的存证请求后,向文件服务器发送获取授权信息请求;所述获取授权信息请求中包括授权信息对应的唯一标识;
每一区块链节点40,用于将接收到的授权信息存储在区块链授权地址对应的用户名下。
在一个实施例中,客户端具体用于将用户的公钥,原始文件及对应的原始哈希值、区块链授权地址发送至文件服务器;
文件服务器具体用于产生随机对称秘钥,利用随机对称秘钥加密原始文件,根据加密文件计算对应的加密哈希值,保存加密文件,产生对应的文件资源存储位置标识;通过用户的公钥加密所述随机对称秘钥;组织并存储加密文件的授权信息,将授权信息对应的哈希值返回至客户端;所述授权信息具体包括:文件资源存储位置标识,区块链授权地址,原始哈希值,加密哈希值,以及通过用户的公钥加密的随机对称秘钥;所述随机对称秘钥用于解密加密文件。
在一个实施例中,客户端还用于:接收用户的文件浏览请求,将文件浏览请求发送至区块链网络;对授权信息进行签名,将签名的授权信息和公钥发送至文件服务器;解密所述加密文件进行浏览;所述浏览请求中包括:授权信息对应的唯一文件标识;
主区块链节点,用于将所有区块链节点根据授权信息对应的唯一文件标识共识得到的授权信息反馈给客户端;
文件服务器还用于:通过公钥验证签名;在验证通过时,计算公钥对应的地址,将公钥对应的地址与授权信息中的区块链授权地址比对;在比对结果一致时,根据授权信息中的文件资源存储位置标识,查找对应的加密文件,将加密文件返回至客户端。
在一个实施例中,客户端还用于在执行共享文件的步骤时:将被浏览文件作为共享文件,共享文件对应的唯一文件标识、授权地址、文件主人公钥发送至文件服务器;所述授权地址为被共享人的区块链授权地址;按照所述授权信息存证的步骤,将共享文件的授权信息存储在授权地址对应的被分享人名下;
文件服务器还用于在执行共享文件的步骤时:将共享文件作为所述原始文件,按照所述文件存储及得到授权信息的步骤,存储共享文件,得到共享文件的授权信息,将共享文件的授权信息对应的唯一标识返回至客户端;所述共享文件的授权信息包括:共享文件资源存储位置标识,区块链授权地址,原始唯一文件标识,加密唯一文件标识,以及根据文件主人公钥得到的文件主人地址。
在一个实施例中,文件提供方的客户端还用于对授权信息对应文件进行交易的步骤:接收并显示授权信息对应文件的出售信息;在接收到同意交易的确认指令后,通过所述共享文件的步骤,将授权信息对应文件存储在文件需求方授权地址对应的需求方名下;
文件需求方的客户端还用于针对所述出售信息发起交易请求至区块链网络;所述交易请求包括交易所需要的金额数据;
每一区块链节点还用于接收交易请求,根据交易请求验证对应文件的授权信息,验证通过后,将交易请求发送至文件提供方客户端;
主区块链节点还用于根据金额数据完成交易请求对应资金数据的划转。
本发明实施例中还提供了一种基于区块链的文件存证服务器,如下面的实施例所述。由于该服务器解决问题的原理与应用于系统的基于区块链的文件存证方法相似,因此该服务器的实施可以参见应用于系统的基于区块链的文件存证方法的实施,重复之处不再赘述。
图5为本发明实施例中基于区块链的文件存证文件服务器的结构示意图,如图5所示,该文件服务器包括:
加密处理单元21,用于对原始文件进行加密,得到加密文件及对应的加密唯一文件标识;
存储处理单元22,用于保存加密文件,得到对应的文件资源存储位置标识;
反馈单元23,用于组织并存储加密文件的授权信息,将授权信息对应的唯一标识返回至客户端;所述授权信息包括:文件资源存储位置标识,区块链授权地址,原始唯一文件标识,以及加密唯一文件标识;所述原始唯一文件标识用于验证原始文件的完整性,所述加密唯一文件标识用于验证加密文件的完整性;
验证单元24,用于在接收到获取授权信息请求时,对授权信息对应的唯一标识进行验证;
确定单元25,用于在验证通过时,根据授权信息中的文件资源存储位置标识,确认文件资源的有效性;
发送单元26,用于在确认文件资源有效时,将授权信息通过预言机发送至区块链网络。
在一个实施例中,所述加密处理单元具体用于:产生随机对称秘钥,利用随机对称秘钥加密原始文件,根据加密文件计算对应的加密哈希值;通过用户的公钥加密所述随机对称秘钥;
所述反馈单元具体用于组织并存储加密文件的授权信息,将授权信息对应的哈希值返回至客户端;所述授权信息具体包括:文件资源存储位置标识,区块链授权地址,原始哈希值,加密哈希值,以及通过用户的公钥加密的随机对称秘钥。
在一个实施例中,所述加密处理单元具体用于:根据原始文件,计算原始文件对应的哈希值,将计算出的哈希值与客户端发来的原始哈希值进行比对;在比对结果一致时,产生随机对称秘钥。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于区块链的文件存证方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述基于区块链的文件存证方法的计算机程序。
本发明实施例中,基于区块链的文件存证方案,实现了文件服务器负责对上传的原始文件进行加密保存,可最大限度保护数据,原始唯一文件标识、加密唯一文件标识、区块链授权地址及文件资源存储位置标识作为授权信息在区块链中存证,区块链通过预言机与文件服务器进行交互,确保文件资源的有效性,由此用户后续可以凭借授权信息的唯一标识对该文件进行安全地使用。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (22)

1.一种基于区块链的文件存证方法,其特征在于,包括:
文件上传的步骤:客户端接收用户的原始文件,将原始文件及对应的原始唯一文件标识、区块链授权地址发送至文件服务器;
文件存储及得到授权信息的步骤:文件服务器对原始文件进行加密,得到加密文件及对应的加密唯一文件标识;保存加密文件,得到对应的文件资源存储位置标识;组织并存储加密文件的授权信息,将授权信息对应的唯一标识返回至客户端;所述授权信息包括:文件资源存储位置标识,区块链授权地址,原始唯一文件标识,以及加密唯一文件标识;所述原始唯一文件标识用于验证原始文件的完整性,所述加密唯一文件标识用于验证加密文件的完整性;
授权信息存证的步骤:
客户端在接收到授权信息对应的唯一标识时,向区块链网络发起存证请求;所述存证请求包括授权信息对应的唯一标识;
预言机在监听到区块链网络的存证请求后,向文件服务器发送获取授权信息请求;所述获取授权信息请求中包括授权信息对应的唯一标识;
文件服务器在接收到获取授权信息请求时,对授权信息对应的唯一标识进行验证;在验证通过时,根据授权信息中的文件资源存储位置标识,确认文件资源的有效性;在确认文件资源有效时,将授权信息通过预言机发送至区块链网络;
每一区块链节点将接收到的授权信息存储在区块链授权地址对应的用户名下。
2.如权利要求1所述的基于区块链的文件存证方法,其特征在于,所述文件上传的步骤还包括:客户端将用户的公钥发送至文件服务器;所述原始唯一文件标识为原始哈希值;
所述文件存储及得到授权信息的步骤具体包括:文件服务器产生随机对称秘钥,利用随机对称秘钥加密原始文件,根据加密文件计算对应的加密哈希值,保存加密文件,产生对应的文件资源存储位置标识;通过用户的公钥加密所述随机对称秘钥;组织并存储加密文件的授权信息,将授权信息对应的哈希值返回至客户端;所述授权信息具体包括:文件资源存储位置标识,区块链授权地址,原始哈希值,加密哈希值,以及通过用户的公钥加密的随机对称秘钥;所述随机对称秘钥用于解密加密文件。
3.如权利要求2所述的基于区块链的文件存证方法,其特征在于,文件服务器产生随机对称秘钥,包括:根据原始文件,计算原始文件对应的哈希值,将计算出的哈希值与客户端发来的原始哈希值进行比对;在比对结果一致时,产生随机对称秘钥。
4.如权利要求1所述的基于区块链的文件存证方法,其特征在于,还包括:对原始文件进行浏览的步骤:
客户端接收用户的文件浏览请求,将文件浏览请求发送至区块链网络;所述浏览请求中包括:授权信息对应的唯一文件标识;
主区块链节点将所有区块链节点根据授权信息对应的唯一文件标识共识得到的授权信息反馈给客户端;
客户端对授权信息进行签名,将签名的授权信息和公钥发送至文件服务器;
文件服务器通过公钥验证签名;在验证通过时,计算公钥对应的地址,将公钥对应的地址与授权信息中的区块链授权地址比对;在比对结果一致时,根据授权信息中的文件资源存储位置标识,查找对应的加密文件,将加密文件返回至客户端;
客户端解密所述加密文件进行浏览。
5.如权利要求4所述的基于区块链的文件存证方法,其特征在于,文件服务器通过公钥验证签名,包括:文件服务器验证授权信息中文件资源存储位置标识是否存在,如果存在,通过公钥验证签名。
6.如权利要求4所述的基于区块链的文件存证方法,其特征在于,所述授权信息还包括:授权时效;
在比对结果一致时,根据授权信息中的文件资源存储位置标识,查找对应的加密文件,包括:在比对结果一致时,根据授权时效,验证授权信息是否过期,如果未过期,根据授权信息中的文件资源存储位置标识,查找对应的加密文件。
7.如权利要求1所述的基于区块链的文件存证方法,其特征在于,还包括:在用户通过客户端浏览解密后文件时共享文件的步骤:
客户端将被浏览文件作为共享文件,共享文件对应的唯一文件标识、授权地址、文件主人公钥发送至文件服务器;所述授权地址为被共享人的区块链授权地址;
文件服务器将共享文件作为所述原始文件,按照所述文件存储及得到授权信息的步骤,存储共享文件,得到共享文件的授权信息,将共享文件的授权信息对应的唯一标识返回至客户端;所述共享文件的授权信息包括:共享文件资源存储位置标识,区块链授权地址,原始唯一文件标识,加密唯一文件标识,以及根据文件主人公钥得到的文件主人地址;
客户端按照所述授权信息存证的步骤,将共享文件的授权信息存储在授权地址对应的被分享人名下。
8.如权利要求7所述的基于区块链的文件存证方法,其特征在于,所述共享文件的授权信息还包括:授权分享的时效;所述被分享人在授权分享的时效内向文件服务器申请浏览所述共享文件。
9.如权利要求7所述的基于区块链的文件存证方法,其特征在于,还包括:对授权信息对应文件进行交易的步骤:
文件提供方客户端接收并显示授权信息对应文件的出售信息;
文件需求方客户端针对所述出售信息发起交易请求至区块链网络;所述交易请求包括交易所需要的金额数据;
每一区块链节点接收交易请求,根据交易请求验证对应文件的授权信息,验证通过后,将交易请求发送至文件提供方客户端;
文件提供方客户端在接收到同意交易的确认指令后,通过所述共享文件的步骤,将授权信息对应文件存储在文件需求方授权地址对应的需求方名下;
主区块链节点根据所述金额数据完成交易请求对应资金数据的划转。
10.一种基于区块链的文件存证方法,其特征在于,包括:
对原始文件进行加密,得到加密文件及对应的加密唯一文件标识;
保存加密文件,得到对应的文件资源存储位置标识;
组织并存储加密文件的授权信息,将授权信息对应的唯一标识返回至客户端;所述授权信息包括:文件资源存储位置标识,区块链授权地址,原始唯一文件标识,以及加密唯一文件标识;所述原始唯一文件标识用于验证原始文件的完整性,所述加密唯一文件标识用于验证加密文件的完整性;
在接收到获取授权信息请求时,对授权信息对应的唯一标识进行验证;
在验证通过时,根据授权信息中的文件资源存储位置标识,确认文件资源的有效性;
在确认文件资源有效时,将授权信息通过预言机发送至区块链网络。
11.如权利要求10所述的基于区块链的文件存证方法,其特征在于,对原始文件进行加密,得到加密文件及对应的加密唯一文件标识,包括:产生随机对称秘钥,利用随机对称秘钥加密原始文件,根据加密文件计算对应的加密哈希值;通过用户的公钥加密所述随机对称秘钥;
组织并存储加密文件的授权信息,将授权信息对应的唯一标识返回至客户端,包括:组织并存储加密文件的授权信息,将授权信息对应的哈希值返回至客户端;所述授权信息具体包括:文件资源存储位置标识,区块链授权地址,原始哈希值,加密哈希值,以及通过用户的公钥加密的随机对称秘钥。
12.如权利要求11所述的基于区块链的文件存证方法,其特征在于,产生随机对称秘钥,包括:根据原始文件,计算原始文件对应的哈希值,将计算出的哈希值与客户端发来的原始哈希值进行比对;在比对结果一致时,产生随机对称秘钥。
13.一种基于区块链的文件存证系统,其特征在于,包括:
客户端,用于在执行文件上传的步骤时:接收用户的原始文件,将原始文件及对应的原始唯一文件标识、区块链授权地址发送至文件服务器;在执行授权信息存证的步骤时:在接收到授权信息对应的唯一标识时,向区块链网络发起存证请求;所述存证请求包括授权信息对应的唯一标识;
文件服务器,用于在执行文件存储及得到授权信息的步骤时:对原始文件进行加密,得到加密文件及对应的加密唯一文件标识;保存加密文件,得到对应的文件资源存储位置标识;组织并存储加密文件的授权信息,将授权信息对应的唯一标识返回至客户端;在执行授权信息存证的步骤时:在接收到获取授权信息请求时,对授权信息对应的唯一标识进行验证;在验证通过时,根据授权信息中的文件资源存储位置标识,确认文件资源的有效性;在确认文件资源有效时,将授权信息通过预言机发送至区块链网络;其中,所述授权信息包括:文件资源存储位置标识,区块链授权地址,原始唯一文件标识,以及加密唯一文件标识;所述原始唯一文件标识用于验证原始文件的完整性,所述加密唯一文件标识用于验证加密文件的完整性;
预言机,用于在监听到区块链网络的存证请求后,向文件服务器发送获取授权信息请求;所述获取授权信息请求中包括授权信息对应的唯一标识;
每一区块链节点,用于将接收到的授权信息存储在区块链授权地址对应的用户名下。
14.如权利要求13所述的基于区块链的文件存证系统,其特征在于,客户端还用于将用户的公钥发送至文件服务器;所述原始唯一文件标识为原始哈希值;
文件服务器具体用于产生随机对称秘钥,利用随机对称秘钥加密原始文件,根据加密文件计算对应的加密哈希值,保存加密文件,产生对应的文件资源存储位置标识;通过用户的公钥加密所述随机对称秘钥;组织并存储加密文件的授权信息,将授权信息对应的哈希值返回至客户端;所述授权信息具体包括:文件资源存储位置标识,区块链授权地址,原始哈希值,加密哈希值,以及通过用户的公钥加密的随机对称秘钥;所述随机对称秘钥用于解密加密文件。
15.如权利要求13所述的基于区块链的文件存证系统,其特征在于,客户端还用于:接收用户的文件浏览请求,将文件浏览请求发送至区块链网络;对授权信息进行签名,将签名的授权信息和公钥发送至文件服务器;解密所述加密文件进行浏览;所述浏览请求中包括:授权信息对应的唯一文件标识;
主区块链节点,用于将所有区块链节点根据授权信息对应的唯一文件标识共识得到的授权信息反馈给客户端;
文件服务器还用于:通过公钥验证签名;在验证通过时,计算公钥对应的地址,将公钥对应的地址与授权信息中的区块链授权地址比对;在比对结果一致时,根据授权信息中的文件资源存储位置标识,查找对应的加密文件,将加密文件返回至客户端。
16.如权利要求13所述的基于区块链的文件存证系统,其特征在于,客户端还用于在执行共享文件的步骤时:将被浏览文件作为共享文件,共享文件对应的唯一文件标识、授权地址、文件主人公钥发送至文件服务器;所述授权地址为被共享人的区块链授权地址;按照所述授权信息存证的步骤,将共享文件的授权信息存储在授权地址对应的被分享人名下;
文件服务器还用于在执行共享文件的步骤时:将共享文件作为所述原始文件,按照所述文件存储及得到授权信息的步骤,存储共享文件,得到共享文件的授权信息,将共享文件的授权信息对应的唯一标识返回至客户端;所述共享文件的授权信息包括:共享文件资源存储位置标识,区块链授权地址,原始唯一文件标识,加密唯一文件标识,以及根据文件主人公钥得到的文件主人地址。
17.如权利要求16所述的基于区块链的文件存证系统,其特征在于,文件提供方的客户端还用于对授权信息对应文件进行交易的步骤:接收并显示授权信息对应文件的出售信息;在接收到同意交易的确认指令后,通过所述共享文件的步骤,将授权信息对应文件存储在文件需求方授权地址对应的需求方名下;
文件需求方的客户端还用于针对所述出售信息发起交易请求至区块链网络;所述交易请求包括交易所需要的金额数据;
每一区块链节点还用于接收交易请求,根据交易请求验证对应文件的授权信息,验证通过后,将交易请求发送至文件提供方客户端;
主区块链节点还用于根据金额数据完成交易请求对应资金数据的划转。
18.一种基于区块链的文件存证文件服务器,其特征在于,包括:
加密处理单元,用于对原始文件进行加密,得到加密文件及对应的加密唯一文件标识;
存储处理单元,用于保存加密文件,得到对应的文件资源存储位置标识;
反馈单元,用于组织并存储加密文件的授权信息,将授权信息对应的唯一标识返回至客户端;所述授权信息包括:文件资源存储位置标识,区块链授权地址,原始唯一文件标识,以及加密唯一文件标识;所述原始唯一文件标识用于验证原始文件的完整性,所述加密唯一文件标识用于验证加密文件的完整性;
验证单元,用于在接收到获取授权信息请求时,对授权信息对应的唯一标识进行验证;
确定单元,用于在验证通过时,根据授权信息中的文件资源存储位置标识,确认文件资源的有效性;
发送单元,用于在确认文件资源有效时,将授权信息通过预言机发送至区块链网络。
19.如权利要求18所述的基于区块链的文件存证文件服务器,其特征在于,所述加密处理单元具体用于:产生随机对称秘钥,利用随机对称秘钥加密原始文件,根据加密文件计算对应的加密哈希值;通过用户的公钥加密所述随机对称秘钥;
所述反馈单元具体用于组织并存储加密文件的授权信息,将授权信息对应的哈希值返回至客户端;所述授权信息具体包括:文件资源存储位置标识,区块链授权地址,原始哈希值,加密哈希值,以及通过用户的公钥加密的随机对称秘钥。
20.如权利要求19所述的基于区块链的文件存证文件服务器,其特征在于,所述加密处理单元具体用于:根据原始文件,计算原始文件对应的哈希值,将计算出的哈希值与客户端发来的原始哈希值进行比对;在比对结果一致时,产生随机对称秘钥。
21.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12任一所述方法。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至12任一所述方法的计算机程序。
CN202011251134.2A 2020-11-11 2020-11-11 基于区块链的文件存证方法、系统及服务器 Active CN112383611B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011251134.2A CN112383611B (zh) 2020-11-11 2020-11-11 基于区块链的文件存证方法、系统及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011251134.2A CN112383611B (zh) 2020-11-11 2020-11-11 基于区块链的文件存证方法、系统及服务器

Publications (2)

Publication Number Publication Date
CN112383611A CN112383611A (zh) 2021-02-19
CN112383611B true CN112383611B (zh) 2022-12-09

Family

ID=74579723

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011251134.2A Active CN112383611B (zh) 2020-11-11 2020-11-11 基于区块链的文件存证方法、系统及服务器

Country Status (1)

Country Link
CN (1) CN112383611B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112804260B (zh) * 2021-03-17 2023-04-07 中国工商银行股份有限公司 基于区块链的信息传递方法和节点
CN113468549A (zh) * 2021-04-29 2021-10-01 深圳前海移联科技有限公司 基于区块链的加密信息存证的检索方法、系统及电子设备
CN113301163B (zh) * 2021-06-02 2022-12-16 网易(杭州)网络有限公司 业务处理方法、系统、电子设备及存储介质
CN113726888B (zh) * 2021-08-31 2023-07-21 安天科技集团股份有限公司 基于区块链的密码数据处理方法、装置、电子设备及介质
CN115439118B (zh) * 2022-08-02 2023-11-21 上海网商电子商务有限公司 一种基于区块链的数字存证管理方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101723405B1 (ko) * 2016-07-04 2017-04-06 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법
CN106815530A (zh) * 2016-12-26 2017-06-09 北京爱接力科技发展有限公司 数据存证方法、数据校验方法及装置
CN107819777A (zh) * 2017-11-17 2018-03-20 北京亿生生网络科技有限公司 一种基于区块链技术的数据存证方法及系统
CN108809932A (zh) * 2018-04-09 2018-11-13 杭州拾贝知识产权服务有限公司 一种基于区块链的存证系统、方法及可读介质
KR20190114433A (ko) * 2018-03-30 2019-10-10 주식회사 코인플러그 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버
CN110636043A (zh) * 2019-08-16 2019-12-31 中国人民银行数字货币研究所 一种基于区块链的文件授权访问方法、装置及系统
CN111488616A (zh) * 2020-04-08 2020-08-04 北京瑞策科技有限公司 业务数据区块链的预言机实现方法及装置
CN111552676A (zh) * 2020-04-26 2020-08-18 北京众享比特科技有限公司 基于区块链的存证方法、装置、设备及介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103595698B (zh) * 2012-08-16 2017-05-03 福建福昕软件开发股份有限公司 一种数字权益管理方法
CN106330452B (zh) * 2016-08-13 2020-02-18 广东中云智安科技有限公司 一种用于区块链的安全网络附加装置及方法
US20190141026A1 (en) * 2017-11-07 2019-05-09 General Electric Company Blockchain based device authentication
US10853772B2 (en) * 2018-04-04 2020-12-01 Vijay K. Madisetti Method and system for exchange of value or tokens between blockchain networks
US10942920B2 (en) * 2019-06-03 2021-03-09 Advanced New Technologies Co., Ltd. Service processing system and method based on blockchain
CN110493261B (zh) * 2019-09-16 2021-07-27 腾讯科技(深圳)有限公司 基于区块链的验证码获取方法、客户端、服务器及存储介质
CN110912937B (zh) * 2019-12-23 2021-09-07 杭州中科先进技术研究院有限公司 一种基于区块链的数字存证平台和存证方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101723405B1 (ko) * 2016-07-04 2017-04-06 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법
CN106815530A (zh) * 2016-12-26 2017-06-09 北京爱接力科技发展有限公司 数据存证方法、数据校验方法及装置
CN107819777A (zh) * 2017-11-17 2018-03-20 北京亿生生网络科技有限公司 一种基于区块链技术的数据存证方法及系统
KR20190114433A (ko) * 2018-03-30 2019-10-10 주식회사 코인플러그 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버
CN108809932A (zh) * 2018-04-09 2018-11-13 杭州拾贝知识产权服务有限公司 一种基于区块链的存证系统、方法及可读介质
CN110636043A (zh) * 2019-08-16 2019-12-31 中国人民银行数字货币研究所 一种基于区块链的文件授权访问方法、装置及系统
CN111488616A (zh) * 2020-04-08 2020-08-04 北京瑞策科技有限公司 业务数据区块链的预言机实现方法及装置
CN111552676A (zh) * 2020-04-26 2020-08-18 北京众享比特科技有限公司 基于区块链的存证方法、装置、设备及介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
区块链技术在可信电子文件管理中的适用性研究;许海涛;《山西档案》;20191024;全文 *
朱建明 ; 张沁楠 ; 高胜.区块链关键技术及其应用研究进展.《太原理工大学学报》.2020, *

Also Published As

Publication number Publication date
CN112383611A (zh) 2021-02-19

Similar Documents

Publication Publication Date Title
CN112383611B (zh) 基于区块链的文件存证方法、系统及服务器
US10693632B1 (en) Autonomous devices
CN109961292B (zh) 区块链验证码应用方法、设备和存储介质
EP3813324B1 (en) Data processing method and device
CN105373955B (zh) 基于多重签名的数字资产处理方法及装置
JP4971572B2 (ja) 電子商取引での取引の容易化
CN109274652B (zh) 身份信息验证系统、方法及装置及计算机存储介质
US9530126B2 (en) Secure mobile payment processing
US8290819B2 (en) Electronic commerce transactions over a peer-to-peer communications channel
CN107146120B (zh) 电子发票的生成方法及生成装置
CN111292041B (zh) 一种电子合同生成方法、装置、设备及存储介质
GB2337353A (en) Method of generating product survey information in an electronic payment system
JP2001216198A (ja) 利用許可証発行装置および方法
CN113034128B (zh) 一种基于区块链的数据交易及确权的方法
US20220014354A1 (en) Systems, methods and devices for provision of a secret
US20210201409A1 (en) Trading system and recording medium
US20120036075A1 (en) Determining mobile account to apply marketplace charges
CN110992032A (zh) 多方联合进行可信用户评估的方法及装置
CN113407954A (zh) 基于区块链的数据管理方法及装置
CN115114658A (zh) 基于区块链的可验证数据交易方法、装置、设备及介质
CN111105235A (zh) 基于区块链的供应链交易隐私保护系统、方法及相关设备
CN115423457A (zh) 基于区块链的跨境金融支付结算方法及系统
CN111079190A (zh) 区块链供应链交易隐藏动态监管系统及方法
CN110992034A (zh) 基于区块链的供应链交易隐私保护系统、方法及相关设备
CN111260359A (zh) 一种移动支付方法、装置及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant