构想:为了打破垄断,想做一个开源的产权去中心化的即时通讯开源项目

2022-04-20 11:07:29 +08:00
 soyojoearth
昨天微信差点被封,于是我突发奇想,希望发起或参与这样一个开源的项目:

1 、一个相当于去中心化的微信,任何服务器完蛋都不会影响系统的功能;
2 、没有任何人控制该系统全部,没有任何人可以恶意干涉内容;
3 、传输管道加密,点对点加密,朋友圈内容也加密;
4 、App 分发自由,Android 和 iOS 全开源,任何人都可以打包、发布,只要协议一致就可以互通;
5 、服务器代码全开源,也有 Docker 封装,简单一键安装便形成一个节点;
6 、各服务器产权分布式归属,且该系统协议上没有特征,内容不受恶意干涉、避免恶意攻击扫描;
7 、商业上可持续,可以通过广告、群社区经营实现盈利;


我花了 1 天推敲了各技术实现基本思路,还画了架构图。(再这里放图链接就提示我需要注册满 30 天)
架构图在 github 项目 /soyojoearth/freechat 首页

这些需要用到的技术不复杂,但是工作量非常大,希望能有多人参与。
大家觉得怎么样?
13805 次点击
所在节点    奇思妙想
191 条回复
soyojoearth
2022-04-21 16:45:45 +08:00
Matrix 还是没解决问题,虽然它的各节点是联邦制、去中心但互通,不过因为它的账号是绑定在节点上的,节点如果连不上,就无法通信,需要重新到别的节点注册账号(或者翻墙,但一翻墙,这个话题构想就没意义了)。

如果 Matrix 有了账号迁移功能,那么节点连不上换一个,然后又和全联邦连着一起了,那就是真正的去中心化了。
在我的架构图上,账号是保存在客户端的自签名证书,不依赖服务器。
soyojoearth
2022-04-21 16:45:55 +08:00
Matrix 还是没解决问题,虽然它的各节点是联邦制、去中心但互通,不过因为它的账号是绑定在节点上的,节点如果连不上,就无法通信,需要重新到别的节点注册账号(或者 FQ ,但一 FQ ,这个话题构想就没意义了)。

如果 Matrix 有了账号迁移功能,那么节点连不上换一个,然后又和全联邦连着一起了,那就是真正的去中心化了。
在我的架构图上,账号是保存在客户端的自签名证书,不依赖服务器。
brust
2022-04-21 17:18:12 +08:00
@soyojoearth #88
那挺厉害的 我以为你说一台服务器就叫去中心化
开源记得贴地址我去看看
libook
2022-04-21 17:44:07 +08:00
微信的垄断在于想联系的人都只能用微信联系,你自己可以迁移到其他平台,但很难影响别人也迁移到其他平台。
希不希望被干涉,其实是分场景的,自己作为通信的主导者的时候肯定希望不被干涉,但自己作为被动者的时候可能会需要被干涉的,比如被骗子骚扰和被喷洒式网暴。
现在技术侦查能力是很强的,去中心化的东西也都有追踪方案,只是资源有限,只搞那些值得关注的而已,这块从来都不是法外之地。

技术不能解决所有问题,尤其是本身和社会学沾边的东西,社会学问题只能通过政治来解决,技术可以作为辅助工具。

如果只是想做个去中心化的聊天工具,觉得应该还蛮好玩的,只不过距离实用性可能会有较大的距离,而且目前去中心化的通信工具已经有不少了,上面楼也说了很多。
icyalala
2022-04-21 18:00:56 +08:00
每隔一段时间 V2 就有人想要写 IM ,
国内有法律: http://www.cac.gov.cn/2014-08/07/c_1111983456.htm
http://news.cntv.cn/2014/08/07/ARTI1407405130594677.shtml

首先如果你想盈利,就需要办 ICP 许可证。
其次 IM 注册需要后台实名,要有日志记录和举报功能,举报后要及时处理。
你做出来没这些东西的话,国内各大 Store 都不给你上。
yaott2020
2022-04-21 18:03:50 +08:00
审查这两个字就可以让这类软件在国内死透
soyojoearth
2022-04-21 20:27:04 +08:00
@icyalala 谢谢,既然法律已经禁止,且立了高门槛,那只好作罢。就连 Matrix 阉割掉点对点加密也很难在国内上线。

谢谢大家的回复!

看来,还是花力气劝人用 tg 、ins 、twitter 比较简单!

正好 ss 十周年,感谢 ss 作者!
AlphaTauriHonda
2022-04-22 09:35:44 +08:00
@soyojoearth 别劝人用 Twitter 。
Twitter 已经成了美国极左的 commie 利用审查制度和 CRT 压迫美国人,美国基督徒和破坏美国宪法的邪恶工具了。
meeop
2022-04-22 16:29:54 +08:00
这类问题目前最优解是大家都去使用一个外国人在外国提供的服务即可
liuser666
2022-04-23 09:38:10 +08:00
@AoEiuV020CN 为什么不能给内网邻居节点发加密的通讯包,比如 80 端口,然后建立 DHT 网络呢?
AoEiuV020CN
2022-04-23 09:52:29 +08:00
@liuser666 #150 门槛太高,这软件得多密集了才能用上内网邻居?在这之前怎么办?假设人人都有安装的话多的是线下连接的手段,不值得现在讨论,
a132811
2022-04-23 15:03:58 +08:00
十多年前我跟你有一样的想法,我的签名就是“不用 QQ ,请用 pidgin 以及 gtalk 找我”,那时更垃圾更封闭的微信还没有出来

Decentralized IM 方案有很多,你应该也搜索到不少了,甚至还有各种各样的去中心化、去基站、无网络点对点通信方案。

技术上没有任何问题,你自己马上就可以部署一套

支持你搞一个,不过建议你先调查一下大家现在用微信的痛点在哪里?
用户不会关心 app 是不是垄断,为什么用微信会被封?为什么用你的 IM 不会被封?为什么我不可以用 tg ?能解决吗?
suoduma
2022-05-09 13:37:39 +08:00
能留个联系方式吗,和我想法不谋而合,可以合作一下,我的 v:liba9518
wgsgyes
2022-07-01 08:57:17 +08:00
基于邮件协议 IMAP 的 delta chat 和 spikenow.com 基本实现了楼主的想法,并且墙内是可用的
Joker123456789
2022-08-17 15:26:46 +08:00
@AoEiuV020CN 谁说一定要固定的? 你不会自己搭节点吗?
AoEiuV020CN
2022-08-17 16:22:49 +08:00
@Joker123456789 #155 半年前的帖子了怎么还在回复,
你自己搭的节点想和别人的节点通信总要有一个入口能上传你的节点下载别人的节点信息吧,
那这个入口总得是固定的吧,不是的话总得有一个固定的入口来交换这个动态的入口信息吧,
就这道理,必须要有一级是固定的,没办法全部都是动态的,只要封杀这个固定的节点就可以,
除非你去推特发布入口节点信息让用户自己复制粘贴输入,这样的话“推特”就是固定的入口,封杀推特就行了,
Joker123456789
2022-08-18 14:47:24 +08:00
@AoEiuV020CN 谁告诉你是一个入口的? 你先好好了解下区块链再说吧,不要用传统的 web 来理解这东西。
AoEiuV020CN
2022-08-18 14:57:05 +08:00
@Joker123456789 #157 你要反驳麻烦说点有用的,别张口你不懂,
比如你说说,哪个区块链技术的哪个的软件是没有写死固定入口的?它是怎么获取其他节点信息的?
Joker123456789
2022-08-18 15:01:53 +08:00
@AoEiuV020CN 所有区块链的节点 都不需要固定去连某个入口,只要连上任意的一个或多个节点即可,连上以后你这个节点就可以接入整个网络了。

客户端也一样,访问任意节点即可,只是为了开发者方便 所以出现了 提供固定入口的服务商。

你觉得 1+1=2 这种基础知识 我有耐心教你吗? 还让我说的有用的,你给学费了吗?一分钱不给就想让我从基础开始教你啊? 你如果不信 那就自己了解吧。
AoEiuV020CN
2022-08-18 15:07:26 +08:00
@Joker123456789 #159 好吧你是在反驳我说的“一个”,确实没注意这个,在我看来一个怎么处理多个就怎么处理,这没什么区别,所以我就直接说“一个”了,你把我说的“一个”批量替换成“一个或多个” 或者 “至少一个” 不影响我的观点,

比如我说点具体的,
最原始的 bitcoin core ,源码中写死了几个地址,
vSeeds.emplace_back("seed.bitcoin.sipa.be."); // Pieter Wuille, only supports x1, x5, x9, and xd
vSeeds.emplace_back("dnsseed.bluematt.me."); // Matt Corallo, only supports x9
vSeeds.emplace_back("dnsseed.bitcoin.dashjr.org."); // Luke Dashjr
vSeeds.emplace_back("seed.bitcoinstats.com."); // Christian Decker, supports x1 - xf
vSeeds.emplace_back("seed.bitcoin.jonasschnelli.ch."); // Jonas Schnelli, only supports x1, x5, x9, and xd
vSeeds.emplace_back("seed.btc.petertodd.org."); // Peter Todd, only supports x1, x5, x9, and xd
vSeeds.emplace_back("seed.bitcoin.sprovoost.nl."); // Sjors Provoost
vSeeds.emplace_back("dnsseed.emzy.de."); // Stephan Oeste
vSeeds.emplace_back("seed.bitcoin.wiz.biz."); // Jason Maurice

只要把这几个地址全部封杀了,这个软件就用不了了,对不对,
如果换了其他地址,继续封杀就是了,总有这么“至少一个”入口是只能写死的,大家都能看到的,也可以被封杀的,

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

https://yangjunhui.monster/t/848089

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

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

© 2021 V2EX