在介紹完基本的概念后,接下來介紹系統的設計和實現。為了清晰,先討論分布式存儲系統的設計,再討論提供分布式存儲的
區塊鏈系統的設計。
分布式存儲系統的設計主要解決三個問題:文件如何安全放入;文件如何安全存儲;文件如何不被存儲提供方「偷走」。
1.文件如何安全放入
把數據在客戶端上傳前做加密和分割,通過分布式存儲的分發方式上傳到存儲提供方的空間內,通過相關的存儲心跳檢測來保證在用戶需要數據的時候可以完整的取回。
在整個過程中,用戶的數據在本地就已進行加密,用戶不需要擔心數據被偷窺以及存儲提供方沒有承擔明文存儲的風險。
2.文件如何安全存儲
根據分布式存儲的冗余存儲原理,一般來說對應一個資源,如果要保證任意兩個節點(N=2)掉線依舊不影響系統可用性,就需要維護2N+1個資源數。也就是說一份文件需要存給5臺服務器。
按照12個節點為一個批次的設計,那么任意5個節點掉線是不影響可用性的,但是如果遭遇重放攻擊,也就是加密后資源被不合理地配置,攻擊節點是可以通過某些方法來阻止文件被安全召回的。這就需要對分發方式進行設計,來保障安全的存儲。
此外在存儲期間,可以通過相關的評分系統對節點質量進行評分,保證除了共識節點之外提供分布式存儲服務的節點的質量。
3.文件如何不被存儲提供方「偷走」
首先,數據是在用戶本地機器上的客戶端加密的,這樣確保了上傳之前的文件已經被加密,存儲方是無法看到用戶數據的。其次,在冗余存儲的部分,每個存儲提供方的通信目錄中不會包含所有的文件碎片存儲方,這樣也一定程度上防止了共謀的可能性。
在解決了以上這三個問題后,該系統就能夠被稱為一個安全的分布式存儲系統,可以提供分布式存儲服務了。
在整個過程中,設計一個合理的分布式存儲可取回校驗方式是比較大的挑戰,它的要求不只是通過問詢達到返回結果的可靠,還要通過特殊方式預防重放攻擊試探以及攻擊,提高存儲系統的可用性。
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。