Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm p2p搜索引擎如何防止恶意节点破坏分布式索引?_Algorithm_Indexing_P2p_Distributed_Dht - Fatal编程技术网

Algorithm p2p搜索引擎如何防止恶意节点破坏分布式索引?

Algorithm p2p搜索引擎如何防止恶意节点破坏分布式索引?,algorithm,indexing,p2p,distributed,dht,Algorithm,Indexing,P2p,Distributed,Dht,作为一种爱好,我正在编写简单而原始的分布式web搜索引擎,我突然想到,它目前没有任何保护措施来防止恶意同行试图扭曲搜索结果 项目的当前架构是在kad dht中存储反向索引和排名因子,对等方在爬网时更新此反向索引 我曾使用谷歌学者(GoogleScholar)试图找到一些解决方案,但大多数提出p2p网络搜索的作者似乎忽视了上述问题 我想我需要某种声誉系统或信任度量,但我在这一领域的知识非常缺乏,我非常希望能提出一些建议。您描述的问题是拜占庭将军的问题或拜占庭容错。你可以在网上读到更多关于它的文章,

作为一种爱好,我正在编写简单而原始的分布式web搜索引擎,我突然想到,它目前没有任何保护措施来防止恶意同行试图扭曲搜索结果

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

我曾使用谷歌学者(GoogleScholar)试图找到一些解决方案,但大多数提出p2p网络搜索的作者似乎忽视了上述问题


我想我需要某种声誉系统或信任度量,但我在这一领域的知识非常缺乏,我非常希望能提出一些建议。

您描述的问题是拜占庭将军的问题或拜占庭容错。你可以在网上读到更多关于它的文章,但一定有很多关于它的文章

我不记得确切的算法,但基本上数学证明,对于
t
叛徒(恶意对等方),为了检测叛徒,您总共需要
3*t+1
对等方


我的总体想法是,这是一个巨大的实现开销和索引方面的资源浪费,虽然在分布式索引和分布式搜索方面有足够的研究要做,但还没有多少人解决这个问题。此外,拜占庭将军的it“正义”计划基本上解决了这个问题,它需要在现有的(和工作的)基础上实施分布式搜索引擎。

避免这种情况的一种方法是只使用可靠的节点来存储和检索值。节点的可靠性必须由已知良好的节点计算,它可能类似于节点最后几个计算的排名因子与已知go计算的相同排名因子的相似性od节点(即,将google.com的节点得分与google.com的已知良好得分进行比较)。使用此方法,您需要避免“恶意可靠节点”问题(例如,使用随机检查或随机减少所有可靠性得分)

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


另外,看看这篇文章,它描述了一个防sybil的弱信任系统(正如作者所解释的,它比不可能的防sybil的强信任系统更健壮):

如果你不介意在索引更新上有一个时间延迟,你可以选择类似于比特币用来保护资金的块链算法

对索引的更改(仅限增量!)可以用文本或二进制文件格式表示,并由接受给定增量块的对等方进行处理。恶意对等方必须在一段时间内计算出网络的其余部分,以便使索引向有利于它们的方向倾斜

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

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

更多信息:

谢谢你的链接,但我需要一些实用的东西,考虑到运行sybil更容易,我需要不同的策略。谢谢你的链接,这篇文章很有趣。