Команда GoPlausible из экосистемы Algorand передала универсальный DID-резолвер организации DIF
В середине мая Decentralized Identity Foundation (DIF) — отраслевая организация, в которой компании и проекты совместно работают над стандартами децентрализованной идентификации, — использовала свой информационный бюллетень, чтобы поднять неудобный вопрос: её долго работающий Universal Resolver, общий справочный сервис, превращающий децентрализованные идентификаторы в документы, которые приложения могут проверять, возможно, придётся закрыть, «если не станет ясно, что наши участники действительно в нём нуждаются». С тех пор на этот вопрос ответили переработкой. Собственный аккаунт DIF указал читателям на thisDID — «обрабатывающий поддерживаемые методы напрямую и проксирующий остальные запросы к известным резолверам», — а в README проекта прямо сказано, что его создала и передала DIF команда GoPlausible, чья собственная инфраструктура идентификации работает на Algorand.
Это пожертвование выходит за рамки простого поддержания стандартов. Универсальный резолвер — это та инфраструктура, которая позволяет приложению, проверяющему учётные данные, принимать идентификаторы, закреплённые где угодно — в домене, блокчейне, службе имён, — без отдельной интеграции каждого источника. Algorand тут не посторонний: did:algo и did:nfd входят в число избранных методов резолвера.
Одна конечная точка для любой разновидности идентичности
Децентрализованный идентификатор (DID) — это строка, определённая Консорциумом Всемирной паутины (W3C), главным органом стандартизации веба: did:web:example.com, did:key:z6Mk..., did:algo:uti7paas... Каждый такой идентификатор разрешается в DID-документ — машиночитаемую запись, содержащую открытые ключи и конечные точки сервисов, — исходный материал для проверки подписей и верифицируемых учётных данных, цифровых подписанных подтверждений. Сегмент метода указывает, где живёт идентификатор и как получить этот документ, а приложению, желающему принимать DID из нескольких экосистем, исторически приходилось самостоятельно реализовывать логику разрешения для каждого метода.
thisDID сводит эту работу к одному HTTP-вызову. На его целевой странице рекламируются «70+ поддерживаемых методов» — в собственном опубликованном списке их 68 — из которых 24 разрешаются внутри сервиса с помощью изолированных драйверов на TypeScript, работающих на периферии в сети Cloudflare; вычисления распределены по дата-центрам, близким к пользователям (по подсчётам сайта, 42 региона), а длинный хвост маршрутизируется в вышестоящие сервисы. Каждый ответ нормализуется в единый документ, соответствующий W3C, с подписанными метаданными разрешения. API реализует HTTP-привязку Universal Resolver от DIF — согласованную форму URL, GET /1.0/identifiers/{did}, которую уже умеет вызывать любой совместимый клиент; в документации в качестве примера используется did:web:identity.foundation. Рядом находятся discovery, health, аналитика и живая лента разрешений, а также endpoint /mcp, реализующий Model Context Protocol — открытый стандарт для подключения инструментов к ИИ-агентам. Агент мог бы разрешать DID прямо в середине рабочего процесса без специальной склейки.
Внутри механизма маршрутизации
Девиз сайта — «Универсальный резолвер, который думает, прежде чем маршрутизировать» — описывает конвейер из четырёх шагов: разобрать и классифицировать идентификатор; взвесить задержку, доверие и актуальность в механизме правил; отправить подходящему драйверу, при необходимости нескольким параллельно; и вернуть подписанный нормализованный результат.
| Понятие | Реальное значение |
|---|---|
| GoPlausible — нативный для Algorand воркер; первый хоп для did:algo и did:nfd, с godiddy и archon как запасными | Идентификаторы Algorand разрешаются через специализированный драйвер, а не через вышестоящий сервис общего назначения |
| Godiddy (Danube Tech) — размещённый Universal Resolver и API регистратора | Берёт на себя большинство методов, которым нужен вышестоящий драйвер |
| Archon — запускает драйверы iden3 и did:cid | Первый хоп для zk-метода идентичности iden3 от Polygon; в остальных случаях — последний запасной |
Новые драйверы поставляются с тем, что в README называется «гарантией верификации»: если независимый вышестоящий сервис может разрешить тот же метод, каждое разрешение параллельно перепроверяется, пока живой процент совпадений драйвера не позволит ему пройти испытательный срок, а методы, которые не обслуживает ни один вышестоящий сервис, помечаются как непроверенные. Публичная лента показывает оба исхода: идентификатор did:cheqd разрешился локально, и его перекрёстная проверка помечена как «совпадение», а разрешение did:ebsi помечено как «несовпадение». Отдельный пробный воркер каждые пять минут запускает канареечные разрешения по каждому маршруту; 31 августа страница статуса показывала всех провайдеров работающими, с долей успеха от 0.997 до 1.0.
Точка входа для Algorand
did:algo разрешает on-chain идентификаторы Algorand, и живая лента показывает, что он обрабатывает как активы, так и аккаунты: идентификаторы, построенные по шаблону did:algo:mainnet:asa:, успешно разрешались в течение всего выбранного периода, включая идентификатор актива, лежащего в основе USDC, долларового стейблкоина. did:nfd разрешает имена из NFDomains — сервиса имён .algo от Algorand, который сопоставляет человекочитаемые имена с адресами в цепи, — в документы идентичности.
При тестировании 31 августа пример идентификатора из документации API — did:algo:uti7paas..., полный адрес Algorand, — разрешился через вышестоящий сервис GoPlausible за 332 миллисекунды, а идентификатор актива USDC — за 400 миллисекунд. Пример адреса не случаен: это депозитный аккаунт, стоящий за NFD goplausible.algo, зарегистрированный в июне 2023 года и содержащий 1,544.13 ALGO и 40,283.56 USDC среди 197 активов. Создатель разрешил собственную идентичность первым.
Один шероховатый момент: приведённый на сайте пример did:nfd — did:nfd:thisdid.algo — возвращает 404, и такого имени в каталоге NFD не существует. Собственное демонстрационное имя сервиса не разрешается.
Честный взгляд на метрики
На целевой странице заявлены медианное время разрешения менее 200 миллисекунд и глобальный аптайм 99.98%. Снимок аналитики за день подтверждает только половину: собственные воркер-драйверы thisDID в среднем отрабатывали за 198 миллисекунд, но вышестоящие маршруты работали медленнее — 477 миллисекунд через GoPlausible, 488 через godiddy и 1,471 через archon, — что поднимает общее среднее до примерно 700 миллисекунд. Медиана и среднее измеряют разные вещи, так что заявление описывает локальный быстрый путь, а не весь сервис. GoPlausible обработал наибольшую долю маршрутизации в этом снимке — 179 разрешений.
С показателями успеха нужно разбираться аналогично. На панели управления указано 253 успешных разрешения из 285 (88.8%), тогда как нижележащий JSON-endpoint сообщает о 248 из 280 (88.6%) — два интерфейса слегка расходятся, и рядом с цифрами на панели также отображается уведомление о настройке: «Хранилище аналитики ещё не привязано». Большинство сбоев, к тому же, — это ошибки notFound: DID, которые просто не существуют, например идентификаторы did:web для немецкого мемориального сайта, возглавляющие ленту ошибок. Резолвер, корректно сообщающий об отсутствии идентификатора, — это не то же самое, что сбой резолвера.
Трафик реальный, но скромный. На временной шкале за день видно от 1 до 39 разрешений в сутки в течение первых трёх недель июля, с пиком 39 разрешений 7 июля. Запрос за более длительный период рассказывает более странную историю: только 14 августа поступило 59,468 запросов, из них 33,262 — notFound, что характерно для автоматического сканирования, а распределение по странам возглавляют США (52,379) и Австрия (15,385). Аналитика намеренно грубая: без IP-адресов, без cookie, только география на уровне стран, а сами диапазоны ведут себя странно: на временной шкале «дневного» снимка указан период с 1 по 21 июля.
Пожертвование с проверкой
Код размещён в организации DIF на GitHub как decentralized-identity/thisdid, под разрешительной лицензией Apache-2.0; последний push был 28 августа с коммитом, обновляющим исследование «кандидатов в методы из волны 6», — в конвейере ещё методы. Пока интерес невелик: у репозитория всего одна звезда, а главный контрибьютор emg110 внёс 73 правки. В июньском бюллетене DIF говорилось о «переработке инстанса Universal Resolver от DIF» и указывались методы did:webvh и did:webplus как рекомендованные; на август обещали дальнейшее обновление.
Что будет дальше, зависит от той самой переменной, которую DIF обозначил в мае: будут ли участники направлять через него реальный трафик. Инфраструктура работает и доступна для наблюдения — статусные пробы, публичная лента, открытый API, — и идентичности Algorand теперь имеют именованный, опирающийся на стандарты путь в неё. Для команды, которая первой разрешила собственный аккаунт, следующий рубеж — чей-то чужой идентификатор.
Источники
- thisDID
- decentralized-identity/thisdid on GitHub
- DIF Newsletter #62
- GoPlausible
- ThisDID · DIF Universal DID Resolver
- https://thisdid.com/data
- https://thisdid.com/recent
- https://thisdid.com/1.0/identifiers/did:algo:uti7paasilrda3ishy5m7j7lnrx2aivqjwi7zkccgkvlmfd3vpr5pwsz4i
- https://thisdid.com/status
- https://thisdid.com/methods
- https://thisdid.com/1.0/identifiers/did:algo:mainnet:asa:31566704
- Post by @identity.foundation — Bluesky
- DIF Newsletter #64
- raw.githubusercontent.com
- ThisDID Directory
- did:algo — ThisDID Directory
Source: https://thisdid.com