Главная страница

Открытая сеть. Открытая сеть по материалам работы дра Николая Дурова 26 июля 2021


Скачать 0.79 Mb.
НазваниеОткрытая сеть по материалам работы дра Николая Дурова 26 июля 2021
Дата11.06.2022
Размер0.79 Mb.
Формат файлаpdf
Имя файлаОткрытая сеть.pdf
ТипРеферат
#585329
страница1 из 14
  1   2   3   4   5   6   7   8   9   ...   14

Открытая сеть по материалам работы д-ра Николая Дурова
26 июля 2021
Аннотация
Цель этого текста-дать первое описание открытой сети (TON) и связанных с ней технологий блокчейна, однорангового, распределенного хранения и хостинга услуг. Чтобы уменьшить размер этого документа до разумных пропорций, мы фокусируемся в основном на уникальных и определяющих особенностях платформы TON, которые важны для достижения заявленных целей.
Введение
The Open Network (TON)-это быстрый, безопасный и масштабируемый блокчейн и сетевой проект, способный при необходимости обрабатывать миллионы транзакций в секунду
, а также удобный для пользователя и поставщика услуг. Мы стремимся к тому, чтобы он мог принимать все разумные приложения, предлагаемые и задуманные в настоящее время. Можно подумать о TON как об огромном распределенном суперкомпьютере, или, скорее, огромном суперсервере, предназначенном для размещения и предоставления различных услуг.
Этот текст не предназначен для того, чтобы быть окончательной ссылкой в отношении всех деталей реализации. Некоторые детали могут измениться на этапах разработки и тестирования.
1
Введение
Содержание
1 Краткое описание компонентов TON
3
Блокчейн 2 ТОННЫ
5 2.1
Блокчейн TON как набор 2-х блокчейнов...............
5 2.2
Общие положения о блокчейнах . . . . . . . . . . . . . . . . . . . 15 2.3
Состояние блокчейна, учетные записи и хэш-карты . . . . . . . . . . . 19 2.4
Сообщения между цепочками осколков
. . . . . . . . . . . . . . . . . 29 2.5
Состояние глобальной цепочки шардов. Мешок клеток Философия.. .. . . . 38 2.6
Создание и проверка новых блоков . . . . . . . . . . . . . . 44 2.7
Разделение и слияние шардчейнов . . . . . . . . . . . . . . . 57 2.8

