본문으로 건너뛰기

Bitsocial과 Secure Scuttlebutt

Secure Scuttlebutt(SSB)는 2014년 Dominic Tarr가 만든 P2P 소셜 프로토콜입니다. Manyverse는 SSB에서 가장 잘 알려진 앱으로 Android, iOS, 데스크톱용으로 나와 있으며, Patchwork는 아카이브되기 전까지 주요 데스크톱 클라이언트였습니다. 이 문서에서 비교하는 시스템 가운데 SSB는 지향점이 Bitsocial과 가장 가깝습니다. 데이터 경로에 서버가 없고, 블록체인도, 전역 순서도 없으며, 신원에는 Ed25519 키를 씁니다. 하지만 각 피어가 무엇을 저장하는지, 그리고 스팸을 어디에서 막는지에 대해서는 둘이 정반대의 선택을 했습니다.

Scuttlebutt의 동작 방식​

  • 피드. 각 신원은 @<public key>.ed25519 형식으로 표기되는 Ed25519 키페어입니다. 사용자가 발행하는 모든 것은 자기 피드에 들어갑니다. 피드는 추가 전용 로그로, 서명된 각 메시지에는 시퀀스 번호와 이전 메시지의 해시가 담깁니다. 프로토콜 가이드에 따르면 한 번 게시된 메시지는 수정할 수 없습니다.
  • 복제. 피어는 개별 게시물이 아니라 피드 전체를 복사하며, 피어가 어떤 피드를 보관할지는 팔로우 그래프가 정합니다. 예를 들어 Patchwork는 두 홉 거리까지의 피드를 표시하고 세 홉 거리까지의 피드를 복제했습니다. 에피데믹 브로드캐스트 트리(EBT)를 쓰면 피어들은 각 피드에 대해 자신이 가진 최신 시퀀스 번호를 비교하고 빠진 부분만 보냅니다.
  • 연결. 피어는 secret handshake로 서로를 인증하고 box stream으로 트래픽을 암호화합니다. 핸드셰이크는 네트워크 식별자를 키로 삼기 때문에, 식별자가 다른 별도의 SSB 네트워크에 있는 피어는 메인 네트워크에 연결할 수 없습니다.
  • 피어 찾기. 피어는 로컬 네트워크에서 UDP 브로드캐스트로 자신을 알리고 LAN으로 동기화하며, Manyverse는 Bluetooth로도 동기화합니다. 인터넷을 거칠 때 사용자는 pub에 의존합니다. pub은 항상 온라인 상태인 피어로, 사용자가 초대 코드를 사용하면 그 사용자를 맞팔로우한 뒤 사용자의 피드를 저장하고 제공합니다. 또 하나는 room으로, 피드는 저장하지 않지만 멤버 사이의 연결을 터널링해 줍니다.
  • 블롭과 비공개 메시지. 이미지와 기타 파일은 피어에게서 가져오는 콘텐츠 주소 기반 블롭이며, 현재 구현에서 기본 크기 제한은 5 MB입니다. 비공개 메시지는 최대 7명의 수신자를 대상으로 암호화되어 작성자의 피드에 암호문으로 발행됩니다.

차이점​

피어가 저장하는 것​

SSB 피어는 복제 범위 안에 있는 모든 피드의 전체 사본을 각 피드의 첫 메시지부터 보관하고, 그 피드들을 다른 피어에게 제공합니다. 덕분에 SSB는 오프라인에서도 동작하지만, 범위 안의 메시지가 늘어날 때마다 저장 공간도 커지고, 새로 설치한 앱은 그 피드들을 내려받기 전까지 보여줄 것이 별로 없습니다. Bitsocial 클라이언트는 자신이 여는 커뮤니티의 최신 상태를 커뮤니티의 노드와 그 커뮤니티를 시드하는 피어에서 가져오며, 네트워크는 그 최신 상태만 보관합니다. P2P 프로토콜을 참고하세요.

삭제와 기기​

피드는 해시 체인이기 때문에 SSB에는 네트워크 전체에 걸친 삭제가 없습니다. 피어는 자기 데이터베이스에서 메시지를 지울 수는 있지만, 다른 피어가 가진 사본에서 그 메시지를 회수할 수는 없습니다. 같은 키로 두 기기에서, 또는 복원한 백업에서 게시하면 피드가 포크되므로, 보통은 기기마다 신원을 하나씩 두는 것으로 해결합니다. Manyverse 팀이 만든 후속 프로토콜 PZP는 SSB와 달라진 주요 변경점으로 삭제, 계정 하나에 여러 기기, 포크를 견디는 피드를 꼽습니다(출시 글). Bitsocial 커뮤니티 노드는 갱신할 때마다 커뮤니티 상태의 새 버전을 발행하므로, 모더레이터가 삭제한 콘텐츠는 최신 상태에서 빠집니다.

누구의 글을 받아볼 수 있는가​

SSB의 복제 범위는 스팸 필터 역할도 겸합니다. 낯선 사람의 피드는 내 홉 범위 안의 누군가가 그 사람을 팔로우할 때에만 나에게 도달하고, 피드를 차단하면 내 노드는 그 피드를 더 이상 복제하지 않습니다. 스팸은 들어오지 못하지만, 누군가 팔로우해 주기 전까지는 새로 온 사용자도 들어오지 못합니다. Bitsocial은 누구나 커뮤니티에 게시할 수 있게 하고, 게시물을 받아들일지는 커뮤니티의 노드가 챌린지를 통해 결정합니다. 맞춤형 스팸 방지 챌린지를 참고하세요.

커뮤니티​

