Расшифровка создана автоматически и отредактирована с помощью ИИ для удобства чтения, поэтому возможны ошибки.
(00:00:00) Александр Селезнев: Привет, с вами подкаст «Базовый блок», подкаст про блокчейн. Это выпуск номер 221. У микрофона с вами сегодня Александр Селезнев и мой коллега Сергей Тихомиров.
(00:00:11) Сергей Тихомиров: Всем привет!
(00:00:13) Александр Селезнев: Сегодня мы продолжаем серию выпусков, посвящённых пост-квантовой криптографии и проблемам, которые она решает. В прошлом выпуске мы успели рассмотреть, что такое квантовая криптография, пост-квантовая криптография и в чём разница между ними. В этом выпуске мы начнём рассматривать пост-квантовую криптографию применительно к блокчейнам, к Ethereum, к Bitcoin. Думаю, мы поднимем много спорных вопросов, в том числе организационных, о том, как нам быть с тем, что спустя всего несколько лет квантовые компьютеры нас всех заменят. Ой, извините: нас заменит ИИ, а квантовые компьютеры оставят нас без крипты.
(00:01:01) Александр Селезнев: Перед тем как мы начнём, я хотел бы поблагодарить всех, кто нас поддерживает. В первую очередь это наши слушатели и наши патроны на сайтах patreon.com/basicblockradio и boosty.to/basicblockradio. Огромное вам спасибо за поддержку, дорогие слушатели.
(00:01:25) Александр Селезнев: Также нас поддерживают наши спонсоры. Это GOSH, core-разработчик блокчейна Acki Nacki, основанного на протоколе, достигающем консенсуса за две итерации — самом быстром из теоретически возможных. GOSH уже запустил мейннет. В коммьюнити — огромные миллионы участников. GOSH заключили партнёрства с Oracle и Amper Computing. Основные направления развития GOSH — мобильный гейминг, биодайверсити-активы, мем-коины и DePIN.
(00:01:55) Александр Селезнев: Также нас поддерживает Fluence. Это облачная платформа на базе децентрализованной инфраструктуры, которая предоставляет более дешёвую и отказоустойчивую альтернативу традиционным облачным решениям, таким как AWS, Digital Ocean или Hetzner. С помощью Fluence вы получаете доступ к глобальной сети децентрализованных провайдеров, можете быстро запускать виртуальные серверы и разворачивать рабочие нагрузки по всему миру, при этом значительно снижаете расходы и не зависите от одного провайдера.
(00:02:25) Александр Селезнев: Также нас поддерживает Zerion. Zerion поставляет Zerion API — мощный инструмент для Web3-разработчиков. С его помощью можно в реальном времени получать данные о кошельках, токенах, DeFi-позициях и NFT на более чем 24 блокчейнах, включая Ethereum, Solana и прочее. API предоставляет детальные человекочитаемые транзакции, мультичейн, аптайм 99,9%, масштабируемость свыше 1000 запросов в секунду. API Zerion используют такие крупные компании, как Uniswap, OpenSea, WalletConnect, Rainbow Wallet и другие.
(00:02:57) Александр Селезнев: Также нас поддерживает 1inch. 1inch обслуживает 23 млн пользователей и проводит свыше 1 млрд долларов сделок в сутки. Свежая статистика The Block показывает: у сервиса около 60% всех объёмов DeFi-агрегации. 1inch уже даёт выгодные обмены в Ethereum, Solana, Optimism, Avalanche. Хотите встроить 1inch в своё приложение? Все API ждут вас на 1inch.dev. А для личного пользования есть мобильный кошелёк с вашими ключами и удобный мониторинг активов в портфолио. Заходите на 1inch.com.
(00:03:30) Александр Селезнев: С нами снова наш прекрасный гость, эксперт по пост-квантовой криптографии Михаил Кудинов. Михаил, привет!
(00:03:37) Михаил Кудинов: Снова здравствуйте. Рад снова присутствовать на подкасте.
(00:03:41) Александр Селезнев: Рады тебя снова с нами видеть. Серёж, передам микрофон тебе.
(00:03:45) Сергей Тихомиров: Спасибо большое, Саша. Спасибо, Михаил, что к нам снова зашёл. Думаю, решение разбить это на два выпуска было изначально мудрым, потому что контента очень много. Надеюсь, слушатели как раз успели переварить ту теоретическую базу, которую мы изложили в прошлом выпуске. А сегодня мы поговорим подробнее о практике, а именно о том, как наши любимые блокчейны, главным образом Ethereum и Bitcoin, может быть, какие-то другие тоже обсудим, перевести на пост-квантовую криптографию и зачем это нужно. У нас в гостях Михаил Кудинов, криптограф в Blockstream. Ещё раз привет.
(00:04:22) Михаил Кудинов: Здравствуйте.
(00:04:24) Сергей Тихомиров: Мы начнём, может быть, с краткого рекапа предыдущего выпуска для тех, кто только что к нам присоединился, без погружения в технические детали. Можешь, пожалуйста, кратко напомнить слушателям, почему так важно переходить на пост-квантовую криптографию?
(00:04:38) Михаил Кудинов: На текущий момент мы знаем, что при появлении достаточно большого, как говорится, криптографически релевантного квантового компьютера — достаточно эффективного и мощного — у нас есть алгоритмы, которые позволят этому компьютеру взламывать криптографию с открытым ключом, которой мы сегодня пользуемся. В частности, в блокчейнах, я думаю, во всех, мы используем подписи, а подписи — это криптография с открытым ключом. Таким образом, необходимо подготовить альтернативы, которыми мы сможем воспользоваться, если появится достаточно мощный квантовый компьютер. Дискуссию о том, появится такой компьютер или нет, на текущий момент можно сказать, что есть более-менее консенсус: он когда-то появится. Насколько скоро — можно рассуждать. Но история в том, что переход на пост-квантовые алгоритмы — задачи нетривиальные. Подготовить подушку безопасности и возможность использования пост-квантовых алгоритмов в случае наступления так называемого Q-Day необходимо уже сейчас, сегодня.
(00:06:01) Сергей Тихомиров: Думаю, большую часть сегодняшнего разговора мы посвятим подписям, алгоритмам подписей и тому, как их обновлять. Есть ли какие-то другие типы алгоритмов, кроме подписей, которые также релевантны для блокчейнов и которым угрожает квантовый компьютер?
(00:06:17) Михаил Кудинов: Да, нам необходимо также думать о более комплексных алгоритмах. Активно сегодня в различных блокчейнах используются SNARKs. Часто это называется zero-knowledge. Очень часто там не zero-knowledge, но есть агрегация аргументов, агрегация данных в более компактное представление. Такие алгоритмы тоже сегодня в основном основаны на классической криптографии, потому что она позволяет эффективнее осуществлять эту агрегацию или zero-knowledge proofs в некоторых случаях. Соответственно, нам также необходимо заменить такие алгоритмы на пост-квантовые. У нас есть альтернативы, у них есть плюсы и минусы. Это, наверное, ключевые моменты. Возможно, в каких-то нишевых случаях есть и другие алгоритмы, но, наверное, наиболее широкое распространение имеют подписи и SNARKs или zero-knowledge.
(00:07:25) Сергей Тихомиров: Давай сконцентрируемся пока на подписях. Всё-таки без подписей, я думаю, ни один блокчейн не обходится, поскольку авторизация транзакций происходит именно через подписи. Но, может быть, наивный вопрос. Мы на прошлом выпуске тоже обсуждали процесс стандартизации и упоминали, что NIST уже стандартизовал некоторые пост-квантовые алгоритмы. Почему для блокчейна не подходит — или может подходить для каких-то случаев — идея просто взять готовый стандартизированный вариант и его имплементировать? Почему ломаются копья над тем, что именно нам нужно выбрать?
(00:08:02) Михаил Кудинов: Проблема в том, что, во-первых, нам нужно выбрать что-то. Стандартизировали несколько алгоритмов, соответственно, уже есть как минимум два варианта, по-хорошему три среди алгоритмов, которые можно использовать. Вторая проблема в том, что пост-квантовые подписи и в некоторых случаях открытые ключи очень большие. В любом случае блокчейн значит, что у нас есть блок, у блока есть размер. Если раньше мы помещали в блок, я не знаю, 60–100 байт на подпись, то для пост-квантовых алгоритмов это размеры в несколько килобайт. И если наивно считать, не вычитая дополнительную информацию и так далее, просто смотреть разницу в подписях, то так называемый throughput — количество транзакций, которые может нести один блок — сильно уменьшается. Это большая проблема. Ваш блокчейн становится менее используемым, или на нём могут расти fee, оплата за транзакции. Либо нужно увеличивать размер блока.
(00:09:36) Сергей Тихомиров: Прости, увеличивать размер блока нужно, да?
(00:09:38) Михаил Кудинов: Да, да. Если мы увеличиваем размер блока, то, возможно, у вас меньше становится пользователей, которые готовы поддерживать полный блокчейн. Возможно, кто-то откажется участвовать в proof-of-work или proof-of-stake, в зависимости от консенсуса. Это требует больше памяти. Блокчейн становится менее эффективным, из-за чего какие-то пользователи могут отказаться участвовать в таких сетях. Это также вопрос консенсуса. Если мы говорим, что мы хотим какую-то подпись или увеличить блок, любые изменения всё равно необходимо провести и как-то аргументировать, чтобы у активного коммьюнити был на эту тему желательно мажоритарный консенсус. Иначе блокчейн может разделиться на параллельные версии, где одни пользуются одним, другие другим. Это всегда нежелательный исход.
(00:10:42) Сергей Тихомиров: Слушал, готовясь к выпуску, запись панельной дискуссии на недавней Bitcoin Conference в США, где в числе прочего упоминался аргумент: почему нельзя просто принять стандарты как они есть. Потому что стандартизация пытается всем сразу угодить и придумать наиболее универсальный вариант. Тогда как в блокчейнах у нас довольно специфичные требования, и какие-то вещи, которые большому вебу не нужны, нам, наоборот, очень нужны, и наоборот. Насколько это правильная мысль?
(00:11:16) Михаил Кудинов: Мне кажется, кейсов, где нам что-то нужно, а большому вебу не нужно, мне сложно из головы придумать. Другой разговор, что у нас есть определённые условия, в которых мы работаем, из-за чего мы можем изменить некоторые подходы, подстроить эти стандарты в нашу пользу так, чтобы получить более эффективные алгоритмы. Да, NIST стандартизует алгоритмы в первую очередь универсальные. Речь о том, что давайте выпустим что-то, чем можно пользоваться фактически везде. Да, вопрос, что вы хотите, какие у вас нюансы. Вы будете выбирать среди этих алгоритмов в зависимости от нюансов. Но глобально история про то, что мы выпускаем и выбираем алгоритмы, которые будут универсальны и которыми можно пользоваться везде. Мы же можем воспользоваться дополнительными условиями и свойствами блокчейна, чтобы получить более эффективные версии таких алгоритмов.
(00:12:30) Сергей Тихомиров: Приближаясь ближе к практике блокчейна, пока я стараюсь задавать вопросы в очень общем виде, не разделяя на Ethereum и Bitcoin — разделим, когда появится специфика. Мне кажется, следующий аспект, который я хотел бы подсветить, довольно универсален. Для меня он тоже был нетривиальным, я далеко не сразу разобрался. В чём на практике разница и как друг с другом соотносятся сид-фраза или мнемоника, приватный ключ, публичный ключ и адрес? Какая конвертация здесь под угрозой от квантового компьютера, какая нет? Что разглашать опасно, а что безопасно? Понятно, что приватный ключ опасно всегда. Хотелось бы прояснить разницу между публичным ключом и другими элементами этой цепочки.
(00:13:16) Михаил Кудинов: Значит, что у нас происходит? Давайте, может быть, на примере Bitcoin разберём, а дальше проговорим, как это понимать в более широком смысле. Когда мы говорим про сид-фразу или мнемонику, это обычно те 12 слов, которые вы записываете на бумажке, или 24 слова. Что это такое? По сути, очень большая случайная строка. С помощью этой строки вы можете генерировать секретные, приватные ключи для кошельков. Обычно в случае с Bitcoin мы хотим не переиспользовать один и тот же адрес. Часто для новой транзакции используем новые адреса, соответственно, остаток перевода скидываем на новый адрес. Все ключи, которые вы используете, генерируются из этой мнемоники, из этой секретной фразы. Если вы её разгласите, всё очень плохо: по сути, это ваш приватный ключ. Другой разговор: если вы кому-то рассказали секретный ключ для конкретного адреса, из него мнемонику получить не получится, и вы не будете знать даже с помощью квантового компьютера — вы конкретный адрес заэкспоузили, сделали уязвимым, а остальное в целом в безопасности. Это происходит потому, что мнемоника транслируется в секретные ключи с помощью симметричных криптографических алгоритмов, и, как мы обсуждали на прошлом выпуске, симметричные алгоритмы в целом остаются в безопасности даже при появлении квантового компьютера. Дальше у нас трансляция из секретного ключа в открытый ключ: когда мы генерируем ключевую пару, из секретного обычно можем получить открытый ключ, так всегда и получается. Вот эта зависимость как раз может быть взломана с помощью квантового компьютера. Если кто-то узнал ваш открытый ключ в сегодняшней, не пост-квантовой криптографии, он может вычислить секретный ключ и подписать любую транзакцию для этого адреса. Дальше трансляция открытого ключа в адрес — в целом абстракция. Здесь могут быть очень разные ситуации. Например, на Bitcoin тоже разные случаи. Иногда адрес и есть открытый ключ — такой тип адреса, соответственно, один в один. Тогда если кто-то знает ваш адрес, он знает ваш открытый ключ, может взломать секретный ключ и получить доступ к средствам на этом адресе. Есть другой тип адреса в Bitcoin: вы можете захэшировать открытый ключ, и этот хэш будет адресом. Хэш — примитив симметричной криптографии, хэширование позволяет скрыть открытый ключ. Но скрытым он до тех пор, пока вы не воспользуетесь этим адресом хотя бы раз: как только пользуетесь, необходимо предъявить открытый ключ, который соответствует адресу. Есть дискуссии, например, что сегодня столько-то биткоинов на адресах, для которых доступны открытые ключи. Это рассуждение о том, что есть адреса, которые захэшированы, и там открытый ключ неизвестен. Даже если появляется квантовый алгоритм, ему нужно дождаться, пока кто-то воспользуется адресом, совершит транзакцию, и тогда он увидит открытый ключ, который взломает. Пока никто не совершал для каких-то типов адресов транзакции, он не может их атаковать, потому что они защищены дополнительным хэшем.
(00:17:29) Сергей Тихомиров: Я добавлю здесь несколько цифр из только что прочитанного пейпера от коллектива соавторов, многие из которых работают в Google — мы тоже приложим ссылку в описании, очень качественная обзорная статья. Там оценивают количество биткоинов, для которых известен публичный ключ, и на этих адресах лежат деньги: 6–9 миллионов биткоинов, что примерно треть от максимального общего supply Bitcoin.
(00:17:59) Михаил Кудинов: Мне кажется, в таких моментах важно понимать, что если мы говорим про активные кошельки, которые не мёртвые, которые как минимум активно пользуются или могут воспользоваться — в теории там могут долго лежать суммы, но есть пользователь, который следит за происходящим — то количество биткоинов, которое будет действительно доступно на адресах, где открытые ключи будут видны, ближе к появлению квантового компьютера может уменьшаться. Условно я как разработчик какого-нибудь кошелька могу вывести alert пользователю и сказать: нажми на эту кнопку, мы перегоним ещё раз все твои средства на кошельках, где были заэкспоужены открытые ключи, на новые адреса, где они будут закрыты. Навряд ли мы такого увидим, если мы сейчас подготовим пост-квантовые алгоритмы. Но, возможно, увидим, потому что не все следят, и я думаю, что рано или поздно что-нибудь такое появится. Вы заходите в кошелёк, вам приходит alert: надо обновиться. Да, придётся заплатить fee за эти транзакции, но необходимо обновиться, перейти на новые адреса, где они как минимум спрятаны за симметричной криптографией, а по-хорошему там будет альтернативный вариант воспользоваться адресом с помощью пост-квантовых алгоритмов.
(00:19:47) Сергей Тихомиров: Я подумал, что если под кошельком иметь в виду приложение в Apple Store или Google Play, возможен вариант, который идёт вразрез с начальными идеалами шифропанка, но, возможно, будет эффективным: просто в кошельке запушить апдейт, который сам сделает эту транзакцию без подтверждения пользователя, потому что технически никто не запрещает это сделать.
(00:20:07) Михаил Кудинов: Технически, конечно, никто не запрещает, но думаю, что если кто-то так сделает, будут потенциальные репутационные потери.
(00:20:20) Сергей Тихомиров: Понятно. Очень controversial move, конечно, но с другой стороны могут быть репутационные потери, если деньги пользователей пропадут.
(00:20:26) Михаил Кудинов: Тоже правда. Важный момент, о чём ещё дискутируют, когда говорят про адреса и открытые ключи. Если вы воспользовались адресом, где адрес — это хэш открытого ключа, рано или поздно этот открытый ключ придётся предъявить. Возникает дискуссия: когда я предъявляю открытый ключ, при появлении транзакции диапазон времени для атаки моего кошелька становится 10 минут, например, если это блок. Хорошо, если это финализация, 6 блоков — час. Но за час, наверное, на текущий момент, даже при ближайшем появлении квантового компьютера, взломать конкретный ключ, успеть создать транзакцию, которая займёт место предыдущей, — нетривиально, и не факт, что это стоит того для большинства транзакций. Но также проблема в том, что мы говорим: давайте пользоваться адресом один раз. Если вы где-то опубликовали или кому-то дали свой адрес как кошелёк, никому не мешает попробовать перевести туда биткоины. Если кто-то так сделает, идея в том, что биткоины у вас вроде бы ещё есть, но те, что попадают на такой адрес, становятся уязвимыми.
(00:22:05) Сергей Тихомиров: Да, это ценное замечание, мне тоже не сразу в голову уложилось, что такое переиспользование адресов. Люди пишут, что нельзя переиспользовать — а что это значит? Поправь меня, если я не прав: переиспользовать значит сделать более одной исходящей транзакции из моего адреса. Я сделал первую транзакцию, запалил публичный ключ, и дальше всё, что на этот адрес пришло, по сути уязвимо. Проблема в том, что я не могу на это влиять, не могу запретить кому-то прислать мне деньги на такой адрес.
(00:22:45) Михаил Кудинов: Да, но вы можете запретить с точки зрения межличностных договорённостей. Я, допустим, предоставляю услуги, скидываю счёт, куда перевести деньги. Если вы вдруг переводите на мой другой счёт — у меня там 10 счетов — я могу сказать: прошу прощения, у нас контракт на этот счёт, я на этот счёт жду деньги, вы можете перевести мне ещё сколько угодно куда угодно. Но это уже социальный эффект. Конечно, на практике мы не хотим, чтобы в блокчейне вообще была такая проблема: если кто-то скинул куда-то адрес — это не дело.
(00:23:26) Александр Селезнев: Мне захотелось задать ещё дополнительный вопрос — думаю, нам не помешает вспомнить из предыдущего выпуска. Михаил, ты сейчас сказал, что если я со своего адреса, который защищён хэшем, хочу что-то кому-то перевести, я показываю свой публичный ключ, и в этот короткий промежуток времени, пока транзакция не настоится, мой адрес в опасности — это какие-то минуты. Ты сказал, что для значительного количества транзакций просто такая атака нецелесообразна. Мне стало интересно: давай вспомним, какой вообще временной масштаб у такой квантовой атаки. Сколько нужно времени — я понимаю, что это вопрос отдалённого будущего, но тем не менее, может быть, хоть какая-то прикидка есть: сколько времени нужно, чтобы восстановить из публичного ключа приватный. Это раз. И второе — какие для этого нужны вычислительные ресурсы. То есть мне нужны десять дата-центров, и тогда действительно нецелесообразно взламывать транзакцию на сто баксов, или мне хватит одного iPhone, и тогда взламывать транзакцию на сто баксов уже целесообразно?
(00:24:42) Михаил Кудинов: По времени, честно говоря, я не в курсе. Когда мы говорим про криптографические алгоритмы, мы рассуждаем об экспоненциальной или полиномиальной сложности. Что это? Грубо говоря, полиномиальная — это, например, n в квадрате. n — входные данные, здесь, например, размер ключа: мы говорим про 256 бит. 256 в квадрате — число большое, но это достаточно маленькое количество вычислений, и задача вычислима за вменяемое время. В криптографии под вменяемым мы часто имеем в виду неделю, год, несколько лет, может быть, несколько десятков лет: если я возьму миллиард миллионов и возведу в квадрат, получится очень много, но в целом это реально. Когда мы говорим про экспоненциальное, это уже два в степени 256 — число больше, чем число атомов во Вселенной; приводят сравнения вроде «если посчитать каждую песчинку в пустыне Сахара, всё равно будет меньше, чем два в степени 256». Грубо говоря, сделать это невозможно. Квантовый компьютер взламывает за полиномиальное время. Дальше что происходит? Нам нужно понимать, сколько будут длиться циклы в нашем квантовом компьютере — такты, сколько вычислений он может проделать за миллисекунду или секунду. Если честно, я не знаю, есть ли вообще такие оценки: сколько вычислений сможет проделать физический агрегат — наш квантовый компьютер. Может быть, кто-то что-нибудь прикидывает, но я, по крайней мере, не в курсе. Вероятнее всего, первые квантовые компьютеры будут делать это очень медленно — здесь я рассуждаю интуитивно, не на основе технических фактов. Про вычислительные ресурсы: нужны ресурсы одного квантового компьютера. Что такое один квантовый компьютер? Опять же, это инженерная проблема. Кто-то рассуждает, что достаточно мощный квантовый компьютер по текущим технологиям займёт десять футбольных полей и всё это должно быть в холодильнике, потому что нужны очень низкие температуры. Я здесь не эксперт в инженерных вопросах квантового компьютера, и снова довольно сложно сказать: первые классические компьютеры занимали комнату — огромные шкафы, а сегодня это iPhone в руке. Наверное, будет аналогичная ситуация: первые квантовые компьютеры, скорее всего, будут огромным девайсом, который потребляет много ресурсов, его нужно охлаждать, подводить много электричества. Запустить такой квантовый компьютер будет, наверное, недешёвой задачей. Справится ли он за десять минут с кошельком — тоже, скорее всего, маловероятная история. Но когда мы говорим про то, как мы хотим, чтобы работал блокчейн, мы так системы не строим: «ой, пока дорого и неудобно, будем пользоваться, надеясь, что не успеют взломать».
(00:28:51) Александр Селезнев: Новая мысль, которая у меня появилась после этого: Q-Day небинарно переведёт нас сразу в момент, когда всё, пипец, все наши транзакции полностью взломаны. Скорее это будет какой-то постепенный переход: мы уже в опасности, но ещё не на сто процентов каждый доллар.
(00:29:09) Михаил Кудинов: Это правда. Но тут есть ещё вторая проблема — тоже социальная, потому что есть достаточно хорошая дискуссия о том, что Bitcoin точно не будет взломан квантовым компьютером. Почему? Либо мы перешли на пост-квантовую криптографию — и всё хорошо, всё прекрасно. Либо мы не перешли на пост-квантовую криптографию, и Bitcoin рухнул в ноль, так что никому нет дела до того, что появился квантовый компьютер: условно, за неделю до появления квантового компьютера все уже понимают, что завтра их ресурсы могут быть взломаны, они уязвимы, надо всё продавать, пока кто-то за это платит. За такую цену нет смысла тратить, возможно, ваше электричество на обычный компьютер, чтобы взламывать Bitcoin.
(00:30:12) Сергей Тихомиров: С вашего позволения переведу нашу дискуссию на более технические рельсы. Мне бы хотелось для начала поговорить про подход Bitcoin к переходу на пост-квантовую криптографию. Здесь я бы разделил два аспекта. Первый, более технический — сейчас обсудим, на что именно переходить, на какие алгоритмы. Вопрос более социально-политический — как именно это реализовать — предлагаю оставить на десерт, на финал. Пока из первой технической части: я почитал блог компании Blockstream и сделал вывод, что как минимум два направления изучаются как потенциальные кандидаты на новый алгоритм подписи для Bitcoin — hash-based алгоритмы и алгоритмы на основе решёток. Как я понимаю, hash-based — опять-таки твоя экспертиза, и ты участвовал в разработке подобного протокола. Можешь рассказать плюсы и минусы этих подходов, есть ли ещё какие-то значимые подходы и как выглядит пейзаж?
(00:31:15) Михаил Кудинов: Да, я участвую в обоих проектах. Достаточно привлекательными выглядят изогении: у них очень маленькие подписи, очень маленькие открытые ключи — сравнимо с тем, что мы используем в классической криптографии. Но проблема изогений в том, что алгоритмы чуть менее эффективны. Не слишком сильно, там хороший прогресс, это меньшая из проблем. Больше проблема в том, что во время конкурса NIST один из алгоритмов изогений был взломан, и текущие версии, которые сейчас исследуются, тоже относительно новые. Люди достаточно чувствительны и, наверное, справедливо беспокоятся об их безопасности. Чтобы разговаривать об изогениях в блокчейне, придётся подождать несколько лет как минимум, пока достаточное количество времени, сил и ресурсов будет потрачено на изучение безопасности этих алгоритмов. Решётки и хэши — два наиболее очевидных кандидата, потому что у нас уже есть стандарты, очень большое количество ресурсов, уделённых разработке таких алгоритмов и их анализу, и мы можем говорить, что, скорее всего, эти алгоритмы безопасны. Когда я говорю «скорее всего», я бы сказал, что точно: технически не доказано, но это то же самое, что и для классической криптографии — технически не доказано. Если мы говорим про хэш-подписи, чем они привлекают? Во-первых, простотой: алгоритмы по описанию достаточно простые. Мне кажется, для технически подкованного человека не нужны глубокие математические познания — можно разобраться и понять, что происходит в алгоритме. Реализация довольно простая. Второй момент: здесь ничего не требуется, кроме хэш-функции, а хэш-функцию мы используем везде, где только можно. Когда вы говорите «давайте добавим подписи на хэш-функциях», вы говорите, что оставляем практически те же криптографические предположения, на которые всё было завязано. Мы по сути никаких новых допущений для безопасности блокчейна не добавили. Когда мы говорим про хэш-подписи, есть два вида. Первые называются stateful, вторые — stateless. Обычно для других алгоритмов такого разделения не возникает. Что такое stateful и stateless? Stateful значит: когда вы осуществляете подпись — транзакции, сообщения, неважно чего — вам необходимо обновить секретный ключ в новое состояние. Если это состояние будет утеряно, если обновление произошло с ошибкой, если state, который вы поддерживаете с подписями, пропадёт, алгоритм подписи может оказаться уязвимым. Проблема также возникает, когда вы хотите взять два девайса, поместить на обоих одну и ту же ключевую пару и параллельно подписывать: одним — одни сообщения и транзакции, другим — другие. Я на первом девайсе подписал и обновил состояние, на втором состояние не обновилось — это проблема. То есть каждый раз, когда подписываем stateful-подписью, нужно пользоваться только финальным состоянием.
(00:35:31) Сергей Тихомиров: Можно здесь уточнение? Проблема, если у нас два девайса и между ними рассинхронизировались состояния, именно в том, что переиспользуются уже ранее использованные состояния? Представляю сценарий: у меня был девайс, там уже несколько подписей сделано, я потерял девайс, восстанавливаю сид-фразу и думаю: наверное, меньше десятка транзакций отправил, прокручу счётчик сразу на десятый вперёд и начну с одиннадцатой.
(00:35:59) Михаил Кудинов: Так подходит, но это практически очень скользкая дорожка: скользкая дорожка примерно на десять, одну забыл — и кошелёк уже не в безопасности, мы в плачевной ситуации.
(00:36:16) Сергей Тихомиров: Я ещё приведу аналогию — скажи, что ты думаешь, кажется ли тебе подходящей. Она напомнила мне Lightning: я несколько лет занимался Lightning, и в протоколе второго уровня безопасность тоже строится на том, что два партнёра по каналу поддерживают общее состояние и общий счётчик. Если счётчик сбился, если backup сломался — есть опасность: ты закроешь канал, а партнёр подумает, что ты пытаешься его обмануть, и накажет. И по-своему будет прав, потому что состояние правда старое, счётчик был старый.
(00:36:48) Михаил Кудинов: Это правда. Когда мы говорим про stateful, нам нужно поддерживать некоторое состояние и его обновлять. Когда мы говорим про stateless — это просто не stateful. Например, наши классические подписи на эллиптических кривых stateless, просто никто их так не обозначает, потому что stateful-варианта здесь нет, и разделение возникает как раз из-за того, что есть stateful. Почему есть такое разделение? Потому что stateful-подписи на основе хэшей сильно эффективнее, чем stateless. Второй момент, который, может быть, стоит добавить: у подписей на хэшах эффективность и размеры сильно зависят от порогового значения — для большинства, для максимального количества подписей, которые я могу совершить с данной ключевой парой. Для любых криптографических примитивов есть максимум: если вы превысите, ключ можно взломать. Но практически всегда этот максимум настолько велик, что ты на практике не можешь его достичь. Такое же требование было у NIST: необходимо предоставить алгоритмы, которые могут подписывать 2 в 64-й раз. Это очень много, в целом допустимое значение. Если я возьму суперкомпьютер и буду генерировать подписи, за несколько лет, может быть, столько нагенерю — но это ты сам себе делаешь плохо. На практике один и тот же ключ 2 в 64-й сообщений фактически никогда не подпишет, поэтому выбрана эта граница. Когда мы говорим про блокчейн, 2 в 64-й — наверное, даже слишком большая граница. Мы можем выбрать пониже, например 2 в 40-й. Мы, по-моему, приводили оценки: если говорить про 2 в 40-й, то несколько лет одному заполнять все блоки в Bitcoin, и сверху ещё останутся подписи. Если мы снижаем порог, эффективность хэш-подписей становится сильно, на порядок лучше. Всё ещё килобайты, но на порядок лучше, чем изначальная версия. Это разговор о том, что у нас есть стандарт NIST, он требует 2 в 64 подписей, но в блокчейне 2 в 64 — уж слишком большой порог, мы можем сделать лучше и сказать: вот 2 в 40. Нам уже нужно отходить от стандарта. Как только начинаем отходить, начинается «а почему, а где, а зачем, а почему не по-другому, а почему 2 в 40, а не 2 в 30, а не 2 в 50». Это дискуссия, поэтому нетривиальная задача — договориться, что хорошо и что выбрать.
(00:40:05) Сергей Тихомиров: Как бы ты сейчас охарактеризовал состояние этих двух направлений исследования — хэш-подписи для Bitcoin в контексте вашей с Jonas Nick статьи в Blockstream и параллельно, как я понимаю, ветка с решётками?
(00:40:22) Михаил Кудинов: Хэши на сегодняшний момент наиболее перспективны с точки зрения urgent, срочного решения. Во-первых, мы понимаем, что это максимально безопасно. Во-вторых, у нас есть предложение о комбинации stateful и stateless решений специальным образом: мы можем получить очень эффективные stateful-подписи и дополнительную fallback-версию — если что-то пошло не так со stateful, она не такая эффективная, размеры больше, но если вы вдруг утеряли state, вы всё равно можете совершить транзакцию. Схема носит концептуальное название SHRINCS — от SPHINCS и shrink, сжимать; какая-то такая была идея в названии. Там stateful-подписи в районе 400–500 байт, в зависимости от параметров, по которым тоже идёт дискуссия, как лучше сделать — меньше килобайта. Это всё ещё сильно больше, чем классически, но сильно лучше. Если мы говорим «давайте добавим что-то сейчас, и все успокоятся, что у нас есть пост-квантовая защита» — очень выглядит перспективно и привлекательно. Когда мы говорим про решётки, во-первых, они не маленькие. В дискуссии, когда сравнивают решётки и hash-подписи, часто сравнивают только подписи. Есть, например, алгоритм на решётках Falcon с подписью около 600 байт, но открытый ключ тоже примерно 500 байт. Важно сочетание размера открытого ключа плюс размер подписи, потому что и то и другое держится на блокчейне. Когда мы говорим про hash-подписи, открытый ключ 16 байт, а не 8, поэтому про открытый ключ все забывают. Здесь правильнее сравнивать сумму. Алгоритмы на решётках — тоже килобайты, как минимум один. Второй момент: это дополнительное предположение, которое раньше вы не использовали в блокчейне. Теперь вы говорите: мы меняем криптографический стек и добавляем решётки. Это консенсусно воспринимается по-разному. Люди, настроенные наиболее консервативно, наиболее безопасно — хотя я бы сказал, что решётки на сегодняшний день безопасная опция — тоже могут быть против добавления новых криптографических решений в блокчейн. Из стандартов что есть? Два стандарта: один уже опубликованный, второй ждём уже больше года, но рано или поздно дождёмся. Первый вариант — ML-DSA; если не ошибаюсь по памяти, при самом минимальном варианте приблизительно 3 килобайта сумма. Важно посмотреть, что происходит в индустрии — Google, Apple, Cloudflare переходят на пост-квантовые решения. Когда они выбирают алгоритмы на решётках, очень часто используют не самый минимальный порог: у нас в среднем три уровня безопасности, которые попросил NIST — первый, третий и пятый; промежуточные обычно не особо на них смотрят. Первый уровень — то, что мы сегодня используем в Bitcoin и практически повсеместно, в целом достаточно. Крупные компании выбирают как минимум третий уровень для решёток и аргументируют так: мы считаем, что решётки в общем окажутся безопасными, но, возможно, сегодня-завтра появится чуть лучшая атака, которая чуть откусит, и сегодняшний третий уровень через два года станет первым. Мы не думаем, что их взломают, но хотим заплатить немного эффективностью, чтобы дать себе зазор: атаки улучшаются, а мы всё равно в зоне допустимого уровня безопасности. Если говорить про третий уровень для ML-DSA — уже 5 килобайт. 5 килобайт уже не так далеко от 8 килобайт хэшовых, но здесь мы добавили решётки. Мы можем снизить порог для hash-подписей и сделать подпись 6 килобайт — легко, и это stateless. Когда я говорил про stateful, мы говорили про 500 байт. Есть альтернативный алгоритм Falcon: у него сильно лучше по всему. Первый уровень — 1,5 килобайта, третьего нет, сразу пятый. Пятый уровень безопасности — 3 килобайта, навскидку сотни сверху. У Falcon есть небольшая проблема — достаточно сложная реализация. Чем сложнее алгоритм для реализации, тем больше ошибок в реализации, тем больше атак не из-за того, что алгоритм плохой, а из-за того, что кто-то накодил неправильно. И опять решётки. Продолжаются рассуждения, что решётки могут принести дополнительные, более эффективные, более сложные подписи. Иногда говорим multi-signatures — когда несколько участников должны сначала авторизовать транзакцию, только потом она валидна. Для хэш-подписей нет дополнительной структуры, которой могли бы воспользоваться: для такой транзакции каждый участник просто подписывает. Для решёток такие алгоритмы есть. Сейчас идёт research в этом направлении — не сказать, что на текущий момент суперэффективные решения, но потенциально решётки могут достичь неплохих показателей. Возможно, тогда мы также будем говорить: решётки, помимо меньших размеров, ещё позволяют здесь сильно сэкономить, а это для нас важно.
(00:47:28) Сергей Тихомиров: Давай обсудим, что происходит в это время в Ethereum, а потом ближе к концу — более социально-политические аспекты и политику обновления во всех интересующих нас системах. Мне показалось интересным из того, что я читал: в Ethereum, помимо того что пользователи подписывают транзакции и те же атаки применимы, есть аспект, которого в Bitcoin нет — консенсусный протокол с массовой агрегацией подписей валидаторов. Можешь немного про это поговорить: чем требования Ethereum отличаются или расширяются по сравнению с Bitcoin?
(00:48:12) Михаил Кудинов: Да, мы делали с Ethereum проект в своё время и тоже думали, как решить эту проблему. На текущий момент похоже, что они будут двигаться в сторону хэш-подписей. Что происходит там? На Bitcoin у нас proof-of-work, который позволяет создавать и валидировать новые блоки; на Ethereum — proof-of-stake, где валидаторы говорят: этот блок хороший, этот плохой. «Говорят» значит: они должны авторизовать свои утверждения — это тоже подпись. Валидаторов много; технически мы можем, но не хотим ставить все подписи на блок, поэтому хотим агрегировать. Первый удобный момент: для proof-of-stake в таком формате удобно использовать stateful-подписи, потому что здесь как раз есть счётчик, который нужно обновлять, и он может по сути являться эпохой — номером блока. Идёт эпоха, номер эпохи — ваш state. Мы можем использовать stateful hash-подписи, они хорошо подходят. Второй момент: мы хотим эти подписи скомбинировать. Я только что говорил, что hash-подписи плохо комбинируются в стандартном формате, но что можно сделать? Есть алгоритмы SNARKs, которые по сути могут комбинировать всё что угодно — не важно, какая структура. Это мы можем укорачивать. Подпись — доказательство, что сообщение написано этим открытым ключом, этим отправителем. Есть алгоритм, который может провалидировать все подписи относительно всех открытых ключей и сказать: если все или большинство отвалидированы — хорошо, если нет — нет. Такой алгоритм — входные данные, input, и мы можем запустить generic SNARK, который работает для любого алгоритма, чтобы сжать input и предоставить доказательство, что данные действительно так провалидируются. В чём разница между Bitcoin и Ethereum? Ethereum готов использовать Poseidon-хэш-функцию. Poseidon — другая хэш-функция; наиболее распространённое семейство — SHA, в Bitcoin, например, SHA-256. Poseidon значительно новее и настроена так, чтобы её было удобно и эффективно агрегировать generic SNARK-ами: как она вычисляется, преобразуется в более простые утверждения, более простую схему вычисления, поэтому агрегировать очень удобно. Если взять одну и ту же хэш-подпись и выбрать SHA-256 или Poseidon — Poseidon агрегируется за миллисекунды, подписи на SHA могут часами агрегироваться, и это неэффективно. Сейчас идёт работа над увеличением эффективности, строят алгоритмы, чтобы удобно агрегировать и SHA, но Poseidon на сегодня выигрывает. Проблема: Poseidon — новое предположение, которого нет в Bitcoin. Относительно новая хэш-функция, не очень консервативно её использовать — могут быть атаки, что-то найдут. Она с нами уже довольно давно, поэтому можно рассуждать, что чего-то трагичного, прямо разрушающего, маловероятно, но опять же это новое предположение.
(00:52:22) Сергей Тихомиров: Можешь прояснить механику чуть подробнее? Я не очень хорошо понимаю: когда мы говорим про Ethereum, proof-of-stake, консенсус и агрегацию подписей, валидаторы подписывают то, что согласны с очередным блоком. Кто, собственно, агрегирует эти подписи? Это происходит централизованно или децентрализованно?
(00:52:43) Михаил Кудинов: Могу где-то ошибиться, на всякий случай перепроверь, но есть валидатор — отдельная сущность, и билдер — отдельная сущность. Валидатор и билдер могут быть одним лицом, это не запрещено, всё нормально. Валидатор отвечает за то, что он сказал: блок хороший. Если он наврал про хороший блок, его могут наказать; если всё делает правильно, получает награду. Билдер отвечает за то, что он сделает блок, и если его блок примут, он тоже получит определённую награду. Насколько я помню — лучше перепроверить — на текущий момент билдеры занимаются вот этой агрегацией. Более того, подход, который сейчас предлагается в Ethereum, позволяет нескольким билдерам кооперироваться. Что это значит? Первый билдер агрегировал первые десять подписей, второй — вторые десять, третий взял эти два агрегированных результата и тоже объединил их между собой. Это позволяет достаточно эффективно, более децентрализованно и быстрее создавать блоки и эту агрегацию. Перестаёт быть всё завязано на одном участнике: если он отвалился, вся агрегация не ломается.
(00:54:18) Сергей Тихомиров: Насколько работа, которую вы делали — я смотрю и на публикацию на твоём сайте: Джастин Дрейк (Justin Drake), Дмитрий Ховратович, тоже гость нашего подкаста, несколько раз, Михаил Кудинов, Бенедикт Вагнер (Benedikt Wagner), Hash-based Multi-Signatures — насколько подход, который вы там исследовали, специфичен для юз-кейса агрегации подписей валидаторов или для простых подписей пользователей, или он универсален для обоих?
(00:54:45) Михаил Кудинов: Я бы сказал, что он не универсален. Во-первых, для обычных транзакций stateful-подписи — это то, чего мы в целом хотим избежать, или нужны дополнительные механизмы, как мы говорили про SHRINCS: fallback-версия или что-то в этом духе. Это первый момент. Второй — зависимость от того, как строится концепция. Если мы говорим про proof-of-stake, мы знаем, что все подписи точно будут агрегированы: так устроен протокол. Когда мы говорим про транзакции, нужно понимать: в протоколе кто-то будет агрегировать все транзакции в блоке, или какие-то могут остаться неагрегированными — это обязательно или нет? Мы добавляем агрегацию в протокол, или пользователь сам может провести агрегацию и запустить агрегированное состояние? Здесь меняются показатели эффективности: размер агрегированного доказательства вообще-то не маленький, он больше одной подписи и больше нескольких, но меньше, чем у ста подписей — тогда с точки зрения места это эффективнее. Для proof-of-stake мы знаем: у нас, не знаю, двести валидаторов — значит, агрегация точно нужна. Для транзакций мы не знаем, сколько сагрегируем: знаем максимум, но блок может быть пустым или заполненным. Если обязательно всё агрегировать, иногда это неэффективно и невыгодно. Кто этим занимается? Билдер, который набирает транзакции и агрегирует. У него растёт нагрузка, потому что задача вычислительно нелёгкая, и мы снова уменьшаем децентрализацию. Про stateful я уже сказал — наверное, это два ключевых момента. С транзакциями мы не знаем, что всё будет агрегироваться и сколько транзакций попадёт в агрегат, и stateful нам не очень подходит. Когда выбираем подпись, в случае proof-of-stake мы знаем, что дальше будет агрегация, и выбираем такую, чтобы агрегация прошла наиболее эффективно. Это не всегда значит, что сама подпись суперэффективна: две разные подписи — одна без агрегации лучше второй, но с агрегацией первая лучше второй. Это тоже влияет на решения.
(00:57:44) Сергей Тихомиров: Предлагаю перейти к части про механизм обновления и про то, как именно мы будем обновляться, если придём к пониманию, на что обновляемся, и как это провернуть. Думаю, начнём с Bitcoin и, возможно, уделим ему больше внимания, но про Ethereum тоже поговорим. Вводный вопрос в этой части. Если ты помнишь и следил: я недавно перечитал пейпер, которому примерно год исполнился, из Chaincode Labs про Bitcoin and quantum computing, где обрисовываются перспективы и многое из того, что мы уже обсудили. Авторы говорят, что нужны по сути два плана — краткосрочный и долгосрочный. Краткосрочный залечивает потенциальную угрозу сейчас, долгосрочный — чтобы всё сделать по уму. Краткосрочный, по их оценке, займёт примерно два года, долгосрочный — семь. Когда я читал это год назад, сроки казались огромными, а год уже прошёл. Как тебе кажется, мы on track с этим таймлайном, отстаём или, может, опережаем?
(00:58:56) Михаил Кудинов: Сложно сказать, сколько это займёт. Я, к сожалению или к счастью, не участвовал в предыдущих обновлениях консенсуса, в частности в Bitcoin, поэтому не уверен, сколько это вообще занимает, но все говорят, что процесс довольно медленный и нетривиальный. Есть несколько моментов. Первый: на Bitcoin есть предложение, как сейчас скомбинировать, чтобы пользователи могли использовать и классические, и пост-квантовые подписи. Такое решение мы очень хотим, потому что квантовый компьютер может появиться через двадцать, тридцать или сорок лет. Если он затянется, зачем всё это время использовать килобайтные подписи, если можно спокойно пользоваться классическими — более эффективными и быстрыми? Первое, что уже есть, — BIP-360: вариант, где у нас будут, грубо говоря, скомбинированные открытые ключи пост-квантовых и классических подписей. Пользователь сам решит, каким из них воспользоваться для подписи транзакции. Эта комбинация подписей в целом пост-квантовая: если подписываете пост-квантовую версию, никто не получит доступ к вашему классическому открытому ключу. Для технических слушателей: это Merkle-дерево, которое бинарным деревом хэширует открытые ключи между собой и даёт такую комбинацию. Merkle-дерево на хэшах — хэши, как мы долго обсуждаем, история безопасная против квантового компьютера. Второй момент — подготовка BIP, Bitcoin Improvement Proposal, для пост-квантовой версии. Работа ведётся; когда появится — тогда появится, надеемся в ближайшие месяцы или что-то в этом духе. Другое дело: одно — запропозить, другое — получить feedback, насколько он положительный или отрицательный, на одной ли волне коммьюнити, надо ли кого-то переубеждать или самому переубедиться из-за новых аргументов. Сколько займёт история, что у нас мажоритарный консенсус на добавление такого-то алгоритма — только гадать. Надеемся за вменяемое время. За год? Не знаю. В переходах раньше не участвовал, но мне кажется, за год мы не уложимся.
(01:02:03) Сергей Тихомиров: Да, мне тоже, честно говоря, кажется, что не уложимся. Я не участвовал напрямую, но следил давно. Поправь, если не согласен: обновление на пост-квантовую криптографию — задача посложнее, чем SegWit или Taproot, два больших обновления Bitcoin с активацией в 2017 и 2021 годах. Обсуждение, имплементация и спецификации шли годами до активации — не два года, а скорее пять.
(01:03:28) Михаил Кудинов: Что, возможно, нас ускоряет в положительном смысле: предыдущие proposals говорили «мы сделаем вашу жизнь удобнее». Здесь мы говорим о решении, которое нужно обязательно. Возможно, жизнь станет неудобнее, но понимание, что это необходимо, уже есть, наверное, у большинства. До сих пор, мне кажется, есть скептики: это всё quantum FUD, глупость, ничего не будет. Но большинство сегодня согласны, что как минимум должно быть решение. Может, им не будем пользоваться — будем дальше на классической, отлично, — но оно должно быть в рукаве.
(01:03:28) Сергей Тихомиров: Ты ответил на вопрос, который я планировал позже — давай обсудим сейчас. Есть инвестор и, мне кажется, очень талантливый блогер, Ник Картер (Nic Carter), который в конце прошлого и начале этого года написал серию постов: квантовая катастрофа грядёт, а Bitcoin-разработчики закрывают на неё глаза и ничего не хотят решать. В одном посте он составил табличку главных Bitcoin-разработчиков и цитаты из Twitter, из которых следовало, что большинство квантовую угрозу преуменьшают и не считают серьёзной. Пост от 4 февраля 2026 года. Тебе кажется, оценка тогда была неправильной, или за несколько месяцев мнение среди Bitcoin-разработчиков радикально изменилось?
(01:04:12) Михаил Кудинов: Мне кажется, во-первых, мнение немного изменилось. Во-вторых, даже с учётом изменений — из-за алгоритмов, которые улучшали оценки, насколько большой квантовый компьютер нам нужен, — народ, мне кажется, начал сильнее беспокоиться. Но тейк о том, что никто не шевелится по переходу на пост-квантовую криптографию, мне, если честно, надоел.
(01:04:43) Сергей Тихомиров: Пример так называемого FUD.
(01:04:45) Михаил Кудинов: Я просто не понимаю: ты ходишь в Twitter и говоришь, никто ничего не делает. У тебя много ресурсов — найми людей, не знаю, кто должен это сделать за тебя? Второй момент: кто-то людей нанял. Я в Blockstream сижу и работаю над этой задачей. А ты ходишь и говоришь: Адам, ну ты что тут рассуждаешь, ты недостаточно… Я вообще не понимаю. Если честно, я просто замьютил некоторых активных участников, чтобы сохранять нервную систему.
(01:05:26) Сергей Тихомиров: Да, я как раз поэтому тебя и хотел спросить: вижу сильно различающиеся оценки, хочу составить своё представление и помочь слушателям понять, насколько это воспринимается серьёзно.
(01:05:38) Михаил Кудинов: Я стараюсь смотреть на людей с хорошей стороны, поэтому, возможно, у человека есть положительные мотивы помимо visibility в Twitter — шумиху поднял, и из-за этого все зашевелились, вот он молодец. Может, такая идея, но я сомневаюсь, что так работает. Очень важный момент: часто говорят и воспринимают когорта людей, которые кричат «квантовый, квантовый, никто ничего не делает». Другие говорят: если поспешим — насмешим людей, выберем ерунду, плохо напрограммируем. Это вопрос, который требует тщательного, спокойного, взвешенного изучения. Квантовый компьютер, возможно, не за горами, но не завтра. Как только любители квантового страха слышат «не завтра», они говорят: значит, квантового компьютера не будет.
(01:06:49) Сергей Тихомиров: Это пересекается с тем, как ты в прошлом выпуске объяснял: если Google сказал, что хочет обновиться к 2029 году, это не означает, что компьютер будет в 2029-м.
(01:06:58) Михаил Кудинов: Дальше начинается битва в Twitter: ой, покажите компьютер, который разлагает на множители 21 или 35 — такого нет, а это не так. Если честно, в этой дискуссии ноль конструктива. Нужно сесть, доделать пост-квантовый алгоритм, добавить его в протокол и сидеть спокойно. Народ этим занимается, на разработческих форумах активно обсуждают: нужны ли решётки, изогении, хэши, какие алгоритмы у нас есть. Работа идёт. Мы говорим: может, за год не перейдём, но вероятность, что в 2027-м или 2028-м появится квантовый компьютер… ну, какая-то есть, но я бы сказал, что её нет.
(01:07:54) Сергей Тихомиров: Собственно, хочется поговорить подробнее о слоне в комнате — что делать с бесхозными монетами. Понятно, что мы можем софтфорком добавить новый алгоритм подписей, все ответственные держатели переведут монеты на квантово-безопасные адреса, и всё будет хорошо. Но по оценке авторов из Google и из Chaincode примерно треть всего supply Bitcoin в опасности. Из этой трети, по оценке, которую я здесь видел, exposed — шесть с чем-то миллионов, а 1,7 миллиона именно лежат в старых pay-to-public-key адресах: они уязвимы и при этом никто их не двигает. Что с этим делать?
(01:08:51) Михаил Кудинов: Я не знаю.
(01:08:55) Сергей Тихомиров: Давай зайдём с другой стороны. Ориентируюсь на гугловскую статью: там классификация из трёх возможных путей. Интересно твоё мнение. Первый — ничего не делать: если появится квантовый компьютер и он сможет украсть эти монеты, так тому и быть. Второй — сжечь, чтобы никому не досталось. Третий, промежуточный, под кодовым названием Hourglass, песочные часы: в консенсус вносится правило, по которому за каждый блок можно тратить только ограниченное количество биткоинов с таких адресов. Даже если квантовый компьютер взломает все публичные ключи, он сможет выводить или «красть» биткоины только очень медленно.
(01:09:42) Михаил Кудинов: Как я это вижу, я всегда добавлю четвёртый — он тоже не идеален. Речь про современные кошельки: секретный ключ в них генерируется из мнемонического seed. Альтернатива: мы фризим всё, но вы можете воспользоваться средствами, если докажете знание мнемонического seed, с которого был сгенерирован секретный ключ для этого публичного ключа. Доказательство должно быть пост-квантовым алгоритмом — тогда вы пост-квантово доказали, что кошелёк ваш. Проблема: если кошелёк был просто ключевой парой, мнемонического seed нет — и тогда мы всё-таки что-то зафризили.
(01:10:43) Сергей Тихомиров: Условно, монеты Сатоши — первые намайненные блоки по пятьдесят штук — появились до того, как придумали стандарт сид-фраз. К ним заведомо нет сид-фразы.
(01:10:52) Михаил Кудинов: Может, он использовал какую-то, но, наверное, нет — скорее всего, нет. Второй момент: всё зафризить мне не нравится. Всё отдать квантовому компьютеру разворовать — тоже печально, ценник, наверное, упадёт, никто не хочет падения цены. Конечно, есть история про блокчейн и децентрализованные переводы, но если ты теряешь деньги за пользование услугой в больших количествах, ты ею не будешь пользоваться. Если хотим adoption Bitcoin шире, неплохо бы хотя бы сохранить ценник. С шифропанк-идеологией, наверное, «дать разворовать» чуть поближе.
(01:11:57) Сергей Тихомиров: Когда я увидел аргумент, вроде главный, про колебания цены — если дадим разворовать, всё выльется на рынок, цена упадёт, будет волатильность, — первая мысль была: испугали, извините, ежа голой жопой, Bitcoin волатильностью. Мы переживали падение на 80% несколько раз — норм. Но я подумал: это было в лохматых годах, 2014–2018. Сейчас уже ETF, BlackRock и прочие, MicroStrategy ходлят четверть supply, и они, наверное, не захотят такого.
(01:12:28) Михаил Кудинов: Проблема ещё в другом. Те падения и повышения — вопрос спроса, предложения, веры, неверия, поведения пользователей. Здесь источник проблемы не только в том, что supply куда-то добавился, но и в том, что у Bitcoin украли — медийно это может очень сильно повлиять на происходящее. Потому что технически подкованных пользователей Bitcoin…
(01:13:15) Сергей Тихомиров: Я здесь немного возражу. Медийно биткоины крали since forever: взлом Mt. Gox, бирж, мостов постоянно. Для обывателя это, видимо, звучит как «взломали опять вашу крипту».
(01:13:27) Михаил Кудинов: Может быть. Сложно сказать, как это звучит для обывателя. Мы здесь чуть более технически подкованы и понимаем: взломали не Bitcoin, а кого-то, кто плохо пользовался инструментами, которые Bitcoin даёт. Здесь, по сути, взломали Bitcoin — без обвеса, где кто-то что-то не туда нажал. Сложный вопрос. Hourglass… Мне кажется, я просто не очень понимаю. Ну будут воровать потихонечку.
(01:14:09) Сергей Тихомиров: Я так понимаю: с одной стороны, избегаем резкого обвала, с другой — это уже сильный сигнал всем, у кого монеты на квантово-уязвимых адресах и есть доступ, перевести на квантово-неуязвимые. Может, это моя мотивация, может, автор имел в виду другое.
(01:14:28) Михаил Кудинов: Нет, может быть. У меня нет strong opinion. Все варианты, мне кажется — и в общий консенсус — плохие. Выберем какой получше из плохих. Что выберем — не знаю сейчас. Все плохие.
(01:14:47) Александр Селезнев: Сейчас, Серёж, может, немного поясню. Ты сказал: сигнал тем, у кого на квантово-уязвимых адресах лежат биткоины, перевести на квантово-неуязвимые. А как они переведут, если по чуть-чуть только смогут переводить?
(01:15:00) Сергей Тихомиров: Идея в том, что мы ограничиваем в каждом блоке трату именно древних монет эры Сатоши — тех, что на pay-to-public-key. А если у меня был свежий адрес и я запалил публичный ключ, переиспользовав адрес, я с этого адреса переведу на свежий. Ещё одна плохая опция в шеренге плохих — или попытка сделать из лимонов лимонад: заморозить монеты Сатоши не просто выбросить, а перераспределить в пользу майнеров, чтобы отодвинуть проблему уменьшающейся награды и увеличить бюджет на безопасность Bitcoin. Классная, очень оригинальная идея, но маргинальная и совершенно непроработанная.
(01:15:45) Михаил Кудинов: Мне кажется, это вообще неподходящее. Возможно, я ни с кем не дискутировал, может, у вас есть аргументы, которые переубедят, но история про лимитированное количество биткоинов — изначальная концепция. Мы с тем же успехом…
(01:16:04) Сергей Тихомиров: Ну так оно лимитировано, выше 21 миллиона не увеличивается.
(01:16:08) Михаил Кудинов: Да, да, но это, конечно, читинг. Оно не увеличивается — мы просто взяли то, что есть, и заново начали раздавать как награду майнерам.
(01:16:20) Сергей Тихомиров: В этом смысле размер блока тоже не увеличился, но на самом деле увеличился, если считать в байтах. Не увеличился, но поменяли методику расчёта — и по факту увеличился, также и здесь. Я немного играю в адвоката дьявола, не то чтобы поддерживаю.
(01:16:32) Михаил Кудинов: Размер блока — концептуальная история: он должен быть ограниченным, понятно, сколько помещается, и приходится адаптироваться. С точки зрения общего выпуска монет не очень понятно. Грубо говоря, мы забываем, что квантовый компьютер может что-то украсть — и забираем с чужого кошелька и раздаём майнерам? Эти вопросы менее технические. Нет решения, где я напишу доказательства и сравню эффективность. Это решения социального консенсуса. Заморозить — может, если все говорят «ничего страшного, всем подходит», окей. Пусть крадут — тоже опция, почему нет.
(01:17:32) Александр Селезнев: У меня есть аргумент в пользу того, почему «пусть крадут» не опция. Кстати, Hourglass, на мой взгляд, тоже не опция. Если цена начнёт укатываться, это существенно сделает менее эффективным бизнес майнеров. Сейчас майнеры — это не люди на ноутбуках, а серьёзные бизнесы, которые тщательно считают свой P&L. Если они видят, что у них перестаёт всё сходиться, они всё это свернут завтра. Тогда сеть по безопасности и по развитию откатится назад, в десятые годы.
(01:18:12) Михаил Кудинов: Да, такое тоже возможно.
(01:18:15) Сергей Тихомиров: Мне ещё показалось любопытным, что в статье Chaincode, которую я упоминал, они тоже рассуждают, в числе прочего, о том, что есть столько-то монет, которые считаются потерянными, но мы не можем быть на сто процентов уверены, что именно потерянными. В сноске написано, что в ходе судебного процесса в 2020 году было доказано: человек подтвердил владение адресами, которые не двигались с 2009 года, произведя цифровую подпись. То есть они действительно просто лежали с 2009 года и не были потеряны.
(01:18:46) Михаил Кудинов: Да, но, мне кажется, в этом нет ничего удивительного. Если ты с 2009 года холдишь биткоин, ты, скорее всего, уверенно холдишь и готов холдить дальше. Может, они начнут двигаться послезавтра. Другой разговор, если ты активно холдишь и следишь за происходящим. Когда мы говорим про freeze, мы говорим о том, что через год всё зафризится. Нет сценария, где мы пришли в какой-то день и сюрприз — конец. Конечно, выделяется какой-то диапазон времени, за который все, кто хочет, могут перевестись. Достаточно ли этого — отдельный вопрос.
(01:19:43) Сергей Тихомиров: Ещё одним поделюсь hot take и, наверное, немного обсудим Ethereum и его обновление в более трезвом ключе, а не в жанре сна при температуре плюс сорок. Перескажу другой пост Ника Картера, который, мне кажется, как раз в тему. Он рассуждает в художественном ключе, это такая зарисовка. В США изобрели квантовый компьютер, который может украсть все биткоины. Дальше правительство США приходит к компании, которая его придумала, и говорит: у нас тут лежат монеты Сатоши, давайте, чтобы они не достались Северной Корее, с помощью вашего компьютера конфискуем их и отправим на безопасный счёт в нашем treasury, в министерстве финансов, и это будет полностью законно — как будто после кораблекрушения подняли золотые слитки с утонувшего испанского галеона пятьсот лет назад. Потом скажем: если у вас есть ключи, приходите в министерство финансов США, предъявите доказательства, что это ваши, и мы вам отдадим, а пока они под нашим доверительным управлением. Спецслужбы США делают владельцам квантового компьютера предложение, от которого нельзя отказаться. В результате, продолжает автор, операция происходит, рынок ликует, неопределённость разрешена, все американские инвесторы вваливают ещё больше пенсионных денег в биткоин, все довольны, но у старых шифропанков остаётся неприятный осадок. Реалистичная ли это картина?
(01:21:13) Михаил Кудинов: Первый момент — осуществлять это публично или непублично. Одно дело, если американское правительство приходит и всем говорит: вот, переводите. Другое — если это делается непублично. Тогда, мне кажется, будет большая паника: если на горизонте, где мы думаем, что квантовый компьютер в теории уже сегодня возможен, начинают двигаться коины Сатоши, серьёзный процент, если не большинство, будут думать, что это взломанный кошелёк, а не реальный Сатоши. Второй момент — вычислительная эффективность. Хочешь ли ты тратить квантовые вычисления на коины? Не факт, и непонятно, как это повлияет на цену. Картер рассказал, что все ликуют и рады. Я не уверен. Может, я не шифропанк, но если американское правительство может прийти, забрать коины с кошелька к себе, а мне потом идти забирать их — сомнительно. Может, они уже по пост-квантовым алгоритмам, но в целом история неуверенная. И надо сравнивать цифры — американские бюджеты и, пусть, Сатоши. Там много, но я не уверен в порядках. Ты тратишь вычислительные ресурсы, и честно говоря, я не знаю, какие порядки бюджетов и какие порядки в долларах, если посчитать.
(01:23:09) Сергей Тихомиров: Сколько процентов госдолга США можно закрыть?
(01:23:11) Михаил Кудинов: Да, просто стоит ли оно того: вместо того чтобы в этот момент расшифровывать перехваченные секретные данные других государств в рамках Harvest Now Decrypt Later, ты забираешь себе биткоины Сатоши — тоже неочевидная история. Ну, всё может быть.
(01:23:33) Сергей Тихомиров: Я на ходу посчитал, можно ли закрыть госдолг США — видимо, нельзя, но пусть наши слушатели посчитают это домашним заданием. Понятно, что нельзя, но сколько это будет процентов. Думаю, единичные проценты или что-то в этом духе. Предлагаю поговорить про Ethereum. С Bitcoin мы, кажется, довольно подробно осветили его настрой, состояние research и возможного обновления. А что у Ethereum? У меня сложилось впечатление, что Ethereum про квантовую угрозу думает очень серьёзно. Джастин Дрейк особенно: я послушал пару подкастов с его участием, он очень увлечён этой темой и считает её важной. Что происходит в Ethereum?
(01:24:15) Михаил Кудинов: Во-первых, у Ethereum в этом плане, конечно, медийная составляющая лучше, но это, мне кажется, связано и с тем, что есть некое ответственное лицо. Есть Ethereum Foundation, которая условно ходит и рассказывает, что будет с Ethereum. Конечно, если они предложат устроить какой-то цирк, всё равно есть пользователи, консенсус — согласны они или нет. Но глобально здесь удобнее коммуницировать и налаживать работу, когда у тебя есть централизованное лицо. С точки зрения централизации, может, это минус. На текущий момент, наверное, не суть важно. Пост-квантовым Ethereum активно занимается. Какую проблему я здесь вижу, которой в Bitcoin практически нет? Не очень понятно, в какой момент Ethereum будет переходить на пост-кванты. Когда мы говорим про Bitcoin, нам нужны только транзакции, и мы можем их скомбинировать так, что пользуемся классическими, и за день можем перейти на пост-квантовую криптографию или даже позже. Условно всегда есть опция использовать пост-квантовую криптографию — просто всё хорошо. Q-Day наступил — мы начали пользоваться пост-квантовой криптографией. Если мы говорим про консенсус в Ethereum, так не получится. Либо консенсус на одних алгоритмах, либо на других. Можете использовать оба, но он будет настолько эффективен, насколько эффективен худший из них, а это пост-квантовый. В теории можете использовать оба, чтобы при плохой программировке у вас классический вас подстраховывал, но с точки зрения эффективности история падает. Возможно, есть решения, про которые я не в курсе, или какой-то concept. На текущий момент моя активная область — Bitcoin. Про Ethereum я в контексте пост-квантовой угрозы знаю постольку-поскольку. Отсюда проблема: в какой-то момент нужно решить, что мы деградируем в эффективности ради безопасности, и, может, ошиблись. С другой стороны, кажется, к миграции прийти проще: выйдут Виталик, Джастин и другие из Ethereum Foundation и постараются убедить, что это правильное решение. Какая-то такая история, мне кажется.
(01:27:12) Сергей Тихомиров: Может, есть другие блокчейны, помимо Bitcoin и Ethereum, за которыми ты следишь и которые выделяются в смысле перехода на пост-квантовую криптографию? Кто-нибудь уже перешёл?
(01:27:25) Михаил Кудинов: Есть блокчейны, которые сделали так: мы уже quantum secure. Что у них происходит, насколько ими пользуются — не знаю. Есть блокчейны с пост-квантовой криптографией, но что там происходит, я слабо представляю. Интересно будет последить. Здесь я не лучшим образом осведомлён. Zcash — приватный Bitcoin, если можно так сказать — им тоже надо переходить на пост-квантовую криптографию. Так как у них всё в zero-knowledge proofs, пост-квантовые zero-knowledge proofs тоже хуже по эффективности. Что они будут делать и какие решения примут — очень интересно посмотреть.
(01:28:17) Сергей Тихомиров: Из вопросов слушателей в чате большую часть мы уже так или иначе покрыли, поэтому не буду цитировать буквально, но один кажется важным. Во многом мы про это говорили; ещё раз подчеркну сложные trade-offs перед нами. Что опаснее — сам квантовый компьютер или то, что блокчейн-индустрия может не договориться о миграции?
(01:28:39) Михаил Кудинов: Мне кажется, она не может не договориться — так или иначе договорятся. Другой разговор, считается ли договориться, если блокчейн поделился на разные. Если считается — точно договорятся. Если нет — могут быть разные исходы, но варианта, что мы вообще не переходим на пост-квантовую криптографию, для Bitcoin, мне кажется, почти нет: мы можем дальше использовать классическую, а неэффективные алгоритмы мы добавили, и вы говорите, что это глупость — пожалуйста, вам это практически ничего не стоит.
(01:29:24) Сергей Тихомиров: Попытаемся подвести итоги. От себя скажу, что мне показалось наиболее интересным и важным. Наверное, мета-вывод, который снова подтвердился: идеальных решений в криптографии и, возможно, в жизни как будто нет, везде trade-offs, и мы ищем тонкий баланс между часто взаимопротиворечивыми качествами алгоритмов и пытаемся понять, чем можно пренебречь и в какой степени. В числе прочего наши блокчейновые юз-кейсы довольно специфичны, и чтобы правильно их адресовать, нужно подходить вдумчиво и аккуратно. Общий вывод, который меня заземляет и внушает большую уверенность, снижает тревожность: таймлайны, может, не так страшны, как в заголовках, квантовый компьютер, скорее всего, не появится завтра, и у нас ещё есть время. И одновременно много компетентных людей, в их числе Михаил, работают над тем, чтобы адресовать проблему правильно. В этом смысле я стану спать несколько спокойнее.
(01:30:56) Александр Селезнев: Мой вывод тоже очень близок к твоему: квантовый компьютер не наступает в 2027 году — главный итог, который можно выдать человеку непосвящённому. В целом работа идёт и идёт с опережением: это не гонка, где мы истерично лепим заплатку наспех, а люди спокойно работают, есть время на обсуждение и договориться. И редкая, наверное, в истории криптографии ситуация: есть давящий тайминг, но он не настолько давящий, чтобы впадать в истерику крипто-Twitter.
(01:31:53) Михаил Кудинов: Мне кажется, отличные выводы. Предлагаю слушателям следить за темой: мы в Blockstream продолжим заниматься ей и публиковать результаты. Следите и за Ethereum — будет интересно, как они справятся.
(01:32:13) Сергей Тихомиров: Давайте напоследок завершим практическим вопросом для слушателей, у которых есть биткоин, эфир, for that matter, или другая криптовалюта — у меня что-то где-то лежит. Как понять, уязвим ли я для квантового компьютера, что делать, куда бежать, нужно ли беспокоиться?
(01:32:35) Михаил Кудинов: На сегодняшний день в целом можно практически ничего не делать: даже если ваши открытые ключи exposed, в ближайшее время вам ничего не грозит. Best practices говорят стараться не переиспользовать адреса и при генерации пользоваться захэшированными версиями. Как мы разбирали, вероятность появления квантового компьютера до того, как мы предоставим решение с пост-квантовыми алгоритмами, минимальна, и сильно беспокоиться не нужно. Если хотите поучаствовать в процессе — добро пожаловать на форумы, идёт активное обсуждение, рады новым участникам. Активные современные блокчейны окажутся в безопасности заблаговременно.
(01:33:39) Александр Селезнев: Слава богу. Insha'Allah. Напоследок можно спросить, Михаил: может, ты хочешь о чём-то заявить, вы кого-то хайрите, или предложишь почитать свежую публикацию, или к чему ещё хочешь призвать слушателей. Сейчас как раз время использовать нашу публичность в своих приватных целях.
(01:34:05) Михаил Кудинов: Могу порекомендовать нашу статью по хэш-подписям для Bitcoin. Мне кажется, она написана достаточно доступным языком. Конечно, предполагается некоторая техническая направленность читателя, но глубоких познаний в криптографии, наверное, можно обойтись без них. Из новостей у меня особо нет. Рад был поприсутствовать, очень интересные диалоги, всегда приятно пообсуждать насущные вопросы.
(01:35:21) Александр Селезнев: Огромное спасибо, что провёл с нами два раза по два часа. Это огромное удовольствие и честь для нас. С вами в последних двух выпусках в первую очередь Сергей Тихомиров, во вторую — Александр Селезнев, наш гость Михаил Кудинов, криптограф из Blockstream. Большое спасибо всем, кто был с нами. Подписывайтесь на нас на всех подкаст-платформах, мы есть везде. Обязательно ставьте лайки на YouTube — это поможет людям получать больше качественного контента в лице нашего, а не некачественного — всего остального. Заходите в ББ-чат, в Telegram: у нас канал и чат с очень технической и интеллигентной публикой. Всем спасибо, всем пока!