Открытый протокол для публикации криптографически подписанных фактов о компании. Ed25519 подписи, SHA-256 хеширование, размещение в /.well-known/verified-facts.json. 6 продакшн-деплоев, онлайн-валидатор, GitHub-репозиторий.

Verified Facts Protocol: как помочь AI перестать галлюцинировать о вашей компании
22 февраля 2026 г.12 мин чтенияAppStar

Verified Facts Protocol: как помочь AI перестать галлюцинировать о вашей компании

Открытый протокол для публикации криптографически подписанных фактов о компании. Ed25519 подписи, SHA-256 хеширование, размещение в /.well-known/verified-facts.json. 6 продакшн-деплоев, онлайн-валидатор, GitHub-репозиторий.

AIverified-factsed25519cryptographyprotocolSEOanti-hallucination

Проблема: AI галлюцинирует о вашей компании

Спросите ChatGPT, когда была основана ваша компания. Какие у вас клиенты. Какие продукты вы предлагаете. С высокой вероятностью вы получите неправильный ответ. Или полностью выдуманный.

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

Масштаб проблемы

ПроблемаПример
Неправильная дата основания«Компания основана в 2018» (на самом деле в 2013)
Вымышленные клиенты«Среди клиентов — Tesla и Apple» (их никогда не было)
Неверные продукты«Компания продаёт CRM-систему» (на самом деле занимается автоматизацией)
Устаревшие данные«Штат — 5 человек» (на самом деле 50)

Проблема не только в репутации. AI-системы становятся основным источником информации для B2B-решений. Если AI говорит о вашей компании неправду — вы теряете клиентов.


Решение: Verified Facts Protocol

Verified Facts Protocol — это открытый протокол для публикации криптографически подписанных фактов о компании в машиночитаемом формате. Это как robots.txt, но для фактов.

Как это работает

  1. Создаёте JSON-файл с фактами о вашей компании
  2. Подписываете каждый факт ключом Ed25519
  3. Размещаете файл по адресу /.well-known/verified-facts.json

AI-краулеры (GPTBot, ClaudeBot, PerplexityBot) находят файл через стандартный механизм .well-known и получают верифицированные факты.

Структура файла

{
  "version": "1.0",
  "protocol": "verified-facts/ed25519/v1",
  "entity": {
    "name": "Ваша Компания",
    "domain": "example.com",
    "founded": "2013",
    "url": "https://example.com/"
  },
  "publicKey": {
    "algorithm": "ed25519",
    "format": "base64-raw-32bytes",
    "value": "<32-байтный-публичный-ключ-base64>"
  },
  "generated": "2026-02-22T00:00:00.000Z",
  "expires": "2026-08-22T00:00:00.000Z",
  "facts": [
    {
      "id": "fact-001",
      "claim": "Компания основана в 2013 году",
      "category": "company",
      "evidence": "https://example.com/about",
      "claimHash": "sha256-хеш-в-hex",
      "signature": "ed25519-подпись-в-base64"
    }
  ]
}

Технические детали

Процесс подписания

Для каждого факта выполняются 4 шага:

  1. Кодируем строку claim в UTF-8 байты
  2. Вычисляем SHA-256 хеш — получаем 32-байтный буфер
  3. Подписываем хеш-буфер приватным ключом Ed25519 — получаем 64-байтную подпись
  4. Кодируем подпись в base64
claimBytes = utf8encode(fact.claim)
hashBuffer = sha256(claimBytes)          // 32 байта
claimHash  = hex(hashBuffer)             // 64 hex-символа
signature  = base64(ed25519_sign(key, hashBuffer))  // 88 base64-символов

Процесс верификации (Node.js)

import { createHash, verify, createPublicKey } from 'crypto';

function verifyFact(claim, signature, publicKeyBase64) {
  // 1. SHA-256 хеш утверждения
  const hash = createHash('sha256').update(claim, 'utf8').digest();

  // 2. Декодируем подпись из base64
  const sig = Buffer.from(signature, 'base64');

  // 3. Восстанавливаем публичный ключ из 32 сырых байт
  const pubKeyRaw = Buffer.from(publicKeyBase64, 'base64');
  const pubKeyDer = Buffer.concat([
    Buffer.from('302a300506032b6570032100', 'hex'),
    pubKeyRaw
  ]);
  const publicKey = createPublicKey({
    key: pubKeyDer, format: 'der', type: 'spki'
  });

  // 4. Верифицируем подпись Ed25519
  return verify(null, hash, publicKey, sig);
}

Верификация в браузере

import { verify } from '@noble/ed25519';
import { sha256 } from '@noble/hashes/sha256';

async function verifyFact(claim, signature, pubKeyBase64) {
  const msgHash = sha256(new TextEncoder().encode(claim));
  const sig = Uint8Array.from(atob(signature), c => c.charCodeAt(0));
  const pubKey = Uint8Array.from(atob(pubKeyBase64), c => c.charCodeAt(0));
  return verify(sig, msgHash, pubKey);
}

