跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 如何基于 DHT 网络构想一套匿名聊天协议或方法
未分類
20 4 月 2020

如何基于 DHT 网络构想一套匿名聊天协议或方法

如何基于 DHT 网络构想一套匿名聊天协议或方法

資深大佬 : zu1k 45

老师今天刚提出来的任务,说让基于 kad dnt 网络设计并编码一款匿名聊天软件,对细节方面要求不是很严后面可以优化,主要是要先给出一定的构想。

在对 dht 网络稍加了解后,发现就是个分布式的 key-value 数据库。目前基于 dht 的应用主要还是 dht 提供寻址,后续还得 p2p 进行数据交换。

因为要求匿名聊天,所以 p2p 是不能用的,会暴露个人 ip 和位置,那最终的问题就落脚在如何基于 k-v 的方式给出一种通讯协议。

困难的点也就在这里,在通过 key 找 value 的情况下,我没有找到一种能够进行持续通讯的方法,因为我目前认为 dht 中没有 push 这种概念[可能是我理解错了],那有什么好的办法吗?

大佬有話說 (24)

  • 資深大佬 : oovveeaarr

    匿名聊天的话,应该不一定是去中心化聊天的吧?

  • 資深大佬 : zxlzy

    匿名聊天也可以是中心化的啊,有可信第三方就行。

  • 主 資深大佬 : zu1k

    @oovveeaarr @zxlzy 目前老师的要求是基于 dht 实现去中心化的那种匿名聊天

  • 資深大佬 : azh7138m

    我猜是 Tox + Tor
    Tox 提供了基于 DHT 的一个建立链接的协议
    但是建立链接要交换双方的 ip:port
    Tox 只实现了如何确保只有你的好友才能连到你的协议
    你还需要 Tor 来隐藏你的真实 ip

    https://wiki.tox.chat/users/faq#does_tox_leak_my_ip_address

  • 資深大佬 : nguoidiqua

    @oovveeaarr
    @zxlzy

    别人老师要求就是基于 Kad 和 DHT 网络,这是基本前提,匿名是另外一个要求。

  • 主 資深大佬 : zu1k

    在查询更多资料后,发现匿名也是有多种标准,有不泄露 ip 的,还有即使泄露 ip 但假定无法追溯身份的

  • 資深大佬 : niubee1

    这样子聊天, 你得有很好的耐心, 不然会很想死

  • 主 資深大佬 : zu1k

    @azh7138m 我感觉应该不让直接接入 tor,但是那种多级匿名中转的思想应该是所需要的,能不能在不自己维护一个匿名网络的情况下仅依赖于 dht 网络构造一个匿名数据传输方式。

    能够想到一些解决方案,但是最终都有很大的性能问题,也就是实时性完全没办法保证

  • 主 資深大佬 : zu1k

    @niubee1 我哭了,刚刚消息没有发出去,白打了那么多字了。
    目前假定 dht 中节点足够多、dht 网络速度不受限制。但是即使在这种假设下,因为 dht 是 k-v 型,没有 push 方法的话消息的实时性没法保证,目前能想到通过轮询来获取,但是这样现任不够好

  • 資深大佬 : Kiriya

    再加上运营商级 NAT,连接速度够呛

  • 資深大佬 : neqhqrim

    没记错的话,开源分享软件 eMule Xtreme 就有聊天功能,这玩意可以不需要服务器,只开 kad 就可以,据说 DHT 和 kad 是一回事。如果本回帖说的不对的话请主动忽略。

  • 主 資深大佬 : zu1k

    @Kiriya 呢个啥,目前假设网络不受限制,只是在校内玩玩。再说 ipv6 不是在慢慢普及了嘛

  • 主 資深大佬 : zu1k

    @neqhqrim kad 是 dht 的一种具体实现算法,感谢提示,我去看一看这个软件是怎么搞的

  • 資深大佬 : niubee1

    我试过基于几种 p2p 结构的网络来实现匿名 IM,最后发现体验真的是相当的差劲,p2p 网络在几个稳定的 peer 间传输数据还算靠谱,但是如果每个 peer 都不稳定的话,体验就相当的带感了,就类似无人做种的 BT 下载,挂了好几周跟有前列腺疾病一样淅淅沥沥的推进进度,你要在聊天前焚香沐浴等待好友的 peer 上线才能跟他畅快的发消息,如果大家时间都不凑巧,那就呵呵了,你还得给他去个电话或者微信通知他上线…… 那么移动环境下,体验就更感人了……

  • 資深大佬 : Jirajine

    p2p 怎么不能用了,通过 dht 寻找节点,通过其他节点中转建立连接,连接双方都不知道对方的 ip 地址,再配合端到端加密应该能满足要求了,当然体验肯定非常糟糕。

  • 資深大佬 : nguoidiqua

    主可以看看 Zero Net,它是用 DHT 网络传递网页内容,好像也是需要用 Tor 来实现匿名。

    不过你们老师要求的匿名到底是指不公开名字还是不暴露信息来源?

    如果是不暴露来源的话,想不出比较好的办法,不能直接建立连接就只能整个网络去走一遍碰运气。这个困境和彼特币一样,网络小的情况倒还是可用的。或许可以记录下到达的各个路径和节点,排个优先传递路径。

  • 資深大佬 : neqhqrim

    抱歉,可能本人在 11 提供的信息有误,浪费了主的时间本人深表遗憾。

  • 資深大佬 : learningman

    我想到的方法,网络中的每一个节点都需要记录网络中的所有聊天内容。。。太不靠谱了,主就当没看到吧。

  • 資深大佬 : azh7138m

    @Jirajine
    这里要看对匿名的定义
    比如 第三方 /中转节点 是否可信

    一般语境下,认为 Tor 是匿名的,虽然它不是绝对匿名,钓鱼节点足够多的时候,Tor 也很可以说是实名的

    @zu1k
    Tor 在这里起到的作用是,你要对好友隐藏真实 ip,Tox 的设计是只有好友可以获知你的 ip

  • 資深大佬 : nguoidiqua

    最简单的就是类似区块链的公共账本,全网络同步同一个消息库,各取所需。

    时效性取决于网络大小、区块大小还有消息大小,应该能够做到可以聊一聊的程度,虽然比起端对端或是中心化的速度还是差几个数量级。

  • 資深大佬 : ysc3839

    @nguoidiqua Zero Net 不支持 DHT,它用 BT Tracker 来寻找其他客户端,然后用自己的协议通信。

  • 主 資深大佬 : zu1k

    @nguoidiqua dht 上公共账本不好搞,区块链上各种措施下都有分叉,若放到 dht 上,分叉得上天了

  • 資深大佬 : huachuang20

    利益相关,我们正在开发,基于 p2p 网络的匿名和零知的单聊和群聊系统。

  • 資深大佬 : tms

    DHL 这种分布式 k-v 感觉只能类似于广播的形式传递信息,只是对消息进行端到端加密,然后两边约定一个 key 生成模式去轮询,不过 DHT 网络上广播消息进行传递估计效率感人。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具