3 июня 2022

Solana vs. темпография, или почему она постоянно падает?

Можете относится к творению А. Яковенко плохо или хорошо, или, как я, нейтрально, но факт что с 2018 года путь проделан не малый. Есть явные преимущества и проблемы у сей системы. О преимуществах говорили до меня и много, поэтому попробую раскрыть второй аспект чуть подробней. 

Дисклеймер

Давайте сразу установим, что ничего против Solana не имею, но нужно понимать те архитектурные бреши, которые могут быть в любом проекте: Terra, StepN, BSV, etc. Особенно — в L1 подходах, ибо они — глобальны.

Проблемы как они есть

Для начала — перечень инцидентов (не всех):

  • “Блокчейн первого уровня и «убийца Ethereum» Solana был остановлен приблизительно в 21:00 по МСК 1 июня. Больше 4 часов валидаторы не производили новые блоки. Сеть восстановилась только к 3:00 2 июня 2022”. Причина: функция долговечных nonce содержит DoS-уязвимость (сплит цепи), которая и вызвала разногласия узлов, нарушив консенсус.
  • На 02 мая 2022 года “сеть Solana более чем на семь часов прекратила выпуск новых блоков из-за высокого трафика со стороны ботов. Об этом пишет Bloomberg со ссылкой на разработчиков проекта. По итогам атаки валидаторам пришлось вручную перезапускать сеть”; 
  • Ещё одно падение было “14 сентября 2021 г. случилось неожиданное событие — блокчейн Solana остановился более чем на 17 часов… По данным обозревателя блокчейна Solscan, последний блок в сети Solana до остановки был создан примерно в 15:00 по московскому времени 14 сентября… Истощение ресурсов сети приводит к проблемам с обработкой транзакций, разработчики уже трудятся над инцидентом. Валидаторы готовятся к потенциальному рестарту блокчейна, если это понадобится… Валидаторы Solana были вынуждены провести хардфорк от последнего подтверждённого до остановки блока. По информации разработчиков, для этого процесса потребовался консенсус как минимум 80 процентов владельцев нод”:
  • Согласно сообщению, “в 13:46 UTC пятницы, 4 декабря 2020 г., кластер бета-версии основной сети Solana перестал производить блоки на слоте 53 180 900, что препятствовало подтверждению транзакций… Неожиданный баг почти на шесть часов остановил работу сети Solana”:

Проще говоря, сеть просто не могла обрабатывать транзакции. Это было резкое противоречие, учитывая, что на собственном сайте Solana — таком же привлекательном, как, скажем, Apple.com — смело утверждалось, что в ее сети «транзакции никогда не будут остановлены«.

При этом в последнем случае (01.06.22) проблема опять лежала в элементе архитектуры: долговечный nonce — способ, с помощью которого транзакция может быть подписана заранее в автономном режиме, не требуя хэша последнего блока (который истекает через две минуты). В последнее время его использование возросло, особенно на биржах, возможно, благодаря их системам холодного хранения. Ошибка приводит к тому, что долговечный nonce, созданный и отправленный в том же слоте, может быть выполнен второй раз в более позднем слоте…. Проблема совершенно не связана с дрейфом часов, и дрейф часов не имеет никакого отношения к остановке сети. 

То есть в сети существовало на сей раз сразу две проблемы, каждая из которых, если верить WP и прочей документации, не должны были существовать в принципе. 

Таким образом, не хотелось бы никого обижать, но в Solana слишком много маркетинга и ажиотажа, иначе говоря — лжи. Пример: “в результате блокчейн Solana быстрый и спроектирован со встроенной масштабируемостью, что обеспечивает более высокую энергоэффективность и безопасность за счёт снижения вычислительной мощности и защиты от вмешательства в синхронизированные метки времени”. И речь не о том, что ошибки недопустимы, а о том, что архитектурно как раз Solana подвержена всем перечисленным рискам: 1) она плохо масштабируется; 2) она обеспечивает высокую энергоэффективность лишь за счёт п. 1; 3) она снижает безопасность итоговую сети из-за п. 1-2 и, наконец, 4) PoH — прекрасный концепт, но у него очень много проблем. 

Каких? Пример: «ончейн-хронометраж отстает от “настенных часов” примерно на 30 минут из-за более длительного, чем обычно, времени блока. Хотя это не влияет на производительность или работу сети, время, сообщаемое обозревателям и dapps, может отображаться некорректно». И это тоже — не просто ad hoc сбой, а именно что архитектурная недоработка. 

