NIP-72: 모더레이션 커뮤니티
NIP-72는 Nostr에서 모더레이션이 있는 커뮤니티를 정의합니다. 커뮤니티는 공유 주제나 그룹을 중심으로 게시물을 조직하는 방법을 제공하며, 모더레이터가 콘텐츠를 멤버에게 표시하기 전에 승인합니다.
작동 방식
커뮤니티는 생성자가 게시하는 kind 34550 이벤트로 정의됩니다. 이 이벤트에는 커뮤니티 이름, 설명, 규칙, 모더레이터 pubkey 목록이 포함됩니다. 이벤트는 대체 가능 이벤트 형식(kind 30000-39999 범위)을 사용하므로, 커뮤니티 정의를 시간이 지남에 따라 업데이트할 수 있습니다.
{
"kind": 34550,
"tags": [
["d", "example-community"],
["name", "Example Community"],
["description", "A community for discussing examples"],
["p", "<moderator_pubkey>", "", "moderator"],
["relay", "wss://relay.example.com", "moderator"]
],
"content": "",
"pubkey": "<creator_pubkey>",
"created_at": 1742860800,
"sig": "<signature>"
}
사용자는 커뮤니티 정의를 가리키는 a 태그로 이벤트에 태그를 달아 커뮤니티에 게시물을 제출합니다. 이러한 게시물은 아직 커뮤니티 독자에게 표시되지 않습니다. 모더레이터가 제출물을 검토하고, 승인되면 원본 게시물을 래핑하는 kind 4549 승인 이벤트를 게시합니다. 커뮤니티를 표시하는 클라이언트는 인정된 모더레이터의 해당 승인 이벤트가 있는 게시물만 보여줍니다.
이 승인 모델은 커뮤니티가 쓰기 제한이 아닌 읽기 필터링됨을 의미합니다. 누구나 게시물을 제출할 수 있지만, 승인된 게시물만 커뮤니티 피드에 나타납니다. 모더레이터는 기본 데이터의 문지기가 아닌 큐레이터로 활동합니다.
고려 사항
승인 이벤트가 별도의 Nostr 이벤트이므로, 모더레이션 결정은 투명하고 감사 가능합니다. 한 커뮤니티에서 거부된 게시물이 다른 커뮤니티에서 승인될 수 있습니다. 동일한 콘텐츠가 독립적인 모더레이션으로 여러 커뮤니티에 존재할 수 있습니다.
커뮤니티 기능에는 relay 지원이 중요합니다. 클라이언트는 커뮤니티 정의와 승인 이벤트를 모두 쿼리해야 하므로, 이러한 이벤트 kind를 효율적으로 인덱싱하는 relay가 필요합니다.
주요 출처:
- NIP-72 사양 - 모더레이션 커뮤니티
언급된 곳: