Nostr WoT
ОбразованиеОценка доверияNostrWeb of Trust

Оценка доверия в Nostr: как рассчитывается доверие

Оценки доверия выходят за рамки простой проверки подписок. Узнайте, как именно Web of Trust рассчитывает оценку от 0 до 1 для любого публичного ключа Nostr на основе дистанции, взаимных подписок, количества путей и бонусов за связующие узлы.

Leon Acosta

Leon Acosta

·6 min read
Оценка доверия в Nostr: как рассчитывается доверие

Когда вы используете расширение Nostr Web of Trust, каждый публичный ключ получает оценку доверия от 0 до 1. Но что на самом деле означает это число? И как оно рассчитывается?

В этой статье мы разберём систему оценки, объясним каждый фактор и покажем, как использовать оценки доверия в ваших собственных приложениях.

Что такое оценка доверия?

Оценка доверия -- это числовое значение от 0 до 1, которое отражает, насколько тесно кто-то связан с вами через ваш социальный граф. Это более точный подход, чем простая проверка "подписан / не подписан".

Диапазон оценкиЗначениеТипичная дистанция
0,80 -- 1,00Высокое довериеПрямая подписка (1 переход)
0,40 -- 0,60Умеренное довериеДруг друга (2 перехода)
0,15 -- 0,30Низкое доверие3 перехода
0,00Неизвестный / недоверенныйНе в вашей сети

Оценка зависит не только от дистанции. Итоговое число складывается из нескольких факторов.

Как рассчитываются оценки доверия

Формула оценки состоит из четырёх компонентов:

text
score = base(distance) + mutual_bonus + bridging_bonus + path_bonus

Давайте разберём каждый из них.

1. Базовая оценка (затухание по дистанции)

Основа каждой оценки доверия -- социальная дистанция, то есть количество переходов между вами и целевым публичным ключом в графе подписок.

javascript
// Упрощённое затухание по дистанции
function baseScore(hops) {
  if (hops === 0) return 1.0;   // вы сами
  if (hops === 1) return 0.80;  // прямая подписка
  if (hops === 2) return 0.45;  // друг друга
  if (hops === 3) return 0.15;  // 3 перехода
  return 0.0;                   // слишком далеко
}

Затухание намеренно резкое. Каждый дополнительный переход значительно снижает базовую оценку, потому что доверие быстро уменьшается через непрямые связи.

Вы можете настроить максимальное количество переходов и значения затухания в настройках расширения. Некоторые пользователи предпочитают более узкую сеть из 2 переходов, а другие расширяют её до 3.

2. Бонус за взаимные подписки

Когда два аккаунта подписаны друг на друга (взаимная подписка), связь сильнее, чем односторонняя подписка. Система оценки вознаграждает это:

  • Взаимная подписка на 1-м переходе добавляет до +0,10 к базовой оценке
  • Взаимные подписки вдоль пути также вносят меньший бонус

Это отражает интуитивное понимание: если кто-то подписан на вас в ответ, отношения, скорее всего, настоящие.

3. Бонус за связующие узлы

Связующий узел -- это человек, который соединяет иначе разрозненные части вашего социального графа. Если несколько независимых путей к публичному ключу проходят через один и тот же промежуточный узел, этот узел является "мостом".

Связующие узлы получают небольшой бонус, потому что они служат якорями доверия, соединяющими различные сообщества. Если вы достигаете кого-то через хорошо связанный мост, это более сильный сигнал, чем достижение через единственную цепочку.

4. Бонус за разнообразие путей

Чем больше независимых путей ведут от вас к публичному ключу, тем выше оценка доверия. Это бонус за разнообразие путей.

javascript
// Больше путей = выше уверенность
const pathBonus = Math.min(pathCount * 0.03, 0.15);

Подумайте об этом так: если 5 разных людей, на которых вы подписаны, также подписаны на кого-то, это гораздо более сильный сигнал доверия, чем если вас связывает только 1 человек.

Оценка доверия vs. бинарная проверка подписки

Вы можете спросить: почему бы просто не проверить "есть ли этот человек в моей сети, да или нет?" Вот в чём разница:

ХарактеристикаБинарная проверкаОценка доверия
Результатtrue / false0.00 -- 1.00
ДетализацияОтсутствуетТонкая настройка
ПрименениеПростой спам-фильтрРанжирование контента, значки в интерфейсе
Взаимные подпискиИгнорируютсяУчитываются
Разнообразие путейИгнорируетсяВознаграждается

Бинарные проверки по-прежнему полезны для быстрой фильтрации спама. Но оценки доверия позволяют создавать более богатый пользовательский опыт -- например, отображать градиент цветов доверия, ранжировать результаты поиска или устанавливать различные уровни разрешений.

Практические примеры

Получение оценки доверия

javascript
// Простая проверка оценки доверия
const score = await window.nostr.wot.getTrustScore(pubkey);

if (score >= 0.7) {
  // Высокое доверие - показываем полный контент
} else if (score >= 0.3) {
  // Умеренное доверие - показываем с индикатором
} else {
  // Низкое/нет доверия - сворачиваем или помечаем
}

Получение подробной информации о доверии

javascript
// Полные данные о доверии со всеми факторами оценки
const details = await window.nostr.wot.getDetails(pubkey);

console.log(details);
// {
//   distance: 2,
//   score: 0.52,
//   paths: 3,
//   mutual: true,
//   bridgingNodes: ["pubkey1...", "pubkey2..."]
// }

Пакетная оценка для лент

javascript
// Оценка нескольких публичных ключей за раз (эффективно)
const pubkeys = events.map(e => e.pubkey);
const scores = {};

for (const pk of pubkeys) {
  scores[pk] = await window.nostr.wot.getTrustScore(pk);
}

// Сортировка ленты по оценке доверия
const rankedEvents = events.sort(
  (a, b) => (scores[b.pubkey] || 0) - (scores[a.pubkey] || 0)
);

Как приложения могут использовать оценки доверия

Оценки доверия открывают возможности, недоступные при бинарных проверках:

  • Ранжирование ленты: сортировка постов по оценке доверия автора, чтобы доверенный контент отображался первым
  • Значки доверия: отображение зелёных/жёлтых/красных индикаторов рядом с именами профилей
  • Пороги для зэпов: автоматическое одобрение небольших зэпов для пользователей с высоким доверием
  • Фильтрация ответов: сворачивание ответов с низким доверием при сохранении видимости доверенных
  • Фильтрация сообщений: разделение сообщений от доверенных контактов и неизвестных отправителей
  • Уровни разрешений: предоставление различных возможностей на основе уровня доверия

Все эти паттерны работают через API window.nostr.wot, который доступен в любом веб-приложении Nostr при установленном расширении.

Настройка оценок доверия

Расширение позволяет настраивать параметры оценки в разделе "Настройки":

  • Максимум переходов: как далеко искать (2 или 3 перехода)
  • Скорость затухания: насколько резко падает доверие с каждым переходом
  • Вес бонуса за взаимные подписки: насколько сильно вознаграждаются взаимные подписки
  • Режим WoT: Удалённый (оракул), Локальный (только в браузере) или Гибридный

Разные настройки подходят для разных задач. Приложение-маркетплейс может требовать строгое доверие в 2 перехода, а социальная лента может выиграть от более широкой сети в 3 перехода с мягким затуханием.

Попробуйте сами

Лучший способ понять оценки доверия -- экспериментировать:

  1. Скачайте расширение и настройте свой аккаунт
  2. Откройте Playground и запросите оценки доверия для разных публичных ключей
  3. Попробуйте API в консоли браузера: await window.nostr.wot.getTrustScore("pubkey...")

Наблюдайте, как оценки меняются при настройке параметров и исследовании различных частей графа Nostr.


Вопросы об оценке доверия? Найдите нас в Nostr или ознакомьтесь с документацией API.

Leon Acosta

Автор

Leon Acosta

Смотреть в Nostr →

Будьте в курсе

Получайте последние обновления о Nostr Web of Trust, новых функциях и новостях экосистемы.

Никакого спама. Отписка в любое время.