這也是目前絕大多數分布式存儲網絡都采取Kademlia算法為數據發現的原因,因為檢索效率很高。
(以上案例節選于《易懂分布式 | Kademlia算法》一文)
二、可搜索加密技術
該技術屬于加密技術在云計算領域的應用。
顧名思義,就是基于密文進行搜索查詢的方案,用密碼學來保障用戶的數據隱私信息。
用戶不需要將所有加密文件全部下載到本地,然后在進行檢索,從而節約了大量的帶寬消耗和磁盤空間消耗。通過在線的加密搜索,可以直接檢索加過密的數據,并根據需要下載。
Genaro使用了可搜索加密技術中的一種,即:搜索對稱加密(SSE: searchable symmetric encryption)
三、代理重加密
該技術也屬于加密技術在云計算領域的應用。
代理重加密技術可以解決用戶在數據共享方面的不便。
代理重加密實質上是一種用于密文之間的密鑰轉換機制。在代理重加密過程中,服務商得不到數據的明文信息。
具體流程是授權人A透過代理者產生針對被授權人B的轉換密鑰。代理者利用該密鑰,將原本由授權人A的公鑰加密的密文轉化為由用戶B的公鑰所加密的密文。
這樣就在很大程度上解決了用戶A與用戶B需要共享公鑰的問題,被授權人B只需要使用自己的私鑰就可以獲取密文對應的明文。從而實現了用戶之間的安全的數據共享。
四、I/O流協議
作為區塊鏈和分布式存儲混合型項目,如何打通區塊鏈的鏈上與分布式存儲的鏈下數據,是個非常重要的問題。讓以分布式存儲的鏈下數據也同樣具備鏈上數據的可信度,是I/O流協議需要解決的問題。
GSIOP 就是通過加密的方式保證了鏈下存儲可靠性的協議方案。這種方案的最終目的是解決數據上鏈問題,也就是目前的區塊鏈技術一直以來無法解決的Oracle(預言機)問題。希望Genaro的區塊鏈+分布式存儲方案能在這個問題上有所突破。
以上四項技術屬于分布式存儲,接下去來看下Genaro項目的區塊鏈部分。
首先,Genaro的區塊鏈部分是基于以太坊做的修改,在以太坊的虛擬機EVM中,增加了和文件存取相關的指令opcode。同時在Solidity語言中,也相應的增加了相關開發語法,形成了自身的GVM虛擬機。這種設計,將對現在主流的DAPP開發者-以太坊社區有利,能快速基于Genaro開發DAPP應用。
其次,在共識機制上,為了提升以太坊共識效率。同時,為了保證加密分享的文件本身是可以被證明存儲完整性的,而不是存儲后無法找回。Genaro對早期IPFS的PoR(復制證明)算法上做了改進,提出了SPoR算法,并與以太坊Casper的POS算法進行融合,提出了POS+SPoR的混合共識算法。
PoR算法也是幾乎所有分布式存儲的通用算法,最近PoR算法有了新的突破,斯坦福大學的Ben Fisch最新的關于PoR算法研究論文出爐,見 https://web.stanford.edu/~bfisch/porep.pdf,筆者將對此報告做另行解讀。