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

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 首页

这些需要用到的技术不复杂,但是工作量非常大,希望能有多人参与。
大家觉得怎么样?
13804 次点击
所在节点    奇思妙想
191 条回复
hertzry
2022-04-20 17:10:55 +08:00
OP 先加油做出来。
AoEiuV020CN
2022-04-20 17:12:24 +08:00
@soyojoearth #51 老板,来个去中心 IM 不要去中心,

如果不同节点之间完全无法通信,我只能通过 QQ 微信或者其他方法让别把他的节点发给我然后切换到相同节点再和他通信,
那这等于已经没有去中心了,而且太难用了,

如果一个节点会发布其他节点的信息,配合用户切换节点以便让用户加入其他节点和别人通信,那就有监管责任,
无关技术细节,功能上是连上了你的服务器就能和所有人通信,那你就要对所有节点所有用户负责,做不到就得封杀你,
soyojoearth
2022-04-20 17:12:32 +08:00
@XiLingHost 好友列表可以在本地保存一份,再加密上传一份到中继服务器进行备份。既然是加密的,中继服务器无法获取各用户的社会关系,这也保证了另一部分隐私。

可以先在技术团队里,公司内部使用。好用自然会吸引其他人来用,毕竟可以轻易建一个隐私聊天群和点对点通信管道。
soyojoearth
2022-04-20 17:14:16 +08:00
@XiLingHost 客户端不能当服务器,除非它的端口暴露在公网上,然后这个客户端变成了“自愿者”中继服务器。
XiLingHost
2022-04-20 17:14:35 +08:00
@soyojoearth 所以你的想法是,类似 ipfs 那样让其它用户帮你存储一部分数据?然后付出类似 filecoin 这种东西提供收益给存储提供方?或者说是你说的“中继服务器”
XiLingHost
2022-04-20 17:15:19 +08:00
@soyojoearth 这根本不是服务器,你了解一下 DHT 网络就知道了
woctordho
2022-04-20 17:16:04 +08:00
@zhenzinian 不是,有些去中心化的应用一开始不需要入口节点,而是直接扫描全网来找到其他用户

还有一些更高效的方法,比如一开始随机生成 DHT 的一部分,就有很大概率在全网的这一部分里找到其他用户

具体可以搜一下 decentralized bootstrapping ,已经有很多研究了
woctordho
2022-04-20 17:19:39 +08:00
@FakNoCNName 这些应用中确实会自然形成中心化的拓扑,关键在于一个中心没了,可以马上换另外一个
soyojoearth
2022-04-20 17:20:32 +08:00
@AoEiuV020CN
1 、节点不用切换,用户 App 申请进入了一堆节点,通信目标在哪个节点上,就自动把消息投送到那个节点,由那个节点转发给通信目标。
2 、并不难用,背后的技术都是对用户隐藏的。用户只要知道“两个人需要共同加入某个群聊服务器,就能开启点对点通信“,便可以知道什么情况不能用,什么情况下能用了。
woctordho
2022-04-20 17:22:03 +08:00
@soyojoearth 对了,你别老是想着做一个单独的服务器,在国内运行一个服务器的门槛就会挡住很多人,不管是在云上还是自建

可以考虑让客户端同时作为服务器,每个人的电脑甚至手机都可以当作服务起
AoEiuV020CN
2022-04-20 17:24:38 +08:00
@soyojoearth #69 那这“一堆节点”的列表是谁来维护?
如果是用户自己一个一个搜集添加的话,光这一点就已经够难用的了,
不管加入了多少个节点,都不能保证我的聊天对象在节点列表里,还是需要其他通信方法交流节点信息,

如果有一个官方身份收集发布节点信息的话, 这个官方一定被封杀,
soyojoearth
2022-04-20 17:24:49 +08:00
@XiLingHost 中继服务器的提供者,是可以靠自己经营聊天群内容来获取广告收益、或者是电商佣金收益,还可以在用户朋友圈插广告。
sun019
2022-04-20 17:28:38 +08:00
这不是 web3 么?
简单点说你这个产品的适用场景是啥?哪些人会用你这东西。
产品都是基于用户需求来了。而不是有个锤子(去中心化,区块链),到处到改变世界的钉子。
如果是企业内部,除非你是老板才能推广下去吧。
XiLingHost
2022-04-20 17:28:49 +08:00
@soyojoearth 那其实你这个东西本质还是联盟化而非去中心化的
soyojoearth
2022-04-20 17:31:06 +08:00
@AoEiuV020CN "一堆节点”的列表没有人维护,是用户自己一个一个加进去的,就像微信上一个个群加入一样。

然后,“保证我的聊天对象在节点列表里面”这个问题,还是要回到这个思路:只有 2 人在同一个“群”里,才能进行点对点通信。一方不小心退出了群,再加回群就好了。

同时,如果聊天对象,是陌生人,不是线下的朋友,那只有通过其他 im 交换信息再加入了。

我肯定不会收集节点信息列表的,这个事情,让用户自己分享吧。
XiLingHost
2022-04-20 17:32:53 +08:00
@soyojoearth 另外你说的这些实际上都是依靠劣化用户体验来获取收益的
那么问题来了,已知现有的 tox 和 retroshare 都可以做到完全的去中心化来抵抗监管压力,因为它们不需要部署所谓的“中继服务器”。同时它们不会干扰用户的体验(比如插入广告),同时它们本身可以做到端到端加密来保证隐私。
你的产品的优势在哪里?为什么认为可以替代现有产品?
运行一个中继服务器除了更容易被有关部门打击我看不出有什么好处
soyojoearth
2022-04-20 17:33:11 +08:00
@XiLingHost 可以说是联盟化,没有中心权威成员。代码是开源的,App 和服务器都可以自己一键搭建,自由构建发布,只要不改变协议,都可以兼容。

如此,事实上就是去中心化。
XiLingHost
2022-04-20 17:33:54 +08:00
@soyojoearth 那你除了可以加广告,和 matrix 有啥区别?
fisherwei
2022-04-20 17:35:53 +08:00
@soyojoearth 技术细节不一样,但基本和你说的是一个东西。

horizen 这个币的节点是鼓励矿工自建的,节点分成 secure 和 super 节点,需要有独立公网 IP ,从每个区块获得 20%(好像是,记不清了)收益。

这个币有很多花里胡哨的功能,比如侧链啥的,其中 zenchat 大差不差就是你说这个东西,这些节点负责 relay chat message 。

全球目前大约有 40000 个 secure node ,4500 个 super node 。

这些节点除了可以 chat ,还可以充当梯子传递其他流量,不过不怎么好用。
soyojoearth
2022-04-20 17:38:19 +08:00
@XiLingHost tox 和 retroshare 没有广告收益,靠一部分节点暴露在了公网上,变成了中继点帮助网络长期存活吗?私人的客户端 pc 作为中继点,网络体验无法保证的。

如果要商业上可持续,不要太抵触广告,虽然有了广告,但保证通信的隐私,有了广告,才能覆盖整体系统的成本。

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

https://yangjunhui.monster/t/848089

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

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

© 2021 V2EX