Файл: Аннотация Цель данной работы предоставить первое описание блокчейнплатформы ton (The Open Network) и связанных с ней технологий одноранговых сетей, распределенного хранилища и хостинга..pdf
Добавлен: 25.10.2023
Просмотров: 271
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
1
The Open Network на основе работы доктора Николая Дурова
26 июля 2021 г.
Аннотация
Цель данной работы - предоставить первое описание блокчейн-платформы TON
(The Open Network) и связанных с ней технологий одноранговых сетей, распределенного хранилища и хостинга. Чтобы уменьшить размер этого документа до разумного объема, мы сосредоточимся в основном на уникальных и определяющих функциях платформы TON, которые важны для достижения поставленных целей.
Введение
The Open Network (TON) - это быстрая, безопасная и «криптографически запечатанная» блокчейн-платформа. При необходимости этот сетевой проект может обрабатывать миллионы транзакций в секунду, поэтому TON является столь удобным для пользователя и поставщика услуг. Мы стремимся к тому, чтобы на этой блокчейн- платформе можно было разместить все практически применимые приложения, предлагаемые и задуманные в настоящее время. TON можно описать как огромный распределенный суперкомпьютер или, скорее, как огромный «суперсервер», предназначенный для размещения и предоставления различных услуг.
Данный документ не предоставляет исчерпывающую информацию обо всех деталях реализации проекта. Некоторые особенности могут измениться на этапах разработки и тестирования.
Переведено на русский язык:
EQCLk1384-rYMhauBsAT36YABMN5yOTNbgM29THdANTW4-qK
2
Введение
Содержание
1 Краткое описание компонентов TON
2 Блокчейн TON
2.1. Блокчейн TON как структура, состоящая из 2D-блокчейнов
2.2. Общие сведения о блокчейнах
2.3. Состояние блокчейна, учетные записи и хэш-карты
2.4. Сообщения между шардчейнами
2.5. Глобальное состояние шардчейна. Философия «мешка ячеек».
2.6. Создание и проверка новых блоков
2.7. Разделение и объединение шардчейнов
2.8. Классификация блокчейн-проектов
2.9. Сравнение с другими блокчейн-проектами
3 Система TON Networking
3.1. Сетевой уровень абстрактной датаграммы
3.2. TON DHT: Распределенная хеш-таблица, подобная Kademlia
3.3. Оверлейные сети и многоадресные сообщения
4 Сервисы и приложения TON
4.1. Стратегии внедрения сервисов TON
4.2. Подключение пользователей и поставщиков услуг
4.3. Доступ к сервисам TON
5 Платежная система TON Payments
5.1. Каналы оплаты
5.2. Сеть платежных каналов или «сеть мгновенных платежей» (Lightning)
Вывод
Приложение A. Монета TON Coin
3 4
4 12 15 22 29 34 43 46 56 60 61 63 68 73 73 76 78 83 83 88 91 93
3
Глава 1. Краткое описание компонентов TON
1
Краткое описание компонентов TON
The Open Network (TON) представляет собой комбинацию следующих компонентов:
• Гибкая платформа из нескольких блокчейнов (блокчейн TON; см. Главу 2), способная обрабатывать миллионы транзакций в секунду. Благодаря полными по Тьюрингу смарт-контрактам, обновляемым формальным спецификациям блокчейна, транзакциям стоимости для нескольких криптовалют, поддержке каналов микроплатежей и внецепочным платежным платформам, блокчейн
TON представляет некоторые новые и уникальные функции, такие как механизм «самовосстановления» вертикального блокчейна (см. 2.1.17) и мгновенная маршрутизация в гиперкубе (Instant Hypercube Routing, см. 2.4.20), которые обеспечивают быстроту, надежность, закрытость и в то же время самосогласованность платформы;
• Одноранговая сеть (сеть TON P2P или просто сеть TON; см. Главу 3), используемая для доступа к блокчейну TON, отправки возможных транзакций и получения обновлений только о тех сегментах блокчейна, которые интересуют клиента (например, сегменты, которые связаны с учетными записями клиента и смарт-контрактами), а также способная поддерживать произвольные распределенные службы, независимо от того, связаны они с блокчейном или нет;
• Технология распределенного хранения файлов (TON Storage; см. 4.1.7) в сети
TON, используемая блокчейном TON для хранения архивных копий блоков и данных о состоянии (зафиксированных снимков состояния), а также доступная для хранения произвольных файлов пользователей или других служб, работающих на платформе (технология доступа подобная торрент-сети);
• Уровень сетевого посредника/анонимайзера (TON Proxy; см. 4.1.10 и 3.1.6), аналогичный 12P (Invisible Internet Project), при необходимости используемый для сокрытия идентичности и IP-адресов узлов сети TON (например, узлов, с которых совершаются транзакции из учетных записей с большим количеством криптовалюты, или высокоуровневые узлы валидатора блокчейна, для которых необходимо скрыть их точный IP-адрес и географическое положение в качестве меры против DDoS-атак);
• Распределенная хэш-таблица на основе варианта Kademlia (TON DHT; см. 3.2), используемая в качестве «торрент-трекера» для TON Storage (см. 3.2.10),
«локатора входного туннеля» для TON Proxy (см. 3.2.14), а также в качестве средства поиска услуг для сервиса TON Services (см. 3.2.12);
• Платформа для произвольных сервисов (TON Services; см. Главу 4), находящихся и доступных при помощи TON Network и TON Proxy, и имеющих формализованные интерфейсы (см. 4.3.14), которые обеспечивают взаимодействие с приложениями в браузере или смартфоне. Эти формальные интерфейсы и постоянные точки входа в сервисы могут быть опубликованы в блокчейне TON (см. 4.3.17). Фактические узлы, предоставляющие услуги в любой момент времени, можно будет просмотреть через TON DHT, начиная с информации, опубликованной в блокчейне TON (см. 3.2.12). Службы могут создавать смарт-контракты в блокчейне TON и обеспечивать некоторые гарантии для своих клиентов (см. . 4.1.6);
• TON DNS (см. 4.3.1) - сервис для присвоения удобочитаемых имен учетным записям, смарт-контрактам, службам и сетевым узлам;
• TON Payments (см. Главу 5) - платформа для микроплатежей, каналы микроплатежей и сеть каналов микроплатежей. Эту платформу можно использовать для быстрых внецепочных транзакций стоимости, а также для оплаты услуг, предоставляемых TON Services.
• TON будет обеспечивать легкую интеграцию со сторонними приложениями для обмена сообщениями и социальными сетями, что сделает технологию
4
Глава 1. Краткое описание компонентов TON блокчейна и распределенных сервисов доступными для обычных пользователей (см. 4.3.23), а не только для небольшого количества первых пользователей криптовалюты.
Несмотря на то, что блокчейн TON является ядром проекта TON, а другие компоненты рассматриваются как вспомогательные сервисы для блокчейна, сами по себе они обладают полезными и интересными функциями. В совокупности они позволяют разместить на платформе более универсальные приложения, если сравнивать с использованием обычного блокчейна TON (см. 2.9.13 и 4.1).
2
Блокчейн TON
Начнем с описания блокчейна The Open Network (TON), который является ключевым компонентом проекта. Будет использоваться подход «сверху вниз» - сначала мы дадим общее описание всей структуры, а затем предоставим более подробную информацию о каждом компоненте.
Для простоты мы будем использовать термин «блокчейн TON», хотя в принципе несколько экземпляров этого протокола блокчейна могут работать независимо друг от друга (например, в результате хард-форков). Мы будем рассматривать только один блокчейн TON.
2.1. Блокчейн TON как структура, состоящая из 2D-блокчейнов
Блокчейн TON на самом деле представляет собой несколько блокчейнов (в нем используются два блокчейна - этот момент будет прояснен позже в п. 2.1.17), потому что ни один блокчейн не способен достичь нашей цели по обработке миллионов транзакций в секунду, в отличие от текущего стандарта в несколько десятков транзакций в секунду.
2.1.1. Типы блокчейнов. Концепция блокчейна TON состоит из четырёх уровней:
• Уникальная единая корневая цепь (или сокращенно мастерчейн), содержащая общую информацию о протоколе и текущих значениях его параметров, наборе валидаторов и их стейках, наборе текущих активных воркчейнов
• (воркчейнов) и соответствующих «шардов», и, что наиболее важно, набор хэшей самых последних блоков всех воркчейнов и шардчейнов.
• Несколько (до 2 32
) воркчейнов (или сокращенно воркчейнов), которые на самом деле являются «рабочими лошадками», содержащими транзакции стоимости и транзакции смарт-контрактов. Разные воркчейны могут иметь разные «правила», то есть разный формат адресов учетной записи, разный формат транзакций, разные криптовалюты, разные виртуальные машины для обработки кода смарт-контрактов и т.д. Однако все они должны удовлетворять определенным основным критериям совместимости, чтобы обеспечить взаимодействие между различными воркчейнами и сделать его относительно простым. В этом отношении воркчейны в TON аналогичны EOS (см. 2.9.7) и
PolkaDot (см. 2.9.8), где блокчейн также является гетерогенным (см. 2.8.8).
• В свою очередь, каждый воркчейн подразделяется на шардчейны (которых максимум 2 в 60 степени), имеющие те же правила и формат блока, что и сам воркчейн, но отвечающие только за подмножество учетных записей, в зависимости от нескольких первых (наиболее значимых) битов адреса аккаунта. Другими словами, в систему встроена форма сегментирования (см.
2.8.12). Поскольку во всех этих шардчейнах используется общий формат блоков и правила, блокчейн TON в этом отношении является гомогенным (см.
2.8.8), аналогично к тому, что обсуждалось в одном из предложений по запечатыванию сети Ethereum
1
5 2.1. Блокчейн TON как структура, состоящая из 2D-блокчейнов
• Каждый блок в шардчейне (и в мастерчейне) на самом деле является не просто блоком, а небольшим блокчейном. Обычно этот «блокчейн» или
«вертикальный блокчейн» состоит ровно из одного блока, и тогда можно подумать, что это всего лишь соответствующий блок шардчейна (в этой ситуации также называемого «горизонтальной цепью»). Однако, если возникает необходимость исправить некорректные блоки шардчейна, новый блок фиксируется в «вертикальном блокчейне», содержащем либо замену недопустимого блока «горизонтального блокчейна», либо «характеристики различия блоков», содержащие только описание тех частей предыдущей версии этого блока, которые необходимо изменить. Это специфичный для TON механизм замены обнаруженных недопустимых блоков без создания истинного форка всех задействованных шардчейнов (более подробно этот процесс будет объясняться в п. 2.1.17). На данный момент следует просто отметить, что каждый шардчейн (и мастерчейн) - это не обычный блокчейн, а цепь блокчейнов (2D-блокчейн или просто 2-блокчейн).
2.1.2. Парадигма бесконечного шардинга. Практически все решения по шардингу блокчейнов являются «нисходящими»: сначала представляется единый блокчейн, а затем обсуждаются способы его разделения на несколько взаимодействующих шардчейнов для повышения производительности и достижения масштабируемости.
«Восходящий» подход к шардингу в платформе TON объясняется следующим образом.
Представьте, что шардинг доведено до крайности, так что в каждом шардчейне остается ровно одна учетная запись или смарт-контракт. При этом имеется огромное количество «цепочек учетных записей», каждая из которых описывает состояние и переходы между состояниями только одной учетной записи и отправляет на другие цепи сообщения о переносе стоимости и информации.
Конечно, использовать сотни миллионов блокчейнов – это непрактично, причем обновления (т. е. новые блоки) в каждом блокчейне обычно довольно редко появляются. Чтобы обеспечить более высокую эффективность системы, мы группируем эти «цепочки учетных записей» в «шардчейны», так что каждый блок шардчейна по существу представляет собой набор блоков цепочек учетных записей, которые были назначены этому шарду.
Таким образом, «цепочки учетных записей» существуют только исключительно виртуально или логически внутри «шардчейнов».
Мы называем эту перспективу парадигмой бесконечного шардинга, которая объясняет многие проектные решения для блокчейна TON.
2.1.3. Сообщения. Мгновенная маршрутизация в гиперкубе (Instant Hypercube
Routing). В парадигме бесконечного шардинга каждая учетная запись (или смарт- контракт) рассматривается так, как если бы она сама находилась в отдельном шардчейне. Тогда единственный способ, при помощи которого одна учетная запись может повлиять на состояние другой учетной записи, - это отправить ей сообщение
(это особый случай так называемой модели акторов, причем в роли акторов выступают учетные записи; см. 2.4.2). Следовательно, система передачи сообщений между учетными записями (и шардчейнами, поскольку исходная и конечная учетные записи, как правило, расположены в разных шардчейнах) имеет первостепенное значение для запечатываемой системы, такой как блокчейн TON. Фактически, новая функция блокчейна TON, называемая Instant Hypercube Routing (см. 2.4.20), обеспечивает доставку и обработку сообщений, созданных в блоке одного шардчейна, в следующий блок целевого шардчейна, независимо от общего количества шардчейнов в системе.
6 2.1. Блокчейн TON как структура, состоящая из 2D-блокчейнов
2.1.4. Количество мастерчейнов, воркчейнов и шардчейнов. Блокчейн TON содержит ровно один мастерчейн. Однако система потенциально может вместить до
2 32
воркчейнов, каждый из которых будет разделен на 2 60
сегментов.
2.1.5. Воркчейны могут быть виртуальными, а не настоящими блокчейнами.
Поскольку воркчейн обычно подразделяется на шардчейны, существование воркчейна является «виртуальным» - это не настоящий блокчейн в смысле общего определения, приведенного в 2.2.1 ниже, а просто набор шардчейнов. Если воркчейну соответствует только один шардчейн, этот уникальный шардчейн может быть идентифицирован с воркчейном, который в этом случае становится «настоящим» блокчейном (как минимум на некоторое время), таким образом, приобретая внешнее сходство с обычной структурой, в которой используется один блокчейн. Однако парадигма бесконечного шардинга (см. 2.1.2) говорит нам, что такое сходство является только внешним: это просто совпадение, что потенциально огромное количество «цепочек учетных записей» может быть временно сгруппировано в один блокчейн.
2.1.6. Идентификация воркчейнов. Каждый воркчейн идентифицируется на основании своего номера или идентификатора воркчейна (workchain_id : uint
32
), который представляет собой 32-битное целое число без знака. Воркчейны создаются специальными транзакциями в мастерчейне, определяющими ранее неиспользованный идентификатор воркчейна и формальное описание воркчейна, которое является достаточным для взаимодействия этой воркчейна с другими воркчейнами, а также для поверхностной проверки блоков этого воркчейна.
2.1.7. Создание и активация новых воркчейнов. Создание нового воркчейна может быть инициировано практически любым членом сообщества, готовым заплатить
(высокие) комиссии за транзакции в мастерчейне, необходимые для публикации формальной спецификации нового воркчейна. Однако для того, чтобы новый воркчейн стал активным, требуется консенсус в две трети валидаторов, поскольку им необходимо будет обновить свое программное обеспечение для обработки блоков нового воркчейна и сигнализировать о своей готовности работать с новым воркчейном при помощи специальных транзакций в мастерчейне. Сторона, заинтересованная в активации нового воркчейна, может предоставить валидаторам некоторый стимул для поддержки нового воркчейна посредством вознаграждений, распределяемых при помощи смарт-контракта.
2.1.8. Идентификация шардчейнов. Каждый шардчейн идентифицируется парой (w, s) = (workchain_id, shard_prefix), где workchain_id: uint
32
идентифицирует соответствующий воркчейн, а shard_prefix: 2 0…60
- это строка битов длиной не более
60, определяющая подмножество учетных записей, за которые отвечает этот шардчейн. А именно, все учетные записи с идентификатором account_id, начинающимся с префикса shard_prefix (т. е. имеющие префикс shard_prefix в качестве наиболее значимых битов), будут назначены этому шардчейну.
2.1.9. Идентификация цепочек учетных записей. Напомним, что цепочки учетных записей существуют только виртуально (см. 2.1.2). Однако у них есть естественный идентификатор, а именно (workchain_id, account_id), поскольку любая цепочка учетных записей содержит информацию о состоянии и обновлениях ровно одной учетной записи (различие между обычной учетной записью или смарт-контрактом здесь не имеет значения).