Классификация блокчейн проектов
. . . . . . . . . . . . . . 61 2.9
Сравнение с другими блокчейн-проектами . . . . . . . . . . . 74 3 ТОННЫ сети
80 3.1
Абстрактный сетевой уровень дейтаграммы. . . . . . . . . . . . . . . 80 3.2
TON DHT: Kademlia-like Distributed Hash Table.. . ... . 84 3.3
Оверлейные сети и многоадресные сообщения
. . . . . . . . . 90 4 ТОННЫ услуг и приложений
98 4.1
Стратегии внедрения сервиса TON
. . . . . . . . . . . . 98 4.2
Подключение пользователей и поставщиков услуг. . . . . . . . . . . . . 102 4.3
Доступ к услугам TON. . . . . . . . . . . . . . . . . . . . . 104 5 тонна платежей
111 5.1
Платежные каналы . . . . . . . . . . . . . . . . . . . . . . . . 111 5.2
Сеть платежных каналов, или Lightning Network.. . .. . . 118
Заключение
122
A ТОННА монета
125 2
Глава 1. Краткое описание компонентов TON
1
Краткое описание компонентов TON
Открытая сеть (TON) представляет собой комбинацию следующих компонентов:
ˆ
Гибкая мульти-блокчейн платформа (TON Blockchain; см. главу 2), способная обрабатывать миллионы транзакций в секунду, с
Turingcomplete смарт-контрактами, обновляемыми формальными спецификациями блокчейна, передачей стоимости нескольких криптовалют, поддержкой каналов микроплатежей и платежных сетей o - chain. Блокчейн TON представляет некоторые новые и уникальные функции, такие как самовосстанавливающийся вертикальный блокчейн
-механизм (см. 2.1.17) и мгновенная маршрутизация гиперкубов (см. 2.4.20), которые позволяют ему быть быстрым, надежным, масштабируемым и
самосогласованным одновременно.
ˆ
Одноранговая сеть (TON P2P Network или просто TON Network; см. главу 3), используемая для доступа к блокчейну TON, отправки кандидатов на транзакции и получения обновлений только о тех частях блокчейна, которые интересуют клиента (например, те, которые связаны с учетными записями клиента исмарт-контракты), но также способны поддерживать произвольные распределенные сервисы, связанные с блокчейном или нет.
ˆ
Технология распределенного хранения файлов (TON Storage; ср. 4.1.7), доступная через сеть TON, используемая блокчейном TON для хранения архивных копий блоков и данных о состоянии (моментальных снимков), но также доступная для хранения произвольных файлов для пользователей или других сервисов, работающих на платформе, с технологией торрент-доступа.
ˆ
Уровень сетевого прокси / анонимайзера (TON Proxy; ср. 4.1.10 и 3.1.6), аналогичный I
2
P
(Invisible Internet Project), используется для сокрытия личности и IP-адресов узлов сети TON при необходимости (например, узлов
, совершающих транзакции со счетов с большими суммами криптовалюты, или узлов-валидаторов блокчейна с высокими ставками, которые хотят скрыть свой точный IP-адрес и географическое местоположение в качестве меры против
DDoS-атак).
ˆ
Kademlia-подобная распределенная хэш-таблица (TON DHT; ср. 3.2), используемая в качестве торрент-трекера для хранения TON (ср. 3.2.10), в качестве входного туннельного локатора для прокси-сервера TON (ср. 3.2.14) и в качестве сервисного локатора для сервисов TON (ср. 3.2.12).
3
Глава 1. Краткое описание компонентов TON
ˆ
Платформа для произвольных сервисов (TON Services; см. главу 4), находящаяся в сети TON и доступная через TON Proxy, с формализованными интерфейсами (см. 4.3.14), позволяющими взаимодействовать с приложениями браузера или смартфона. Эти формальные интерфейсы и постоянные точки входа в сервис могут быть опубликованы в блокчейне TON (см. 4.3.17); фактические узлы, предоставляющие сервис в любой данный момент, могут быть просмотрены через DHT TON, начиная с информации, опубликованной в
блокчейне TON (см. 3.2.12). Сервисы могут создавать смарт-контракты в блокчейне TON, чтобы предоставить своим клиентам некоторые гарантии (см. 4.1.6).
ˆ
TON DNS (cf. 4.3.1), сервис для присвоения удобочитаемых имен учетным записям, смарт-контрактам, сервисам и узлам сети.
ˆ
TON Payments (см. главу 5), платформа для микроплатежей, каналы микроплатежей и сеть каналов микроплатежей. Его можно использовать для быстрой передачи стоимости o - chain и для оплаты услуг, предоставляемых TON Services.
ˆ
TON позволит легко интегрироваться со сторонними приложениями для обмена сообщениями и социальных сетей, тем самым делая технологии блокчейна и распределенные сервисы доступными и доступными для обычных пользователей
(см. 4.3.23), а не только для нескольких ранних пользователей криптовалюты
Хотя блокчейн TON является ядром проекта TON, а другие компоненты могут рассматриваться как играющие вспомогательную роль для блокчейна, они сами по себе обладают полезной и интересной функциональностью
. В совокупности они позволяют платформе размещать более универсальные приложения, чем это было бы возможно просто с помощью блокчейна TON
(см. 2.9.13 и 4.1).
4 2.1. Блокчейн TON как набор 2-х блокчейнов
2
Блокчейн TON
Начнем с описания блокчейна Open Network (TON), основного компонента проекта. Наш подход здесь нисходящий: сначала мы даем общее описание всего, а затем более подробно рассказываем о каждом компоненте.
Для простоты мы говорим здесь о блокчейне TON, хотя в принципе несколько экземпляров этого протокола блокчейна могут работать независимо (например, в результате хардфорков). Рассмотрим только один из них.
2.1
Блокчейн TON как набор 2-х блокчейнов
Блокчейн TON на самом деле представляет собой набор блокчейнов (даже набор блокчейнов блокчейнов или 2-блокчейнов этот момент будет прояснен позже в 2.1.17), потому что ни один блокчейн-проект не способен достичь нашей цели обработки миллионов транзакций в секунду, в отличие от ныне стандартных десятковколичество транзакций в секунду.
2.1.1. Список типов блокчейнов. Блокчейны в этой коллекции:
ˆ
Уникальный мастер-блокчейн, или сокращенно мастер-цепочка, содержащий общую информацию о протоколе и текущих значениях его
параметров, набор валидаторов и их ставок, набор активных в данный момент рабочих цепочек и их шардов , и, самое главное, набор хэшей самых последних блоков всех рабочих цепочек ицепи осколков.
ˆ
Несколько (до 2 32
) рабочие блокчейны, или сокращенно рабочие цепочки, которые на самом деле являются рабочими лошадками , содержащими транзакции передачи стоимости и смарт-контрактов. Разные рабочие цепочки могут иметь разные правила , то есть разные форматы адресов счетов, разные форматы транзакций, разные виртуальные машины (VM) для смарт-контрактов, разные базовые криптовалюты и так далее. Однако все они должны удовлетворять определенным базовым критериям совместимости, чтобы сделать взаимодействие между различными рабочими цепочками возможным и относительно простым. В этом отношении блокчейн TON неоднороден (ср. 2.8.8), аналогично проектам EOS
(см. 2.9.7) и PolkaDot (см. 2.9.8).
ˆ
Каждая рабочая цепочка, в свою очередь, подразделяется на 2 60 shard blockchains, или shardchains для краткости, имеющие те же правила и формат блока, что и
5 2.1. Блокчейн TON как набор 2-х блокчейнов сама рабочая цепочка, но ответственная только за подмножество учетных записей, в зависимости от нескольких первых (наиболее значимых) битов адреса учетной записи.
Другими словами, в систему встроена форма шардинга (см. 2.8.12).
Поскольку все эти шардчейны имеют общий формат блоков и правила, блокчейн TON однороден в этом отношении (см. 2.8.8), аналогично тому, что обсуждалось в одном из предложений по масштабированию
Ethereum.
1
ˆ
Каждый блок в shardchain (и в masterchain) на самом деле не просто блок, а небольшой блокчейн. Обычно этот блокчейн или вертикальный блокчейн состоит ровно из одного блока, и тогда мы можем подумать, что это просто соответствующий блок шардчейна (также называемый горизонтальным блокчейном в этой ситуации). Однако, если возникает необходимость исправить неправильные блоки shardchain, новый блок фиксируется в вертикальном блокчейне , содержащем либо замену inдопустимый горизонтальный блокчейн-блок, или разница блоков , содержащая только описание тех частей предыдущей версии этого блока
, которые необходимо изменить. Это специфичный для TON механизм замены обнаруженных недействительных блоков без создания истинного форка всех задействованных шардчейнов; это будет объяснено более подробно в 2.1.17. Пока мы просто отметим, что каждый шардчейн (и мастерчейн)-это не
обычный блокчейн, а блокчейн блокчейнов, или2D-блокчейн, или просто 2-блокчейн.
2.1.2. В парадигме конечного шардинга. Почти все предложения по шардингу блокчейна являются нисходящими : сначала вы представляете себе один блокчейн, а затем обсуждаете, как разделить его на несколько взаимодействующих шардчейнов для повышения производительности и достижения масштабируемости.
Подход TON к шардингу снизу вверх объясняется следующим образом.
Представьте, что шардинг был доведен до крайности, так что ровно один учетная запись или смарт-контракт остаются в каждой цепочке шардов. Тогда у нас есть огромное количество цепочек учетных записей , каждая из которых описывает состояние и переходы состояний только одной учетной записи и отправляет друг другу сообщения, несущие ценность, для передачи ценности и информации.
Конечно, нецелесообразно иметь сотни миллионов блокчейнов, причем обновления (т. Е. Новые блоки) обычно появляются довольно редко в каждом из них. Чтобы реализовать их более эффективно, мы группируем эти цепочки счетов в цепочки шардов , так что каждый блок цепочки шардов по существу является
1 https://github.com/ethereum/wiki/wiki/Sharding-FAQ
6 2.1. Блокчейн TON как набор 2-х блокчейнов набор блоков учетных записей-цепочек, которые были назначены этому шарду.
Таким образом, цепочки учетных записей имеют только чисто виртуальное или логическое существование внутри шардчейнов .
Мы называем эту перспективу парадигмой конечного осколка. Это объясняет многие дизайнерские решения для блокчейна TON.
2.1.3. Сообщения. Мгновенная маршрутизация гиперкубов. Парадигма конечного шардинга предписывает нам рассматривать каждую учетную запись (или смарт-контракт) так, как если бы она находилась в своей собственной цепочке шардов. Тогда единственный способ, которым одна учетная запись может повлиять на состояние другой,-это отправить ей сообщение (это особый случай так называемой модели акторов, с учетными записями в качестве акторов; ср.
2.4.2).
Следовательно, система сообщений между учетными записями (и цепочками осколков, потому что источник иучетные записи назначения, вообще говоря, находятся в different shardchains) имеет первостепенное значение для масштабируемой системы, такой как блокчейн TON. Фактически, новая функция блокчейна TON, называемая

