p2p搜索引擎如何防止恶意对等体破坏分布式索引?

时间:2014-07-14 15:44:56

标签: algorithm indexing p2p distributed dht

作为一种业余爱好,我正在编写简单而原始的分布式网络搜索引擎,我发现它目前无法防止恶意同行试图扭曲搜索结果。

该项目的当前架构是将逆索引和排名因子存储在kad dht中,其中对等方在爬网时更新此逆索引。

我已经使用谷歌学者试图找到一些解决方案,但似乎大多数提议的p2p网络搜索的作者忽略了上述问题。

我认为我需要某种声誉系统或信任指标,但我在这个领域的知识足够缺乏,我非常感谢一些指示。

3 个答案:

答案 0 :(得分:3)

可以避免这种情况的一种方法是仅使用可靠的节点来存储和检索值。节点的可靠性必须由已知良好的节点计算,并且它可以类似于节点的最后几个计算的排序因子与由已知良好节点计算的相同排序因子的相似性(即将google.com的节点分数与google.com的已知良好分数进行比较。使用这种方法,您需要避免使用流氓可靠节点"问题(例如,通过随机检查或随机减少所有可靠性分数)。

您可以采用的另一种方法是跨多个节点复制排名因子的计算,在搜索时获取所有值,并在客户端对它们进行排名(例如,使用方差)。您还可以将搜索限制为仅计算了> 10个重复值的网站,以便在新网站排名之前有一段时间。此外,客户端可以在后台报告任何值超出正常范围的节点,并且可以通过这种方式计算其可靠性分数。这种方法对最终用户来说非常耗时(除非您将已知良好的结果复制到已知良好的节点以便更快地进行查找)。

另外,请看一下本文,它描述了一个符合sybil的弱信任系统(正如作者所解释的那样,它比不可能的防sybil信任系统更强大):http://www.eecs.harvard.edu/econcs/pubs/Seuken_aamas14.pdf < / p>

答案 1 :(得分:1)

您所描述的问题是拜占庭将军的问题或拜占庭式的容错。你可以在wikipedia上阅读更多关于它的内容,但必须有大量的论文写到它。

我不记得确切的算法,但基本上它在数学上已经证明,对于t叛徒(恶意同伴),你总共需要3*t + 1个同伴,以便检测叛徒。

我的一般想法是,这是索引方面实施和资源浪费的巨大开销,虽然在分布式索引和分布式搜索方面有足够的研究,但还没有很多人正在解决它。此问题已基本解决了拜占庭将军的“只是&#34;需要在现有(和工作)的分布式搜索引擎之上实现。

答案 2 :(得分:0)

如果您不介意延迟索引更新,您可以选择类似于比特币用于保障资金的块链算法。

对索引的更改(仅限增量!)可以用文本或二进制文件格式表示,并由接受给定增量块的对等方进行压缩。恶意对等方必须在一段时间内超出网络的其余部分,以便使索引偏向于自己的利益。

我认为比特币哈希算法(SHA-256)存在缺陷,因为定制硬件会使普通用户的硬件无法使用。使用litecoin算法(scrypt)的块链可以很好地工作,因为cpus和gpus是计算中的有效工具。

你会相应地权衡难度,以便新闻块按照相当规律的时间表生成 - 可能是2-5分钟。搜索引擎的用户可以选择使用至少30分钟的索引,以保证网络中有足够的用户担保其内容。

更多信息: https://en.bitcoin.it/wiki/Block_chain https://en.bitcoin.it/wiki/Block_hashing_algorithm https://litecoin.info/block_hashing_algorithm https://www.coinpursuit.com/pages/bitcoin-altcoin-SHA-256-scrypt-mining-algorithms/

相关问题