Соучредитель Ethereum Виталик Бутерин опубликовал первую часть глубокой технической серии об обфускации, назвав ее самой мощной идеей в криптографии, но ясно дав понять, что она еще далеко не готова к использованию.
Обфускация превращает программу в зашифрованную версию, которая по-прежнему работает и выдает те же результаты, но скрывает, как она работает внутри. Формальная цель, называемая обфускацией неразличимости (iO), означает, что при наличии двух зашифрованных программ, выполняющих одну и ту же работу, никто не может сказать, какая из них какая. Суть Бутерина в том, что он скрывает код, а не данные.
Причина, по которой криптовалюты заботятся, заключается в том, что он представляет запутывание как универсальную «не заслуживающую доверия доверенную третью сторону», замену нейтрального посредника, которого многие системы предполагают, но на самом деле никто не хочет доверять.
Технология блокчейна могла бы позволить ей проводить такие мероприятия, как частное голосование, исключающее сговор, практически без доверия какому-либо комитету. Эта концепция нуждается в блокчейне из-за определенного ограничения: запутанная программа не может остановить копирование себя, поэтому она не может безопасно обрабатывать вещи с состоянием, такие как деньги или баланс счетов, а отслеживание этого состояния — это именно то, что делает блокчейн.
Создать безопасную обфускацию оказалось крайне сложно. В 2001 году было доказано, что идеальная версия невозможна, и вместо этого исследователи направили усилия на более слабую цель iO, и это примерно два десятилетия усилий, усеянных безуспешными попытками. Недавняя хорошая новость заключается в том, что iO теперь можно создавать с разумными предположениями о безопасности.
Однако недостатком является то, что время выполнения, по словам Бутерина, «галактическое», эффективное на бумаге, но абсурдно медленное на практике.
Бутерин сравнил этот момент с тем, когда SNARK, доказательства с нулевым разглашением, которые сейчас занимают центральное место в масштабировании Ethereum, находились примерно в 2010 году, прежде чем годы оптимизации превратили их из диковинки в работающую инфраструктуру. Предполагается, что запутывание может пройти тот же путь от теоретического прорыва до полезного инструмента, даже если сегодня один прогон будет безнадежно дорогим.
Монеты конфиденциальности, такие как Monero (XMR), уже скрывают некоторые вещи в действующем блокчейне, так почему же Бутерин считает эту проблему нерешенной? Потому что они скрывают разные вещи. Monero скрывает данные транзакций, например, кто кому и сколько заплатил, с помощью кольцевых подписей, скрытых адресов и конфиденциальных сумм.
Обфускация в смысле Бутерина скрывает логику программы, сам код, а не данные, проходящие через него. По его словам, iO скрывает код, а не данные. Monero обеспечивает конфиденциальность транзакций уже более десяти лет, но обфускация программ никогда и нигде не применялась в производстве, и его пост посвящен устранению этого пробела.