Instant Hypercube Routing (cf. 2.4.20), позволяет доставлять и обрабатывать сообщение, созданное в блоке одного шардчейна, в следующий блок целевого шардчейна, независимо от общего количества шардчейнов в системе.
2.1.4. Количество мастер-цепей, рабочих цепей и шард-цепей. Блокчейн
TON содержит ровно одну мастер - цепочку. Однако система потенциально может вместить до 2 32 рабочие цепи, каждая из которых подразделяется на до 2 60 цепи осколков.
2.1.5. Рабочие цепочки могут быть виртуальными блокчейнами, а не истинными блокчейнами.
Поскольку workchain обычно подразделяется на shardchain, существование workchain является виртуальным , что означает, что это не настоящий blockchain в смысле общего определения, приведенного в 2.2.1 ниже, а просто набор shardchain. Когда только одна цепочка шардов соответствует рабочей цепочке, эта уникальная цепочка шардов может быть отождествлена с рабочей цепью, которая в этом случае становится истинным блокчейном, по крайней мере на некоторое время, таким образом приобретая превосходное сходство с обычным дизайном одной цепочки блоков. Однако парадигма конечного шардинга (см. 2.1.2) говорит нам, что это сходство действительно супер: это просто совпадение, что потенциально огромное количество учетных записей может быть временно сгруппировано в один блокчейн.
2.1.6. Идентификация рабочих цепочек. Каждая рабочая цепочка идентифицируется по своему номеру или идентификатору рабочей цепочки (workchain_id: uint
32
), который является просто
7 2.1. Блокчейн TON как набор 2-х блокчейнов
32-разрядное целое число без знака. Рабочие цепи создаются специальными транзакциями в мастер-цепочке, определяющими (ранее неиспользуемую) идентификацию рабочей цепи и формальное описание рабочей цепи, достаточное, по крайней мере, для взаимодействия этой рабочей цепи с другими рабочими цепями и для supercial veri cation блоков этой рабочей цепи.
2.1.7. Создание и активация новых рабочих цепочек. Создание новой рабочей цепочки может быть инициировано практически любым членом сообщества, готовым заплатить (высокую) комиссию за транзакцию masterchain, необходимую для публикации официальной спецификации новой рабочей цепочки. Однако для того, чтобы новая рабочая цепочка стала активной, требуется консенсус двух третей валидаторов, поскольку им нужно будет обновить свое программное обеспечение для обработки блоков новой
рабочей цепочки и сигнализировать о своей готовности работать с новой рабочей цепочкой специальными транзакциями masterchain. Сторона, заинтересованная в активации новой рабочей цепочки, может обеспечить некоторый стимул для валидаторов поддерживать новую рабочую цепочку посредством некоторых вознаграждений, распределяемых смарт- контрактом.
2.1.8. Идентификация шардчейнов. Каждая цепочка шардов идентифицируется парой (w, s)= (workchain_id, shard_pre x), где workchain_id: uint
32 идентифицирует соответствующую рабочую цепочку и shard_pre x :
2 0...60 это битовая строка длиной не более 60, определяющая подмножество учетных записей, за которые отвечает эта цепочка шардов. А именно, все учетные записи с account_id, начинающиеся с shard_pre x (т. е. имеющие shard_pre x в качестве наиболее значимых битов), будут назначены этой цепочке шардов.
2.1.9. Идентификация цепочек счетов. Напомним, что цепочки счетов существуют только в виртуальном режиме (см. 2.1.2). Тем не менее, они имеют естественную идентификацию, а именно (workchain_id , account_id), потому что любая цепочка учетных записей содержит информацию о состоянии и обновлениях ровно одной учетной записи (либо простой учетной записи, либо смарт-контракта-здесь различие не имеет значения).
2.1.10. Динамическое разделение и слияние шардчейнов; см. 2.7.
Менее сложная система может использовать статическое шардирование, например, используя верхние восемь битов account_id для выбора одного из 256 предварительно определенных шардов.
Важной особенностью блокчейна TON является то, что он реализует динамическое шардирование, а это означает, что количество шардов не фиксировано. Вместо этого сегмент (w,s) может быть автоматически разделен на сегменты (w, s.0) и (w, s.1)
, если выполняются некоторые формальные условия (по существу, если транзакционная нагрузка на исходный сегмент достаточно высока в течение длительного периода времени). Наоборот,
8 2.1. Блокчейн TON как набор 2-х блокчейнов если нагрузка остается слишком низкой в течение некоторого периода времени, осколки
(w, s.0) и
(w, s. 1) может быть автоматически объединен обратно в осколок (w, s).
Изначально для рабочей цепочки w создается только один шард (w,∅). Позже он подразделяется на несколько осколков, если и когда это становится необходимым (см.
2.7.6 и 2.7.8).

2.1.11. Базовая рабочая цепочка или Нулевая рабочая цепочка. В то время как до 2 32 рабочие цепочки могут быть определены с их конкретными правилами и транзакциями, мы изначально определили только одну, с workchain_id = 0. Эта рабочая цепочка, называемая Workchain Zero или базовая рабочая цепочка, используется для работы с смарт-контрактами TON и передачи монет TON (см. Приложение А). Для большинства приложений, скорее всего, потребуется только Workchain Zero. Шардчейны базовой рабочей цепочки будут называться базовыми шардчейнами.
2.1.12. Интервалы генерации блоков. Мы ожидаем, что новый блок будет генерироваться в каждом shardchain и masterchain примерно раз в пять секунд. Это приведет к достаточно небольшому времени подтверждения транзакции.
Новые блоки всех шардчейнов генерируются примерно одновременно; новый блок мастерчейна генерируется примерно через секунду, потому что он должен содержать хэши последних блоков всех шардчейнов.
  1   2   3   4   5   6   7   8   9   ...   14


написать администратору сайта