Более того, разработчики уверяют в одном, а на деле происходит нечто совсем другое:

  1. Период для блока увеличивается;
  2. Эпоха — удлиняется;
  3. Их число за год — уменьшается;
  4. В итоге валидаторы получают меньше. 

Но и это не всё: 

Во-первых, из-за таких сбоев позиционирование Solana как блокчейна для высокочастотного трейдинга невозможно соотнести с практикой обратных примеров, то есть “в такие периоды нестабильности сети крипто-трейдеры часто остаются без возможности продать свои позиции, поскольку транзакции не могут быть завершены в сети Solana, что является еще одним признаком того, насколько ненадежной может быть эта новая технология во время стресса. В сочетании с обвалом цен на криптовалюты в масштабах всего рынка инвесторы, стремящиеся избавиться от своих токенов, вынуждены искать другие пути, в то время как их портфели стремительно сокращаются”.

Более того — вечная гонка за TPS происходит, но лишь на бумаге: хайп NFT стал ещё одним доказательством. Ведь вместо того, чтобы рисовать мифические цифры о скорости — следовало бы заняться по-настоящему важными вещами: для начала, если говорить о тех же NFTs, хотя бы стандартизацию довести до уровня ERC-721 & ERC-1155 в Ethereum? Но вместо этого команда предпочитает двигаться впопыхах: это работает для ритейл-сегмента, где конкуренция из-за монополизации невелика, но среди L1-решений всё несколько иначе: Bitcoin, Ethereum, Cardano, Cosmos, Polkadot, Near, Avalanche и многие другие вполне могут жить и без Solana, и помимо Solana, и даже вместо Solana. Но понимает ли это VC-сегмент, который вкладывает сотни миллионов, чтобы заработать миллиарды? 

Ещё раз: на мне нет розовых очков относительно того, что никто не застрахован от ошибок, но у меня есть явное недопонимание, когда базовые архитектурные требования просто игнорируются. Совсем. Цитирую: создатель Solana “хотел решить главную «трилемму» блокчейн-технологий: как сделать их одновременно быстрыми, децентрализованными и качественными [правильней — масштабируемыми: прим. Menaskop]… С этой целью он придумал новый алгоритм – proof-of-history, который, в отличие от наиболее известных – proof-of-stake и proof-of-work, сделал процесс обработки транзакций в блокчейне более быстрым и защищённым… (и) решил соединить алгоритм proof-of-stake с собственной разработкой – proof-of-history. Чтобы сэкономить время для подтверждения времени каждой транзакции так называемыми валидаторами, Solana самостоятельно назначает временные штампы, благодаря которым можно быстрее достичь временного консенсуса”.

В итоге? Архитектурные огрехи PoS смешались с таковыми же в PoH, потому как трилемма говорит нам о том, что не стоит достигать всего и сразу — будет слишком дорого, как минимум, а скорее — плохо. 

Поэтому “цена отражает всё” лишь в какой-то конкретный момент времени и для каких-то конкретных сторон сделки, но не для рынка в целом: мало измерить капитализацию или ROI — нужно ещё осмыслить, а за сколько (по времени и деньгам) это было сделано и чем на практике это лучше уже созданного. 

Биткоин родился из условного $0; Эфиру понадобилось уже $18.5M, а SOL & NEAR уже сотни миллионов. И при этом заявлений пока больше, чем дел. 

И самая большая ложь кроется в едва заметной детали: для перезапуска сети в последний раз потребовалось 80% валидаторов. Не 75%, как об этом нам говорит известная теорема о PoS, а именно 80%: вроде бы 80% — 75% = 5% не так много, но на деле это приводит ещё к одному тезису, о коем рассказывал и много раз. А именно? Чем дешевле архитектура в начале — тем дороже она обходится при каждом масштабировании. Сделать бесплатными миллионы транзакций, которые надо 1) создать; 2) передать; 3) валидировать; 4) хранить — нельзя. Но на бычьем рынке “инвесторы” и спекулянты думают иначе. 

Поэтому — ещё один тезис: по данным исследователей блокчейна, Solana обрабатывает в среднем 2 700 транзакций в секунду (tps), при этом верхний пик в стандартной сети составляет более 710 000 tps, согласно документам разработчиков. “Однако в субботу вечером миллионы транзакций наводнили сеть каждую секунду. Это привело к тому, что сетевые валидаторы — или организации, которые обрабатывают транзакции в сети и поддерживают её — исчерпали память и вышли из строя, сообщили разработчики… Разработчики добавили, что в Solana вводится плата за приоритетность транзакций”. 

