本發(fā)明涉及區(qū)塊鏈,特別是涉及一種基于區(qū)塊鏈的分布式數(shù)據(jù)共享方法及系統(tǒng)。
背景技術(shù):
1、隨著區(qū)塊鏈技術(shù)的不斷發(fā)展,越來越多的應(yīng)用程序正在基于這一技術(shù)進(jìn)行開發(fā)?;趨^(qū)塊鏈的應(yīng)用具有分布式、去信任和可追溯等顯著優(yōu)點(diǎn)。然而,在實(shí)際應(yīng)用開發(fā)過程中,往往會(huì)發(fā)現(xiàn),除了需要傳遞和存儲(chǔ)簡(jiǎn)單的信息外,業(yè)務(wù)需求還涉及在不同參與主體之間傳遞大容量文件,例如國(guó)際貿(mào)易中的關(guān)單附件??紤]到區(qū)塊鏈技術(shù)本身的多冗余分布式特性,在面臨大數(shù)據(jù)量的傳輸和存儲(chǔ)時(shí),可能會(huì)導(dǎo)致資源的浪費(fèi),從而顯著提升區(qū)塊鏈的運(yùn)營(yíng)成本。
2、為了解決上述問題專利cn?116743408a提出了基于區(qū)塊鏈的分布式文件共享方法和系統(tǒng),通過將分布式存儲(chǔ)與區(qū)塊鏈相結(jié)合,實(shí)現(xiàn)高效、安全的分布式文件存儲(chǔ)和共享。但是,該方法需要共享方提前將文件進(jìn)行上鏈和加密,上傳大文件需要花費(fèi)大量的時(shí)間成本,因此,在緊急分享或大文件分享場(chǎng)景下并不適用。
技術(shù)實(shí)現(xiàn)思路
1、為了克服現(xiàn)有技術(shù)的不足,本發(fā)明的目的是提供一種基于區(qū)塊鏈的分布式數(shù)據(jù)共享方法及系統(tǒng),通過對(duì)分享請(qǐng)求進(jìn)行解析,實(shí)現(xiàn)對(duì)數(shù)據(jù)分享狀態(tài)的判斷;通過對(duì)首次分享數(shù)據(jù)進(jìn)行加密,實(shí)現(xiàn)直接加密和分卷加密,緩解本地算力和網(wǎng)絡(luò)帶寬的占用,優(yōu)化大文件傳輸能力;通過直接上傳區(qū)塊鏈和分布式存儲(chǔ)單元備份,解決首次分享的局限性,節(jié)省數(shù)據(jù)分享的時(shí)間。
2、為實(shí)現(xiàn)上述目的,本發(fā)明提供了如下方案:
3、一種基于區(qū)塊鏈的分布式數(shù)據(jù)共享方法,包括:
4、收集共享端的分享請(qǐng)求,并通過對(duì)所述分享請(qǐng)求進(jìn)行解析,得到分享狀態(tài);所述分享狀態(tài)包括:首次分享狀態(tài)和已有數(shù)據(jù)分享狀態(tài);
5、當(dāng)所述分享狀態(tài)為所述首次分享狀態(tài)時(shí),利用密鑰管理單元向接收端發(fā)送解密密鑰,并向所述共享端發(fā)送加密密鑰;
6、利用所述加密密鑰對(duì)首次分享數(shù)據(jù)進(jìn)行加密,得到加密共享數(shù)據(jù);所述加密共享數(shù)據(jù)包括:直接加密數(shù)據(jù)和分卷加密數(shù)據(jù);
7、將所述加密共享數(shù)據(jù)上傳到區(qū)塊鏈和分布式存儲(chǔ)單元;
8、通過預(yù)設(shè)的智能合約,利用所述解密數(shù)據(jù)對(duì)所述加密共享數(shù)據(jù)進(jìn)行解密,得到所述首次分享數(shù)據(jù);
9、將所述首次分享數(shù)據(jù)存儲(chǔ)到所述接收端的本地存儲(chǔ)單元中。
10、優(yōu)選地,收集共享端的分享請(qǐng)求,并通過對(duì)所述分享請(qǐng)求進(jìn)行解析,得到分享狀態(tài)前,還包括:
11、收集所述共享端的訪問請(qǐng)求;
12、對(duì)所述訪問請(qǐng)求進(jìn)行解析,得到用戶身份憑證;
13、利用預(yù)設(shè)的token單元對(duì)所述用戶身份憑證進(jìn)行鑒定,得到鑒權(quán)結(jié)果;
14、當(dāng)所述鑒權(quán)結(jié)果為不通過時(shí),向所述共享端發(fā)送訪問失敗信息。
15、優(yōu)選地,收集共享端的分享請(qǐng)求,并通過對(duì)所述分享請(qǐng)求進(jìn)行解析,得到分享狀態(tài),包括:
16、對(duì)待分享數(shù)據(jù)進(jìn)行哈希處理,得到數(shù)據(jù)摘要;
17、利用預(yù)設(shè)的摘要存儲(chǔ)單元對(duì)所述數(shù)據(jù)摘要進(jìn)行檢索,得到檢索結(jié)果;
18、當(dāng)所述檢索結(jié)果為未收錄時(shí),將所述待分享數(shù)據(jù)確定為所述首次分享數(shù)據(jù);
19、將所述共享端的ip地址、端口號(hào)以及檢索標(biāo)識(shí)封裝成所述分享請(qǐng)求;所述檢索標(biāo)識(shí)為0時(shí)對(duì)應(yīng)所述檢索結(jié)果為所述未收錄和所述分享狀態(tài)為所述首次分享狀態(tài)。
20、優(yōu)選地,當(dāng)所述分享狀態(tài)為所述首次分享狀態(tài)時(shí),利用密鑰管理單元向接收端發(fā)送解密密鑰,并向所述共享端發(fā)送加密密鑰,包括:
21、根據(jù)所述分享請(qǐng)求構(gòu)建第一質(zhì)數(shù)和第二質(zhì)數(shù);所述第一質(zhì)數(shù)的計(jì)算公式為:其中,p為第一質(zhì)數(shù);α為第一指數(shù);prime()為最近鄰質(zhì)數(shù)提取操作;所述第二質(zhì)數(shù)的計(jì)算公式為:q為第二質(zhì)數(shù);β為第二指數(shù);
22、將所述第一質(zhì)數(shù)和所述第二質(zhì)數(shù)進(jìn)行相乘,得到模數(shù);
23、根據(jù)所述第一質(zhì)數(shù)和所述第二質(zhì)數(shù)計(jì)算歐拉數(shù);所述歐拉數(shù)的計(jì)算公式為:r=(p-1)*(q-1);其中,r為所述歐拉數(shù);
24、根據(jù)所述歐拉數(shù)選取公鑰指數(shù);所述公鑰指數(shù)介于1到所述歐拉數(shù)之間的質(zhì)數(shù);
25、根據(jù)所述公鑰指數(shù)和所述歐拉數(shù)進(jìn)行私鑰指數(shù)計(jì)算;所述私鑰指數(shù)的計(jì)算公式為:(e*d)%r=1;其中,e為所述公鑰指數(shù);d為所述私鑰指數(shù);
26、根據(jù)所述公鑰指數(shù)、所述私鑰指數(shù)以及所述模數(shù)構(gòu)建所述加密密鑰和所述解密密鑰;所述加密密鑰的構(gòu)建公式為:ke=(e,n);其中,ke為所述加密密鑰;n為所述模數(shù);所述解密密鑰的構(gòu)建公式為:kd=(d,n);其中,kd為所述解密密鑰。
27、優(yōu)選地,利用所述加密密鑰對(duì)首次分享數(shù)據(jù)進(jìn)行加密,得到加密共享數(shù)據(jù),包括:
28、檢測(cè)所述首次分享數(shù)據(jù)的文件大小,得到檢測(cè)結(jié)果;
29、當(dāng)所述檢測(cè)結(jié)果為小文件時(shí),根據(jù)所述加密密鑰,利用rsa算法對(duì)所述首次分享數(shù)據(jù)進(jìn)行加密,得到直接加密數(shù)據(jù);
30、當(dāng)所述檢測(cè)結(jié)果為大文件時(shí),根據(jù)預(yù)設(shè)的單卷最大容量對(duì)所述首次分享數(shù)據(jù)進(jìn)行分卷,得到若干個(gè)分卷數(shù)據(jù)塊;
31、為全部所述分卷數(shù)據(jù)塊添加順序頭,并根據(jù)所述加密密鑰,利用rsa算法對(duì)所述分卷數(shù)據(jù)塊進(jìn)行加密,得到若干個(gè)分卷加密數(shù)據(jù)。
32、優(yōu)選地,所述加密共享數(shù)據(jù)上傳到所述區(qū)塊鏈和所述分布式存儲(chǔ)單元的上傳模式包括:同步上傳模式、先區(qū)后分上傳模式以及自定義兩端上傳帶寬模式。
33、優(yōu)選地,通過預(yù)設(shè)的智能合約,利用所述解密數(shù)據(jù)對(duì)所述加密共享數(shù)據(jù)進(jìn)行解密,得到所述首次分享數(shù)據(jù),包括:
34、當(dāng)接收到所述分卷加密數(shù)據(jù)時(shí),利用所述解密密鑰對(duì)全部所述分卷加密數(shù)據(jù)進(jìn)行解密,得到帶順序頭的分卷數(shù)據(jù)塊;
35、根據(jù)所述順序頭對(duì)所述帶順序頭的分卷數(shù)據(jù)塊進(jìn)行整合,得到所述首次分享數(shù)據(jù)。
36、優(yōu)選地,所述單卷最大容量為4gb。
37、優(yōu)選地,一種基于區(qū)塊鏈的分布式數(shù)據(jù)共享系統(tǒng),包括:共享端、接收端、區(qū)塊鏈單元、密鑰管理單元、分布式存儲(chǔ)單元以及摘要存儲(chǔ)單元;
38、所述共享端用于通過所述區(qū)塊鏈單元向所述接收端分享數(shù)據(jù)或向所述分布式存儲(chǔ)單元上傳所述分享數(shù)據(jù);所述密鑰管理單元用于向所述共享端發(fā)送加密密鑰和向所述區(qū)塊鏈單元發(fā)送解密密鑰;所述摘要存儲(chǔ)單元用于判斷所述分享數(shù)據(jù)是否存儲(chǔ)在所述分布式存儲(chǔ)單元內(nèi)。
39、本發(fā)明公開了以下技術(shù)效果:
40、本發(fā)明提供了一種基于區(qū)塊鏈的分布式數(shù)據(jù)共享方法及系統(tǒng),通過對(duì)分享請(qǐng)求進(jìn)行解析,解決了首次分享狀態(tài)的識(shí)別問題,實(shí)現(xiàn)了對(duì)數(shù)據(jù)分享狀態(tài)的判斷;通過對(duì)首次分享數(shù)據(jù)進(jìn)行加密,解決了本地算力和網(wǎng)絡(luò)帶寬的占用問題,實(shí)現(xiàn)了直接加密和分卷加密;通過直接上傳區(qū)塊鏈和分布式存儲(chǔ)單元備份,解決了首次分享的局限性,實(shí)現(xiàn)了首次分享數(shù)據(jù)的直接加密傳輸和分布式存儲(chǔ)。
1.一種基于區(qū)塊鏈的分布式數(shù)據(jù)共享方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的一種基于區(qū)塊鏈的分布式數(shù)據(jù)共享方法,其特征在于,收集共享端的分享請(qǐng)求,并通過對(duì)所述分享請(qǐng)求進(jìn)行解析,得到分享狀態(tài)前,還包括:
3.根據(jù)權(quán)利要求1所述的一種基于區(qū)塊鏈的分布式數(shù)據(jù)共享方法,其特征在于,收集共享端的分享請(qǐng)求,并通過對(duì)所述分享請(qǐng)求進(jìn)行解析,得到分享狀態(tài),包括:
4.根據(jù)權(quán)利要求1所述的一種基于區(qū)塊鏈的分布式數(shù)據(jù)共享方法,其特征在于,當(dāng)所述分享狀態(tài)為所述首次分享狀態(tài)時(shí),利用密鑰管理單元向接收端發(fā)送解密密鑰,并向所述共享端發(fā)送加密密鑰,包括:
5.根據(jù)權(quán)利要求1所述的一種基于區(qū)塊鏈的分布式數(shù)據(jù)共享方法,其特征在于,利用所述加密密鑰對(duì)首次分享數(shù)據(jù)進(jìn)行加密,得到加密共享數(shù)據(jù),包括:
6.根據(jù)權(quán)利要求1所述的一種基于區(qū)塊鏈的分布式數(shù)據(jù)共享方法,其特征在于,所述加密共享數(shù)據(jù)上傳到所述區(qū)塊鏈和所述分布式存儲(chǔ)單元的上傳模式包括:同步上傳模式、先區(qū)后分上傳模式以及自定義兩端上傳帶寬模式。
7.根據(jù)權(quán)利要求5所述的一種基于區(qū)塊鏈的分布式數(shù)據(jù)共享方法,其特征在于,通過預(yù)設(shè)的智能合約,利用所述解密數(shù)據(jù)對(duì)所述加密共享數(shù)據(jù)進(jìn)行解密,得到所述首次分享數(shù)據(jù),包括:
8.根據(jù)權(quán)利要求5所述的一種基于區(qū)塊鏈的分布式數(shù)據(jù)共享方法,其特征在于,所述單卷最大容量為4gb。
9.一種基于區(qū)塊鏈的分布式數(shù)據(jù)共享系統(tǒng),其特征在于,包括:共享端、接收端、區(qū)塊鏈單元、密鑰管理單元、分布式存儲(chǔ)單元以及摘要存儲(chǔ)單元;