Завершаем наше краткое обсуждение блокчейна TON и его наиболее важных и уникальных функций в попытке найти для него место среди существующих и предлагаемых блокчейн-проектов. Мы используем критерии классификации, для обсуждения различных проектов блокчейнов и построения своеобразной «карты блокчейн-проектов».
Биткоин (2009) — первый и самый известный блокчейн-проект. Это типичный блокчейн-проект первого поколения: в нём один блокчейн, используется Proof-of-Work с алгоритмом выбора «побеждает самый длинный форк» и нет Тьюринг-полного скриптового языка (однако поддерживаются простые скрипты без циклов).
Блокчейн Bitcoin не имеет понятия аккаунтов; вместо этого он использует модель UTXO (Unspent Transaction Output).
Ethereum (2015) — первый блокчейн с поддержкой Тьюринг-полных смарт-контрактов. Таким образом, это типичный проект второго поколения и самый популярный среди них. Он использует Proof-of-Work на одном блокчейне, но имеет смарт-контракты и аккаунты.
NXT (2014) — это первый блокчейн и валюта на основе PoS. Это по-прежнему синглчейн-проект и он не поддерживает смарт-контракты.
Tezos (2018 или позже) — то предлагаемый синглчейн-проект на основе PoS. Мы упоминаем его здесь из-за его уникальной особенности: его функция интерпретации блока ev_block не фиксирована, но определяется модулем OCaml, который можно обновить, отправив новую версию в блокчейн (и собрав голоса для предлагаемого изменения). Таким образом, можно создавать собственные синглчейн-проекты, сначала развернув «ванильный» блокчейн Tezos, а затем постепенно изменяя функцию интерпретации блоков в желаемом направлении, без каких-либо хард-форков.
Эта идея хоть и является интригующей, но имеет очевидный недостаток, заключающийся в том, что она запрещает любые оптимизированные реализации на других языках, таких как C++, поэтому блокчейн на основе Tezos обречен на низкую производительность. Мы думаем, что аналогичный результат можно было бы получить, опубликовав формальную спецификацию предлагаемой функции интерпретации блока ev_trans без закрепления конкретной имплементации.
Casper — новый алгоритм PoS для Ethereum; его постепенное развертывание в 2017 (или 2018), в случае успеха, превратит Ethereum в синглчейн PoS или смешанную систему PoW + PoS с поддержкой смарт-контрактов, сделав из Ethereum проект третьего поколения.
BitShares (2014) — это платформа для распределенных бирж на основе блокчейна. Это гетерогенная мультиблокчейн-система DPoS без смарт-контрактов; она достигает своей высокой производительности, позволяя использовать только небольшой набор предопределенных специализированных типов транзакций, которые могут быть эффективно реализованы на C++ при условии, что состояние блокчейна умещается в памяти. Это также первый блокчейн-проект, в котором используется Delegated Proof-of-Stake (DPoS), демонстрирующий его жизнеспособность, по крайней мере, для некоторых специализированных целей.
EOS (2018 или позже) — это предлагаемая гетерогенная мультиблокчейн-система DPoS с поддержкой смарт-контрактов и некоторой минимальной поддержкой обмена сообщениями (система всё ещё слабо-связана в смысле, описанном в п. 2.8.14). Это разработка той же команды, которая ранее создала проекты BitShares и SteemIt, демонстрирующая сильные стороны алгоритма консенсуса DPoS.
Масштабируемость будет достигаться за счет создания специализированных воркчейнов для проектов, которые в этом нуждаются (например, распределенная биржа может использовать воркчейн, поддерживающий специальный набор оптимизированных транзакций, аналогично тому, что сделал BitShares) и путем создания нескольких воркчейнов с одинаковыми правилами (конфедерации). Недостатки и ограничения этого подхода к масштабируемости обсуждались в loc. cit. Более подробное описание DPoS, шардинга, взаимодействия между воркчейнами и их значение для масштабируемости системы блокчейнов.
В то же время, даже если никто не сможет «создать Facebook внутри блокчейна» , с помощью EOS или иным способом, мы думаем, что EOS может стать удобной платформой для некоторых узкоспециализированных слабо взаимодействующих распределенных приложений, подобных BitShares (децентрализованная биржа) и SteemIt (децентрализованная платформа для блогов).
PolkaDot (2019 или позже) — один из самых продуманных и детально проработанных мультичейн-проектов Proof-of-Stake; его разработкой руководит один из соучредителей Ethereum. Этот проект является одним из самых близких к TON Blockchain на нашей карте. (Фактически, мы обязаны своей терминологией для «фишерменов» и «номинаторов» проекту PolkaDot.)
PolkaDot — это гетерогенный слабо-связанный мультичейн-проект Proof-of-Stake с консенсусом Byzantine Fault Tolerant (BFT) для генерации новых блоков и мастерчейном (который может быть внешним — например, блокчейн Ethereum). Он также использует гиперкубовую маршрутизацию, похожую на (медленную версию) используемую в TON.
Его уникальная особенность — это возможность создавать не только публичные, но также приватные блокчейны. Эти приватные блокчейны также смогут взаимодействовать с другими публичными блокчейнами, PolkaDot или применять другие способы взаимодействия.
Таким образом, PolkaDot может стать платформой для крупномасштабных приватных блокчейнов, которые могут использоваться, например, банковскими консорциумами для быстрого перевода средств друг другу или для любых других целей, которые крупная корпорация может достичь с технологией приватного блокчейна.
Однако PolkaDot не поддерживает шардинг и не является тесно-связанной системой. Это несколько затрудняет её масштабируемость, которая примерно аналогична EOS. (Возможно, в случае PolkaDot ситуация немного лучше, потому что PolkaDot использует BFT PoS вместо DPoS.)
Universa — Единственная причина, по которой мы упоминаем здесь этот необычный блокчейн-проект, заключается в том, что пока это единственный проект, в котором есть нечто похожее на нашу парадигму бесконечного шардинга.
Другой его особенностью является то, что он обходит все сложности, связанные с Byzantine Fault Tolerance, обещая, что только доверенные и лицензированные партнеры проекта будут допущены в качестве валидаторов, поэтому они никогда не будут включать невалидные блоки. Это интересное решение; тем не менее, оно, по сути, делает блокчейн-проект намеренно централизованным, чего блокчейн-проекты обычно стараются избегать (зачем вообще нужен блокчейн для работы в доверенной централизованной среде?).
Plasma (2019?) — отличный от других блокчейн-проект от другого соучредителя Ethereum. Предполагается, что он смягчит некоторые ограничения Ethereum без введения шардинга. По сути, это отдельный от Ethereum проект, представляющий иерархию (гетерогенных) воркчейнов, привязанных к блокчейну Ethereum (для использования в качестве внешнего мастерчейна) на верхнем уровне. Средства могут быть переведены из любого блокчейна вверх по иерархии (начиная с блокчейна Ethereum в качестве корня) вместе с описанием задания, которое необходимо выполнить. Затем в дочернем воркчейне выполняются необходимые вычисления (возможно, требующие пересылки частей исходного задания дальше вниз по дереву), их результаты передаются вверх, и собирается вознаграждение. Проблема достижения согласованности и проверки этих воркчейнов Проблема достижения непротиворечивости и валидации этих воркчейнов обходится с помощью (основанного на платежном канале) механизма, позволяющего пользователям в одностороннем порядке выводить свои средства из некорректно функционирующего воркчейна в его родительский воркчейн (хотя и медленно) и перераспределять свои средства и свои задания в другой воркчейн.
Таким образом, Plasma может стать платформой для распределенных вычислений, связанных с блокчейном Ethereum, чем-то вроде «математического сопроцессора». Однако это не похоже на способ достигнуть истинной масштабируемости общего назначения.
Существуют также некоторые специализированные блокчейн-проекты, такие как FileCoin (система, которая стимулирует пользователей предлагать свое дисковое пространство для хранения файлов других пользователей, которые готовы за это платить), Golem (платформа на основе блокчейна для аренды и предоставления вычислительной мощности для специализированных приложений, таких как 3D-рендеринг) или SONM (еще один аналогичный проект по предоставлению вычислительной мощности). Такие проекты не привносят ничего концептуально нового на уровне организации блокчейна; скорее, это конкретные приложения блокчейна, которые могут быть реализованы с помощью смарт-контрактов, работающих в блокчейне общего назначения, при условии, что он может обеспечить требуемую производительность. Таким образом, проекты такого типа, вероятно, будут использовать в качестве своей основы один из существующих или планируемых блокчейн-проектов, например EOS, PolkaDot или TON. Если проекту нужна «настоящая» масштабируемость (на основе шардинга), лучше использовать TON; если проекту подходит функционирование в контексте «конфедерации» посредством определения семейства собственных воркчейнов, явно оптимизированных для его целей, он может выбрать EOS или PolkaDot.
Блокчейн TON (The Open Network) (планируется в 2018 г.) — это проект, который мы описываем в данном документе. Он разработан как первый блокчейн-проект пятого поколения, то есть BFT PoS-мультичейн, смешанный гомогенный/гетерогенный, с поддержкой (шардируемых) настраиваемых воркчейнов, с нативной поддержкой шардинга и тесно-связанный блокчейн-проект (в частности, способный пересылать сообщения между шардами почти мгновенно, сохраняя при этом непротиворечивое состояние всех шардчейнов). Таким образом, это действительно масштабируемый блокчейн-проект общего назначения, способный вместить практически любые приложения, которые вообще могут быть реализованы в блокчейне. При добавлении других компонентов проекта TON его возможности расширяются еще больше.
Иногда люди утверждают, что можно будет реализовать социальную сеть в масштабе Facebook как распределенное приложение, размещенное в блокчейне. Обычно в качестве возможного «хоста» для такого приложения указывается любимый блокчейн-проект.
Нельзя сказать, что это технически невозможно. Конечно, нужен тесно-связанный блокчейн-проект с настоящим шардингом (например, TON), чтобы такое большое приложение не работало слишком медленно (например, доставляло сообщения и обновления от пользователей, находящихся в одном шардчейне, их друзьям, находящимся в другом, с приемлемой задержкой). Однако мы думаем, что нет необходимости это делать и что это никогда не будет сделано, потому что цена будет непомерно высокой.
Давайте рассмотрим «загрузку Facebook в блокчейн» как мысленный эксперимент; примером может служить любой другой проект подобного масштаба. После загрузки Facebook в блокчейн все операции, выполняемые в настоящее время серверами Facebook, будут сериализированы как транзакции в определенных блокчейнах (например, в шардчейнах TON) и будут выполняться всеми валидаторами этих блокчейнов. Каждую операцию нужно будет выполнить, скажем, не менее двадцати раз, если мы ожидаем, что каждый блок соберет не менее двадцати подписей валидатора (мгновенно или со временем, как в системах DPOS). Точно так же все данные, которые серверы Facebook хранят на своих дисках, будут храниться на дисках всех валидаторов для соответствующего шардчейна (то есть как минимум в двадцати копиях).
Поскольку валидаторы по сути являются теми же серверами (или, скорее, кластерами серверов, но это не влияет на достоверность этого аргумента), что и те, которые в настоящее время используются Facebook, мы видим, что общие затраты на оборудование, связанные с запуском Facebook в блокчейне, как минимум в двадцать раз больше, чем если бы это было реализовано обычным способом.
Фактически, расходы будут еще намного более высокими, потому что виртуальная машина блокчейна работает медленнее, чем «голый процессор», на котором работает оптимизированный скомпилированный код, а ее хранилище не оптимизировано для конкретных проблем Facebook. Можно частично смягчить эту проблему, создав специфический воркчейн с некими специальными транзакциями, адаптированными для Facebook; это подход BitShares и EOS к достижению высокой производительности, также доступный в блокчейне TON. Однако общий дизайн блокчейна сам по себе налагает некоторые дополнительные ограничения, такие как необходимость регистрировать все операции как транзакции в блоке, организовывать эти транзакции в дереве Меркла, вычислять и проверять их хэши Меркла, распространять этот блок дальше и так далее.
Таким образом, по самым скромным подсчетам, потребуется в 100 раз больше серверов с той же производительностью, что и те, которые сейчас используются Facebook, чтобы валидировать блокчейн-проект, на котором размещена социальная сеть такого масштаба. Кто-то должен будет заплатить за эти серверы, будь то компания, владеющая распределенным приложением (представьте, что вы видите 700 рекламных объявлений на каждой странице Facebook вместо 7), или ее пользователи. В любом случае это не выглядит экономически жизнеспособным.
Мы считаем неверным, что всё должно быть загружено в блокчейн. Например, нет необходимости хранить фотографии пользователей в блокчейне; регистрация хэшей этих фотографий в блокчейне и хранение фотографий в распределенном офф-чейн хранилище (таком как FileCoin или TON Storage) было бы лучшей идеей. Это причина, по которой TON — это не просто блокчейн-проект, а совокупность нескольких компонентов (TON P2P Network, TON Storage, TON Services), сосредоточенных вокруг блокчейна TON.