Ничего не напоминает? Да, верно: дешёвые, почти бесплатные, транзакции превращаются в транзакции BTC/ETH, где каждый должен платить за приоритет. А почему? Потому что изначально BTC был создан внутри сети Bitcoin как раз для борьбы с внутренним спамом, а ограниченный mempool создаёт не искусственное, а вполне конкретное соревнование. И да, PoW — долго и нудно, но зато — надёжно: вот вам и трилемма. И в этот раз ещё больше уверен, что PoW как Глобальные Оракулы пока одиноки, потому как мульти- & кросс-мир потребует именно подобного. 

Отсюда возникает и последнее ложное высказывание. Вот оно: «блокчейн управляется в основном добровольцами, случайными людьми с различными стимулами», — сказал как-то А. Яковенко Bloomberg. «Невозможно гарантировать, что эти сети полностью свободны от ошибок». Но это явная неправда: в Биткоине — ноды поддерживаются энтузиастами, пулами, биржами — да; в Эфире майнером может стать каждый с дорогой GPU-картой; а вот в Solana, где валидаторы меж собой общаются через дискор — о каких случайных людях идёт речь? Конечно же нет: более того — это и есть централизация ресурса, которая делает его в итоге столь хрупким. 

Особенно хорошо это было видно на взломе Wormhole — Solana: при запуске проект позиционировался как достижение Solana, а при взломе — как проигрыш экосистем, но уже Эфира (и всё из-за СМИ, которые подхватили новость о ETH). 

При этом ВСЕ случившиеся проблемы-отключения Solana фактически уже были:

  1. Проблемы с памятью у EOS-архитектуры;
  2. Проблемы “бесплатных” транзакций у Polygon, Tron, BSV, etc.;
  3. Проблемы централизации валидаторов…

Отчасти об этом — в аналогии с рынком БД — рассказывал когда-то основатель Near А. Скиданов: https://basicblockradio.libsyn.com/-082-near. Соль в том, что “слишком быстрые и большие БД” нужны не так многим. И ровно то же с ДРС: блокчейны и DAG-системы с огромным показателем TPS и при этом правильно выстроенной, то есть — тоже скоростной, финализаций нужны в очень узком спектре сфер — тот же высокочастотный трейдинг и т.п. 

В остальном же прелесть ДРС именно в децентрализации, открытости и анонимности. Потому — 

Выводы

Я — не ретроград: многие наработки Solana нравятся, но вот против чего выступаю:

  1. Маркетинг может и даже должен бежать впереди продукта, но не подменять его: пока же у Solana слишком много заявленного не реализовано, а меж тем прошло уже не полгода, а 3.5 и потому цена ничего не объясняет;
  2. Без учёта темпографии такие консенсусы как PoH просто обречены на провал: попробуйте начать с третьей части здесь, на Hub Forklog, и пройти по ступеням вверх — убедитесь сами; 
  3. Следует брать положительные практики прошлого, а не игнорировать их. Пример: “в Твиттере соучредитель Solana Анатолий Яковенко и другие разработчики объяснили сбой в среду ошибкой в ​​​​функции устойчивых одноразовых транзакций блокчейна. Это привело к не-детерминизму, означающему, что разные узлы генерировали разные результаты для одного и того же блока, и консенсус не мог быть достигнут”. Посмотрите как работала система “рыбаков” в Polkadot и/или IBC в Cosmos для Tendermint связки и станет ясно, что эти же подходы здесь явно бы не помешали. 

В остальном — пожелаю Solana удачи: она всё больше походит на Tron, который смог повторять созданное путём постоянных ошибок собственных, но так и не сделал ничего достойного сам. Надеюсь, что в этот раз выйдет иначе: всё же Анатолий — не Джастин.

Дополнительные ссылки

Несколько важных материалов по теме:

  1. Отличие архитектуры Ethereum от Solana: https://medium.com/@asmiller1989/solana-transactions-in-depth-1f7f7fe06ac2 
  2. Proof-of-history Solana: https://medium.com/solana-labs/proof-of-history-a-clock-for-blockchain-cf47a61a9274  
  3. Экосистема Solana: https://3commas.io/blog/wp-content/uploads/2020/11/Solana-2-2048×1152.jpg  

Как видим — система развивается и пусть у неё будет будущее, а я продолжу следить за Near, Cosmos, Polkadot, Avalanche, тем более что у последнего явно есть шанс выйти в лидеры, если только… впрочем — пока просто понаблюдаем и

До!

Обсудить в Discord!