블로그 · 2026년 4월 5일

Solo2가 서버 모르게 연결하는 방법

서버는 한 가지만 합니다: 두 기기가 서로를 찾도록 돕는 것. 그런 다음 사라집니다.

서버가 당신에 대해 아는 것

기본부터 시작합시다. Solo2의 서버는 당신에 대해 정확히 세 가지를 알고 있습니다: 사용자 이름, 고유 식별자, 그리고 비밀번호의 해시입니다. 해시는 되돌릴 수 없는 수학적 변환입니다 — 서버는 비밀번호가 무엇인지 모르면서도 올바른지 확인할 수 있습니다. 당신의 실제 비밀번호는 머릿속과 기기에만 존재합니다.

그게 전부입니다. 서버는 당신이 누구와 대화하는지 모릅니다. 터널이 몇 개인지 모릅니다. 연락처 이름도 모릅니다. 그 정보는 기기에서 암호화된 볼트 안에만 존재합니다. 서버는 원해도 열 수 없습니다.

우편함

옛날 우체국처럼 번호가 매겨진 우편함 벽을 상상해 보세요. 당신의 앱이 누군가와 연결하고 싶을 때, 상자에 '사용자 X와 대화하고 싶습니다'라는 메모를 남깁니다. 그것뿐입니다. 당신이 누구인지 말하지 않습니다. 무엇에 대해 대화하고 싶은지 말하지 않습니다. 상자 안의 메모일 뿐입니다.

주기적으로 Solo2에 연결된 모든 앱이 우편함을 확인하여 누가 메모를 남겼는지 봅니다. 우체국에 들러 '저한테 온 거 있나요?'라고 묻는 것과 같습니다. 연락처가 당신의 메모를 찾으면 당신이 남긴 IP 주소를 서버에 요청합니다. 서버는 이를 제공하고 그 정보는 즉시 메모리에서 삭제됩니다. 디스크에 기록되지 않습니다. 응답에 필요한 밀리초 동안만 서버의 임시 메모리에 존재합니다.

그 시점부터 서버는 사라진다

두 기기가 서로의 주소를 알게 되면 직접 대화합니다. 서버는 더 이상 참여하지 않습니다. 메시지를 중계하지 않습니다. 저장하지 않습니다. 연결이 성립되었는지 여부를 모릅니다. 얼마나 오래 지속되는지 모릅니다. 얼마나 많은 메시지가 교환되는지, 크기가 어떤지도 모릅니다.

그 순간 서버가 꺼져도 두 사용자는 정확히 같은 방식으로 대화를 계속합니다. 대화는 서버에 의존하지 않습니다. 두 기기가 서로를 찾기 위해서만 서버에 의존했습니다. 연결되면 서버는 무관합니다.

대화는 시작되기 전부터 안전하다

두 사람이 Solo2에서 터널을 만들면 기기들이 공개 암호화 키를 교환합니다. 그 순간부터 모든 메시지는 수신자의 키로 암호화되며 수신자만 복호화할 수 있습니다. 이것은 대화가 시작되기 전에 일어납니다. 키는 터널이 생성되는 순간부터 준비됩니다.

그래서 두 기기가 직접 연결되면 통신은 이미 보호되어 있습니다. 아무것도 협상할 필요가 없습니다. 서버에 허가를 요청할 필요도 없습니다. 키는 그들의 것이고, 그들의 기기에 있으며, 다른 누구도 가지고 있지 않습니다.

실제로 이것이 의미하는 바

어떤 서버에도 대화 기록이 없다는 뜻입니다. 분석할 메타데이터도 없습니다. 법원 명령으로 넘겨줄 기록도 없습니다. 해킹할 데이터베이스도 없습니다. Solo2의 서버는 가지고 있지 않은 것을 넘겨줄 수 없습니다. 그리고 한 번도 가진 적이 없기 때문에 아무것도 없습니다.

다음에 누군가가 앱이 '메시지를 종단 간 암호화한다'고 말하면, 나머지 모든 것은 어떻게 되는지 물어보세요. 누가 당신의 대화 상대를 아는지. 누가 시간을 아는지. 누가 빈도를 아는지. 답이 '우리 서버지만, 나쁜 용도로 사용하지 않습니다'라면 — 그것은 약속입니다. Solo2에서는 답이 다릅니다: 아무도 모릅니다. 물어볼 사람이 없기 때문입니다.