CN110445840B - 一种基于区块链技术的文件存储和读取的方法 - Google Patents

一种基于区块链技术的文件存储和读取的方法 Download PDF

Info

Publication number
CN110445840B
CN110445840B CN201910616556.6A CN201910616556A CN110445840B CN 110445840 B CN110445840 B CN 110445840B CN 201910616556 A CN201910616556 A CN 201910616556A CN 110445840 B CN110445840 B CN 110445840B
Authority
CN
China
Prior art keywords
user
file
identifier
read
stored
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
CN201910616556.6A
Other languages
English (en)
Other versions
CN110445840A (zh
Inventor
刘芳璐
王思喆
王怡宁
王健
Original Assignee
Beijing Jianwang Future Technology 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 Beijing Jianwang Future Technology Co ltd filed Critical Beijing Jianwang Future Technology Co ltd
Priority to CN201910616556.6A priority Critical patent/CN110445840B/zh
Publication of CN110445840A publication Critical patent/CN110445840A/zh
Application granted granted Critical
Publication of CN110445840B publication Critical patent/CN110445840B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • 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/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

Landscapes

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

Abstract

本公开涉及一种基于区块链技术的文件存储和读取的方法、终端设备及计算机可读存储介质。该文件存储方法包括:与第一用户相关的客户端将待存储文件划分成多个文件碎片,向存储节点网络发送针对所述待存储文件的写入操作消息;存储节点网络对第一用户的签名与存储节点网络中的第一用户的公钥是否匹配进行共识验证;以及在验证通过的情况下,将所述多个文件碎片在链下分布式地在存储节点网络中。从而,提供了一种在存储节点网络中的节点之间的高度安全、数据容量可扩展性高的分享数据文件的方案。

Description

一种基于区块链技术的文件存储和读取的方法
技术领域
本公开内容总体上涉及数据文件的存储和访问的技术领域,包括对数据文件的写入和读取,具体而言,涉及一种基于区块链技术的文件存储和读取的方法、终端设备及计算机可读存储介质。
背景技术
在当今的信息化社会中,无论是机构还是个人,在计算机网络上任何操作都会产生数据,而这些数据中就包括许多重要又敏感的隐私性数据。隐私性数据例如,个人身份证信息、银行卡号、社会保障卡号、患者的医疗数据(比如CT照片等医学影像数据)、个人在不同网站上的用户名和密码、以及诸如此类的数据。这些数据或者信息通常以文件形式存储在计算机网络中的磁盘或其他外部存储介质上。对于隐私数据存储和管理而言,如何保证存储的安全性和访问的便捷性是隐私数据文件的存储和管理的基本需求。特别对于机构而言,由于不断地有隐私数据文件产生,而且这些文件对存储空间的需求通常较大,因而在存储的安全性和访问的便捷性方面持续存在着改善的需求。另外,在传统的服务器/客户端(C/S)架构或者浏览器/客户端架构中,虽然某些数据被视为是特定用户独享的,例如该用户的账号和密码,但是这些数据的拥有者、承载着这些数据的存储介质的拥有者并不是该用户。
传统技术中的中央数据管理系统本身存在安全隐患。一方面,数据管理系统本身易受到恶意攻击,通常是系统中本身存在漏洞,或者系统中数据可能未以加密方式存储。比如,在使用数据库来统一进行权限管理的情况下,当该数据库被恶意攻击者所控制,数据库所管理的信息将遭到批量泄露。而即使对系统内数据进行加密存储,如果用于加密的密钥仍然以表单形式存储于系统内,那么单次对系统的成功攻击就可以使得所有的密钥都沦陷,从而造成数据的批量泄露。另一方面,与此同时,数据管理系统还面临着后门操作的隐患。以使用私有云的机构为例,使用私有云的机构,通常并不是搭建私有云的主体,即大多数使用私有云的机构使用的是第三方平台搭建的私有云。由第三方搭建的数据管理系统,第三方本身所拥有的权限,会成为数据从内部遭到泄露的隐患,同时也会成为恶意攻击的对象。而使用公有云不但面临着和使用私有云同样的问题,同时由于数据存储的主体不在机构内部,而在第三方,使得机构对于数据的实际使用情况完全无法掌控。也就是说,在传统模式下,让第三方来参与数据管理,却不让第三方实际拥有数据,是很困难的。
另外,提供数据存储和管理服务的主体还存在可信度方面的问题。一方面,由于数据的拥有者对数据缺乏掌控,使得其无法直接了解数据的状态,从而在发生数据泄露时,无法有效查阅痕迹,进行追溯。同时,虽然有的第三方系统会将行为信息记录在表单上,但由于表单数据存在被篡改(后门或漏洞)的可能,使得这些信息无法有效作为追责的依据。另一方面,将数据存储在公有云,会面临巨大的安全与隐私隐患,以及较低的数据使用效率;将数据存储在私有云,则会有巨大的成本(硬件、软件、运维和管理等各个方面的成本)。
数据文件的冗余备份也是保证数据存储的安全性的一个传统技术模式,以防止数据丢失或损坏。然而,这一方面使得数据的存储成本上升,同时也让存储备份数据的计算机站点成为潜在恶意攻击的对象,成为数据泄露的风险点。
另外,数据管理系统的性能与可扩展性之间有着很大的相关性,在不同可扩展性的情况下,系统的性能会有较大差别。甚至为了效率,系统在处理信息时,针对不同的可扩展性,会采用不同的策略。这一方面会让系统有较大的局限性,同时也给系统带来了很大的维护成本(用小资源处理大信息)与资源浪费(用大资源处理小信息)。
再者,在传输比较大的文件时,由于数据管理系统采用从中央服务器到客户端的传输方式,使得传输时间过长。
区块链以其去中心化、高安全性、可容错性、抗攻击性、抗共谋性为特征,在提出后迅速发展,对于解决数据文件存储中出现的前述问题方面展现出了高的匹配性。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法,是区块链技术中区块链节点相互之间取得信任的核心。目前,已经提出了多种共识机制和共识算法,虽然其设计构思多种多样,但是公知机制的本质始终相同,即以消耗资源来换取信任。
狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
一般说来,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块链的各种应用场景和案例。该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点。
目前已经有人提出了基于区块链的技术文件存储系统。例如,中国专利申请公开CN 109274717A提出了一种基于区块链的共享存储方法,在该方法中,将待存储共享数据以区块链技术进行存储,让每个区块链节点共享其至少部分存储空间,构建一个分布式共享存储中心,其中采用冗余编码方式将所述待存储共享数据存储至所述分布式共享存储中心。但是,这些区块链技术在隐私数据管理中的应用面临两个问题:(1)由于信息传递的不可逆性,隐私数据直接在链上共享后就难以进行控制和限制其使用范围;以及(2)区块链的存储容量并不足以支持拥有庞大数据量的隐私数据,隐私数据上链会对区块链造成难以负荷的拥堵。
需要指出的是,在上述背景技术部分介绍的内容,仅用于加强对本公开内容的技术背景的理解,并不当然代表其中的内容一定是本领域普通技术人员已知的现有技术。
发明内容
有鉴于此,本公开描述的技术方案的目的之一在于提供一种改进的、更加安全的基于区块链技术的文件存储和读取的方案。
在第一方面,提供一种基于区块链技术的存储文件的方法,包括:与第一用户相关的客户端将待存储文件划分成多个文件碎片;所述与第一用户相关的客户端向存储节点网络发送针对所述待存储文件的写入操作消息,所述写入操作消息包括:文件碎片,与文件碎片标识符、第一用户的标识符和第二用户标识符相关的信息,以及第一用户的签名,其中,所述第二用户是所述待存储文件的拥有者;所述存储节点网络对所述第一用户的签名与所述存储节点网络中的所述第一用户的公钥是否匹配进行共识验证;以及在验证通过的情况下,将所述多个文件碎片在链下分布式地存储在存储节点网络中。
在第二方面,提供一种基于区块链技术的读取文件的方法,包括:与第三用户相关的客户端向存储节点网络发送针对待读取文件的文件读取请求消息,该文件读取请求消息包括:针对待读取文件的读取操作权限令牌,与所述待读取文件的文件标识符和第三用户的标识符相关的信息,以及第三用户的签名,其中,所述第四用户是所述待读取文件的拥有者,并且所述待读取文件以多个文件碎片的形式在链下分布式地存储在存储节点网络中;所述存储节点网络对所述第三用户的签名与所述存储节点网络中的所述第三用户的公钥是否匹配进行共识验证;所述存储节点网络根据收到的所述读取操作权限令牌对第三用户对所述待读取文件的读取权限进行共识验证;在验证通过的情况下,所述存储节点网络向所述与第三用户相关的客户端发送所述待读取文件的所述多个文件碎片;以及所述与第三用户相关的客户端从接收到的多个文件碎片中还原出所述待读取文件。
在第三方面,提供一种基于区块链技术的存储文件的方法,包括:接收来自与第一用户相关的客户端的针对待存储文件的写入操作消息,该写入操作消息包括:文件碎片,与文件碎片标识符、第一用户的标识符和第二用户标识符相关的信息,以及第一用户的签名,其中,所述第二用户是所述待存储文件的拥有者,并且所述与第一用户相关的客户端将待存储文件划分成多个文件碎片并进行发送;对所述第一用户的签名与所述存储节点网络中的所述第一用户的公钥是否匹配进行共识验证;以及在验证通过的情况下,将所述多个文件碎片在链下分布式地存储在存储节点网络中。
在第四方面,提供一种基于区块链技术的读取文件的方法,包括:接收来自与第三用户相关的客户端的针对待读取文件的读取操作消息,该文件读取请求消息包括:针对待读取文件的读取操作权限令牌,与所述待读取文件的文件标识符和第三用户的标识符相关的信息,以及第三用户的签名,其中,所述待读取文件以多个文件碎片的形式在链下分布式地存储在存储节点网络中;对所述第三用户的签名与所述存储节点网络中的所述第三用户的公钥是否匹配进行共识验证;根据收到的所述读取操作权限令牌对第三用户对所述待读取文件的读取权限进行共识验证;以及在验证通过的情况下,向所述与第三用户相关的客户端发送所述待读取文件的所述多个文件碎片中的所述终端设备保存的文件碎片。
在第五方面,提供一种基于区块链技术的存储文件的终端设备,包括:网络接口,被配置为与其他对等终端设备进行通信;存储器,被配置为存储程序代码,以及处理器,被配置为执行所述程序代码以执行前述第三方面的方法步骤。
在第六方面,提供一种基于区块链技术的读取文件的终端设备,包括:网络接口,被配置为与其他对等终端设备进行通信;存储器,被配置为存储程序代码,以及处理器,被配置为执行所述程序代码以执行前述第四方面的方法步骤。
在第七方面,提供一种计算机可读存储介质,包括存储于其上的计算机可执行指令,所述可执行指令在被处理器执行时实施前述第三方面的方法步骤。
在第八方面,提供一种计算机可读存储介质,包括存储于其上的计算机可执行指令,所述可执行指令在被处理器执行时实施前述第四方面的方法步骤。
根据本发明的各种实施方式,数据文件在链下分布式地存储在存储节点网络中,同时将对文件的写入和/或读取操作的权限相关的信息以区块链的形式存储在该存储节点网络中,用于区块链技术下的共识验证。通过利用数据管理结构中的所有参与方的共识验证,数据拥有者不必是存储属于其的数据文件的主机或存储设备的掌控者,却能对其享有所有权的数据文件的访问权拥有完全的控制权,包括授权期望的目标用户访问、存储或读取该数据文件;同时,提供了一种在存储节点网络中的节点之间的高度安全、数据容量可扩展性高的分享数据文件的方案。
附图说明
构成本公开的一部分的附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出了根据本发明实施方式的各种方法可以在其中实施的网络系统的概览图;
图2示意性示出了适合用来实现根据本发明实施方式的各种方法的移动终端的框图;
图3示意性示出了根据本发明一个实施方式的适于用来实现本发明实施方式的计算机系统的框图;
图4示意性示出了根据本发明一个实施方式的文件存储和读取的系统架构的示意图;
图5示意性示出了根据本发明一个实施方式的基于区块链技术的存储文件的方法的流程图;
图6示意性示出了根据本发明一个实施方式的第一用户向第二用户请求写入操作权限令牌的方法的流程图;
图7示意性示出了根据本发明另一个实施方式的基于区块链技术的存储文件的方法的流程图;
图8示意性示出了根据本发明一个实施方式的基于区块链技术的存储文件的方法的流程图;
图9示意性示出了根据本发明一个实施方式的第三用户向第四用户请求读取操作权限令牌的方法的流程图;
图10示意性示出了根据本发明一个实施方式的基于区块链技术的存储和读取文件的过程的示意图;以及
图11示意性示出了根据本发明一个实施方式的计算机程序产品的框图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本公开的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和如下描述被认为本质上是示例性的而非限制性的。
附图中的流程图和框图,图示了按照本发明各种实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现预定的逻辑功能的可执行指令。应当注意,在有些作为备选的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也应当注意,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。此外,为了示意的方便,下述具体实施方式中的可选的步骤以虚线框的形式示出。
应当理解,尽管在本文描述的实施例中,有时直接将用户描述为消息的发送方或接收方,但这仅是为了叙述的方便,严格而言,是与该用户相关的客户端完成了消息的发送和接收。发送和接收的动作可以响应于用户的输入而启动,也可以是自动启动。对客户端应当做广义连接,可以代表用户终端设备,也可以代表运行在用户终端设备上的应用程序,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本公开中的具体含义。
另外,在本文中,将第一主体向第二主体发送的消息描述为其中包括多个内容项,但是应当理解,在具体实现时,这些内容项可以在一条消息中发送,也可以在多条消息中发送。这些内容项可以显式地直接体现在消息中,也可以在发送消息中隐式地包括了与该内容项的关联项,通过该关联项,第二主体(接收方)能够从网络中获得该内容向。
另一方面,本文使用的术语第一用户、第二用户等是相对而言的术语,仅仅用来区分具有不同权限或扮演不同角色的用户。在不同的场景下,第一和第二用户间的权限或者角色可能发生互换,这并不脱离本发明实施方式的范围和精神实质。此外,术语“第一”、“第二”等序数词仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本公开的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接:可以是机械连接,也可以是电连接或可以相互通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本公开中的具体含义。
下文的公开提供了许多不同的实施方式或例子用来实现本公开的不同结构。为了简化本公开的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本公开。此外,本公开可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。
以下结合附图对本公开的具体实施例进行详细说明,应当理解,此处所描述的优选实施例仅用于说明和解释本公开,并不用于限定本公开。
首先参考图1,其示出了本发明实施方式可以在其中实施的网络系统100的概览图。系统100可以包括网络110、连接到网络110的多个终端设备。在图1中,多个终端设备被示出为包括一个或多个移动终端120、一个或多个台式计算机130。该多个终端设备以分布式形态组网,是去中心化的网络形态,所形成的网络在本文中被称为存储节点网络。该多个终端设备在本文中被称为节点或网络节点。
仅为了叙述的方便,将该分布式形态的组网称为存储节点网络,但是应当理解,根据本发明的实施方式,在该存储节点网络工作时,仅部分网络节点具有存储功能,或者仅利用部分网络节点的数据存储功能。作为示例,在图1中,一个或多个台式计算机130构成存储节点网络,一个或多个移动终端120虽然作为存储节点网络的节点,但可以不利用他们的数据存储功能。
网络110可以包括有线或无线网络的任意组合,其中这些有线或无线网络包括但不限于移动电话网络、无线局域网(LAN)、蓝牙个人局域网、以太网LAN、令牌环LAN、广域网、互联网等。
移动终端120是一个具有无线通信能力的移动设备,根据本发明实施方式的移动终端可以包括但不限于智能手机、智能机器人、便携式数字助理(PDA)、寻呼机、移动计算机、移动电视、游戏设备、膝上型计算机、照相机、录像机、GPS设备以及其他类型的语音和文本通信系统。
在实现本发明的各种实施方式中所涉及的各种通信设备120和130可以使用各种介质通过网络110进行通信,包括但不限于无线电、红外、激光、线缆连接等。
图2示出了适合用来实现根据本发明实施方式的各种方法的移动终端200的框图。如图2所示,移动终端200可以包括与用户互动的接口设备,与接口设备连接的编译设备,以及与编译设备连接的联网模块230。其中,与用户互动的接口设备可以是触摸屏240、音频输出设备250(包括扬声器、耳机等)、麦克风260;编译设备可以是处理器210、存储器220。处理器210被配置为结合其他元件执行根据本发明实施例的方法的全部或部分步骤。联网模块230被配置为能使移动终端200能够与其他移动终端或者远程服务器之间数据收发,例如联网模块230可以包括网络适配器、调制解调器、或天线等部件。存储器220被配置为存储在被处理器210执行时能够执行根据本发明实施方式的方式的程序或指令序列、以及存储从其他移动终端或者台式计算机接收的信息(例如,文本、语音、图片等)。触摸屏240被配置为接收用户的文本输入,识别用户的手势,并显示用户的请求消息、系统提供的对请求的响应消息以及其他相关信息。音频输出设备250被配置为播放响应消息和/或对响应消息的处理结果及系统提示信息。麦克风260被配置为采集用户的语音信息。移动终端200可以被实现为图1中移动终端120等。
图3示出了适合用来实现根据本发明实施方式的各种方法的计算机系统300的框图。如图3所示,计算机系统300可以包括:CPU(央处理单元)301、RAM(随机存取存储器)302、ROM(只读存储器)303、系统总线304、硬盘控制器305、键盘控制器306、串行接口控制器307、并行接口控制器308、显示控制器309、硬盘310、键盘311、串行外部设备312、并行外部设备313和显示器314。在这些部件中,与系统总线304相连的有CPU 301、RAM 302、ROM 303、硬盘控制器305、键盘控制器306、串行控制器307、并行控制器308和显示控制器309。硬盘310与硬盘控制器305相连,键盘311与键盘控制器306相连,串行外部设备312与串行接口控制器307相连,并行外部设备313与并行接口控制器308相连,以及显示器314与显示控制器309相连。计算机系统300还可以包括联网模块(未示出),其被配置为使计算机系统300能够与其他移动终端或者计算机系统之间进行数据收发,例如联网模块可以包括网络适配器、调制解调器等。计算机系统300可以被实现为图1中所示的台式计算机130。
应当理解,图2和图3所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明的限制。在某些情况下,可以根据需要增加或者减少其中的一些部件。
图4示意性示出了根据本发明一个实施方式的文件存储和读取的系统架构400的示意图。图4还图示了本发明实施方式的简要工作原理。如图4所示,多个存储节点组成存储节点网络410,用户420、430和440通过存储节点网络410来分发数据和消息。与用户相关的客户端或者与用户相关的应用程序可以运行在构成存储节点网络的某个节点上,或者也可以运行在与存储节点网络相连接的用户终端设备上。
根据本发明的实施方式,用户可能承担三种角色,即文件的拥有者(Owner)、文件的写入者(Writer)、文件的读取者(Reader)。Owner是拥有数据的主体,通过拥有数据,Owner可以向一方(包括拥有者本身)提供写入和读取特定文件的授权。Writer是写入数据的主体,将数据写入到存储节点网络。Reader是想要读取数据的主体,只有在Owner授予权限的情况下,Reader才能读取特定的授权文件。
根据本发明的实施方式,旨在将Owner拥有的文件分布式地存储在存储节点网络中,同时将Writer和/或Reader的写入和/或读取操作的权限相关的信息以区块链的形式存储在该存储节点网络中,这些信息可以被用于区块链技术下的共识验证。对于数据文件的存储并不利用区块链技术,对照而言,本文中也将之称作链下存储。本文中,将数据以区块链的形式存储在存储节点网络中也被称为存储在区块链上;在这个意义上,存储节点网络形成了区块链节点网络。
同时,还可以将共识验证形成的元数据(metadata)存储在区块链上。元数据是描述其他数据或者给出关于其他数据的信息的数据。根据本发明的实施方式,元数据可以看作是对每一次共识验证后生成的账本条目。
根据本发明的实施方式,存储节点是存储数据文件的节点,同时负责运行共识算法、生成区块、维护所生成的一个或多个区块链。
在图4的实施例中,用户420是一个特定文件的写入者,用户430是该文件的读取者,用户440是该特定文件的拥有者。当用户420想要对文件进行写操作和存储时,他需要获得拥有者用户440针对该特定文件的写入操作的授权;同样地,当用户430想要对文件进行读操作时,他需要获得拥有者用户440针对该特定文件的读取操作的授权。应当理解,这里的文件读取/写入的授权仅是示例性的,其存在与否可以根据应用场景需求和安全等级灵活设置。
在图4的实施例中,当Writer尝试将一条信息放入系统时,所有节点都可以验证Owner是否授权Writer操作。但是,应当理解,当Writer尝试将一条信息放入系统时,可以不对写入权限进行验证,而放任对Owner拥有的文件的写入。Owner只对其拥有的文件的读取权限进行授权,只希望被允许的用户才能读取。还应当理解,根据应用场景的不同,已经设想到了一个用户可能同时扮演前述三种角色中的一种或者两种。
根据本发明实施方式的文件存储和读取的系统的四种参与方,即四种参与角色,工作在图1所示的终端设备的三个不同层。不同角色的用户工作在应用层;构成存储节点网络的节点的全部或部分形成链下存储层(Off-chain Storage Layer),用于分布式地存储待存储文件的多个碎片;构成存储节点网络的节点的全部或部分之间还形成区块链技术中的共识层,负责对不同角色的用户对不同文件的访问(存储和独权)权限、以及用户发送的消息的真实性进行验证。
举例而言,根据本发明一个实施方式的解决方案特别适合于这样一种场景,参考前述图4,用户440是一个待存储文件的拥有者;用户420在某个时刻想要对该待存储文件进行修改和存储,因此需要获得用户440的写入操作授权,因而用户420扮演写入者的角色;用户430在某个时刻想要对该文件进行读取,因此需要获得用户440的读取操作授权。例如,用户440是一个患者,待存储文件是该用户的医学影像材料,比如CT照片,用户420是该用户的一个主治医生,需要将该医学影像材料保存入系统,用户430是同一医院另一个科室的医生或者相互联网的不同医院的医生,想要从系统中读取该医学影像材料。结合这样的示例场景可以更好地理解本公开的实施方式。应当理解,这样的场景解释是示例性的。
文件的存储
图5示意性示出了根据本发明一个实施方式的基于区块链技术的存储文件的方法500的流程图。例如,结合前述场景,方法500涉及的操作可以是作为写入者的用户420向存储网络节点存储文件的过程。
在步骤S510,与第一用户相关的客户端将待存储文件划分成多个文件碎片。
在步骤S520,与第一用户相关的客户端向存储节点网络发送针对所述待存储文件的写入操作消息,该写入操作消息包括:文件碎片,与文件碎片标识符、第一用户的标识符和第二用户标识符相关的信息,以及第一用户的签名。第一用户可以是想要将待存储文件写入系统的写入者用户。第二用户是所述待存储文件的拥有者。第一用户的签名用来供存储节点网络验证第一用户的身份。
在步骤S530,存储节点网络对第一用户的签名与存储节点网络中的第一用户的公钥是否匹配进行共识验证,该验证可以通过共识验证算法进行。
在步骤S540,存储节点网络根据收到的写入操作权限令牌对第一用户对所述待存储文件的写入权限进行共识验证,该验证可以通过共识验证算法进行。写入操作权限令牌可以是与第一用户相关的客户端发送的,代表了该待存储文件的拥有者、比如第二用户对第一用户对该文件的写入操作的授权,并且用来来供存储节点网络验证该令牌的真实性。
在步骤S550,在两个验证都通过的情况下,存储节点网络将该多个文件碎片在链下分布式地存储在存储节点网络中。
根据本发明的实施方式,对数据文件碎片的分布式存储不形成区块链,而且与用于的公钥相关的信息存储在区块链上,用于对所有者对文件的写入/读取操作授权的共识验证。例如,将用户的标识符与公钥的对应关系存储在区块链上。存储节点网络可以通过共识验证算法验证第二用户的签名与存储节点网络中的第二用户的公钥是否匹配,来完成上述验证。
应当理解,步骤S540是一个可选步骤。当Writer尝试将一条信息放入系统时,可以不对写入权限进行验证,而放任任何人对Owner拥有的文件的写入。也就是说,Owner可以只对其拥有的文件的读取权限进行授权,只将有被某个读取者查阅的文件授权给一个Reader。在这一点,本公开提供了对文件访问控制权限的控制的灵活性。同时,考虑Writer和Owner位于同一主体的场景,例如使用相同的客户端,则步骤S540也是可以省略的。
在一个实施例中,写入操作权限令牌可以在第一用户想要修改待存储文件时向该文件的拥有者、比如第二用户进行请求。图6示意性示出了根据本发明一个实施方式的第一用户向第二用户请求写入操作权限令牌的方法600的流程图。
在步骤S610,与第一用户相关的客户端向与第二用户相关的客户端发送针对待存储文件的写入操作权限请求消息。第二用户是待存储文件的拥有者。写入操作权限请求消息可以包括:待存储文件的文件标识符、第一用户的标识符、以及第一用户的签名。第一用户的签名用来供存储节点网络验证第一用户的身份。
在步骤S620,与第二用户相关的客户端验证写入操作权限请求消息。
在步骤S630,在验证通过的情况下,与第二用户相关的客户端向与第一用户相关的客户端发送针对该待存储文件的写入操作权限令牌。写入操作权限令牌可以包括:所述待存储文件的文件标识符、第一用户的标识符、第一用户的签名、以及第二用户的签名。例如,写入操作权限令牌可以是第二用户是对收到的写入操作权限请求消息整体的签名。第一用户是写入者,第二用户是待存储文件的拥有者,第二用户的签名用来供第一用户或存储节点网络验证第二用户的身份。
在备选实施例中,写入操作权限令牌可以不包括第一用户的签名,即写入操作权限令牌可以包括:所述待存储文件的文件标识符、第一用户的标识符、以及第二用户的签名。从而,可以节省通信带宽,在通信量方面性能更优。
图6所示的方法600是针对待存储文件的写入操作授权,还设想到了更大粒度的针对用户的写入操作授权。在一个实施例中,根据本发明一个实施方式的第一用户向第二用户请求写入操作权限令牌的方法包括:
-与第一用户相关的客户端向与第二用户相关的客户端发送针对第一用户的写入操作权限请求消息,其中,所述第二用户是所述待存储文件的拥有者,所述写入操作权限请求消息包括:第一用户的标识符以及第一用户的签名;
-第二用户验证所述写入操作权限请求消息;
-在验证通过的情况下,与第二用户相关的客户端向与第一用户相关的客户端发送针对所述第一用户的写入操作权限令牌,所述写入操作权限令牌包括:第一用户的标识符、第一用户的签名、以及第二用户的签名。
在备选实施例中,写入操作权限令牌可以不包括第一用户的签名,即写入操作权限令牌可以包括:第一用户的标识符、以及第二用户的签名。从而,可以节省通信带宽,在通信量方面性能更优。
在一个实施例中,写入操作权限令牌可以在该文件的拥有者、比如第二用户在决定授权存储节点网络中的部分用户写入操作权限时,主动地向这些被授权的用户发送,以供这些用户存储,在必要时出示。第二用户可以向第一用户发送针对所述待存储文件的写入操作权限令牌。写入操作权限令牌可以包括:待存储文件的文件标识符、第一用户的标识符、以及第二用户的签名。第二用户的签名用来供第一用户或存储节点网络验证第二用户的身份。
备选地,第二用户可以向第一用户发送针对第一用户的写入操作权限令牌。该写入操作权限令牌可以包括:第一用户的标识符以及第二用户的签名。
在一个实施例中,方法500可以进一步包括步骤:与第一用户相关的客户端或者存储节点网络利用第二用户的公钥对每个文件碎片标识符进行加密,将加密后的文件碎片标识符以区块链形式存储在存储节点网络中。从而,仅第二用户、即文件的拥有者可以从区块链上查看文件碎片标识符。
在一个实施例中,第一用户以纠删编码的形式将待存储文件划分成多个文件碎片,并将这些碎片在存储节点网络上进行分发。
在一个实施例中,对于区块链上的每一次共识验证,存储节点网络将相关元数据存储在区块链上。这些元数据可以成为对历史操作的追踪线索。
图7示意性示出了根据本发明另一个实施方式的基于区块链技术的存储文件的方法700的流程图,其是图5所示的方法500的一个变形实施例,其中,方法700中的步骤S710、S720、S730、S740和S750分别对应于方法500中的步骤S510、S520、S530、S540和S550。
在步骤S702,与第一用户相关的客户端生成对称密钥E。第一用户可以是想要将待存储文件写入系统的写入者用户。
在步骤S704,与第一用户相关的客户端使用对称密钥E对待存储文件进行加密。
在步骤S710,与第一用户相关的客户端将加密后的待存储文件划分成多个文件碎片。
在步骤S712,与第一用户相关的客户端利用第二用户的公钥对每个文件碎片标识符以及对称密钥E进行加密,将加密后的文件碎片标识符和对称密钥E以区块链形式存储在存储节点网络中。从而,仅第二用户、即文件的拥有者可以从区块链上查看文件碎片标识符,同时,仅第二用户、即文件的拥有者可以从区块链上获得对称密钥E,用于以后的授权,例如,提供给可信的读取者用户。
在步骤S720,与第一用户相关的客户端向存储节点网络发送针对该加密后的待存储文件的写入操作消息,该写入操作消息包括文件碎片,与文件碎片标识符、第一用户的标识符和第二用户标识符相关的信息,以及第一用户的签名。第一用户可以是想要将待存储文件写入系统的写入者用户。第二用户是所述待存储文件的拥有者。第一用户的签名用来供存储节点网络验证第一用户的身份。
在步骤S730,存储节点网络通过对第一用户的签名与存储节点网络中的第一用户的公钥是否匹配进行共识验证,该验证可以通过共识验证算法进行。
在步骤S740,存储节点网络根据收到的写入操作权限令牌对第一用户对所述待存储文件的写入权限进行共识验证。
在步骤S750,在两个验证都通过的情况下,存储节点网络将该多个文件碎片在链下分布式地存储在存储节点网络中,而不形成区块链。
应当理解,S712可以跟在步骤S710之后的任何步骤之后,例如跟在在步骤S720之后。
根据本发明的实施方式,对数据文件内容的处理与存储都在链下进行,分布式地存储在多个存储节点中,而不是以区块链的形式。例如,由于系统能够支持的用户的数量大,用户的数据文件通常是海量的,如果将这些数据文件都存储在区块链上,则这样的区块链将会很笨重。从而,与在区块链中存储文件内容相比,可以有效减少存储数据的所需要存储空间。另外,依赖于区块链技术的共识验证算法来保证存储的文件的安全性和对文件的权限控制,并且可选地依靠数字签名和可编程权限来实现访问控制与行为记录,提高了对文件存储的安全性。
另外,数据安全措施与要存储的数据量的大小之间的相关性小,使得大规模的批量数据泄露几乎不可能发生。根据本发明的实施方式,用户的私钥都是由用户(例如所有者)在系统之外保存的,并不存在于系统里。单个用户私钥的泄露,只会影响到他名下的数据,不会对其他的用户的产生影响,从而,不会发生数据批量泄露。
文件的读取
下面描述根据本公开的基于区块链技术的读取文件的技术方案。
图8示意性示出了根据本发明一个实施方式的基于区块链技术的存储文件的方法800的流程图。
在步骤S810,与第三用户相关的客户端向存储节点网络发送针对待读取文件的文件读取请求消息。文件读取请求消息可以包括:针对待读取文件的读取操作权限令牌,与待读取文件的文件标识符和第三用户的标识符相关的信息,以及第三用户的签名。第三用户是想要读取该文件的读取者。读取操作权限令牌代表了该待读取文件的拥有者对第三用户对该文件的读取操作的授权,同时用来来供存储节点网络验证该令牌的真实性。待读取文件的文件标识符可以体现出该文件的拥有者。第三用户的签名用来供存储节点网络验证第三用户的身份。参考本公开的存储文件的技术方案,该待读取文件是以多个文件碎片的形式在链下分布式地存储在存储节点网络中,而不形成区块链。
在步骤S820,存储节点网络对所述第三用户的签名与所述存储节点网络中的所述第三用户的公钥是否匹配进行验证。
在步骤S830,存储节点网络根据收到的读取操作权限令牌对第三用户对该待读取文件的读取权限进行验证。
在步骤S840,在上述两个验证都通过的情况下,存储节点网络向该与第三用户相关的客户端发送该待读取文件的多个文件碎片。
在步骤S850,与第三用户相关的客户端从接收到的多个文件碎片中还原出所述待读取文件。
在一个实施例中,与写入操作权限令牌的一种获取方式类似,读取操作权限令牌可以在第三用户想要读取待读取文件时向该文件的拥有者、比如第四用户进行请求。图9示意性示出了根据本发明一个实施方式的与第三用户相关的客户端向与第四用户相关的客户端请求读取操作权限令牌的方法的流程图。
在步骤S910,与第三用户相关的客户端向与第四用户相关的客户端发送针对待读取文件的文件读取操作权限请求消息。第四用户是待读取文件的拥有者,文件读取权限请求消息可以包括:待读取文件的标识符、第三用户的标识符、第三用户的签名。第三用户的签名用来供存储节点网络验证第三用户的身份。
在步骤S920,与第四用户相关的客户端验证读取操作权限请求消息;
在步骤S930,在验证通过的情况下,与第四用户相关的客户端向与第三用户相关的客户端发送针对该待读取文件的读取操作权限令牌。该读取操作权限令牌包括:待读取文件的标识符、第三用户的标识符、所述第三用户的签名、以及所述第四用户的签名。
在备选实施例中,读取操作权限令牌可以不包括第三用户的签名,即读取操作权限令牌可以包括:待读取文件的文件标识符、第三用户的标识符、以及第四用户的签名。从而,可以节省通信带宽,在通信量方面性能更优。
图9所示的方法900是针对一个待读取文件的读取操作授权,还设想到了更大粒度的针对用户的读取操作授权,被授权的用户读取文件所有者拥有的所有文件。
在一个实施例中,根据本发明一个实施方式的第三用户向第四用户请求读取操作权限令牌的方法包括:
-与第三用户相关的客户端向与第四用户相关的客户端发送针对第三用户的文件读取操作权限请求消息。第四用户是待读取文件的拥有者,文件读取权限请求消息可以包括:第三用户的标识符、第三用户的签名。第三用户的签名用来供存储节点网络验证第三用户的身份。
-与第四用户相关的客户端验证读取操作权限请求消息;
-在验证通过的情况下,与第四用户相关的客户端向与第三用户相关的客户端发送针对第三用户的读取操作权限令牌。该读取操作权限令牌包括:第三用户的标识符、第三用户的签名、以及第四用户的签名。在备选实施例中,读取操作权限令牌可以不包括第三用户的签名。即,该读取操作权限令牌可以包括:第三用户的标识符、以及第四用户的签名。
在一个实施例中,与写入操作权限令牌的一种获取方式类似,读取操作权限令牌可以在该文件的拥有者、比如第四用户在决定授权存储节点网络中的部分用户读取操作权限时,主动地向这些被授权的用户发送,以供这些用户存储,在必要时出示。第四用户向第三用户发送针对该待读取文件的读取操作权限令牌,读取操作权限令牌可以包括:待读取文件的标识符、第三用户的标识符、以及第四用户的签名。第四用户的签名用来供第三用户或存储节点网络验证第二用户的身份。
备选地,第四用户可以向第三用户发送针对第三用户的读取操作权限令牌。该读取操作权限令牌可以包括:第三用户的标识符以及第四用户的签名,或者读取操作权限令牌可以仅包括第四用户的签名,从而任何接收到该令牌的用户(这里是第三用户)都可以向存储网络出示,以读取期望的文件。
在一个实施方式中,在步骤S810中,第三用户发送的文件读取请求消息可以包括:针对待读取文件的读取操作权限令牌,与待读取文件的文件标识符、第三用户的标识符和第四用户的标识符相关的信息,以及第三用户的签名。其中,显式地包括了第四用户的标识符,尽管在有的实施例中第四用户的标识符在设计上可能会被体现在待读取文件的文件标识符中。第四用户是待读取文件的拥有者。
此外,在步骤S810中,第三用户发送的文件读取请求消息中包括:与待读取文件的文件标识符和第三用户的标识符相关的信息,其意在表示第三用户需要发送体现有待读取文件的文件标识符和第三用户的标识符的信息,在具体实现时,如果在该消息中的针对待读取文件的读取操作权限令牌已经体现了这些消息中的部分或全部,则取决于通信量和计算量的折中,可以对文件读取请求消息的载荷格式进行任何适当的设置。例如,对于读取操作权限令牌包括待读取文件的标识符、第三用户的标识符、以及所述第四用户的签名的情形,则步骤S810中第三用户发送的文件读取请求消息可以为:针对待读取文件的读取操作权限令牌、以及第三用户的签名;对于读取操作权限令牌包括:第三用户的标识符以及第四用户的签名的情形,则步骤S810中第三用户发送的文件读取请求消息可以为:针对待读取文件的读取操作权限令牌、待读取文件的文件标识符、以及第三用户的签名。
根据本公开的一个实施方式,文件碎片标识符是利用第四用户的公钥进行加密的,加密后的文件碎片标识符存储在区块链上。前述方法800可以进一步包括步骤:与第四用户相关的客户端从存储节点网络上提取出解密后的文件碎片标识符,并向存储节点网络发送解密后的文件碎片标识符。存储节点网络根据收到的文件碎片标识符,向与第四用户相关的客户端发送文件碎片。
根据本公开的一个实施方式,存储节点网络中的待读取文件可以是利用对称密钥进行加密的。为此,在存储节点网络中存储有利用所述第四用户的公钥对所述对称密钥进行加密的经加密的对称密钥。前述方法800可以进一步包括步骤:第四用户从存储节点网络中提取出所述对称密钥,并将对称密钥连同所述第四用户的签名发送给所述第三用户;以及第三用户利用所述对称密钥对还原出的所述待读取文件进行解密。进一步地,加密算法可以被选择为,只有第三用户获得了所有的加密后的文件碎片,才能解密得到该待读取文件。从而,排除了文件被部分解密的可能。
在一个实施例中,对于每一次共识验证,存储节点网络将相关元数据存储在区块链中。
在待读取文件在系统中是以纠删编码的形式存储的实施方式中,第三用户从收到的文件碎片中,通过纠删编码还原出该待读取文件。
根据本发明的实施方式,用户的签名可以包括利用该用户的私钥对与该用户的签名一起发送的消息中的全部数据、部分数据、或者附加的特定数据进行加密的结果。例如,在第一用户向存储节点网络发送针对存储文件的写入操作消息时,该写入操作消息的一个例子包括:文件碎片,与文件碎片标识符、第一用户的标识符和第二用户的标识符相关的信息,针对该待存储文件的写入操作权限令牌,以及第一用户的签名,该第一用户的签名操作可以是对与其一起发送的文件碎片,与文件碎片标识符、第一用户的标识符和第二用户的标识符相关的信息,针对该待存储文件的写入操作权限令牌的全部数据进行签名,也可以是仅对文件碎片进行签名,或者是引入在存储节点网络以外以安全渠道(机构内部的保密会议)分发的口令,该签名仅对该口令进行签名。对写入消息完整性的保障可以依赖于附加的一个哈希值。
进一步地,授权令牌,包括写入操作权限令牌和读取操作权限令牌可以具有附加特性,例如,只能使用有限次数,或者被Owner收回授权。拥有者的授权方式可以根据应用场景的不同来进行调整,并且授权具有时效性。从而,可以防止数据被重入攻击(reentrancyattack),并使数据拥有者对于数据的分享行为限定在当下,而没有授予未来更新的数据的权限。
进一步地,存储节点网络将共识验证操作形成的元数据记录在区块链上,形成审计追踪线索(Audit Trail)。文件的获取行为都会在区块链上留下无法消除的痕迹,并且该痕迹可被公开查阅。从而,当数据泄漏发生在线下时,有助于调查和确定责任的归属。
根据本发明的实施方式,文件可以是各种类型的,包括文本文件、音乐文件、视频文件、图像或影像文件、一段数据(比如私有数据)、一个数据项(data item)等等。可以使用任何已知的技术将文件划分成多个文件碎片并在还原时进行组装。在本文中,术语“存储”意在涵盖对文件的创建、写入、更新等此类的操作,术语“读取”意在涵盖对文件的读操作、查阅等此类的操作。
根据本发明的实施方式,共识验证在共识层完成,共识验证的算法可以包括但不限于:工作量证明PoW(Proof of Work)、权益证明PoS(Proof of Stake)、DPoS、PBFT等。应当理解,根据本公开,参与共识验证的存储节点未必一定是存储了文件碎片的节点。
在本发明的一个实施方式中,用户的标识符(UID)可以包括用户的编号和用户的公钥。在本发明的另一个实施方式中,用户的标识符可以直接取自用户的公钥。用户的编号可以是用户在生成时被分配的一个预设格式的随机数,其可以以区块链形式存储在存储节点网络中。与用户的公钥匹配的用户私钥由该用户保存。用户的公钥以区块链形式存储在存储节点网络中,但是应当理解,公钥可以在存储节点网络以外以安全渠道(机构内部的保密会议)在用户间进行分发,或者利用传统的中央可信任证书颁发机构CA来获取,本公开对公钥在用户间的分发形式不做限定。
根据本发明的一种实施方式,用户的标识符可以以区块链的形式存储在存储节点网络上。根据本发明的一种实施方式,区块链网络中的每个节点都在链下在本地保存所有用户的标识符,例如保存在文件夹或钱包夹中。
根据本发明的实施方式,文件碎片标识符可以存储在区块链上,也可以不存在在区块链上。根据本发明的实施方式,对文件的写入/读取操作授权令牌可以保存在持有者终端节点上,例如保存在文件夹或钱包夹中,也可以被存储在区块链上。
根据本发明的实施方式,每个文件都有一个标识符,称之文件标识符(DID)。DID包括两部分,DID={拥有者的UID,d},其中d是拥有者库中特定文件的标识符、比如文件编号。不同的拥有者可以拥有相同标识符的文档。相应地,本公开将文件拆分为数据块碎片,每个文件碎片都有一个标识符,称之碎片标识符(CID)。CID包括两部分,CID={DID,c},其中,当把一份文件拆分成C份时,c例如是0到C-1之间的数字。当然,c可以是其他适当的编号。应当理解,这里给出的对于DID和CID的定义仅是示例性、而非限制性的。
图10示意性示出了根据本发明一个实施方式的基于区块链技术的存储和读取文件的过程的示意图。如图10所示,其示意性示出了三个功能,包括写入操作授权(writeauth)、写入操作(write)与读取操作(read)。
如图10所示,写入授权阶段根据该系统被应用的具体场合的不同,是一个可选步骤。写入者客户端在对一个待存储文件进行写入操作之前,向存储节点网络出示其预先获得的对待存储文件的写入操作权限令牌,存储节点网络中的区块链共识层进行对该写入操作权限令牌的共识验证,并且将表示共识验证的结果的第一元数据存储在区块链中。
在写入操作阶段,在实际处理文件数据的过程中,写入者客户端负责数据的加密与碎片化,并将数据写入权限提交共识层进行验证与记录后,在链下存储层进行写入存储;链下存储层在将数据碎片写入存储后,将提交元数据(metadata)到共识层记录。
在图10所示的实施例中,还将表示文件碎片的属性的第二元数据存储在区块链上。该元数据是描述该文件碎片的数据,主要是该文件碎片的属性的信息,例如可以是该文件碎片的校验数、Hash值、或者其他适当的属性数据。在该元数据为校验和的情形性,读取者可以验证该元数据,而不用读取该碎片文件,就能得到该碎片文件有无被篡改。还设想到了在区块链上保存该元数据,以实现对该文件碎片的存储位置、历史数据、资源查找、文件记录等功能的支持。存储节点上的碎片数据的任何更新都记录在该条区块链上。从而,读取者可以通过验证与存储在该另一节点上的文件碎片相关的元数据,来验证该文件碎片的可靠度。
在读取操作阶段,读取者客户端在读取数据时,提交读取请求到共识层来进行验证和记录;通过共识验证的请求将反馈到存储层来,并由存储层发送数据包到读取者客户端;读取者客户端在获得所有数据碎片后,再进行重组与解密。应当理解,图10中未示出读取操作授权(read auth),读取操作权限令牌可以是文件的拥有者预先主动向文件的读取者分发的。
根据本公开的实施方式,将文件划分成文件碎片,从而使得将数据存储在无意义的碎片中,只在文件被阅读时才能重建为有意义的内容。例如,一段私有数据被分段并存储在不同的存储节点中,这些数据仅被重新整合在一起时才会有意义。而只有当所有相关的存储节点对于读取者的文件读取授权产生共识并通过验证后,数据读取者才能获得所有的所需的文件碎片,从而进一步拼凑出完整文档。数据读取者无法用只向一个存储节点发起请求的方式,来通过后门获取数据。因此,未经数据拥有者授权,任何人都无法获取到文件的完整信息,因为将区块链技术应用于权限管理,使得潜在攻击者难以通过对存储节点网络对文件读取权限令牌的验证。
根据本公开的实施方式可以采用现有技术中的任何可行的文件或一段数据的切片和重建算法,本公开对此不做限制。
根据本公开的进一步的实施方式,数据文件在系统中是被加密的,从而文件碎片是加密后的文件的碎片。通过加密机制,进一步提升了数据存储的安全性,保证数据内容不会泄露给没有加密密钥的人。
根据本公开的进一步的实施方式,利用文件拥有者的公钥对加密密钥进行加密,并且存储在存储节点网络中。因为私钥只被数据拥有者持有,从而该实施方式确保数据泄漏相互间的不相关性,即,即便某一个数据拥有者的数据被泄露,也不会波及到其他的数据拥有者所持有的数据。
本公开提供了基础实施方式和丰富的备选实施方式,使得数据处理机制灵活,根据应用场景的不同,为本公开的读者提供了不同级别的访问控制。例如,诸如财务数据、健康数据、以及其他数据市场的不同的使用场景对于数据访问控制的细化程度有不同的要求。
利用区块链技术的对加密密钥的共识机制,减小了该系统中的加密密钥被非法篡改的风险。
变型应用场景
虽然在本公开中用户存在三种角色,但是发明人也设想到存在两种角色集于一个主体的情形。在这样的情形下,本公开的实施方式同样适用。下面描述设想到的几个应用场景。
场景1:示例医院场景
前文描述了在医院的场景下,可能存在文件的拥有者、写入者和读取者的三种不同角色的用户,但是在一些场景下,可能仅存在两种角色,即拥有者和写入者为同一用户(Owner=Writer)。如果A医生将数据通过客户端写入系统,则A医生即为该数据的所有人。A医生向其他医生授权后,其他医生即可作为读取者读取数据。在这种情况下,由于拥有者和写入者为同一主体,所以前述三种角色实施例下的拥有者和写入者之间的权限请求和分发的步骤可以省略。另外,如果在前述三种角色实施例下发送的消息中同时包括这两种角色的公钥,则在该消息中只携带其中的一个即可。
场景2:示例银行场景
在一种示例银行信用系统场景中,即银行系统作为写入个人信用信息的写入者,而个人在作为信用信息的拥有者的同时也可以作为读取者来调用自己的信用信息(Owner=Reader)。而当个人要调用用户的信用信息时,前述三种角色实施例下的读取者和拥有者之间的权限请求和分发的步骤可以省略。另外,如果在前述三种角色实施例下发送的消息中同时包括这两种角色的公钥,则在该消息中只携带其中的一个即可。
场景3:示例档案管理场景
在一个示例档案管理场景中,写入者和读取者可以为同一主体(Reader=Writer),而个人则作为Owner。
终端设备
上面描述了根据本发明实施方式的各种方法,在另一方面,本公开还涉及各种用户终端设备。
在一个实施例中,提供一种基于区块链技术的存储文件的终端设备,包括:网络接口,被配置为与其他对等终端设备进行通信;存储器,被配置为存储程序代码,以及处理器,被配置为执行所述程序代码以执行如下操作:接收来自与第一用户相关的客户端的针对待存储文件的写入操作消息,该写入操作消息包括:文件碎片,与文件碎片标识符、第一用户的标识符和第二用户标识符相关的信息,以及第一用户的签名,其中,所述第二用户是所述待存储文件的拥有者,并且所述与第一用户相关的客户端将待存储文件划分成多个文件碎片并进行发送;对所述第一用户的签名与所述存储节点网络中的所述第一用户的公钥是否匹配进行共识验证;以及在验证通过的情况下,将所述多个文件碎片在链下分布式地存储在存储节点网络中。
进一步地,所述写入操作消息还包括针对所述待存储文件的写入操作权限令牌,处理器进一步被配置为执行所述程序代码以在将所述多个文件碎片在链下分布式地存储在存储节点网络中的步骤之前,执行如下操作:根据收到的所述写入操作权限令牌对第一用户对所述待存储文件的写入权限进行共识验证。
进一步地,针对所述待存储文件的写入操作权限令牌是与第一用户相关的客户端从与第二用户相关的客户端处获得的。
进一步地,在验证通过的情况下,该处理器还被配置为执行所述程序代码以执行如下操作:将所述多个文件碎片在链下分布式地存储在存储节点网络中进一步包括:利用所述第二用户的公钥对每个文件碎片标识符进行加密,将加密后的文件碎片标识符存储在第一区块链上。
进一步地,所收到的多个文件碎片是与第一用户相关的客户端利用对称密钥进行加密后的碎片文件,所述处理器进一步被配置为执行所述程序代码以执行如下操作:利用所述第二用户的公钥对每个文件碎片标识符、以及所述加密密钥进行加密,将加密后的结果存储在第二区块链上。
进一步地,所述处理器进一步被配置为执行所述程序代码以执行如下操作:对于每一次共识验证,将相关元数据存储在区块链上。
在一个实施例中,提供一种基于区块链技术的读取文件的终端设备,包括:网络接口,被配置为与其他对等终端设备进行通信;存储器,被配置为存储程序代码,以及处理器,被配置为执行所述程序代码以执行如下操作:接收来自与第三用户相关的客户端的针对待读取文件的读取操作消息,该文件读取请求消息包括:针对待读取文件的读取操作权限令牌,与所述待读取文件的文件标识符和第三用户的标识符相关的信息,以及第三用户的签名,其中,所述待读取文件以多个文件碎片的形式在链下分布式地存储在存储节点网络中;对所述第三用户的签名与所述存储节点网络中的所述第三用户的公钥是否匹配进行共识验证;根据收到的所述读取操作权限令牌对第三用户对所述待读取文件的读取权限进行共识验证;以及在验证通过的情况下,向所述与第三用户相关的客户端发送所述待读取文件的所述多个文件碎片中的所述终端设备保存的文件碎片。
进一步地,所述处理器进一步被配置为执行所述程序代码以执行如下操作:对于每一次共识验证,将相关元数据存储在区块链上。
计算机可读存储介质和计算机程序产品
上面描述了根据本发明实施方式的各种方法和用户终端设备,在另一方面,本公开还涉及各种计算机可读存储介质和计算机程序产品。
在一个实施例中,提供一种计算机可读存储介质,包括存储于其上的计算机可执行指令,所述可执行指令在被处理器执行时实施根据本发明实施方式的各种操作。
在一个实施例中,提供一种计算机程序产品1100的框图,如图11所示。信号承载介质1102可以被实现为或者包括计算机可读介质1106、计算机可记录介质1108、计算机通信介质1110或者它们的组合,其存储有可配置处理器执行的先前描述的过程中的全部或一些的编程指令。仅作为示例,在图11中,这些指令可以包括例如用于使一个或多个处理器执行如下处理的一个或多个可执行指令:接收来自与第一用户相关的客户端的针对待存储文件的写入操作消息,该写入操作消息包括:文件碎片,与文件碎片标识符、第一用户的标识符和第二用户标识符相关的信息,以及第一用户的签名,其中,所述第二用户是所述待存储文件的拥有者,并且所述与第一用户相关的客户端将待存储文件划分成多个文件碎片并进行发送;对所述第一用户的签名与所述存储节点网络中的所述第一用户的公钥是否匹配进行共识验证;以及在验证都通过的情况下,将所述多个文件碎片在链下分布式地存储在存储节点网络中。
根据本发明的一个或多个实施方式,展现出了如下优势:(1)提升系统安全,防止数据批量泄露;(2)保护数据隐私,让数据不会随意被浏览;(3)降低存储成本,充分利用了系统中所有机器的存储空间;(4)提升数据的传输效率,多节点(C个)的点对点传输,将传输效率提高了C倍;(5)提升系统稳定性与容错率;(6)在区块链上记录元数据,方便责任追溯。
应当理解,前述的各种示例性方法和装置可以实现在用户终端设备处,其可以利用各种方式来实现,例如,在某些实施方式中,前述各种装置可以利用软件和/或固件模块来实现,也可以利用硬件模块来实现。现在已知或者将来开发的其他方式也是可行的,本发明的范围在此方面不受限制。
特别地,除硬件实施方式之外,本发明的实施方式可以通过计算机程序产品的形式实现。例如,参考图5描述的方法500可以通过计算机程序产品来实现。该计算机程序产品可以存储在RAM、ROM、硬盘和/或任何适当的存储介质中,或者通过网络从适当的位置下载到计算机系统上。计算机程序产品可以包括计算机代码部分,其包括可由适当的处理设备执行的程序指令。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的装置和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的装置及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
应当注意,尽管在上文详细描述中提及了装置的若干模块或子模块,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中实现。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
虽然已经参考目前考虑到的实施方式描述了本发明,但是应该理解本发明不限于所公开的实施方式。相反,本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。以下权利要求的范围符合最广泛解释,以便包含所有这样的修改及等同结构和功能。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,尽管参照前述实施例对本公开进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (37)

1.一种基于区块链技术的存储文件的方法,包括:
与第一用户相关的客户端将待存储文件划分成多个文件碎片;
所述与第一用户相关的客户端向存储节点网络发送针对所述待存储文件的写入操作消息,所述写入操作消息包括:文件碎片,与文件碎片标识符、第一用户的标识符和第二用户标识符相关的信息,以及第一用户的签名,其中,所述第二用户是所述待存储文件的拥有者;
所述存储节点网络对所述第一用户的签名与所述存储节点网络中的所述第一用户的公钥是否匹配进行共识验证;以及
在验证通过的情况下,将所述多个文件碎片在链下分布式地存储在存储节点网络中,
其中,所述写入操作消息还包括针对所述待存储文件的写入操作权限令牌,在将所述多个文件碎片在链下分布式地存储在存储节点网络中的步骤之前,所述方法进一步包括:
所述存储节点网络根据收到的所述写入操作权限令牌对第一用户对所述待存储文件的写入权限进行共识验证。
2.根据权利要求1所述的方法,进一步包括:
与第一用户相关的客户端向与第二用户相关的客户端发送针对待存储文件的写入操作权限请求消息,所述写入操作权限请求消息包括:所述待存储文件的文件标识符、第一用户的标识符以及第一用户的签名;
第二用户验证所述写入操作权限请求消息;
在验证通过的情况下,与第二用户相关的客户端向与第一用户相关的客户端发送针对所述待存储文件的写入操作权限令牌,所述写入操作权限令牌包括:所述待存储文件的文件标识符、第一用户的标识符以及第二用户的签名。
3.根据权利要求2所述的方法,其中,所述写入操作权限令牌包括:所述待存储文件的文件标识符、第一用户的标识符、第一用户的签名以及第二用户的签名。
4.根据权利要求1所述的方法,进一步包括:
与第一用户相关的客户端向与第二用户相关的客户端发送针对第一用户的写入操作权限请求消息,其中,所述第二用户是所述待存储文件的拥有者,所述写入操作权限请求消息包括:第一用户的标识符以及第一用户的签名;
第二用户验证所述写入操作权限请求消息;
在验证通过的情况下,与第二用户相关的客户端向与第一用户相关的客户端发送针对所述第一用户的写入操作权限令牌,所述写入操作权限令牌包括:第一用户的标识符以及第二用户的签名。
5.根据权利要求4所述的方法,其中,所述写入操作权限令牌包括:第一用户的标识符、第一用户的签名以及第二用户的签名。
6.根据权利要求1所述的方法,进一步包括:
与第二用户相关的客户端向与第一用户相关的客户端发送针对所述待存储文件的写入操作权限令牌,所述写入操作权限令牌包括:所述待存储文件的文件标识符、第一用户的标识符以及第二用户的签名。
7.根据权利要求1所述的方法,进一步包括:
与第二用户相关的客户端向与第一用户相关的客户端发送针对所述第一用户的写入操作权限令牌,所述写入操作权限令牌包括:第一用户的标识符以及第二用户的签名。
8.根据权利要求1-7中任一项所述的方法,其中,所述在验证通过的情况下、将所述多个文件碎片在链下分布式地存储在存储节点网络中进一步包括:
利用所述第二用户的公钥对每个文件碎片标识符进行加密,将加密后的文件碎片标识符存储在第一区块链上。
9.根据权利要求1-7中任一项所述的方法,进一步包括:
与第一用户相关的客户端生成对称密钥,其中,划分成多个文件碎片的所述待存储文件是利用所述对称密钥加密后的文件,以及
利用所述第二用户的公钥对每个文件碎片标识符和所述对称密钥进行加密,将加密后的结果存储在第二区块链上。
10.根据权利要求1-7中任一项所述的方法,其中,
所述第一用户的标识符是所述第一用户的公钥,并且所述第二用户的标识符是所述第二用户的公钥;或者,
所述第一用户的标识符包括所述第一用户的编号和所述第一用户的公钥,所述第二用户的标识符包括所述第二用户的编号和所述第二用户的公钥。
11.根据权利要求1-7中任一项所述的方法,进一步包括:
对于每一次共识验证,将相关元数据存储在第三区块链上,和/或
将与每个文件碎片相关的元数据存储在区块链上。
12.根据权利要求1-7中任一项所述的方法,其中,所述存储节点网络根据收到的所述写入操作权限令牌对第一用户对所述待存储文件的写入权限进行共识验证包括:
所述存储节点网络对所述第二用户的签名与所述存储节点网络中的所述第二用户的公钥是否匹配进行共识验证。
13.根据权利要求1-7中任一项所述的方法,其中,所述写入操作权限令牌具有使用次数的附加属性。
14.一种基于区块链技术的读取文件的方法,包括:
与第三用户相关的客户端向存储节点网络发送针对待读取文件的文件读取请求消息,该文件读取请求消息包括:针对待读取文件的读取操作权限令牌,与所述待读取文件的文件标识符和第三用户的标识符相关的信息,以及第三用户的签名,其中,所述待读取文件以多个文件碎片的形式在链下分布式地存储在存储节点网络中;
所述存储节点网络对所述第三用户的签名与所述存储节点网络中的所述第三用户的公钥是否匹配进行共识验证;
所述存储节点网络根据收到的所述读取操作权限令牌对第三用户对所述待读取文件的读取权限进行共识验证;
在验证通过的情况下,所述存储节点网络向所述与第三用户相关的客户端发送所述待读取文件的所述多个文件碎片;以及
所述与第三用户相关的客户端从接收到的多个文件碎片中还原出所述待读取文件。
15.根据权利要求14所述的方法,进一步包括:
与第三用户相关的客户端向与第四用户相关的客户端发送针对待读取文件的文件读取操作权限请求消息,其中,所述第四用户是所述待读取文件的拥有者,所述文件读取操作权限请求消息包括:所述待读取文件的标识符、所述第三用户的标识符以及第三用户的签名;
与第四用户相关的客户端验证所述文件 读取操作权限请求消息;
在验证通过的情况下,与第四用户相关的客户端向与第三用户相关的客户端发送针对所述待读取文件的读取操作权限令牌,所述读取操作权限令牌包括:所述待读取文件的标识符、所述第三用户的标识符以及所述第四用户的签名。
16.根据权利要求15所述的方法,其中,所述读取操作权限令牌包括:所述待读取文件的标识符、所述第三用户的标识符、所述第三用户的签名以及所述第四用户的签名。
17.根据权利要求14所述的方法,进一步包括:
与第三用户相关的客户端向与第四用户相关的客户端发送针对第三用户的文件读取操作权限请求消息,其中,所述文件读取操作 权限请求消息包括:所述第三用户的标识符以及第三用户的签名;
与第四用户相关的客户端验证所述文件 读取操作权限请求消息;
在验证通过的情况下,与第四用户相关的客户端向与第三用户相关的客户端发送针对所述第三用户的读取操作权限令牌,所述读取操作权限令牌包括:所述第三用户的标识符以及所述第四用户的签名。
18.根据权利要求17所述的方法,其中,所述读取操作权限令牌包括:所述第三用户的标识符、所述第三用户的签名以及所述第四用户的签名。
19.根据权利要求14所述的方法,进一步包括:
与第四用户相关的客户端向与第三用户相关的客户端发送针对所述待读取文件的读取操作权限令牌,所述读取操作权限令牌包括:所述待读取文件的标识符、第三用户的标识符以及第四用户的签名。
20.根据权利要求14所述的方法,进一步包括:
与第四用户相关的客户端向与第三用户相关的客户端发送针对所述第三用户的读取操作权限令牌,所述读取操作权限令牌包括:第三用户的标识符以及第四用户的签名。
21.根据权利要求14所述的方法,进一步包括:
与第四用户相关的客户端向与第三用户相关的客户端发送针对所述第三用户的读取操作权限令牌,所述读取操作权限令牌仅包括第四用户的签名。
22.根据权利要求14-21中任一项所述的方法,其中,文件碎片标识符是利用第四用户的公钥进行加密的,加密后的文件碎片标识符存储在区块链上,所述方法进一步包括:
与第四用户相关的客户端从存储节点网络上提取出解密后的文件碎片标识符,并向存储节点网络发送解密后的文件碎片标识符。
23.根据权利要求14-21中任一项所述的方法,其中,
所述存储节点网络中的所述待读取文件是利用对称密钥进行加密的,所述对称密钥是利用第四用户的公钥进行加密的,加密后的所述对称密钥存储在区块链上;
其中,所述方法进一步包括:
与第四用户相关的客户端从所述存储节点网络中提取出所述对称密钥,并将所述对称密钥连同所述第四用户的签名发送给所述与第三用户相关的客户端;
所述与第三用户相关的客户端利用所述对称密钥对还原出的所述待读取文件进行解密。
24.根据权利要求15-21中任一项所述的方法,其中,
所述第三用户的标识符是所述第三用户的公钥,并且所述第四用户的标识符是所述第四用户的公钥;或者,
所述第三用户的标识符包括所述第三用户的编号和所述第三用户的公钥,并且所述第四用户的标识符包括所述第四用户的编号和所述第四用户的公钥。
25.根据权利要求14-21中任一项所述的方法,进一步包括:
对于每一次共识验证,将相关元数据存储在区块链上,
将与每个文件碎片相关的元数据存储在区块链上,和/或
从所述存储节点网络获取与每个文件碎片相关的元数据,以判断所述文件碎片是否遭到篡改。
26.根据权利要求14-21中任一项所述的方法,其中,所述读取操作权限令牌具有使用次数的附加属性。
27.一种基于区块链技术的存储文件的方法,包括:
接收来自与第一用户相关的客户端的针对待存储文件的写入操作消息,该写入操作消息包括:文件碎片,与文件碎片标识符、第一用户的标识符和第二用户标识符相关的信息,以及第一用户的签名,其中,所述第二用户是所述待存储文件的拥有者,并且所述与第一用户相关的客户端将待存储文件划分成多个文件碎片并进行发送;
对所述第一用户的签名与存储节点网络中的所述第一用户的公钥是否匹配进行共识验证;以及
在验证通过的情况下,将所述多个文件碎片在链下分布式地存储在存储节点网络中,
其中,所述写入操作消息还包括针对所述待存储文件的写入操作权限令牌,在将所述多个文件碎片在链下分布式地存储在存储节点网络中之前,所述方法进一步包括:
根据收到的所述写入操作权限令牌对第一用户对所述待存储文件的写入权限进行共识验证。
28.根据权利要求27所述的方法,其中,针对所述待存储文件的写入操作权限令牌是与第一用户相关的客户端从与第二用户相关的客户端处获得的。
29.根据权利要求27或28所述的方法,其中,将所述多个文件碎片在链下分布式地存储在存储节点网络中进一步包括:
利用所述第二用户的公钥对每个文件碎片标识符进行加密,将加密后的文件碎片标识符存储在第一区块链上。
30.根据权利要求27或28所述的方法,其中,所收到的多个文件碎片是与第一用户相关的客户端利用对称密钥进行加密后的碎片文件,所述方法进一步包括:
利用所述第二用户的公钥对每个文件碎片标识符以及所述对称密钥进行加密,将加密后的结果存储在第二区块链上。
31.根据权利要求27或28所述的方法,进一步包括:
对于每一次共识验证,将相关元数据存储在区块链上,和/或
将与每个文件碎片相关的元数据存储在区块链上。
32.根据权利要求27或28所述的方法,其中,所述写入操作权限令牌具有使用次数的附加属性。
33.一种基于区块链技术的读取文件的方法,包括:
接收来自与第三用户相关的客户端的针对待读取文件的文件读取请求消息,该文件读取请求消息包括:针对待读取文件的读取操作权限令牌,与所述待读取文件的文件标识符和第三用户的标识符相关的信息,以及第三用户的签名,其中,所述待读取文件以多个文件碎片的形式在链下分布式地存储在存储节点网络中;
对所述第三用户的签名与所述存储节点网络中的所述第三用户的公钥是否匹配进行共识验证;
根据收到的所述读取操作权限令牌对第三用户对所述待读取文件的读取权限进行共识验证;以及
在验证通过的情况下,向所述与第三用户相关的客户端发送所述待读取文件的所述多个文件碎片中的一个或多个文件碎片。
34.根据权利要求33所述的方法,进一步包括:
对于每一次共识验证,将相关元数据存储在区块链上,
将与每个文件碎片相关的元数据存储在区块链上,和/或
从所述存储节点网络获取与每个文件碎片相关的元数据,以判断所述文件碎片是否遭到篡改。
35.根据权利要求33或34所述的方法,其中,所述读取操作权限令牌具有使用次数的附加属性。
36.一种基于区块链技术的用于文件访问的终端设备,包括:
网络接口,被配置为与其他对等终端设备进行通信;
存储器,被配置为存储程序代码,以及
处理器,被配置为执行所述程序代码以执行根据权利要求27-35中任一项所述的方法。
37.一种计算机可读存储介质,包括存储于其上的计算机可执行指令,所述可执行指令在被处理器执行时执行根据权利要求27-35中任一项所述的方法。
CN201910616556.6A 2019-07-09 2019-07-09 一种基于区块链技术的文件存储和读取的方法 Active CN110445840B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910616556.6A CN110445840B (zh) 2019-07-09 2019-07-09 一种基于区块链技术的文件存储和读取的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910616556.6A CN110445840B (zh) 2019-07-09 2019-07-09 一种基于区块链技术的文件存储和读取的方法

Publications (2)

Publication Number Publication Date
CN110445840A CN110445840A (zh) 2019-11-12
CN110445840B true CN110445840B (zh) 2020-07-03

Family

ID=68429985

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910616556.6A Active CN110445840B (zh) 2019-07-09 2019-07-09 一种基于区块链技术的文件存储和读取的方法

Country Status (1)

Country Link
CN (1) CN110445840B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110688261A (zh) * 2019-11-13 2020-01-14 杭州新链科技有限公司 一种基于区块链的数字档案异构电子文件云灾备系统
CN113553452A (zh) * 2021-06-16 2021-10-26 浙江科技学院 一种基于虚拟现实的空间性域名处理方法及装置
CN113852687B (zh) * 2021-09-24 2023-12-01 成都质数斯达克科技有限公司 一种区块链节点间文件传输方法
CN116095098B (zh) * 2022-11-28 2024-04-09 华南农业大学 数据的分布式存储方法及装置
CN117728962A (zh) * 2024-02-18 2024-03-19 深圳码隆智能科技有限公司 一种确保多级视频数据存储一致性的签名传输方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107203344A (zh) * 2017-05-31 2017-09-26 郑州云海信息技术有限公司 一种数据存储方法及数据存储系统
CN109617903A (zh) * 2018-12-29 2019-04-12 杭州趣链科技有限公司 一种基于ipfs和区块链的可信文件存储系统及方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9967088B2 (en) * 2016-05-23 2018-05-08 Accenture Global Solutions Limited Rewritable blockchain
CN108074629A (zh) * 2016-11-14 2018-05-25 阿里巴巴集团控股有限公司 健康档案管理系统和方法、用户客户端
CN106682530A (zh) * 2017-01-10 2017-05-17 杭州电子科技大学 一种基于区块链技术的医疗信息共享隐私保护方法及装置
CN109326337B (zh) * 2018-09-06 2021-09-03 西安电子科技大学 基于区块链的电子医疗记录存储和共享的模型及方法
CN109871712B (zh) * 2019-01-24 2022-10-14 平安科技(深圳)有限公司 医疗记录权限管理方法、装置、可读存储介质及服务器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107203344A (zh) * 2017-05-31 2017-09-26 郑州云海信息技术有限公司 一种数据存储方法及数据存储系统
CN109617903A (zh) * 2018-12-29 2019-04-12 杭州趣链科技有限公司 一种基于ipfs和区块链的可信文件存储系统及方法

Also Published As

Publication number Publication date
CN110445840A (zh) 2019-11-12

Similar Documents

Publication Publication Date Title
CN110417750B (zh) 基于区块链技术的文件读取和存储的方法、终端设备和存储介质
US11323272B2 (en) Electronic identification verification methods and systems with storage of certification records to a side chain
EP3610606B1 (en) Managing sensitive data elements in a blockchain network
Abid et al. NovidChain: Blockchain‐based privacy‐preserving platform for COVID‐19 test/vaccine certificates
Shakya An efficient security framework for data migration in a cloud computing environment
US20200084027A1 (en) Systems and methods for encryption of data on a blockchain
CN110537346B (zh) 安全去中心化域名系统
CN110445840B (zh) 一种基于区块链技术的文件存储和读取的方法
JP5852265B2 (ja) 計算装置、コンピュータプログラム及びアクセス許否判定方法
JP2020528224A (ja) 信頼できる実行環境におけるスマート契約動作のセキュアな実行
US11880831B2 (en) Encryption system, encryption key wallet and method
CN112131316B (zh) 应用于区块链系统的数据处理方法及装置
KR102205654B1 (ko) 분산 환경에서의 신원 인증 방법
CN110383759B (zh) 管理共识节点和客户端节点之间的通信的方法和系统
CN110492990A (zh) 区块链场景下的私钥管理方法、装置及系统
CN111066019A (zh) 处理存储在区块链网络中的数据元素
AU2019204711B2 (en) Securely performing cryptographic operations
Chidambaram et al. Enhancing the security of customer data in cloud environments using a novel digital fingerprinting technique
CN116049802B (zh) 应用单点登陆方法、系统、计算机设备和存储介质
CN111914270A (zh) 基于区块链技术的可编程认证服务方法和系统
US11620393B1 (en) System and method for facilitating distributed peer to peer storage of data
CN114553557A (zh) 密钥调用方法、装置、计算机设备和存储介质
KR20200134187A (ko) 분산 환경에서의 신원 인증 방법
Shehu et al. SPIDVerify: A Secure and Privacy-Preserving Decentralised Identity Verification Framework
Gagged et al. Improved secure dynamic bit standard technique for a private cloud platform to address security challenges

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
TR01 Transfer of patent right

Effective date of registration: 20220419

Address after: 311899 room 603, building 1, No. 18, Binjiang North Road, Jiyang street, Zhuji City, Shaoxing City, Zhejiang Province

Patentee after: Wang Sizhe

Patentee after: Wang Yining

Patentee after: Wang Jian

Address before: A23, No. 15-11, Zhongguancun Street, Haidian District, Beijing 100080

Patentee before: Beijing Jianwang Future Technology Co.,Ltd.

Patentee before: Wang Yining

Patentee before: Wang Jian

TR01 Transfer of patent right