Почему Ed25519?

СвойствоЗначение
Размер ключа32 байта (256 бит)
Размер подписи64 байта
Производительность~76 000 подписей/сек
Безопасность128-бит эквивалент
Поддержка браузеровChrome 137+, fallback через @noble/ed25519

Ed25519 выбран за компактность подписей (64 байта vs 256+ у RSA), высокую скорость верификации и широкую поддержку в библиотеках. Протокол спроектирован алгоритмически-агностичным — будущие версии будут поддерживать Ed448 и постквантовые алгоритмы.


Живой пример: 6 доменов AppStar

AppStar развернул Verified Facts Protocol на 6 доменах с 56 верифицированными фактами:

ДоменФактыСсылка
appstar.com.ru20Открыть JSON
appstarsecurity.ru8Открыть JSON
appstarcrm.ru7Открыть JSON
appstarseo.ru7Открыть JSON
appstarsmm.ru7Открыть JSON
appcourses.ru7Открыть JSON

Каждый факт подписан одним и тем же Ed25519 ключом и может быть проверен с помощью нашего онлайн-валидатора: appstar.com.ru/ru/verified-facts/


Результаты эксперимента

Мы провели эксперимент: спросили ChatGPT о фактах из нашего verified-facts.json.

Что выяснилось

  1. ChatGPT пока не читает JSON напрямую — бот GPTBot краулит сайт, но не парсит .well-known/verified-facts.json специально
  2. Структурированные данные помогают — наличие консистентного JSON с фактами помогает AI давать более точные ответы
  3. Внешние подтверждения работают — ChatGPT верифицировал наши утверждения через Google Play Store и другие источники
  4. Консистентность ключевая — когда одни и те же факты повторяются на сайте, в JSON, в Schema.org — AI доверяет им больше

Важный вывод

Verified Facts Protocol работает уже сейчас как единый источник правды для вашего сайта. Даже без прямой поддержки AI-провайдерами, наличие структурированного файла с фактами:

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

Обращение к AI-провайдерам

Мы предлагаем, чтобы AI-краулеры проверяли /.well-known/verified-facts.json при индексации домена:

КраулерКомпанияПредложение
GPTBotOpenAIПарсить verified-facts.json при краулинге
ClaudeBotAnthropicИспользовать факты как ground truth
PerplexityBotPerplexityПриоритизировать подписанные факты
GooglebotGoogleИнтегрировать в Knowledge Graph

Преимущества для AI-провайдеров

  1. Снижение галлюцинаций — верифицированные факты как источник истины
  2. Атрибуция — каждый факт ссылается на доказательство
  3. Актуальность — поля generated и expires гарантируют свежесть
  4. Доверие — криптографические подписи предотвращают подделку
  5. Эффективность — структурированные данные проще парсить, чем HTML

Как начать

Шаг 1: Сгенерируйте ключи

# Генерация Ed25519 ключевой пары
openssl genpkey -algorithm Ed25519 -out private.pem
openssl pkey -in private.pem -pubout -out public.pem

Шаг 2: Создайте факты и подпишите

Используйте скрипт из GitHub-репозитория:

git clone https://github.com/appstar-com-ru/verified-facts-protocol
cd verified-facts-protocol
npx tsx examples/generate.ts

Шаг 3: Разместите файлы

# Скопируйте в .well-known директорию вашего сайта
cp verified-facts.json /var/www/html/.well-known/
cp public.pem /var/www/html/.well-known/verified-facts-key.pub

Шаг 4: Проверьте

npx tsx examples/verify.ts https://yourdomain.com/.well-known/verified-facts.json

Дорожная карта

  • v1.0 — Ed25519 подписанные факты в формате JSON
  • Онлайн-валидатор на appstar.com.ru/verified-facts
  • 6 продакшн-деплоев
  • JSON Schema по well-known URL
  • npm-пакет verified-facts-sdk
  • Блокчейн-анкоринг (Polygon/Base) для неизменяемых временных меток
  • Предложение AI-провайдерам (OpenAI, Anthropic, Perplexity, Google)
  • IETF Internet-Draft

Связанные стандарты

СтандартСвязь с Verified Facts
RFC 8615Соглашение .well-known URI
RFC 8032Алгоритм подписи Ed25519
JSON-LDДополняет; verified-facts проще и сфокусирован на подписях
Schema.orgДополняет; Schema.org описывает структуру, verified-facts доказывает авторство
robots.txtТот же паттерн обнаружения через .well-known
llms.txtДополняет; llms.txt даёт контекст, verified-facts — подписанные утверждения

Заключение

Verified Facts Protocol — это первый шаг к миру, где AI-системы могут отличить верифицированные факты от галлюцинаций. Протокол прост, открыт и уже работает в продакшне.

Код на GitHub: github.com/appstar-com-ru/verified-facts-protocol

Валидатор: appstar.com.ru/ru/verified-facts/

Спецификация: SPECIFICATION.md

Похожие статьи