博客 · 2026年4月5日

Solo2如何在服务器一无所知的情况下建立连接

服务器只做一件事:帮助两台设备找到彼此。然后它就消失了。

服务器了解你什么

让我们从基础开始。Solo2的服务器确切地知道关于你的三件事:你的用户名、你的唯一标识符和你密码的哈希值。哈希是一种不可逆的数学变换——服务器可以验证你的密码是否正确,而不知道密码是什么。你真正的密码只存在于你的脑海中和你的设备上。

仅此而已。服务器不知道你和谁交谈。不知道你有多少个隧道。不知道你联系人的名字。这些信息只存在于你的保险库中,加密存储在你的设备上。即使服务器想打开也做不到。

信箱

想象一面墙上有编号的信箱,就像在老邮局一样。当你的应用想要与某人连接时,它在信箱里留下一张纸条,写着'我想和用户X交谈'。仅此而已。它不说你是谁。不说你想谈什么。只是信箱里的一张纸条。

所有连接到Solo2的应用会定期检查信箱,看是否有人给它们留了纸条。就像去邮局问:'有我的信吗?'。如果你的联系人找到了你的纸条,他们会向服务器请求你留下的IP地址。服务器提供它,然后这个信息立即从内存中删除。它永远不会写入任何磁盘。它只在服务器的内存中存活响应所需的几毫秒。

从那一刻起,服务器消失了

一旦两台设备知道了彼此的地址,它们就直接对话。服务器不再参与。它不转发消息。不存储消息。不知道连接是否建立。不知道持续多长时间。不知道交换了多少消息或消息有多大。

以至于,如果服务器在那一刻关闭,两个用户会继续完全一样地交谈。对话不依赖于服务器。它只是为了让两台设备找到彼此才依赖服务器。一旦连接,服务器就无关紧要了。

对话在开始之前就已经是安全的

当两个人在Solo2中创建隧道时,他们的设备交换公共加密密钥。从那一刻起,每条消息都用接收者的密钥加密——只有接收者才能解密。这发生在任何对话开始之前。密钥从隧道创建的那一刻起就准备就绪。

这就是为什么当两台设备直接连接时,通信已经受到保护。它们不需要协商任何事情。不需要向服务器请求许可。密钥是它们的,在它们的设备上,没有其他人拥有。

这在实践中意味着什么

这意味着任何服务器上都没有你对话的记录。没有可分析的元数据。没有可交给法院命令的历史。没有可入侵的数据库。Solo2的服务器无法交出它没有的东西。而它什么都没有,因为从来就没有过。

下次有人告诉你一个应用'端到端加密你的消息'时,问问其他一切怎么样了。谁知道你和谁交谈。谁知道什么时间。谁知道多频繁。如果答案是'我们的服务器,但我们不会用它做坏事'——那是一个承诺。在Solo2中,答案不同:没有人知道。因为没有人可以问。