Bitsocial과 Reticulum
Reticulum은 LoRa 무선기, 패킷 라디오, 시리얼 링크, Wi-Fi, 이더넷, TCP, UDP, I2P 등 사용할 수 있는 어떤 전송 매체 위에서든 네트워크를 구축하기 위한 암호학 기반 네트워킹 스택입니다. Bitsocial과 함께 거론되는 이유는 둘 다 중간에 끼어 있는 회사를 없애기 때문입니다. 다만 그 일을 서로 다른 계층에서 하므로, 둘은 경쟁 관계라기보다 서로를 보완하는 관계입니다.
서로 다른 계층
Reticulum은 네트워크 계층을 대체합니다. IP 주소, DNS, 인증 기관, 계정 없이도 애플리케이션에 암호화되고 라우팅 가능한 엔드포인트를 제공하며, 500바이트 MTU에 초당 5비트밖에 되지 않는 느린 링크에서도 계속 동작하도록 설계되었습니다. 게시물이나 커뮤니티, 모더레이션은 정의하지 않습니다. 그런 기능은 그 위에 만들어지는 애플리케이션이 더합니다.
Bitsocial은 소셜 프로토콜입니다. 일반 인터넷 연결을 통해 IPFS/libp2p 스택 위에서 동작하고 브라우저 탭에서도 실행되며, 커뮤니티와 게시물, 그리고 커뮤니티별 스팸 방지 챌린지를 정의합니다. P2P 프로토콜과 브라우저 피어 투 피어를 참고하세요.
Bitsocial의 스택에 대입하면 Reticulum은 Bitsocial 프로토콜의 자리가 아니라 대략 libp2p의 자리에 들어갑니다.
Reticulum의 동작 방식
- 신원. Reticulum 신원은 512비트 키 세트로, 암호화용 X25519 키와 서명용 Ed25519 키로 이루어집니다.
- 목적지. 애플리케이션은 목적지를 만들고, 각 목적지는 16바이트로 잘라 낸 SHA-256 해시로 주소가 지정됩니다. 패킷에는 출발지 주소가 담기지 않습니다.
- 어나운스. 목적지는 어나운스를 보내야 도달 가능해집니다. 전송 노드는 어나운스를 전달하면서 거꾸로 돌아가는 다음 홉을 기억하므로, 어떤 노드도 네트워크 전체의 지도를 가질 필요가 없습니다.
- 암호화. 트래픽은 기본적으로 암호화되며, 임시 키와 순방향 비밀성을 사용합니다.
- LXMF. LXMF 메시징 계층은 서명된 메시지와 직접 전달을 제공하고, 오프라인 상태인 수신자를 위해 전파 노드를 거치는 저장 후 전달 방식을 더합니다.
이런 방식으로 만들어진 애플리케이션으로는 메시징용 Sideband, 그리고 메시징과 페이지 호스팅을 위한 Nomad Network가 있습니다. Reticulum 매뉴얼은 프로그램 목록을 관리합니다.
비교
| 질문 | Reticulum | Bitsocial |
|---|---|---|
| 무엇인가 | 네트워킹 스택 | P2P 소셜 프로토콜과 앱 |
| 설계 대상 | 느린 무선 링크까지 포함한 모든 전송 매체 | 브라우저 탭을 포함한 인터넷 연결 |
| 신원 | X25519 및 Ed25519 키 세트 | 사용자와 커뮤니티를 위한 Ed25519 키페어 |
| 주소 | 신원과 애플리케이션 이름의 해시 | 커뮤니티 공개 키의 해시 |
| 피어 찾기 | 전송 노드가 퍼뜨리는 어나운스 | HTTP 라우터가 공급자 피어를 돌려줌 |
| 소셜 기능 | Nomad Network 같은 애플리케이션이 추가 | 커뮤니티, 게시물, 답글, 모더레이션이 프로토콜에 포함됨 |
| 스팸 방지 | 인터페이스별 어나운스 속도 제한, 수신자나 노드가 요구할 수 있는 LXMF 작업 증명 스탬프 | 게시물이 받아들여지기 전에 거치는 커뮤니티별 챌린지 |
| 오프라인 전달 | LXMF 전파 노드가 메시지를 저장했다가 전달 | 피어가 커뮤니티의 최신 상태를 계속 제공하지만, 게시하려면 커뮤니티 노드가 온라인이어야 함 |
Bitsocial을 Reticulum 위에서 실행할 수 있을까?
현재로서는 불가능합니다. Bitsocial에는 Reticulum 전송 계층이 없고, 데이터 모델도 인터넷 수준의 대역폭을 전제로 합니다. 클라이언트는 피어에게서 커뮤니티 메타데이터와 게시물 콘텐츠를 가져오고 pubsub 메시지를 주고받는데, 이런 방식은 500바이트 패킷과 초당 수 비트에서 수 킬로비트 수준의 처리량을 전제로 만들어진 링크에는 잘 맞지 않습니다.
현실적인 경로는 이보다 좁습니다. 연결이 끊겨 있는 동안에는 로컬 메시 위에서 동작하다가, 인터넷에 접속된 피어나 게이트웨이에 닿을 수 있게 되면 더 넓은 Bitsocial 네트워크와 동기화하는 클라이언트입니다. 이는 프로토콜을 바꾸는 일이 아니라 새로운 클라이언트와 브리지를 만드는 일이며, 현재 로드맵에는 없습니다.
개발자를 위한 참고 사항
Reticulum은 Reticulum 라이선스로 배포됩니다. MIT 스타일 조건에 두 가지 제한을 더한 라이선스입니다. 이 소프트웨어는 사람에게 해를 끼치도록 설계된 시스템에 사용하거나, AI 또는 머신러닝 학습 데이터셋을 만드는 데 사용할 수 없습니다. Reticulum 코드를 Bitsocial 앱에 포함하기 전에 라이선스를 읽어 보세요.
참조 구현은 Python으로 작성되어 있습니다. Reticulum 메인테이너들은 Reticulum과 LXMF의 비공식 포팅 중 여러 개가 기계로 생성되었으며, 자신들이 보기에 효력이 없는 라이선스 주장을 담고 있다고 경고합니다. 따라서 참조 구현이나 매뉴얼에 나열된 프로그램을 우선 사용하세요.