2014-07-14 81 views
3

作爲一個業餘愛好,我正在編寫簡單而原始的分佈式網絡搜索引擎,而且它發生在我身上,它目前無法防範惡意對等方試圖歪曲搜索結果。p2p搜索引擎如何防止惡意節點腐敗分佈式索引?

該項目的當前體系結構存儲反向索引和排名因子,其中對等體在爬行網絡時更新該反向索引。

我已經使用谷歌學者試圖找到一些解決方案,但似乎大多數提議的P2P網絡搜索的作者忽略上述問題。

我想我需要某種信譽系統或信任指標,但是我在這個領域的知識還不夠充分,我非常感謝他們的一些指導。

回答

2

你可以避免這種情況的一種方法是隻使用可靠的節點來存儲並檢索值,一個節點的可靠性必須由已知好的節點計算出來,它可能類似於一個節點的最後幾個計算的排名因子的相似度,與由已知好的節點計算的相同的排名因子相比(即比較google.com的節點分數和google.com的已知分數)使用這種方法,您需要避免「流氓可靠節點」問題(例如,通過隨機檢查或隨機減少所有可靠性分數)

另一種方式你coul d方法是重複計算多個節點上的排名因子,在搜索時獲取所有值,並在客戶端對其進行排名(例如使用方差)。您還可以將搜索範圍限制爲只計算了> 10個重複值的網站,以便在新網站排名前有一段時間。此外,任何值在正常範圍之外的節點都可以由客戶端在後臺報告,並且可以通過這種方式計算其可靠性分數。這種方法對於最終用戶來說非常耗時(除非您將已知良好的結果複製到已知好的節點以便快速查找)。

而且,看看這個文件,該文件描述了西比爾防弱信託制度(正如作者解釋說,是不是不可能的西比爾防強信任體系更加健全):http://www.eecs.harvard.edu/econcs/pubs/Seuken_aamas14.pdf

+1

謝謝你的鏈接,這篇論文很有趣。 – Moonwalker

0

您所描述的問題是拜占庭將軍的問題或拜占庭容錯。你可以在wikipedia上閱讀更多關於它的文章,但是必須有大量關於它的論文。

我不記得確切的算法,但基本上它是數學上證明,爲t叛徒(惡意節點),就需要在總3*t + 1同行,以檢測漢奸。

我的一般想法是,這在實現和索引方面的資源浪費方面是一個巨大的開銷,儘管在分佈式索引和分佈式搜索方面有足夠的研究,但還沒有很多人正在處理它。拜占庭將軍的這個問題基本上已經基本解決了,它只需要在現有的(和工作的)分佈式搜索引擎上實施。

+0

感謝您的鏈接,但我需要的東西實用,考慮到運行西比爾是更容易的是誠實的節點,我需要不同的策略。 – Moonwalker

0

如果您不介意索引更新有時間延遲,那麼您可以選擇類似於比特幣用於獲取資金的塊鏈算法。

對索引的更改(僅限deltas!)可以用文本或二進制文件格式表示,並由接受給定塊增量的同伴進行處理。一個惡意的同伴必須在一段時間內計算網絡的其他部分,以便扭轉對他們有利的索引。

我認爲比特幣哈希算法(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/