准备模仿某洋葱做一个 P2P 的匿名网络

2014-12-14 13:03:30 +08:00
 noli
打算基于UDP再发明一个传输层:好处是不用再担心虚假的RST。

然后网络节点之间加上认证机制:
具体来说就是,每个节点为其他节点提供服务的时候,之间的往来报文必须提供某种数字签名,以防止大量的虚假节点破坏P2P网络功能。

实现以后大家就可以不用买域名啦!
7416 次点击
所在节点    程序员
47 条回复
ryd994
2014-12-16 08:23:53 +08:00
@noli 匿名网络如果有足够的蜜罐,还叫什么匿名,而且我可以用大量假节点耗尽你可用的流量,让需要用的人用不了,这两点要做到的话,成本远没你想象的高
noli
2014-12-16 13:13:23 +08:00
@ryd994 我来归纳一下你的思路逻辑:

匿名网络会照顾新人->新节点有蜜罐->新节点可以吸血->网络功能被损害,正常节点利益受损 。。。
是这个意思吗?
我怎么觉得有点太想当然了呢?
ryd994
2014-12-16 15:21:09 +08:00
@noli 不是故意照顾新人,而是你不能不给新人启动信用
只要你给了,那就可以无限刷新人来吸血
不一定是个人行为,国家机关完全有动机和有能力这样做
事实上无论是p2p下载还是tor,这种情况都出现了
你验证来源的做法没有解决tor的根本性问题
noli
2014-12-16 15:54:10 +08:00
@ryd994 你的担心是有道理,但是解决这种问题其实很简单。

我就随便想一个信任度评分函数出来吧,当然不一定最后就是这样的函数。

设对某个节点A的信任度评分函数 f(n,t,p) = (n^2 + k)/t^2 + g(p),其中 n 是提供交换节点信息服务的次数,t是距离初次进入节点名单的时间长度;p 是提供代理服务的次数,g(p) 是根据代理服务次数换算成积分的函数。只要身份是可验证的,n 和 t 都是可以得到的。

新节点的 p 为0,因为信任进入名单的时间很短,所以只要提供足够多的服务,信任度可以上升得很快;但反之,过了一段时间之后如果提供给邻居的服务不够多,那么信任度就会掉到很低了。

再假设,如果积分低于 s1 的时候排除出节点记录,积分高于 s2 的时候可以为A节点提供代理服务。
只要令 s1 < s2 那么就有一个合理的区间让 新节点有启动的信用,但又要求节点为他人服务一段时间之后才能要求代理服务。

你觉得这样子大量制造新节点能吸到什么血吗?
ryd994
2014-12-17 01:21:52 +08:00
@noli 那么问题来了:如果是这个样子,结果必定是上传带宽大而且挂机时间多的人得到服务。要么就是s2太低无法起到增加伪造成本的作用,要么就是s2太高导致大多数人即使长期挂机也得不到服务(还是那句话,国内大多数人的上传带宽捉鸡)。如果我有恶意,租一台服务器挂机,做成蜜罐,那我得积分的效率将是很多人的数百倍,而且成本不算高(特别是对有心审查/搞破坏的人)。这就是为什么p2p在国内一直不算热的原因。不是用户想吸血,而是不吸血根本没速度。
noli
2014-12-19 00:38:26 +08:00
@ryd994 其实说白了就是,你觉得不可能有足够聪明的信任度评分算法,只会有极端的结果。我明白你的意思了,谢谢你的关注。
noli
2015-02-17 21:59:16 +08:00
@ryd994 今天又回来review了一下这个主题,突然想补充告诉你,也当做是自己做一个笔记。
信任度算法不是跟消息交换频率或者流量直接相关的,你之前说的那些蜜罐啊什么的,我猜你提出是类似于基于货币交换中存在的诈骗问题;但是我设想中的信任度算法可能会加入类似“边际效用递减”、和“惧怕损失”。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/153816

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX