这也是目前绝大多数分布式存储网络都采取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,笔者将对此报告做另行解读。