안녕하세요, 큐돈입니다. 오늘은 정말 많은 사람들이 연합우주에 참여한 날인데요, 조금은 불편할 수도 있지만 중요한 이야기를 하려 합니다.

우선, 이 마스토돈/미스키/플레로마를 비롯한 서버들이 ActivityPub 프로토콜로 연결되어 있는 이 세계를 연합우주(Fediverse)라고 합니다. 모르셨을 분들도 계시겠지만 마스토돈만 있는 것은 아니고 서로서로 어느 정도 호환이 되는 서버들이 공통의 언어를 통해 소통하는 것이죠.

마스토돈은 그 중에서도 꽤나 단단하고 안전한 커뮤니티를 만드는 데에 초점이 맞춰져 있습니다. 인용을 답글로 사용하는 어떤 서비스를 보고 인용을 답글로서 동작하지 않게 만들었고, 검색을 통해 남을 괴롭히는 것을 보고 검색을 “내가 개입한 과거"에 한정되도록 하였죠.

하지만 모든 서버가 다 그렇지는 않습니다. 일례로 미스키만 봐도 모든 글(비공개 제외)을 검색 가능하고, 팔로우 하지 않은 채 리스트에 넣어서 공개글이 아닌 unlisted(비표시) 글까지 받아볼 수 있죠. 이것이 잘못된 것은 아니지만, 마스토돈이 바라는 방향과는 거리가 먼 것은 사실입니다.

그 중에서도 서버 소프트를 개조해서 아예 공통의 언어 ActivityPub의 규약을 무시하는 서버들도 있습니다. 이것이 팔로워가 속한 서버를 잘 살펴봐야 하는 이유이기도 한데요, 이 연합우주에서 “차단"이 어떻게 동작하는지를 통해 왜 그런지 알아봅시다.

사용자가 차단할 때

사용자가 사용자를 차단할 때부터 알아봅시다. 로컬의 사용자를 차단하는 건 굳이 말하지 않겠습니다. 단일서버 환경과 동일하니까요. A 서버에 있는 albert 사용자가 B 서버에 있는 bryan을 차단한다고 가정합시다. 연합우주의 공통된 언어에 따르면 albert의 글을 bryan이 볼 수 없고 상호작용도 불가능 해야 합니다. A 서버는 일단 albert가 bryan을 차단했다는 것을 기록합니다. 그리고 이 사실을 B 서버에도 알립니다.

B 서버야, 우리 albert@A가 너희 bryan@B를 차단했어

B 서버는 이를 받고 차단을 처리합니다. bryan이 albert의 프로필을 열람할 수도 없고, albert가 공개글을 쓰더라도 bryan이 보는 모든 타임라인에 뜨지 않습니다.

하지만 만약 B 서버가 아주 못된 서버라면 어떨까요? B 서버는 bryan에게 알려줍니다.

Bryan, A 서버의 albert가 너 차단했대 근데 우린 그냥 albert 글 너한테 보여줄거야

아주 보기만 해도 못된 놈이죠. 이렇게 B 같은 말썽인 서버가 있기에 사용자는 B 서버 자체를 차단해야 하게 됩니다. 그럼 A 서버는 B 서버에 알리지 않는 대신, B 가 물어볼 때 A 서버는 albert라는 사용자는 존재하지 않는다고 답합니다. 이러면 B 서버는 그냥 albert라는 사용자가 계정을 삭제한 것으로 보이고 글도 받아오지 못합니다. 만약 albert가 친구 bobby를 B 서버에 데리고 있었다면, 딜레마가 생기는 것이죠. 서버를 차단하고 안전함을 챙길지, 아니면 bryan에게 괴롭힘을 계속 당할 지.

서버가 차단할 때

albert가 차단하지 않아도 A 서버의 관리자들이 bryan을 차단할 수 있습니다. 혹은 B 서버 자체를 차단할 수도 있죠. 동작 자체는 albert가 B 서버를 차단했을 때와 비슷합니다. bryan의 서명을 통해 B 서버가 아무리 A 서버에 접근을 해 봐야 “너는 권한 없어"를 뱉습니다. 다만 B는 말썽쟁이기 때문에 다음과 같은 짓을 합니다.

나 bryan이 아니라 bobby야, 문좀 열어줘. 니 프로필, 사진, 게시물들좀 얻어갈게

이러면 우리 A 서버는 bobby의 서명이 붙었기 때문에 정보를 내어주게 됩니다. 이래서 보통 B 서버가 이상한 서버다 싶으면 B 서버 자체를 차단하게 되고 이 때는 앞과 상황이 같습니다. 모든 사용자에 대해 “우린 그런 애 없는데?” 하고 답합니다. 심지어 차단하는 순간엔 이렇게 말합니다.

야 B, 우리 서버에 있던 albert 계정 삭제함. 니네 서버에서도 정보 지워 야 B, 우리 서버에 있던 applejack 계정 삭제함. 니네 서버에서도 정보 지워

물론 B가 정상적인 서버는 아니니 그걸 지울 지는 B의 몫입니다. 아주 끔찍하죠.

결론

우리 A 서버에서 bryan을 차단하면 그걸 알려주는 동시에 차단을 제대로 처리 안 하는 서버가 있다면, bryan을 직접 차단해서 눈길을 끄는 것 보다는 A서버에 신고해서 서버채로 차단을 하도록 유도하는 것이 좋습니다. 신고를 할 때 포워드도 안 넣는 것이 좋습니다. 신고는 아래와 같이 전달되거든요.

우리 A 서버인데, 니네 서버 bryan이 나쁜 짓을 하더라. 혼좀 내줘

이게 B 서버가 정상적인 서버였다면 bryan을 혼내겠지만, B 서버를 지금까지 믿는 분들은 없겠죠? 그냥 A 서버에게만 말하고 B와는 말도 섞지 맙시다.

그러면 오늘도 안전한 연합우주 생활 되시기 바랍니다.