Суверенный веб Дурова: как устроена тестовая версия блокчейн-платформы Telegram
На прошлой неделе разработчики Telegram прислали инвесторам письмо, в котором рассказали о ходе тестирования блокчейн-платформы TON. Доступ к ней в апреле получило ограниченное число компаний. Одновременно Telegram выложил в открытый доступ набор для разработчиков TON. В «боевом» режиме платформу готовятся запустить в третьем квартале 2019 года. Это опасно близко к дедлайну — если платформа не запустится до 31 октября, Дурову придется вернуть инвесторам $1,7 млрд.
The Bell изучил техническую документацию TON и сделал из нее выводы о будущем блокчейн-платформы братьев Дуровых:
Главные выводы
- Экосистема. TON стремится стать экосистемой, которая подменит собой обычный веб. В ней предусмотрены не только собственные сервисы и приложения, но и нечто похожее на сайты, а вместе с ними и что-то похожее на веб с браузерами. Внешние сервисы могут быть доступны в TON через специальные шлюзы. Одновременно TON будет легко интегрировать в существующие приложения.
- Сервисы. Сервисов у TON будет много, но ключевым для конечных пользователей сервисом, как и предполагалось, будет платежная система TON Payments и связанный с нею криптокошелек. Вместе с TON DNS (система, помогающая преобразовать адреса блокчейн-платформы в удобочитаемый вид) это самые продуманные сервисы в обзорном файле. Почти наверняка будет запущено хранилище файлов TON Storage. Появятся боты, работающие в TON без вмешательства человека. Сервисы TON будут интегрированы в Telegram, но мессенджер станет не единственным массовым приложением. В документации приводится «гипотетический» пример аналога Facebook на платформе TON.
- Скорость. Архитектура TON позволяет обеспечить беспрецедентную скорость операций — миллионы транзакций в секунду. Такие объемы и скорости имеют смысл только в случае одновременного использования криптоплатформы сотнями миллионов человек.
- Безопасность. Все данные будут шифроваться по современным схемам эллиптической криптографии. Шифрование обеспечивает и специально созданный для TON язык программирования Fift.
- Готовность. Низкоуровневые процедуры (создание смарт-контракта, просмотр существующих, перевод средств) готовы. Но непохоже, чтобы в TON уже написали много сервисов и продуктов высокого или даже среднего уровня — например, типовые смарт-контракты разной сложности, маркетплейс или системы платежей и облачного хранения. Не готовы и интерфейсные решения. О том, как это все будет выглядеть в конце года в мессенджере Telegram, не сказано ни слова.
Эт*а статья изначально была написана для технорассылки The Bell (вы можете подписаться на нее здесь). Ниже — технические подробности*.
Как платформа будет выглядеть для конечного пользователя?
Техническое описание пока уделяет сервисной части TON всего шесть страниц. По ним складывается впечатление о глубокой продуманности инфраструктуры:
- предполагается, что через TON смогут работать и внешние приложения, для этого будут созданы специальные шлюзы между экосистемой TON и внешним миром;
- смогут появиться и гибридные приложения, работающие как в TON, так и за ее пределами (так называемые «туманные сервисы» или fog services).
- Telegram технически станет TON-сервисом, система платежей TON Payments и прокси TON Proxy — «туманными сервисами»;
- в TON Payments будет предусмотрена возможность не активировать кошелек, но не терять при этом переводимые средства. Перевод просто найдет пользователя после активации, а до тех пор будет висеть в блокчейне. Эта техническая деталь в теории позволяет запускать TON частями на разных рынках, включая возможность активации выборочно.
Как устроена тестовая сеть TON?
- Для передачи средств задействуется блокчейн и смарт-контракт в нем.
- Обычно блокчейн — это список связанных друг с другом блоков, но в TON это нечто большее. Николай Дуров зовет TON «блокчейном блокчейнов» — кроме главной цепочки возможны до 232 рабочих блокчейнов (workchains), каждый из которых может делиться на 260 «осколков» (shardchains). Такая сложность нужна, чтобы обеспечить миллионы транзакций в секунду. Для сравнения, в феврале 2019 года блокчейн Bitcoin приблизился к рекордным 4,7 транзакциям в секунду.
- Смарт-контракт — это самоисполняющийся договор. Технически в TON смарт-контрактом является программа с исполняемым кодом на специально созданном для TON языке Fift и данными. Смарт-контракт обязательно обеспечивается криптовалютой Gram.
- Смарт-контракт не действует без криптовалюты. Пока в TON нет реальных людей с деньгами, поэтому в тестовой сети действует специальная сущность test giver, выдающая до 20 Gram всем желающим написать и протестировать свой смарт-контракт.
- Файл со смарт-контрактом отсылается в виртуальную машину Telegram Open Network Virtual Machine (TON VM или TVM), которая затем следит за его исполнением.
- Все происходит максимально быстро. Смарт-контракт пишется на стековом языке Fift, но сама программа внутри виртуальной машины TVM также компилируется, превращаясь в еще более быстрый машинный код (TVM — стековая машина, особенно хорошо работающая с небольшими схожими задачами).
- Все это очень хорошо шифруется с помощью эллиптической криптографии. Точнее, по двум схемам. Первая — EdDSA25519, которая позволяет выдавать десятки и сотни тысяч подписей в секунду, что немаловажно для скорости работы сети (известный сервис безопасной почты ProtonMail недавно писал об эллиптической криптографии как синониме самых последних достижений в этой области). Вторая схема — Curve25519 для асимметричной криптографии (более-менее принципы работы изложены здесь).
- В Fift встроена поддержка сильной криптографии и умение работать с блокчейн-платформой TON. А благодаря использованию виртуальной машины получается масштабируемая система, которую можно бесконечно расширять и варьировать.
В каком состоянии находится разработка?
Насколько можно судить, почти готова виртуальная машина — программная имитация компьютера, реализующего нужную платформу. Готовы или почти готовы все процедуры низкого уровня. Основа для блокчейн-клиента также готова, хотя его еще только предстоит интегрировать в мессенджер.
В технической документации нет перечисления типов стандартных смарт-контрактов — от вкладов до аукционов. Похоже, что это главная забота разработчиков TON на текущий момент — без этого невозможна криптоэкономика продукта.
Почему язык программирования называется Fift?
Насколько можно судить, название языка управления виртуальной машиной TON — шутка. Он похож на язык программирования FORTH, который так называется из-за необходимости сократить слово fourth, «четвертый», из-за ограничений операционной системы. Fift, очевидно, означает «пятый» (fifth), но в сокращенном по тому же принципу виде.
На чем мы основывались?
На 495 страницах технической документации и более чем 20-страничной инструкции по созданию контрактов. Все четыре больших документа подписаны именем Николая Дурова — брата Павла Дурова. В конце апреля на сайте test.ton.org были выложены:
- исходные коды предварительной версии «легкого» клиента TON с необходимыми частями библиотеки (исходники занимают 27 мегабайт, львиная доля приходится на базу данных RocksDB и библиотеку Abseil; язык программирования — C++);
- конфигурационный файл для клиента;
- пошаговая инструкция по созданию смарт-контрактов в TON;
- датированные 23 мая описания виртуальной машины TON и языка программирования Fift (используется для управления смарт-контрактами);
- датированное мартом краткое описание возможностей TON и полное описание блокчейна.