Initial commit
This commit is contained in:
85
docs/ru/web-of-trust.md
Normal file
85
docs/ru/web-of-trust.md
Normal file
@@ -0,0 +1,85 @@
|
||||
# Morpheus — Сеть доверия (Web of Trust)
|
||||
|
||||
## Основная идея
|
||||
|
||||
Реле Morpheus принимает события только от публичных ключей, на которые
|
||||
подписаны как минимум **N** существующих участников реле. Используется
|
||||
граф подписок, уже существующий в Nostr (NIP-02 списки контактов) —
|
||||
никаких кастомных NIP, токенов-приглашений или специальных событий
|
||||
поручительства.
|
||||
|
||||
## Как это работает
|
||||
|
||||
1. Пользователь A публикует список контактов NIP-02, включающий
|
||||
публичный ключ пользователя B
|
||||
2. Реле подсчитывает, сколько существующих участников подписаны на B
|
||||
3. Если количество достигает порога (например, 3), реле начинает
|
||||
принимать события от B
|
||||
4. Если количество подписчиков B падает ниже порога (отписки), реле
|
||||
перестаёт принимать новые события от него
|
||||
|
||||
```text
|
||||
Реле получает событие от pubkey X
|
||||
→ Подсчитать NIP-02 списки контактов на этом реле, включающие X
|
||||
→ Если количество >= N: принять событие
|
||||
→ Если количество < N: отклонить с auth-required или closed
|
||||
```
|
||||
|
||||
## Почему это работает
|
||||
|
||||
- **Спам умирает естественно** — боты не могут набрать реальные подписки
|
||||
от существующих участников и никогда не достигают порога
|
||||
- **Нет затрат на модерацию** — граф подписок и есть слой модерации;
|
||||
ни одному админу не нужно вручную одобрять или банить пользователей
|
||||
- **Сообщество остаётся целостным** — начальное сообщество русскоязычное,
|
||||
подписки распространяются через реальные социальные связи, поэтому
|
||||
сеть остаётся культурно и лингвистически однородной без явных
|
||||
языковых фильтров
|
||||
- **Нерелевантный шум исчезает** — реле обслуживает только события от
|
||||
множества участников, случайный глобальный трафик Nostr не попадает
|
||||
в ленту
|
||||
- **Нет кастомного протокола** — используются только NIP-01 (события)
|
||||
и NIP-02 (списки контактов), которые поддерживает каждый клиент Nostr
|
||||
- **Децентрализованное доверие** — нет единого привратника; доверие
|
||||
распределено по графу подписок
|
||||
|
||||
## Настройка порога
|
||||
|
||||
| N | Эффект |
|
||||
| --- | --- |
|
||||
| 1 | Минимальный барьер — одна подписка от любого участника даёт доступ. Лёгкий рост, слабая защита от спама. |
|
||||
| 3 | Баланс — требуется небольшой социальный кластер. Хорошо для фазы раннего роста. |
|
||||
| 5+ | Тесное сообщество — труднее попасть, сильная защита от спама. Хорошо для зрелой сети. |
|
||||
|
||||
Порог может быть динамическим — ниже в период раннего роста, выше по
|
||||
мере взросления сети. Также может различаться по типу событий
|
||||
(например, публикация требует 3 подписок, а ЛС — только 1).
|
||||
|
||||
## Граничные случаи
|
||||
|
||||
- **Проблема курицы и яйца** — первые N пользователей добавляются
|
||||
вручную (начальное множество). Это основатели сообщества.
|
||||
- **Наблюдатели** — пользователи, которые читают, но не публикуют, тоже
|
||||
нуждаются в подписках для взаимодействия. Доступ на чтение может быть
|
||||
открытым.
|
||||
- **Кросс-реле** — пользователи могут подключаться к публичным реле
|
||||
параллельно с реле Morpheus. Барьер WoT применяется только к ленте
|
||||
реле Morpheus.
|
||||
- **Защита от сибилов** — создание фейковых аккаунтов для подписки на
|
||||
себя возможно, но затратно в масштабе (каждому фейку самому нужно N
|
||||
реальных подписчиков). Рекурсия делает сибил-атаки экспоненциально
|
||||
сложнее.
|
||||
- **Потеря подписчиков** — если кто-то отписывается и количество падает
|
||||
ниже N, существующие события остаются на реле, но новые отклоняются
|
||||
до восстановления числа подписчиков.
|
||||
|
||||
## Заметки по реализации
|
||||
|
||||
- Реле поддерживает материализованное представление графа подписок
|
||||
(NIP-02, kind:3 события)
|
||||
- При каждом входящем событии проверяется количество входящих подписок
|
||||
автора относительно порога
|
||||
- Подсчёт обновляется в реальном времени при публикации списков
|
||||
контактов NIP-02
|
||||
- Начальное множество (вручную разрешённые pubkey) настраивается при
|
||||
запуске реле
|
||||
Reference in New Issue
Block a user