SSB에는 커뮤니티 객체가 없습니다. 채널과 해시태그는 개별 게시물에 붙는 라벨이고, 스레드의 답글은 그 답글을 쓴 사람 각자의 피드에 있으며, 스레드를 얼마나 볼 수 있는지는 내 노드가 그 피드 중 어떤 것을 가지고 있느냐에 달려 있습니다. room에는 모더레이터와 멤버 목록을 둘 수 있지만, 이들이 통제하는 것은 누가 room을 통해 연결할 수 있느냐이지 무엇이 발행되느냐가 아닙니다. Bitsocial 커뮤니티는 자체 키페어, 규칙, 모더레이터, 챌린지를 갖춘 일급 객체입니다.

인프라​

둘 다 데이터 경로에서 서버를 배제하고, 둘 다 보조 역할을 하는 구성 요소에 기댑니다. SSB에서 호스팅 서비스에 가장 가까운 것은 pub으로, 자신이 팔로우하는 모든 사람의 피드를 저장하고 제공합니다. room은 콘텐츠를 저장하지 않는다는 점에서 Bitsocial의 HTTP 라우터에 더 가깝습니다. 다만 room은 멤버 사이의 연결을 중계하는 반면, 라우터는 공급자 주소만 돌려줄 뿐 전송에는 전혀 관여하지 않습니다. SSB 피어와 마찬가지로 Bitsocial 커뮤니티 노드도 일반 소비자용 하드웨어에서 돌아가며, 새 게시물을 받아들이려면 온라인 상태여야 합니다.

오프라인과 로컬 네트워크​

이 부분에서는 SSB가 더 강합니다. 같은 Wi-Fi 네트워크에 있거나 Manyverse에서 Bluetooth로 연결된 두 SSB 피어는 인터넷 연결 없이도 동기화할 수 있고, 이미 복제된 내용은 오프라인에서도 모두 계속 읽을 수 있습니다. Manyverse가 내세우는 1차 목표는 소셜 네트워킹을 인터넷 연결 여부로부터 독립시키는 것입니다. Bitsocial은 피어를 찾고 게시하려면 인터넷 연결이 필요합니다.

브라우저​

주요 SSB 앱은 완전한 SSB 노드를 함께 탑재합니다. Manyverse는 모바일 앱과 데스크톱 앱에 SSB 노드를 내장하고 있습니다. ssb-browser-demo는 부분 복제와 room을 통한 연결로 브라우저 안에서 SSB를 실행했으며, 2022년에 아카이브되었습니다. Bitsocial 앱은 일반 브라우저 탭 안에서 P2P 노드를 실행합니다. 브라우저 피어 투 피어를 참고하세요.

비공개 메시지​

SSB에는 암호화된 비공개 메시지가 내장되어 있습니다. Bitsocial은 공개 커뮤니티에 집중하며, 아직 네이티브 다이렉트 메시지가 없습니다.

프로젝트 현황​

Manyverse를 만든 André Staltz는 2024년 4월 SSB와 Manyverse, 그리고 계획 중이던 후속 프로토콜에서 손을 뗐습니다(마지막 업데이트). 2024년 7월 Jacob Karlsson은 그 후속 프로토콜을 PZP라는 이름으로 출시하면서, 자신은 더 이상 Manyverse 작업을 하지 않을 것이며 그럴 계획인 다른 사람도 알지 못한다고 밝혔습니다. 2026년 10월 기준으로 Codeberg의 PZP 저장소에는 2024년 12월 이후 업데이트가 없었습니다. Patchwork 저장소는 v3.18.1을 마지막 릴리스로 남긴 채 아카이브되었고, iOS용 SSB 앱 Planetary를 만든 팀은 2023년 Nos 앱과 함께 Nostr로 옮겨 갔습니다. SSB 네트워크는 사람들이 온라인으로 유지하는 피어와 pub 위에서 여전히 돌아가지만, 주요 앱은 더 이상 개발되지 않습니다.

비교​

질문Secure ScuttlebuttBitsocial
분류P2P 가십 프로토콜P2P 커뮤니티 네트워크
신원기기당 Ed25519 키페어 하나사용자와 커뮤니티를 위한 Ed25519 키페어
게시물 저장 위치작성자의 추가 전용 피드, 이를 복제하는 모든 피어가 사본을 보관커뮤니티 소유자의 노드와, 그 커뮤니티를 읽고 시드하는 피어
피어가 보관하는 것팔로우 범위 안 모든 피드의 전체 기록자신이 읽거나 시드하는 커뮤니티의 최신 상태
커뮤니티커뮤니티 객체 없음, 채널과 해시태그가 게시물에 라벨을 붙임자체 노드가 게시물을 수락하거나 거부하는 일급 객체
스팸 방지팔로우 그래프 기반 복제 범위와 차단게시물이 받아들여지기 전에 거치는 커뮤니티별 챌린지
모더레이션각 사용자의 팔로우와 차단커뮤니티 소유자가 자기 커뮤니티를 모더레이션하고, 무엇을 보여줄지는 앱이 선택
보조 서버pub이 피드를 저장·제공하고, room이 연결을 터널링HTTP 라우터가 공급자 피어를 돌려주며 콘텐츠는 저장하지 않음
오프라인인터넷 없이 LAN과 Bluetooth로 동기화인터넷 연결 필요
브라우저앱이 완전한 SSB 노드를 내장일반 브라우저 탭 안에서 동작하는 P2P 노드
네트워크운영 중이지만 주요 앱은 더 이상 개발되지 않음5chan, Seedit 같은 앱이 있는 운영 중인 네트워크
주요 절충오프라인에서 동작하고 호스팅이 필요 없지만, 피드가 끝없이 커지고 낯선 사람은 보이지 않음개방형 게시와 브라우저 지원, 그러나 인터넷이 필요하고 최신 상태만 보관