CN111950027A - 一种基于区块链智能合约的文件分享方法 - Google Patents
一种基于区块链智能合约的文件分享方法 Download PDFInfo
- Publication number
- CN111950027A CN111950027A CN202010847115.XA CN202010847115A CN111950027A CN 111950027 A CN111950027 A CN 111950027A CN 202010847115 A CN202010847115 A CN 202010847115A CN 111950027 A CN111950027 A CN 111950027A
- Authority
- CN
- China
- Prior art keywords
- file
- sharing
- shared
- hash
- chain
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- KAICRBBQCRKMPO-UHFFFAOYSA-N phosphoric acid;pyridine-3,4-diamine Chemical compound OP(O)(O)=O.NC1=CC=NC=C1N KAICRBBQCRKMPO-UHFFFAOYSA-N 0.000 claims description 12
- 238000013507 mapping Methods 0.000 claims description 4
- 238000012795 verification Methods 0.000 abstract description 3
- 239000004743 Polypropylene Substances 0.000 abstract 1
- -1 polypropylene Polymers 0.000 abstract 1
- 229920001155 polypropylene Polymers 0.000 abstract 1
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于区块链智能合约的文件分享方法,涉及文件分享技术领域,分享者登录DAPP,选择需要分享的本地文件,选择/输入分享对象的DAPP账号,通过智能合约将该分享文件和分享对象存入链上,并返回分享文件的链上ID,由链上ID生成分享链接并向外发送;该分享链接接收者打开该分享链接,提示登陆DAPP,若核实确为分享对象,则允许其查阅/下载该分享文件。本发明将分享文件存于链上,分享链接永久有效,不会因为分享者DAPP账号丢失而导致分享链接失败/失效;通过基于DAPP账号的身份核实,非指定分享对象无法查阅/下载分享文件,保证文件分享过程中的安全性。
Description
技术领域
本发明涉及文件分享技术领域,具体是一种基于区块链智能合约的文件分享方法。
背景技术
随着无纸化办公的发展,电子文档分享在当下的生活和工作中,使用尤为频繁。传统文件分享系统主要采用以下两种方式:1、点对点传输,例如拷贝或蓝牙传输;2、将文件存储于中心化服务器上,然后通过一对多的形式分享出去,例如邮件或通讯软件发送。
第一种文件分享方式,分享者与接受者需要面对面或近距离进行文件传输,虽然能够保证文件分享过程中的安全性,但当接受者较多时,明显存在耗时耗力的缺点。
第二种文件分享方式,虽然能够快速实现一对多的分享,不受时间和空间限制,但是存在中心化服务都会存在的问题,一旦邮箱或通讯软件停止服务,必然导致分享失败,并且中心化服务内文件的存储时间是有限的,超过一定时限,分享文件无法再打开或下载。
发明内容
针对现有文件分享系统的技术缺陷,本发明提供一种基于区块链智能合约的文件分享方法。
一种基于区块链智能合约的文件分享方法,分享者登录DAPP,选择需要分享的本地文件,选择/输入分享对象的DAPP账号,通过智能合约将该分享文件和分享对象存入链上,并返回分享文件的链上ID,由链上ID生成分享链接并向外发送;该分享链接接收者打开该分享链接,提示登陆DAPP,若核实确为分享对象,则允许其查阅/下载该分享文件。
进一步的,分享文件在链上的存储方法为,将分享文件按照既定大小的块对其进行切分,拆成若干子文件,存储至存储块;通过散列算法计算出每个子文件的散列值,在智能合约内建立用于存放所有子文件散列值的全局散列表,实现子文件内容及其散列值的映射存储;将分享文件的切分后的子文件散列值按顺序整理成子文件排序表,作为分享文件的元数据之一;通过智能合约将分享文件和分享对象存入链上,并返回分享文件的子文件排序表,系统对子文件排序表中的散列值对应的子文件进行拼接并生成分享链接。
进一步的,当发生散列冲突时,使用另一种散列算法计算出该子文件内容的二级散列值,并存放于二级散列表中,记录该子文件两次使用的散列算法及相应散列值;或者,将子文件内容依次存储并使用二级索引标记存储位置。
进一步的,智能合约内计算的散列值与上传子文件的散列值不一致时,不允许上传。
本发明将分享文件存于链上,分享链接永久有效,不会因为分享者DAPP账号丢失而导致分享链接失败/失效;通过基于DAPP账号的身份核实,非指定分享对象无法查阅/下载分享文件,保证文件分享过程中的安全性。
附图说明
图1为文件分享方法流程图;
图2为子文件内容及其散列值的映射示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
一种基于区块链智能合约的文件分享方法,如图1所示,从分享者角度,分享者登录D APP,选择需要分享的本地文件,选择/输入分享对象的DAPP账号,通过智能合约将该分享文件和分享对象存入链上,并返回分享文件的链上ID,由链上ID生成分享链接并向外发送。
从接收者角度,该分享链接接收者打开该分享链接,提示登陆DAPP,若核实确为分享对象,则允许其查阅/下载该分享文件。
将分享文件存于链上,分享链接永久有效,不会因为分享者DAPP账号丢失而导致分享链接失败/失效。此外,通过基于DAPP账号的身份核实,非指定分享对象无法查阅/下载分享文件,保证文件分享过程中的安全性。
去中心化区块链网络的存储消耗是按照字节计费的,为了节约存储成本,分享文件在链上的存储方法为,将分享文件按照既定大小的块对其进行切分,拆成若干子文件,存储至存储块;通过散列算法计算出每个子文件的散列值,在智能合约内建立用于存放所有子文件散列值的全局散列表,实现子文件内容及其散列值的映射存储;将分享文件的切分后的子文件散列值按顺序整理成子文件排序表,作为分享文件的元数据之一,如图2所示。
通过智能合约将分享文件和分享对象存入链上,并返回分享文件的子文件排序表,系统对子文件排序表中的散列值对应的子文件进行拼接并生成分享链接。
分享文件上链流程为:①对分享文件进行切分,得到若干子文件;针对每一子文件,若已存储相同内容的子文件,则该子文件无需上传,即仅上传无相同内容的子文件;②所有需要上传的子文件均上传完毕后,将分享文件的切分后的子文件散列值按顺序整理成子文件排序表,与其他元数据一起传递到智能合约内,完成此次分享文件上链,其中其他元数据包括但不限于文件名、文件大小。由此流程可以看出,对于重复的内容,无需重复存储,极大地节约了存储资源。
分享文件下载流程:①从智能合约内获取分享文件的元数据(包括子文件排序表);②访问智能合约内的全局散列表,下载子文件内容并依序排列,完成分享文件的重建。
将分享文件的切分大小称之为块,块的大小为预设值,本实施例中,该预设值可以是全局参数,也可以是文件参数,还可以是基于文本智能识别的动态值。若块的大小是全局参数,则可以提高全局散列表的复用率,每个子文件使用固定大小更有利于发现相同内容的子文件,从而减少相同内容子文件的重复存储。若块的大小是文件参数,则可以提供用户侧的灵活定制,用户根据其发现的可以复用子文件,按照一定大小的块对其待存储文件进行分割,从而提高特定文件(组)的文件复用率。若块的大小基于文本智能识别的动态值,则可以对比待上传文件与已存储文件的内容,选择最佳的切分方式。
子文件排序表可以采用顺序结构或链式结构的线性表存储于智能合约内。若采用顺序结构进行存储,则逻辑实现简单,但增删子文件时会产生大量的数据移动,进而增大智能合约的执行成本;若采用链式结构,随机访问性能和存储空间利用率存在一定的牺牲,但是动态增删子文件的执行成本会显著下降。子文件排序表具体选择何种线性存储结构,根据具体应用的实际情况进行选择。
通过散列算法计算出每个子文件的散列值,存在不同内容的子文件计算出相同散列值的可能性。为了避免这种散列冲突引发文件存储冲突,当遇到散列冲突时,使用另一种散列算法计算出该子文件内容的二级散列值,并存放于二级散列表中,记录该子文件两次使用的散列算法及相应散列值,便于后期该子文件内容存储的定位;除此之外,还可以将子文件内容依次存储并使用二级索引标记存储位置,例如不同的两个子文件,散列值均为X,则用X0、X2对其进行区分。前一种是二维散列表存储,可以一定程序上避免冲突,重复文件的检索逻辑始终维持同样的时间复杂度,但是冲突的增加可能导致子文件无处存储的问题;后一种是采用二维线性表存储散列值,可以动态无限扩展,冲突增加时可以始终保证可用,但需要牺牲重复文件的检索速度。
当然,为防止恶意攻击,智能合约内计算的散列值与存储子文件的散列值不一致时,不允许存储,防止恶意攻击者利用篡改过的内容污染全局散列表的准确性。
显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域及相关领域的普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
Claims (5)
1.一种基于区块链智能合约的文件分享方法,其特征在于,分享者登录DAPP,选择需要分享的本地文件,选择/输入分享对象的DAPP账号,通过智能合约将该分享文件和分享对象存入链上,并返回分享文件的链上ID,由链上ID生成分享链接并向外发送;
该分享链接接收者打开该分享链接,提示登陆DAPP,若核实确为分享对象,则允许其查阅/下载该分享文件。
2.根据权利要求1所述的文件分享方法,其特征在于,分享文件在链上的存储方法为,将分享文件按照既定大小的块对其进行切分,拆成若干子文件,存储至存储块;通过散列算法计算出每个子文件的散列值,在智能合约内建立用于存放所有子文件散列值的全局散列表,实现子文件内容及其散列值的映射存储;将分享文件的切分后的子文件散列值按顺序整理成子文件排序表,作为分享文件的元数据之一;
通过智能合约将分享文件和分享对象存入链上,并返回分享文件的子文件排序表,系统对子文件排序表中的散列值对应的子文件进行拼接并生成分享链接。
3.根据权利要求2所述的文件分享方法,其特征在于,当发生散列冲突时,使用另一种散列算法计算出该子文件内容的二级散列值,并存放于二级散列表中,记录该子文件两次使用的散列算法及相应散列值。
4.根据权利要求2所述的文件分享方法,其特征在于,当发生散列冲突时,将子文件内容依次存储并使用二级索引标记存储位置。
5.根据权利要求2-4任意一项所述的文件分享方法,其特征在于,智能合约内计算的散列值与上传子文件的散列值不一致时,不允许上传。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010847115.XA CN111950027A (zh) | 2020-08-21 | 2020-08-21 | 一种基于区块链智能合约的文件分享方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010847115.XA CN111950027A (zh) | 2020-08-21 | 2020-08-21 | 一种基于区块链智能合约的文件分享方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111950027A true CN111950027A (zh) | 2020-11-17 |
Family
ID=73358799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010847115.XA Pending CN111950027A (zh) | 2020-08-21 | 2020-08-21 | 一种基于区块链智能合约的文件分享方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111950027A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112348717A (zh) * | 2020-11-25 | 2021-02-09 | 山东师范大学 | 一种基于区块链的知识上链与获取方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105975877A (zh) * | 2016-07-01 | 2016-09-28 | 中国联合网络通信有限公司重庆市分公司 | 一种敏感文件安全存储办法 |
WO2017000820A1 (zh) * | 2015-07-01 | 2017-01-05 | 北京奇虎科技有限公司 | 基于云端存储的文件分享方法、装置与系统 |
CN108111585A (zh) * | 2017-12-15 | 2018-06-01 | 成都链网络科技有限公司 | 基于区块链的分布式存储方法 |
CN109587253A (zh) * | 2018-12-11 | 2019-04-05 | 浙江大学 | 一种基于区块链对文件实现分布式存储的方法 |
CN110061968A (zh) * | 2019-03-15 | 2019-07-26 | 广东工程职业技术学院 | 一种基于区块链的文件加解密方法、系统及存储介质 |
CN111400270A (zh) * | 2020-03-16 | 2020-07-10 | 上海简苏网络科技有限公司 | 一种基于区块链的文件授时的方法和装置 |
CN111414647A (zh) * | 2020-03-23 | 2020-07-14 | 深圳市闪联信息技术有限公司 | 一种基于区块链技术防篡改的数据共享系统及方法 |
-
2020
- 2020-08-21 CN CN202010847115.XA patent/CN111950027A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017000820A1 (zh) * | 2015-07-01 | 2017-01-05 | 北京奇虎科技有限公司 | 基于云端存储的文件分享方法、装置与系统 |
CN105975877A (zh) * | 2016-07-01 | 2016-09-28 | 中国联合网络通信有限公司重庆市分公司 | 一种敏感文件安全存储办法 |
CN108111585A (zh) * | 2017-12-15 | 2018-06-01 | 成都链网络科技有限公司 | 基于区块链的分布式存储方法 |
CN109587253A (zh) * | 2018-12-11 | 2019-04-05 | 浙江大学 | 一种基于区块链对文件实现分布式存储的方法 |
CN110061968A (zh) * | 2019-03-15 | 2019-07-26 | 广东工程职业技术学院 | 一种基于区块链的文件加解密方法、系统及存储介质 |
CN111400270A (zh) * | 2020-03-16 | 2020-07-10 | 上海简苏网络科技有限公司 | 一种基于区块链的文件授时的方法和装置 |
CN111414647A (zh) * | 2020-03-23 | 2020-07-14 | 深圳市闪联信息技术有限公司 | 一种基于区块链技术防篡改的数据共享系统及方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112348717A (zh) * | 2020-11-25 | 2021-02-09 | 山东师范大学 | 一种基于区块链的知识上链与获取方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107332876B (zh) | 区块链状态的同步方法及装置 | |
EP3223165B1 (en) | File processing method, system and server-clustered system for cloud storage | |
US8996655B2 (en) | Method for horizontal scale delta encoding | |
KR101752928B1 (ko) | 객체 저장부들의 네트워크상의 스웜-기반의 동기화 | |
US20120259825A1 (en) | Data management method and data management system | |
CN104573064B (zh) | 一种大数据环境下的数据处理方法 | |
CN106161633B (zh) | 一种基于云计算环境下打包文件的传输方法及系统 | |
CN108881354B (zh) | 一种推送信息存储方法、装置、服务器和计算机存储介质 | |
CN105404679B (zh) | 数据处理方法和装置 | |
CN106156359A (zh) | 一种云计算平台下的数据同步更新方法 | |
CN111950025A (zh) | 一种基于区块链智能合约的文件分布式存储方法 | |
CN103227818A (zh) | 终端、服务器、文件传输方法、文件存储管理系统和方法 | |
CN102833298A (zh) | 分布式的重复数据删除系统及其处理方法 | |
CN106201771A (zh) | 数据存储系统和数据读写方法 | |
CN110703980A (zh) | 一种文件传输方法及装置 | |
CN113535648A (zh) | 一种基于ipfs的分布式云存储方法、设备及存储介质 | |
WO2018214905A1 (zh) | 一种数据存储的方法、装置、介质及设备 | |
CN116578746A (zh) | 对象去重方法及装置 | |
CN108932271A (zh) | 一种文件管理方法及装置 | |
CN116010362A (zh) | 文件存储和文件读取的方法、装置及系统 | |
CN111950027A (zh) | 一种基于区块链智能合约的文件分享方法 | |
WO2015116040A1 (en) | Data migration | |
CN110071968B (zh) | 一种基于区块链的消息存储方法及装置 | |
CN113821549A (zh) | 一种基于云存储的区块链数据检索系统及方法 | |
CN110730106B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201117 |
|
RJ01 | Rejection of invention patent application after publication |