Что такое хеш MiMC?
MiMC — это криптографическая хеш-конструкция, созданная для эффективной работы в системах доказательств с нулевым разглашением и других средах с арифметическими схемами.MiMC расшифровывается как Minimal Multiplicative Complexity («минимальная мультипликативная сложность»).Название отражает основную цель разработки: при представлении функции в схемах использовать значительно меньше операций умножения по сравнению с традиционными хеш-функциями.В криптоиндустрии MiMC чаще всего рассматривают как хеш-функцию, удобную для ZK-приложений, в том числе для SNARK, STARK, систем MPC и блокчейн-приложений, ориентированных на конфиденциальность.В записи о статье MiMC, представленной на ASIACRYPT 2016 MiMC описывается как предложение по созданию блочных шифров и криптографических хеш-функций с низкой мультипликативной сложностью.
В отличие от SHA-256 или Keccak, MiMC разрабатывали не столько для высокой скорости обычного хеширования на CPU.Функция предназначена для сред, где каждое ограничение, связанное с умножением, может увеличить стоимость генерации доказательства.Поэтому MiMC важен для блокчейн-систем, использующих доказательства с нулевым разглашением, чтобы подтверждать утверждения без раскрытия личных данных.Почему хеш MiMC важен для криптоиндустрии
Хеш MiMC важен, поскольку многим криптоприложениям необходимо выполнять хеширование внутри схем с нулевым разглашением.Такая схема может подтверждать, что пользователь знает секрет, владеет коммитментом, входит в дерево Меркла или соблюдает правило смарт-контракта, не раскрывая скрытые входные данные.В таких схемах традиционные хеш-функции могут обходиться дорого, поскольку их побитовые операции не всегда эффективно реализуются во многих системах доказательств над конечными полями.MiMC разработана для естественной работы над конечными полями — математическими средами, используемыми во многих системах доказательств.На справочной странице MiMC говорится, что MiMC — это семейство блочных шифров и хеш-функций, созданное специально для приложений на основе SNARK.
Это полезно, поскольку менее затратная хеш-схема может сократить время генерации доказательства, снизить расходы на доказывание и сделать приложения для защиты конфиденциальности практичнее.MiMC помогла сформировать более широкую категорию хеш-функций, удобных для ZK.Даже когда выбирают более новые хеш-функции для ZK, MiMC сохраняет значение благодаря длительной истории, тщательному изучению и широкому упоминанию в отрасли.Как работает хеш MiMC
Хеш MiMC построен на основе простых алгебраических операций над конечным полем.Конечное поле — это математическое множество, в котором сложение, вычитание, умножение и деление подчиняются строгим правилам по модулю.Основная идея заключается в многократном применении простой степенной функции с константами раундов и значениями, похожими на ключи.На справочной странице MiMC базовый компонент описывается как функция
В зависимости от поля и требований к безопасности в некоторых реализациях используются другие степени, например
В схеме MiMCSponge из circomlib реализован хеш MiMC-2n/n на основе конструкции губки.
Хеш MiMC и минимальная мультипликативная сложность
Минимальная мультипликативная сложность означает, что конструкция стремится сократить число операций умножения, необходимых для представления функции.Это важно, поскольку во многих системах доказательств с нулевым разглашением стоимость схемы оценивается по числу ограничений, подобных умножению.В обычной среде программирования битовая хеш-функция может быть быстрой и практичной.В ZK-схеме побитовые операции могут обходиться дорого, поскольку схема должна подтвердить корректность каждой из них.MiMC использует простое алгебраическое степенное преобразование, которое можно представить с меньшим числом ограничений.В записи о статье MiMC объясняется, что низкая мультипликативная сложность была обусловлена потребностями MPC, полностью гомоморфного шифрования и доказательств с нулевым разглашением, где линейные вычисления сравнительно дешевы.Проще говоря, MiMC стремится сократить наиболее затратную часть доказательства.Поэтому MiMC называют удобной для ZK, а не просто быстрой.Хеш MiMC и доказательства с нулевым разглашением
Доказательства с нулевым разглашением позволяют одной стороне доказать истинность утверждения, не раскрывая лежащие в его основе личные данные.MiMC можно использовать внутри таких доказательств, если утверждение связано с коммитментами, путями Меркла, нуллифаерами или скрытыми данными аккаунта.В статье AMAZE об ускорении MiMC, опубликованной в 2024 году, MiMC описывается как зрелая хеш-функция, удобная для ZK и обладающая простой алгебраической структурой, подходящей для ZKP-приложений.
ZK-схема может включать MiMC, чтобы доказать, что секретное значение на входе хешируется в публичный коммитмент.Ее также можно использовать для подтверждения того, что лист входит в дерево Меркла, не раскрывая весь путь публично.Благодаря удобной для арифметических вычислений структуре MiMC может сократить число ограничений по сравнению с хеш-функциями, созданными в первую очередь для программной обработки битов.Меньшее число ограничений может ускорить и удешевить генерацию доказательств.Это особенно важно для блокчейн-систем, в которых время доказывания и стоимость проверки могут влиять на удобство работы пользователей.Хеш MiMC и SNARK
SNARK — это семейство систем доказательств с нулевым разглашением, которые часто представляют вычисления в виде арифметических схем.Во многих системах SNARK ограничения на умножение обходятся дороже сложений и операций с константами.В исследовательской статье о хеш-функциях, удобных для ZK объясняется, что в SNARK-системах на основе R1CS стоимость определяется количеством ограничений.
MiMC была разработана для сокращения этого количества.Поэтому MiMC подходит для SNARK-схем, которым нужно многократно выполнять хеширование.Повторное хеширование часто используется в доказательствах для деревьев Меркла, системах приватных переводов, системах учетных данных и анонимного подтверждения членства.Небольшая экономия при каждом хешировании может дать значительный эффект, если схема выполняет его сотни или тысячи раз.Ценность MiMC для SNARK связана с тем, что она использует математику, естественно представимую в системе доказательств.Хеш MiMC и STARK
STARK — еще одно семейство систем доказательств с нулевым разглашением, использующих алгебраические трассы выполнения и полиномиальные ограничения.MiMC также рассматривают в контексте STARK благодаря простой алгебраической структуре раундов.Справочная страница MiMC размещена на сайте, посвященном симметричной криптографии, удобной для SNARK, STARK и MPC.В системах на основе STARK на производительность может существенно влиять степень ограничений и размер трассы выполнения.Функцию раунда на основе простой степени может быть легче представить, чем традиционную хеш-функцию со множеством побитовых операций.Это не означает, что MiMC всегда является лучшим выбором хеша для STARK.Это означает, что MiMC относится к более широкому семейству криптографических примитивов, ориентированных на арифметизацию.Разработчикам следует выбирать хеш-функцию с учетом системы доказательств, поля, уровня безопасности и зрелости реализации.Хеш MiMC и конечные поля
Хеш MiMC работает над конечными полями, а не над обычными целыми числами без верхней границы.Конечное поле задает фиксированную математическую среду, в которой значения переходят по модулю размера простого или двоичного поля.На справочной странице MiMC сказано, что вычисления MiMC выполняются в
Хеш MiMC и константы раундов
Константы раундов — это фиксированные значения, добавляемые в ходе раундов перестановки или шифра MiMC.Они помогают избежать чрезмерной симметричности и предсказуемости раундов.Константы следует генерировать прозрачным способом, чтобы разработчики и аудиторы могли убедиться, что они не были выбраны злонамеренно.Во многих реализациях константы генерируются из публичных исходных строк с помощью стандартной хеш-функции.В исследовательской статье о хеш-функциях, удобных для ZK, отмечается, что для генерации констант раундов MiMC часто используются строки вроде
Хеш MiMC и конструкция губки
Конструкция губки — распространенный способ построения хеш-функции на основе перестановки.Она включает фазы поглощения и извлечения.На этапе поглощения входные значения смешиваются с частью внутреннего состояния.На этапе извлечения из преобразованного состояния формируются выходные значения.В исследовательской статье о хеш-функциях, удобных для ZK, объясняется, что хеш MiMC основан на конструкции губки: блоки сообщения поглощаются частью состояния, после чего преобразуются с помощью перестановки MiMC.Конструкции губки полезны тем, что могут поддерживать входные данные переменной длины и гибкую длину выходных данных.В криптографических схемах это позволяет хешировать несколько элементов поля в один коммитмент или дайджест.Однако параметры губки, такие как скорость, емкость, размер поля и число раундов, необходимо выбирать тщательно.Хеш MiMC и SHA-256
MiMC и SHA-256 — криптографические хеш-функции, оптимизированные для разных сред.SHA-256 широко применяется в обычном программном и аппаратном обеспечении, а также в системах Proof of Work.Хеш MiMC оптимизирован для арифметических схем и систем доказательств над конечными полями.Схеме SHA-256 может потребоваться много ограничений, поскольку функция использует побитовые операции, циклические сдвиги и булеву логику.Во многих средах SNARK схема MiMC может быть значительно дешевле, поскольку ее операции соответствуют арифметике конечного поля.Это не означает, что MiMC должна повсеместно заменить SHA-256.Это означает, что MiMC может лучше подходить, когда хеш необходимо доказать внутри ZK-схемы.Для обычного офчейн-хеширования файлов или совместимости с широко распространенными стандартами традиционные хеш-функции могут оставаться более подходящим вариантом.Хеш MiMC и Keccak
Keccak широко используется в системах смарт-контрактов на основе Ethereum как универсальный криптографический примитив хеширования.MiMC обычно выбирают, когда разработчику нужно эффективно выполнять хеширование внутри схемы с нулевым разглашением.Совместимость с Keccak может быть полезна при работе с существующей логикой адресов, подписей или контрактов.Эффективность MiMC может пригодиться при доказательстве скрытых взаимосвязей данных в арифметических схемах.Если проекту нужны и совместимость, и эффективное доказывание, разработчик может использовать Keccak вне схемы, а MiMC — внутри нее.Такое разделение нужно тщательно спроектировать, поскольку разные хеш-функции формируют разные коммитменты и предположения о доверии.Не следует считать, что дайджесты MiMC и Keccak взаимозаменяемы.Выбор зависит от того, где вычисляется хеш и что нужно проверить.Хеш MiMC и Poseidon
MiMC и Poseidon — хеш-функции, удобные для ZK.MiMC — более старая функция, имеющая важное историческое значение.Poseidon — более новая хеш-функция, ориентированная на арифметизацию. В современных ZK-системах ее часто выбирают за более высокую эффективность для некоторых входных данных и систем доказательств.В исследовательской статье о хеш-функциях, удобных для ZK, MiMC называется первой такой хеш-функцией; также отмечается, что позднее были предложены более новые варианты.Это не означает, что MiMC во всех случаях устарела.Разработчикам следует сравнивать анализ безопасности, стоимость схемы, поддержку библиотек, историю аудитов, совместимость с полем и ожидания экосистемы.Существующие протоколы могут сохранить MiMC для совместимости с уже развернутыми коммитментами и корнями Меркла.Новые протоколы после тестирования производительности и аудита могут выбрать другую хеш-функцию, удобную для ZK.Хеш MiMC в деревьях Меркла
В системах с нулевым разглашением хеш MiMC часто используют в деревьях Меркла.Дерево Меркла объединяет множество значений в один корень, многократно хешируя пары узлов.Пользователь может доказать, что лист входит в дерево, предъявив путь Меркла.В ZK-схеме пользователь может подтвердить корректность пути, не раскрывая лишние личные данные.Если на каждом уровне дерева схема использует обычную хеш-функцию с множеством побитовых операций, доказательство может стать дорогим.Использование MiMC может снизить стоимость ограничений для каждого этапа хеширования.Поэтому MiMC применяется в проектах для защиты конфиденциальности, а также в системах идентификации, голосования и подтверждения членства.Безопасность дерева Меркла по-прежнему зависит от корректности хеширования, построения дерева и ограничений схемы.Хеш MiMC в коммитментах
Коммитмент позволяет зафиксировать значение, не раскрывая его сразу.С помощью хеша MiMC можно создавать коммитменты на основе секретных значений и случайных данных.Например, протокол может хешировать секретное значение записки, ключ владельца и случайную соль, получая публичный коммитмент.Позже пользователь может доказать знание скрытых данных внутри ZK-схемы.Если хеш и протокол спроектированы правильно, публичный коммитмент не раскрывает секретные входные данные.Этот подход распространен в криптовалютных системах с защитой конфиденциальности.MiMC помогает эффективно проверять хеш коммитмента внутри схемы.Тем не менее схема коммитмента должна включать достаточно случайных данных, чтобы предотвратить подбор небольших секретных значений.Хеш MiMC в нуллифаерах
Нуллифаер — это значение, которое позволяет предотвратить двойную трату или повторное получение вознаграждения, не раскрывая исходный секрет.Хеш MiMC может использоваться для получения нуллифаера из секретного ключа, записки или значения идентификатора.При использовании приватной функции протокол может опубликовать нуллифаер.Другие пользователи могут проверить, не появлялся ли тот же нуллифаер раньше.Доказательство с нулевым разглашением может подтвердить корректность получения нуллифаера, не раскрывая исходный секрет.Это важно для приватных переводов, приватных заявок на получение средств и анонимных действий, связанных с членством.Если хеширование нуллифаера реализовано неправильно, пользователи могут потратить средства дважды или потерять конфиденциальность.MiMC позволяет эффективно проверять нуллифаеры, но логику протокола в целом все равно необходимо тщательно проверять.Хеш MiMC в смарт-контрактах
Смарт-контракты могут проверять доказательства, связанные с коммитментами или корнями Меркла, созданными с помощью MiMC.Контракт может не пересчитывать каждое скрытое значение, но он способен проверить доказательство, созданное схемой с операциями MiMC.Некоторые контракты также могут реализовать саму MiMC, если необходимо выполнять хеширование ончейн.MiMC ончейн может быть полезна контракту, которому нужна ZK-совместимая хеш-функция, работающая с арифметикой конечного поля.Однако реализация криптографии в смарт-контрактах сопряжена с риском: даже небольшие ошибки могут нарушить безопасность.По возможности разработчикам следует выбирать проверенные библиотеки и прошедшие аудит реализации.Также нужно убедиться, что функция ончейн точно соответствует функции в схеме.Несовпадение между MiMC в схеме и в контракте может привести к сбою доказательств или создать уязвимости.Хеш MiMC и Circom
Circom — язык для написания арифметических схем доказательств с нулевым разглашением.В репозитории circomlib содержатся повторно используемые шаблоны схем для криптографических примитивов и других компонентов.
В circomlib есть реализация схемы MiMCSponge.Это важно, поскольку многие разработчики ZK используют библиотеки схем, а не создают каждый примитив с нуля.Использование библиотек может сократить время разработки, но не отменяет необходимость аудита.Разработчикам необходимо убедиться, что версия библиотеки, параметры, ограничения и поле соответствуют проекту протокола.Также не следует копировать устаревшие фрагменты кода из старых руководств, не проверив, как работает актуальная версия библиотеки.В разработке ZK использование функции из библиотеки безопасно только при правильном применении во всей схеме.Хеш MiMC и недостаточно ограниченные схемы
Недостаточно ограниченная схема — это ZK-схема, которая не полностью проверяет вычисление, которое должна подтверждать.Это один из самых серьезных рисков при использовании MiMC или любой другой хеш-функции в схеме.В руководстве ZK-аудита об ошибке ограничения в хеше MiMC описан случай, когда в схеме хеша MiMC отсутствовало ограничение: вместо оператора ограничения использовали оператор присваивания.
Проблема заключалась не в том, что математическая конструкция MiMC сама по себе оказалась нарушена.Схема не ограничивала выходные данные так, чтобы они соответствовали предусмотренному вычислению хеша.Этот урок важен для любого протокола с нулевым разглашением.Даже надежная хеш-функция не защитит протокол, если схема фактически не проверяет корректность ее работы.Разработчикам ZK следует тестировать ограничения, проводить аудит и по возможности использовать формальные проверки или проверки на основе свойств.Свойства безопасности хеша MiMC
Хеш MiMC предназначен для обеспечения таких криптографических свойств, как устойчивость к коллизиям и устойчивость к нахождению прообраза при использовании выбранных параметров.Устойчивость к коллизиям означает, что найти два разных входных значения с одинаковым хешем должно быть сложно.Устойчивость к нахождению прообраза означает, что восстановить исходные данные по результату хеширования должно быть сложно.Устойчивость ко второму прообразу означает, что сложно найти другое входное значение, хеш которого совпадает с хешем известного входного значения.Эти свойства зависят от конкретного варианта MiMC, поля, степени, количества раундов, констант и режима построения.На справочной странице MiMC указано, что на момент приведенного там анализа атак на MiMC-n/n и MiMC-p/p с полным количеством раундов не было выявлено; при этом отмечаются проблемы некоторых вариантов блочного шифра на основе сети Фейстеля.Не следует уменьшать количество раундов ради экономии ограничений без веских криптографических оснований.Изменение параметров без экспертной проверки может ослабить безопасность.Хеш MiMC и количество раундов
Количество раундов — это число применений функции раунда MiMC.Большее число раундов обычно повышает устойчивость к криптоанализу, но также увеличивает стоимость схемы.Уменьшение числа раундов может повысить производительность, но снизить безопасность.Параметры MiMC обычно выбирают с учетом размера поля, степени, анализа безопасности и типа конструкции.В комментариях к реализации MiMCSponge из circomlib приведен расчет числа раундов для определенного простого поля и выбранной степени.Это не означает, что во всех реализациях MiMC следует без проверки использовать одно и то же число раундов.Количество раундов должно соответствовать конкретному полю, степени, конструкции и целевому уровню безопасности.Протоколу следует документировать параметры MiMC, чтобы аудиторы и пользователи могли их проверить.Хеш MiMC и степени
Степень — это показатель, используемый в нелинейной функции раунда, например
Исходную конструкцию MiMC часто объясняют на примере
В исследовательской статье о хеш-функциях, удобных для ZK, отмечается, что для некоторых полей S-блок на основе
Хеш MiMC и разделение доменов
Разделение доменов означает, что одна и та же хеш-функция не должна использоваться в разных целях протокола таким образом, который может вызвать путаницу.Протокол может использовать MiMC для коммитментов, нуллифаеров, узлов Меркла и значений вызова.Если для всех этих задач без разделения используются одинаковые форматы входных данных, могут возникнуть неожиданные коллизии или путаница в логике протокола.Разделение доменов можно обеспечить с помощью фиксированных префиксов, тегов, разных констант, разных ключей или структурированных входных данных.Конкретный метод должен соответствовать системе доказательств и представлению данных в поле.Корректное разделение доменов упрощает аудит протокола.Оно также снижает вероятность опасного повторного использования значения, допустимого в одном контексте, в другом контексте.MiMC — криптографический примитив, и безопасные протоколы требуют тщательной проработки входных данных для его применения.Хеш MiMC и кодирование элементов поля
Хеш MiMC обычно принимает на вход элементы поля, а не произвольные текстовые строки.Поэтому возникает вопрос кодирования.Разработчикам необходимо определить, как преобразовывать байты, адреса, суммы, идентификаторы и публичные ключи в элементы поля.Некорректное кодирование может привести к неоднозначности, усечению, переполнению или путанице между протоколами.Например, два разных массива байтов не должны случайно преобразовываться в одну и ту же последовательность элементов поля, если это не предусмотрено проектом протокола.Когда это необходимо, длину входных данных следует кодировать или делать однозначной иным способом.Во всех реализациях должны совпадать порядок байтов, дополнение, сведение по модулю и границы поля.Многие ошибки MiMC связаны с проблемами интеграции, а не с основной идеей хеш-функции.Хеш MiMC и производительность
Хеш MiMC эффективен в арифметических схемах, поскольку требует минимального количества затратных операций, похожих на умножение.Это может сократить время генерации доказательства и размер схемы.В статье AMAZE за 2024 год отмечается, что стандартные криптографические хеш-функции, такие как SHA-2, могут быть неэффективны в системах ZKP, а хеш-функции, удобные для ZK, создаются с учетом эффективности доказательств.В той же статье представлены оптимизированные для аппаратного обеспечения реализации MiMC для приложений ZK и сообщается о повышении производительности по сравнению со стандартными реализациями для CPU в условиях тестирования.Это показывает, что MiMC по-прежнему важна для современных исследований аппаратного ускорения и производительности ZK.Однако производительность следует измерять в целевой системе.Хеш-функция, эффективная в одной системе доказательств, может оказаться неоптимальной в другой.Тестирование производительности должно учитывать время работы доказывающего устройства, стоимость проверки, число ограничений, память, зрелость реализации и историю аудитов.Требования к аудиту хеша MiMC
При использовании в производственных криптосистемах хеш MiMC следует подвергать аудиту.Аудиторам следует проверять математические параметры, ограничения схемы, кодирование входных данных, разделение доменов, язык реализации и логику проверки в смарт-контракте.Им необходимо убедиться, что выход схемы ограничен и соответствует предполагаемому вычислению MiMC.Следует сравнить тестовые векторы для офчейн-кода, кода схемы и ончейн-кода.Также нужно проверить корректность генерации и хранения констант.Следует убедиться, что число раундов соответствует полю и выбранной степени.Нужно протестировать граничные случаи, например нулевые входные данные, максимальные элементы поля, повторяющиеся значения и данные переменной длины.Криптографический примитив безопасен только тогда, когда безопасна вся его реализация.Хеш MiMC и тестовые векторы
Тестовые векторы — это известные примеры входных и выходных данных, которые используют для проверки корректности реализации.Для точного варианта MiMC в реализациях следует публиковать или включать тестовые векторы.С их помощью разработчики могут сравнивать реализации схемы, JavaScript, Rust, Solidity или серверного ПО для создания доказательств.Если для одинаковых входных данных две реализации выдают разные результаты, значит, как минимум одна из них использует другие параметры или содержит ошибку.В тестовые векторы следует включать обычные значения, нулевые входные данные, граничные значения и примеры губки с несколькими входными значениями.Также в них необходимо указывать поле, степень, число раундов, константы, порядок входных и выходных данных и правила кодирования.Без тестовых векторов ошибки интеграции сложнее обнаружить.Для систем ZK тестовые векторы — обязательная часть базовой инженерной практики.Хеш MiMC и безопасность криптокошельков
Большинство пользователей криптовалют не взаимодействуют с хешем MiMC напрямую.Они могут пользоваться приложениями, которые применяют MiMC внутри скрытых ZK-схем.В интерфейсе кошелька может отображаться только этап генерации доказательства, получение вознаграждения или выполнение приватной транзакции.Чтобы изучить MiMC или использовать ZK-приложение, пользователю не нужно сообщать сид-фразу или приватный ключ.В рекомендациях FTC по защите от криптомошенничества предупреждают, что мошенники используют поддельные предложения и запросы на оплату криптовалютой, чтобы похищать средства.
Пользователям следует остерегаться поддельных генераторов доказательств, инструментов для защиты конфиденциальности и страниц поддержки кошельков.Легитимное ZK-приложение не должно запрашивать фразу восстановления кошелька.MiMC — криптографический инструмент, но не повод доверять секретные данные кошелька неизвестному программному обеспечению.Хеш MiMC и налогообложение
Сам по себе хеш MiMC не создает налогового события.Это криптографический примитив, используемый в программном обеспечении и протоколах.Однако операции с цифровыми активами в ZK-приложениях на основе MiMC могут иметь налоговые последствия.На официальной странице IRS о цифровых активах говорится, что об операциях с цифровыми активами может потребоваться отчитываться и что доход от цифровых активов может облагаться налогом.
При использовании криптоприложений пользователям следует сохранять сведения о переводах, свопах, получении вознаграждений, комиссиях, временных метках, адресах кошельков и хешах транзакций.Инструменты для защиты конфиденциальности могут усложнить личный учет, если пользователи не сохраняют собственные данные.Не следует считать, что транзакция с нулевым разглашением отменяет требования по отчетности.Тем, кто совершает операции с криптовалютой на существенные суммы, следует обратиться к квалифицированному налоговому специалисту.Преимущества хеша MiMC
Хеш MiMC может снизить стоимость хеширования во многих схемах с нулевым разглашением.Он использует простую арифметику конечного поля, которая хорошо подходит для ограничений в стиле SNARK.Его разработка имеет четкую цель — низкую мультипликативную сложность.Функция подходит для деревьев Меркла, коммитментов, нуллифаеров и доказательств приватного членства.Она изучается с момента публикации на ASIACRYPT 2016.Для нее созданы практические реализации в библиотеках схем ZK.MiMC по-прежнему актуальна в текущих исследованиях ускорения ZK.Главное преимущество — эффективное криптографическое хеширование, когда хеш нужно доказывать внутри арифметической схемы.Риски и ограничения хеша MiMC
Хеш MiMC не является универсальной заменой любой хеш-функции.В обычных программных средах он стандартизирован меньше, чем широко применяемые традиционные хеш-функции.Для него необходим тщательный выбор поля, степени, количества раундов, констант и конструкции.Реализация может быть небезопасной, если разработчик скопирует код, не понимая особенностей целевого поля.Недостаточно ограниченная схема также может сделать ее небезопасной.Риски возникают и в том случае, если офчейн- и ончейн-реализации не совпадают в точности.В некоторых современных системах доказательств MiMC может быть менее эффективной, чем более новые хеш-функции, удобные для ZK.Главное ограничение заключается в том, что безопасность MiMC зависит от корректного применения, а не только от названия «MiMC».Как оценить хеш MiMC в криптопроекте
Сначала выясните, какой вариант MiMC использует проект.Изучите конечное поле, степень, число раундов, константы, скорость, емкость и длину выходных данных.Проверьте, основана ли реализация на проверенной библиотеке или на собственном коде.Найдите общедоступные тестовые векторы, соответствующие реализации в схеме и смарт-контракте.Уточните, проводили ли аудит проекта специалисты, разбирающиеся в схемах с нулевым разглашением.Изучите, используется ли MiMC для коммитментов, деревьев Меркла, нуллифаеров, подписей, случайных вызовов или других целей.Проверьте, предусматривает ли кодирование входных данных разделение доменов и однозначное преобразование в элементы поля.Если проект не может ясно объяснить параметры MiMC, к нему следует относиться с осторожностью.Распространенные ошибки при использовании хеша MiMC
Одна из распространенных ошибок — считать все реализации MiMC совместимыми.Еще одна ошибка — менять поле или степень без проверки безопасности.Третья ошибка — сокращать количество раундов ради уменьшения числа ограничений.Четвертая — использовать недокументированные константы раундов.Пятая — не разделять домены для разных функций протокола.Шестая — допускать несовпадение кода схемы и смарт-контракта.Седьмая — использовать присваивание там, где требуется ограничение схемы.Восьмая — считать MiMC универсальной заменой стандартизированных хеш-функций за пределами контекста ZK.Рекомендации разработчикам
Используйте MiMC, только если она подходит системе доказательств и требованиям протокола.По возможности используйте проверенные реализации.Документируйте поле, степень, константы, число раундов, параметры губки и правила кодирования.Публикуйте тестовые векторы для каждой поддерживаемой реализации.Убедитесь, что все выходные данные схемы корректно ограничены.Разделяйте домены для разных задач протокола.Проводите аудит как криптографической конструкции, так и деталей ее реализации.Перед выбором MiMC для нового протокола сравните ее производительность с другими хеш-функциями, удобными для ZK.Краткий обзор хеша MiMC для SEO и AEO
MiMC — это семейство криптографических хеш-функций, удобных для ZK и созданных для снижения мультипликативной сложности.MiMC предложили для эффективного шифрования и хеширования в таких средах, как MPC, полностью гомоморфное шифрование и доказательства с нулевым разглашением.MiMC работает над конечными полями и, в зависимости от поля и варианта, обычно использует простые степенные функции, например
FAQ
Что такое хеш MiMC?
MiMC — это криптографическая хеш-конструкция, созданная для эффективной работы в схемах доказательств с нулевым разглашением и других средах с арифметическими вычислениями.Что означает MiMC?
MiMC расшифровывается как Minimal Multiplicative Complexity («минимальная мультипликативная сложность»).Почему хеш MiMC называют удобным для ZK?
Хеш MiMC называют удобным для ZK, поскольку он использует арифметические операции, которые можно эффективно представить во многих схемах доказательств с нулевым разглашением.Хеш MiMC — это то же самое, что SHA-256?
Нет. MiMC создана для схем над конечными полями, а SHA-256 — традиционная хеш-функция с побитовой структурой, широко используемая в обычном программном обеспечении и системах Proof of Work.Где хеш MiMC используют в криптоиндустрии?
MiMC применяется в ZK-схемах для деревьев Меркла, коммитментов, нуллифаеров, доказательств членства и логики приложений с защитой конфиденциальности.Работает ли хеш MiMC над конечными полями?
Да. MiMC создан для работы над конечными полями, например над простыми полями, используемыми во многих системах доказательств.Всегда ли хеш MiMC безопасен?
Нет. Безопасность MiMC зависит от конкретного варианта, поля, степени, числа раундов, констант, конструкции и корректности реализации.Можно ли использовать хеш MiMC в смарт-контрактах?
Да. MiMC можно реализовать или проверять в системах со смарт-контрактами, но реализация ончейн должна в точности соответствовать реализации в схеме.Каков основной риск использования хеша MiMC в схемах?
Один из основных рисков — недостаточно ограниченная схема, в которой доказательство фактически не проверяет предусмотренное вычисление хеша MiMC.Следует ли новым ZK-проектам всегда использовать хеш MiMC?
Нет. Новым ZK-проектам следует сравнивать MiMC с другими хеш-функциями, удобными для ZK, и выбирать вариант с учетом безопасности, производительности, совместимости с полем, поддержки библиотек и требований к аудиту.Заключение
Хеш MiMC — важный криптографический примитив в истории и практике криптосистем с нулевым разглашением.Он был разработан для снижения стоимости хеширования внутри арифметических схем за счет минимизации числа операций с высокой вычислительной стоимостью, связанных с умножением.Поэтому MiMC подходит для SNARK, конструкций, связанных со STARK, систем MPC, коммитментов, деревьев Меркла, нуллифаеров и доказательств приватного членства.Сильная сторона MiMC — простая арифметика конечных полей и ориентация на эффективность ZK.Риск заключается в том, что важны все параметры и детали реализации.Для реализации MiMC необходимо правильно выбрать поле, степень, число раундов, константы, параметры губки, правила кодирования входных данных и способы разделения доменов.Также необходимо правильно задать ограничения вычислений MiMC в ZK-схеме.Пользователи обычно не видят MiMC, поскольку она работает внутри системы доказательств приложения.Для разработчиков MiMC — мощный инструмент, требующий тщательной инженерной проработки и аудита.Хеш MiMC лучше всего понимать как специализированную хеш-функцию, удобную для ZK: она позволяет криптопротоколам эффективно доказывать приватные вычисления, но только при точной реализации параметров и ограничений схемы.Вам также может быть интересно
Питер Тодд
Питер Маккормак
Гарантийное обеспечение исполнения обязательств
В тренде
Трендовые криптовалюты, которые в настоящее время привлекают значительное внимание рынка
ТОП по объему
Криптовалюты с наибольшим объемом торгов
Недавно добавленные
Криптовалюты недавно внесенные в листинг и доступные для торговли

