V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
imdong
V2EX  ›  奇思妙想

从技术角度讲,是否有可能建立(或已经有)类似 P2P + Tor 的匿名聊天/邮件工具?

  •  
  •   imdong · 2020-05-22 13:53:41 +08:00 · 3726 次点击
    这是一个创建于 1653 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一直有一个想法,就是每个人生成一个自己的 RSA 密钥对 即可创建一个账户,公网上公开自己的 密钥签名,并且加入到这个 P2P 的网络中来。

    应该是可以和 BT 下载的 DHT 一样,完全去中心化,可以有公共的 Tracker,但每个人又都是 Tracker,相互交换自己已经获取到的 其他用户 / Tracker 的连接信息。

    当 A 需要发送信息给 B 时,使用自己的私钥对信息加密签名,然后把接收人的公钥指纹和加密的信息打包在一起,然后将打包后的数据广播给自己可以连接的用户。

    每个用户接收到别人投递的包裹时,如果收件人不是自己,则再次广播给自己的其他用户,直到信息被收件人签收,也许会和 “六度空间理论” 一样,经手 6 个人就可以到达收件人手中。

    为了激励用户,并且减少 “广播风暴”(是这个词么?),应该加入类似 TTL 的过期制度,或者使用金钱作为奖励,如果链路连接成功,则将奖励平均分给成功的链路中所有参与的用户,如果平均奖励低于最低单位时,丢弃信息。

    但是似乎这样发送效率会挺低的,并且垃圾信息会很多,可以考虑把自己的指纹隐藏一部分然后与其他人交换。

    例如:"63BA2ACA57F35E34B52153F9FA217BF1" => "6------A---35----5--5--------B-1";

    每个人收到信息后,优先将邮件转发给指纹比较相近的若干人,也许能减少。

    漏洞挺多的,但感觉挺有意思的😂理性讨论,不要喷我哈,暂不考虑政策问题。

    17 条回复    2020-06-04 12:40:05 +08:00
    catror
        1
    catror  
       2020-05-22 13:55:30 +08:00 via Android
    tox 了解一下
    imdong
        2
    imdong  
    OP
       2020-05-22 14:20:47 +08:00
    @catror 研究了一下,是 P2P 对等聊天工具,没有包含 Tor 属性,不能隐藏自己的 IP,但有提到有人使用 Tor 隐藏自己。

    隐私上足够了,只是 Tor 好像没办法实现 P2P ?
    catror
        3
    catror  
       2020-05-22 16:12:31 +08:00 via Android
    @imdong 要 Tor 属性的话,可以 Tox over Tor,官网有配置指引
    jimmyismagic
        4
    jimmyismagic  
       2020-05-22 20:30:23 +08:00
    tok, telegram, keybase, 等等
    jimmyismagic
        5
    jimmyismagic  
       2020-05-22 20:35:40 +08:00
    再参考下 grin,一种是通过蒲公英,另外一种是 tor,tor 当然可以 p2p,点对点加密聊天原理其实很简单,至于激励,你说的那种方式不太可能,必须用到区块链的激励制度,这种方式下并不是你帮忙传播就能得到激励的,事实上 p2p 不需要激励,就像 tcp 一样
    swulling
        6
    swulling  
       2020-05-22 21:38:30 +08:00 via iPad
    直接建一个 smtp 服务器,然后用 tor 网络发出去不就行了。

    email 本身就是 p2p 的系统,唯一需要解决的是匿名。
    wzzzx
        7
    wzzzx  
       2020-05-22 22:59:49 +08:00
    脑洞挺不错的丫
    AngryPanda
        8
    AngryPanda  
       2020-05-22 23:01:27 +08:00 via Android
    类似 dht 网络的翻墙方案应该不错
    cnt2ex
        9
    cnt2ex  
       2020-05-23 08:59:29 +08:00
    @AngryPanda i2p 差不多就是这样
    cnt2ex
        10
    cnt2ex  
       2020-05-23 09:13:31 +08:00
    >每个用户接收到别人投递的包裹时,如果收件人不是自己,则再次广播给自己的其他用户,直到信息被收件人签收,也许会和 “六度空间理论” 一样,经手 6 个人就可以到达收件人手中。
    可以参考 tor 或者 i2p 的做法。
    比如 A 和 B 之间的通信,B 会事先找一个节点 C,和 C (通过匿名的方式)建立连接,然后 B 在 dht 里存要找 B 的话去找 C,之后 A 如果想和 B 通信,A 会查 dht 得到这个信息,然后 A 和 C (通过匿名方式)建立连接,这样 A 和 B 就能通信了。
    wangbudong
        11
    wangbudong  
       2020-05-23 10:07:50 +08:00
    @cnt2ex 这个人不在线是否一直广播,还是只广播 6 次
    cnt2ex
        12
    cnt2ex  
       2020-05-23 10:34:45 +08:00
    @wangbudong 我那段话是引用楼主的。
    learningman
        13
    learningman  
       2020-05-23 22:20:42 +08:00 via Android
    @cnt2ex 我觉得会变成风暴
    lechain
        14
    lechain  
       2020-05-25 20:54:24 +08:00 via Android
    小杠一下“当 A 需要发送信息给 B 时,使用自己的私钥对信息加密签名,”不应该要用对方的公玥加密吗?🤣自己的私钥加密,你的公玥可是公开了的呀😂
    lechain
        15
    lechain  
       2020-05-25 20:55:59 +08:00 via Android
    个人觉得楼主的想法很有意思,如果能实现,应该会有一定的接受度
    imdong
        16
    imdong  
    OP
       2020-05-25 21:33:02 +08:00
    @lechain 得亏发现的早,不然就算重大漏洞了,这都不是 BUG 这么简单了😂

    应该可以实现,只是效率之类的太多问题需要解决,反正我是没有这个能力的(当下)
    firefox12
        17
    firefox12  
       2020-06-04 12:40:05 +08:00
    关键是激励机制, 别人为什么要帮你广播? 都是 p2p, 谁也不欠谁, 其次是 spam, 如果解决好激励机制,spam 也就不是问题。 任何系统的核心只有一个 利益分配 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2172 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 01:05 · PVG 09:05 · LAX 17:05 · JFK 20:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.