ADNL
ADNL (Abstract Datagram Network Layer, Абстрактный уровень дейтаграммных сетей) — это криптографический сетевой протокол, разработанный для обеспечения безопасного и децентрализованного взаимодействия между узлами в распределённых системах, в первую очередь в блокчейн-платформе TON (The Open Network). Протокол обеспечивает шифрование, аутентификацию и маршрутизацию сообщений на транспортном уровне, работая поверх UDP или TCP.
История
Протокол ADNL был создан командой разработчиков блокчейна TON, основанной Николаем Дуровым и Павлом Дуровым. Первоначально проект TON разрабатывался как часть экосистемы Telegram Open Network, но после отказа от него в 2020 году из-за юридических разногласий с Комиссией по ценным бумагам и биржам США (SEC) развитие продолжило независимое сообщество. ADNL стал одним из ключевых компонентов, заложенных в основу архитектуры TON, и был впервые реализован в 2019 году в рамках тестовой сети.
В отличие от традиционных протоколов, таких как TCP/IP, ADNL изначально проектировался для работы в условиях отсутствия централизованных серверов и доверенных третьих сторон. Это делает его пригодным для peer-to-peer (P2P) сетей и децентрализованных приложений (dApps). После запуска основной сети TON в 2021 году протокол получил широкое распространение среди разработчиков, работающих с этой платформой.
Основные характеристики
Шифрование и аутентификация
ADNL использует асимметричную криптографию на основе эллиптических кривых (Curve25519) для установления защищённого соединения. Каждый узел сети имеет пару ключей: открытый (публичный) и закрытый (приватный). При установке соединения происходит обмен открытыми ключами, после чего генерируется общий сессионный ключ с помощью протокола Диффи — Хеллмана. Это обеспечивает конфиденциальность и целостность передаваемых данных.
Идентификация узлов
В ADNL адресация узлов осуществляется не по IP-адресам, а по хешам открытых ключей. Каждый узел идентифицируется 256-битным значением (ADNL-адресом), которое вычисляется как SHA-256 от его открытого ключа. Это позволяет избежать привязки к физическому расположению и делает сеть устойчивой к цензуре: для подключения к узлу не требуется знать его реальный IP-адрес, достаточно знать его ADNL-идентификатор.
Маршрутизация
Протокол поддерживает как прямые соединения, так и ретрансляцию через промежуточные узлы. Для маршрутизации используется распределённая хеш-таблица (DHT), которая хранит соответствия между ADNL-адресами и IP-адресами. При отправке сообщения узел сначала запрашивает DHT, чтобы найти IP-адрес получателя, а затем устанавливает прямое соединение. Если прямое соединение невозможно (например, из-за NAT), сообщение может быть передано через ретрансляторы.
Поддержка дейтаграмм
ADNL работает на основе дейтаграмм (датаграмм), то есть сообщений, которые не требуют установления постоянного соединения. Каждое сообщение независимо шифруется и подписывается, что позволяет отправлять данные без предварительного согласования параметров сессии. Это снижает задержки и упрощает реализацию для распределённых систем.
Архитектура протокола
Уровни стека
ADNL является частью многоуровневой архитектуры сети TON. Снизу вверх стек выглядит следующим образом:
- Транспортный уровень: UDP или TCP — обеспечивает передачу данных между узлами.
- Уровень ADNL: шифрование, аутентификация, адресация и маршрутизация.
- Уровень RLDP (Reliable Large Datagram Protocol): обеспечивает надёжную доставку больших сообщений, разделяя их на фрагменты и подтверждая получение.
- Прикладной уровень: протоколы для работы с блокчейном, смарт-контрактами и файловыми хранилищами (например, TON Storage).
Формат пакета
Каждый пакет ADNL состоит из следующих полей:
- Заголовок: содержит ADNL-адрес отправителя и получателя, а также контрольную сумму.
- Зашифрованное тело: полезная нагрузка, зашифрованная с использованием сессионного ключа.
- Цифровая подпись: подпись отправителя, подтверждающая подлинность сообщения.
Размер пакета ограничен 4 КБ для UDP, но при использовании RLDP может передаваться до 16 МБ.
Применение
Блокчейн TON
Основное применение ADNL — это обеспечение связи между узлами в сети TON. Протокол используется для:
- Передачи транзакций: валидаторы и полные узлы обмениваются транзакциями и блоками через ADNL.
- Синхронизации блокчейна: новые узлы загружают историю блокчейна, используя ADNL-соединения.
- Работы смарт-контрактов: вызовы функций и получение результатов выполняются через ADNL.
Децентрализованные приложения
ADNL позволяет создавать dApps, которые не зависят от централизованных серверов. Например, мессенджеры, файловые хранилища и игры могут использовать ADNL для прямого обмена данными между пользователями.
TON Proxy
На основе ADNL реализован TON Proxy — анонимный прокси-сервер, который скрывает IP-адреса участников. Это делает протокол пригодным для создания защищённых коммуникаций, устойчивых к наблюдению.
Сравнение с другими протоколами
| Характеристика | ADNL | TCP/IP | QUIC |
|---|---|---|---|
| Шифрование | Встроенное (Curve25519) | Опционально (TLS) | Встроенное (TLS 1.3) |
| Адресация | По хешу ключа | По IP-адресу | По IP-адресу |
| Децентрализация | Полная | Требует DNS | Требует DNS |
| Поддержка NAT | Через ретрансляцию | Через STUN/TURN | Встроенная |
| Задержка | Низкая (дейтаграммы) | Средняя (сессии) | Низкая (мультиплексирование) |
ADNL отличается от традиционных протоколов отсутствием зависимости от централизованных реестров (например, DNS) и встроенным шифрованием, что делает его более подходящим для децентрализованных сетей.
Критика и ограничения
Несмотря на преимущества, ADNL имеет ряд недостатков:
- Сложность реализации: из-за использования криптографии и DHT разработка клиентов для ADNL требует высокой квалификации.
- Уязвимость к атакам на DHT: распределённая хеш-таблица может быть подвержена атакам типа «Сивилла» или «Эклипс», если не настроены механизмы защиты.
- Ограниченная пропускная способность: при использовании UDP пакеты могут теряться, что требует дополнительных механизмов надёжности (RLDP).
- Отсутствие стандартизации: протокол не является открытым стандартом (например, RFC) и используется преимущественно в экосистеме TON.
Интересные факты
- ADNL был вдохновлён протоколом Kademlia, используемым в BitTorrent и Ethereum, но адаптирован для работы с криптографическими ключами.
- В 2022 году сообщество TON выпустило спецификацию ADNL в открытый доступ, что позволило сторонним разработчикам создавать собственные реализации.
- Протокол поддерживает мультиплексирование: несколько логических соединений могут проходить через одно физическое ADNL-соединение.
Источники
- Документация TON: «ADNL Protocol» (официальная спецификация, 2022).
- Статья Николая Дурова «Telegram Open Network: Technical Overview» (2019).
- Whitepaper TON: «The Open Network» (2020).
- Анализ протокола ADNL в журнале «Journal of Blockchain Research» (2023).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →