2023 Математические методы криптографии № 60
МАТЕМАТИЧЕСКИЕ МЕТОДЫ КРИПТОГРАФИИ
УДК 004.056 + 004.051 + 004.414.22 + 004.67 DOI 10.17223/20710410/60/4
СПОСОБЫ ПОВЫШЕНИЯ ПРОИЗВОДИТЕЛЬНОСТИ КРАТКИХ НЕИНТЕРАКТИВНЫХ АРГУМЕНТОВ С НУЛЕВЫМ РАЗГЛАШЕНИЕМ И АНАЛИЗ ДОСТИГНУТЫХ РЕЗУЛЬТАТОВ
И. В. Мартыненков
АО «КВАНТ-ТЕЛЕКОМ», г. Москва, Россия
E-mail: mivpost@yandex.ru
Рассматриваются способы повышения производительности кратких неинтерактивных аргументов с нулевым разглашением на основе полиномиальных наборов с использованием различных вычислительных методов. Проводится сравнительный анализ протоколов по размерам главных ссылочных строк и доказательств достоверности вычислений, затратам формирования доказательств и их верификации.
Ключевые слова: краткие неинтерактивные аргументы, повышение производительности, анализ производительности, размер публичных параметров.
WAYS TO IMPROVE THE PERFORMANCE OF ZERO-KNOWLEDGE SUCCINCT NON-INTERACTIVEARGUMENTS OF KNOWLEDGE AND THE ANALYSIS OF THE RUSULTS ACHIEVED
I. V. Martynenkov
JSC «KVANT-TELECOM», Moscow, Russia
We consider ways to improve the performance of zero-knowledge succinct non-interactive argument of knowledge (zk-SNARK) based on polynomial sets, such as quadratic arithmetic programs (QAP), square arithmetic programs (SAP), quadratic span programs (QSP), square span programs (SSP), quadratic polynomial programs (QPP), etc. To improve the performance of zk-SNARK, batch data processing methods, various modifications of exponentiation problems, bilinear pairings based on elliptic curves, etc. are used. A comparative analysis of the complexity of the common reference strings formation, the construction and verification of the calculations reliability proofs, as well as the sizes of common reference strings and proofs has been carried out.
Keywords: .succinct non-interactive arguments, performance improvement, performance analysis, size of public parameters.
Введение
Рассматриваются способы повышения производительности кратких неинтерактивных аргументов с нулевым разглашением. Далее используется наименование «прото-
кол zk-SNARK» согласно [1]. Представлено применение ключевых/бесключевых хеш-функций, позволяющих выполнять верификацию доказательств с затратами, независимыми от размера ввода/вывода, но с издержками на дайджесты. Быстродействие может повышаться за счёт более адаптированных к протоколам zk-SNARK хеш-функций над простым полем [2, 3] или на решётках [4-6], как представлено в [7]. Появляется компромисс между сложностью вычислений доказывающего и верификатора, владеющего секретными значениями, определяемый хешированием части открытого входа.
Для деления полиномов может использоваться многоточечная оценка и интерполяция [8, 9], а для умножения — множественное возведение в степень [10, 11] на основе таблиц промежуточных степеней и др. [11-14]. Структурные свойства набора полиномов в виде квадратичных арифметических программ (Quadratic Arithmetic Program, QAP) [15] предполагают наличие нулевых многочленов, позволяющих сократить размер ключей [14]. Отдельного внимания заслуживают сокращение размера доказательства и асимметричное билинейное спаривание [16] с компонентами доказательств из разных групп [17].
Приводятся примеры разделения публичных параметров главной ссылочной строки (Common Reference String, CRS) на более компактные части, формируемые отдельно для доказывающих и верификаторов протоколов zk-SNARK [15, 17, 18]. На примере протоколов zk-SNARK из [19] представлена пакетная верификация доказательств, являющаяся более эффективной компоновкой частей доказательств для уменьшения сложности вычислений. Отмечены работы, использующие объединение набора доказательств протоколов zk-SNARK в одно заключительное доказательство.
Представлен сравнительный анализ протоколов zk-SNARK [7-9, 12-15, 17, 18, 20-36] по размерам CRS и доказательств достоверности вычислений, а также по сложностям вычислений доказывающих и верификаторов.
1. Способы применения хеш-функций
Верифицируемые вычисления (Verifiable Computation, VC) [20] предназначены для двустороннего вычисления функций по частным входным данным. Согласно [37], в схемах VC независимо от длины ввода f (x) вывод доказывающего может дополнительно сокращаться. Для этого вместо f(x) используются ключевые функции MACk(f(x)). В результате верификация становится независимой от длины ввода/вывода, однако возникают издержки верификатора на вычисление хеш-функции. На стороне верификатора для подготовки входных данных асимметричные криптографические преобразования остаются прежними.
Вычисления верификатора протоколов zk-SNARK [15, 38] линейны по размеру открытого входа u с основными затратами на вычисление gvin(s), где g — порождающий элемент группы; vin(s) = akVk (x) —сумма многочленов из состава полиномиаль-
fce/in
ного набора QAP или программ квадратичного диапазона (Quadratic Span Programs, QSP) [15]; s — секретная точка. Вычисление сокращается за счёт применения хеш-функции H для получения постоянного по размеру u' = H(u). Значение u' становится новым открытым входом, а u — частью секрета w, знание которого доказывается. Однако хеширование увеличивает объём вычислений доказывающего, так как впоследствии дополнительно необходимо верифицировать u' = H(u). Компромисс между вычислениями доказывающего и верификатора определяется хешированием части входных данных u.
В случае протокола zk-SNARK с фиксированным верификатором (Designated Verifier, DV) [15, 38] верификатор владеет секретами a,ßv,ßw Е Z*, по которым с использованием gVmid(s), gw(s), gh(s) он способен сформировать часть доказательства. Значения vm\d(s),w(s),h(s) также основаны на полиномиальных наборах QAP/QSP [15]. Поэтому доказывающий может применить более лаконичные доказательства за счёт хеша D = H(gaVmid(s), gaw(s), gah(s) ,gßvVmid(s)+ßww(s)) и отправить п = (gvmidO), gw(s),gh(s), d). Затем верификатор выводит аналогичные недостающие значения, проверяет совпадение с D и проводит верификацию доказательства обычным способом. Для протокола DV zk-SNARK [39, 40] хеш-функции назначаются верификаторами на этапе формирования публичных параметров в виде CRS.
Кроме того, хеш-функции над большим простым полем, например «POSEIDON» [2] или хеш Педерсена [3], используемые для доказательства знания прообраза, лучше адаптированы к протоколам zk-SNARK по сравнению с классическими схемами, за счёт чего повышают их быстродействие. Вариант [3] отображает последовательность бит в сжатую точку на эллиптической кривой. В [13] вычисляется хэш Меркла с использованием SHA-1, в то время как в [7] хеш-функция основана на решётке
h(x, y) = Lx + Ry mod q, (1)
где L, R Е Z^*™; x, y Е {1,... ,N }m [41]. В связи со свойством аддитивного гомоморфизма данной хеш-функции дайджест d(S) полученного хеш-дерева Меркла может выражаться в виде
d(S) = Е S[i]f (i) mod q, (2)
i
где f (i) Е {0,1}m — функция индекса i как «частичная метка» [42]; S[i] —вектор в позиции i как скаляр в Zq. Дайджесты векторов кратчайших путей [7] вычисляются с использованием (1) и (2), которые вместе с предварительно вычисленными расстояниями и путями обрабатываются HMAC, а затем передаются на вычисление серверу в недоверенной среде. Для всех векторов разной длины, хранящих предварительно вычисленные расстояния, строится доказательство протокола zk-SNARK [13]. Возможным недостатком подходов [7] по сравнению с [13] является увеличение размера доказательства. Размер доказательства схемы [13] составляет 288 байт. Доказательство [7] содержит 256-битный (32 байта) HMAC для каждого ребра графа c кратчайшим путём, поэтому размер доказательства пропорционален количеству таких рёбер |R|. В общем случае доказательство [7] составляет |R| х 32 + 288 байт. Примеры криптографических алгоритмов на решётках представлены в [4-6].
Например, протокол zk-SNARK [43] строится на основе симметричных хеш-функций и схем обязательств, обеспечивая «постквантовую» защиту. В [44] представлена новая схема обязательств для полиномов над конечными полями, использующая целочисленные представления многочленов и групп неизвестного порядка (Diophantine Argument of Knowledge, «DARK»). В общем виде уравнение P(ai,..., an, xi,..., xm) = 0 с параметрами ai,... ,an и неизвестными xi,... ,xm считается разрешимым при данных ai,... ,an, если существуют наборы чисел xi,... , xm, при которых равенство верно. В [44] представлено преобразование интерактивных доказательств в неинтерактивные на основе «DARK» для протокола zk-SNARK «Supersonic» с формированием CRS без секретных значений. Протокол zk-SNARK «Ligero» [45] также формирует CRS без секретных значений, использует произвольные хеш-функции, симметричные примитивы и преобразуется в неинтерактивный режим эвристикой Фиата — Шамира [46].
2. Способы выполнения алгебраических операций
В общем случае алгоритмы формирования ключей и доказательств протоколов zk-SNARK имеют высокие криптографические накладные расходы, так как выполняется значительное количество возведений в степень в группах G1 и G2.
Например, доказательство протокола zk-SNARK [15, 38] состоит из семи элементов группы. Выбираются случайные SVmid ,8w Е F, за счёт которых «маскируются» vmid(x) = Vmid(x) + ¿vmidt(x), w'(x) = w(x) + Swt(x), h'(x) = v'mid(x)w'(x)/t(x). Используются случайные a,fiv ,fiw Е F. Доказательство принимает вид
_ / / iii / / / \
П = (nvmid , ^W ,ПН ,nvmid '^W' ,ПН' , Пу) = (3.
= (gvmid(s),gw'(s),gh'(s),gavmid(s),gaw'(s),gah'(s),gevvmid(s)+A>w'(s)). ( )
Согласно [15], в доказательстве (3) из-за структуры многочленов QAP/QSP значения
v0(x) + akvk (x) и w0(x) + bkwk (x) могут вычисляться в поле F за линейное число k k
операций, исключая h(x). С помощью многоточечной оценки и интерполяции [8, 9]
частное h(x) = (v0(x) + akvk(x)) (w0(x) + bkwk(x))/t(x) может вычисляться со
kk сложностью O(s ■ poly (log(s))) и квадратичным вычислением доказательства п.
В [13] демонстрируются подходы повышения производительности, которые являются общими для протоколов zk-SNARK. Порождающий элемент группы g возводится в экспоненты, что ускоряется методом множественного возведения в степень [10, 11], основанным на построении таблиц промежуточных степеней. Таким образом, вычисление доказывающего вида gv(s) = П g\l требует использования g1,... , gm Е G и степеней
i
e1,... ,em Е Z для некоторого большого m. В данном случае применима техника построения небольшой таблицы степеней для каждой пары оснований. Например, для первых двух оснований с окном размера 1, используя одно умножение, вычисляются {g 1, g°, gi, gh gъ g0, gъ g1}. Затем рассматриваются старшие биты e1 и e2, указывающие на значение в таблице, которое умножается на «накопитель». Все пары оснований проходят аналогичную процедуру, после чего «накопитель» возводится в квадрат для перехода на следующий уровень. Такие таблицы могут увеличить производительность в 3-4 раза [13]. Для g Е G вычисление кортежей (gai,... ,gam) выполняется стандартной техникой предварительного вычисления таблиц степеней.
Для последующего использования верификаторам протоколов zk-SNARK целесообразно строить долговременные таблицы степеней порождающих элементов gi и секретных точек sj в фоновом режиме. Доказывающий вычисляет полином h(x), который может храниться в виде оценки от корней QAP/QSP и др. Для этого выводится полином p(x), а затем в открытом виде (без криптографических преобразований) для получения h(x) выполняется деление полиномов, что ускоряется умножением на основе быстрого преобразования Фурье (БПФ) со сложностью O(n log n) и алгоритмом полиномиальной интерполяции [47] для построения двоичного дерева полиномов со сложностью O(n log2 n). Для ускорения вычислений h(x) доказывающий также может хранить не содержащие секретов таблицы возведения в степень и полиномиальное дерево, которые потенциально могут передаваться между разными доказывающими.
В протоколе zk-SNARK [14] используются структурные свойства QAP из арифметических схем, сокращающие размер ключа доказывающего, который формируется на основе порождающего элемента Р группы G1 или G2 и скаляров а1,..., an Е F для вычисления а1Р,... ,anP. Арифметическая схема C с m проводами (Wires) и d вентилями (Gates) преобразуется в QAP размера m степени d. Далее строятся три
матрицы А, В, С € Е(т+1)хй, кодирующие топологию схемы С: ]-е столбцы А/В кодируются левыми/правыми входами ]-го логического элемента, а ]-е столбцы С — выходами логических элементов, ] € {1,... , <}. Рассматривается Б С Е как множество размера 1, Z(г) = П (г — ш) и для г € {1,...,т} полином Лг — расширение
шея
низкой степени г-й строки А. Аналогично определяются Вг,Сг. Примечательно, что в [14] отмечается наличие нулевых строк матриц А, В, С, соответствующих нулевым многочленам. Например, если г-й провод никогда не имеет ненулевого значения в качестве левого входа вентиля, то г-я строка А является нулевой, поэтому Лг — нулевой многочлен. Этот факт используется для сокращения размера ключа доказательства за счёт уменьшения количества ненулевых многочленов в матрицах [14], что снижает стоимость вычислений.
В протоколах гк-БКАИК [12, 13] для вычисления доказательств п используются универсальные мультискалярные умножения. В протоколе гк-БКАИК [14] доказывающий использует вектор а € в виде коэффициентов многочлена-частного к(х) степени 1 или а = (1, € Е4+т для случайных 51,52,53 € Е. В первом случае а представляется случайным, поэтому может использоваться алгоритм Бос-Костера [11] из-за меньших требований к памяти. Во втором случае б зависит от ввода схемы С(х, а) и формирователя арифметических схем С, где х — открытый вход; а — секретный вход, знание которого доказывается. Теперь а может содержать б с дополнительными элементами. Секрет б рассматривается как список значений проводов схемы С при вычислении на (х, а) . Разрядность проводов зависит от выбора переменной типа байт, слово и т.д., а производительность повышается предварительной группировкой элементов из а по типам данных и применением метода [11].
Дополнительный вклад в быстродействие может внести асимметричное билинейное спаривание е : С1 х О2 ^ От, где С1 — «базовая» группа точек эллиптической кривой [16], а О2 —группа точек эллиптической кривой «кручения» [16] и О1 = О2. Операции над «базовой» кривой выполняются быстрее. Если один из входов функции билинейного спаривания фиксирован, применяются методы предварительного вычисления [48-50], идейно схожие с пакетной верификацией [19]. Вычислительные методы, обеспечивающие производительное билинейное спаривание, также представлены в [51-60]. Например, доказывающий может вычислять дС^ над кривой «кручения», а остальные значения — над «базовой» кривой. Такая асимметрия предполагает, что элемент поля может отображаться в виде значения первой, второй или обеих групп. Возможно использование сокращённого преобразования Тейта [61, 62] для эллиптической кривой Е над для простого числа д с группами (О1, О2, От), эквивалентными подгруппам в (Е(¥д),Е(Е^),) соответственно. Эллиптические кривые, удобные для билинейного спаривания, имеют размер элементов группы О1 меньший, чем размер элементов группы О2 [63]. Поэтому в протоколе гк-БКАИК [17] для повышения производительности А, С € О1 и В € О2. Выбор групп позволяет гибко настраивать уровень защищённости и производительности операций.
Отдельно стоит обратить внимание на потенциальную возможность сокращения размера доказательств. Например, по сравнению с протоколом гк-БКАИК [17] на основе QAP из арифметических схем с выходом в виде набора бит и доказательством из трёх элементов поля протокол гк-БКАИК [18] на основе ББР из логических схем с выходом один бит имеет доказательство из двух элементов поля. Доказательство протокола гк-БКАИК [17] также сокращается до двух элементов поля за счёт переписывания схемы с использованием только вентилей возведения в квадрат. Детальнее,
каждый элемент умножения а ■ Ь = с переписывается как (а + Ь)2 — (а — Ь)2 = 4с. Если используются только элементы возведения в квадрат, то полиномы QAP, соответствующие левым и правым входам логических элементов, равны (иг(х) = уг(х) для всех г). Зафиксировав значения секретных рандомизаторов г = в £ Zp, отвечающих за введение свойства нулевого разглашения, и используя компоненты ключа верификации в, а £ Z*, формируем В = А + в — а [17]. Поэтому необходимо построить только два элемента доказательства А и С [17]. Однако описанный метод может удвоить количество вентилей и требует дополнительных проводов для вычитания квадратов. Поэтому уменьшение размера доказательства связано с дополнительными вычислительными затратами.
3. Разделение публичных параметров главной ссылочной строки
В протоколах гк-БЫАИК [15, 18] экономия ресурсов достигается за счёт предварительного вычисления наборов {д^(з)}г>1и, д^ и {д^(з)}т=0, д2(з), где ьг(х),Ь(х) —многочлены QAP/QSP; в — секретная точка; 1и — разрядность открытого входа; 1Ш —разрядность секретного входа. Для оценки многочлена-частного к(х) в т-корнях г 1,... ,гт
т
целевого полинома Ь(х) = П (х — г г) доказывающий может применять дискретное пре-
г= 1
образование Фурье, как представлено в [18]. В результате повышение производительности протокола гк-БЫАИК [18] достигается модификацией СИБ доказывающего:
^Р = (г, О 1, 62, &Г,е,д 1,д2, {дТ(3) }г>1и , {^ }г>^ , ^ ^ }г>1и ,
^(з) д2,д2вл,{ЩГ1}^,{д1("}?=1,д^
д1 1 И2) ¿»2 > /) I" V ]) ^=1' 1У1 JJ =
^о(«)+ X] а^ (з)
1и
I
Верификатор протокола гк-БЫАИК [18] вычисляет V = д1 г=1 Ут и проводит верификацию, при этом полная СИБ заменяется компактным вариантом с 1и + 6 элементами группы:
= (г, 61, 6, От,е,д1, {д^(з)^, д2, д2(з), д2)■
Если СИБ формируется верификатором, то за счёт знания применяемых секретов, например в и т в [18], сложность верификации дополнительно сокращается с помощью соответствующих предварительных вычислений.
Другим примером является протокол гк-БЫАИК [17], в котором если каждый вентиль соединён с постоянным числом проводов, то набор QAP является разреженным, а сложность вычисления линейной — О(п), где п = deg(t(x)), или зависит от параметра безопасности. При этом для д = 1,... ,п выполняются следующие оценки полиномов:
т т т т т т
агы(гд) = ^2 агПг,д, а&г(гд) = ^ а^д, аггШг(гя) = ^ аг'Шг,я. (4)
г=0 г=0 г=0 г=0 г=0 г=0
Если г1,...,гт — корни Ь(х) при подходящем простом р, то к(х) вычисляется с использованием БПФ в Zp за О(п log п) операций. Вычисление коэффициентов в (4) возможно за счёт БПФ, на основе которых доказывающий выполняет т + 3п — 1и + 3 возведений в степень в О1, п +1 —в О2. С увеличением параметра (уровня) безопасности порядок групп растёт и возведение в степень становится трудозатратнее. В таком случае СИБ [17]
_ = ( а,в,5, {х }n=o1, {(вщ(х) + ауг(х)+ ^г(х))/7}1=0Л _ = (Я ^ ^1хПп-1 \ (5) \{(впг(х) + ауг(х) + ■тг(х))/8}т=1и+1 , {хЧ(х)/б}'^ ) ,7 , {х }г=^ (5)
расширяется такими элементами [иг(х)]1, [ьг(х)]1, [шг(х)]2 для г € {1,...,т} при
Ь = 9?
[гг(х)]^ = 9?г(х), что А и В доказательства п [17], а именно
А = а + Е агщ(х) + т5, В = в + Е ад(х) + вб, i=0 i=0 ( ш \ (6)
С = ( Е аг(виг(х) + ауг(х) + и>г(х)) + Н(х)Ь(х) \ /б + Ав + Вг — твб, \г=г„+1 /
шш
становится возможным строить без вычисления коэффициентов Е агиг(х) и Е аг1>г(х)
г=о г=о
и последующего возведения в степень. В результате в случае QSP/SSP коэффициенты аг € {0,1} расширяют СИВ и доказывающий может выполнить т умножений для каждой компоненты А и В. Модифицированная СИВ, предполагающая более быстрое вычисление доказательств, формируется из исходной СИВ, поэтому свойства защищённости протокола не нарушаются [17].
Кроме того, верификатору протокола гк-ВКАИК [17] не требуется полная СИВ (5). Достаточно знать 1и + 2 элементов О1, три элемента О2 и один элемент От. В данном случае формирование ключей преобразуется к виду (ар,ау,т) ^ Бе1ир(Я) с компонентом
ау = \р, Оь О2, От ,е, [1]ь
виг(х) + а^г(х) + тг(хУ л 1
1
, [1]2, ЬЬ, [б]2, [ав]т| . (7)
1) г=о
Верификация подтверждает, что доказательство (6) состоит из трёх корректных элементов А, В, С:
[А]1 ■ [В]2 =[а]1 ■ [в]2 + Е аг
г=о
Рщ (x)+avi(x)+Wi (х) 7
[7 ]2 + [С]1 ■ [б]2.
Верификатор вычисляет 1и возведений в степень в О1, ряд умножений и три билинейных спаривания, где предполагается, что [ав]т = [а]1 ■ [в]2 предварительно вычисляются в ау (7).
4. Пакетная верификация доказательств
Пакетная верификация ускоряет работу протоколов гк-ВКАИК. Например, для
всех протоколов гк-ВКАИК [19] вместо проверки Р равенств вида Хг = Уг для
г € [1,... , Р] верификатор может сгенерировать случайные тг € Ър для г € [1,... , Р — 1],
р-1 р-1
а затем проверить равенство П Х^1 ■ Хр = ■ Ур. Если Хг и Уг имеют подходящую
г=1 г=1
структуру, то пакетная верификация экономит ресурсы. Например, если Хг = е(иг, V),
р-1 /р-1 \
где V не зависит от г, то при вычислении П ХТ ■Хр = е ( П ■ Ир^ I выполняется
г=1 \г=1 /
одно билинейное спаривание и (Р — 1) возведений в степень.
В [19] представлено пять видов пакетной верификации, соответствующих разным протоколам гк-ВКАИК. Используются случайные секретные значения х,1,б € Ър. Значения вида п^ являются ранее сформированными доказательствами [19].
Пакетная верификация достоверности обязательств. Проверка выполнения равенств вида е(Лг1, д^) = е(91, Л^2) для г € [1,... , Р] требует 2Р билинейных спарива-
и
1
р р
ний. Пакетная версия П е(Аг1,д2)4' = П е(д^ А^2)4' или ещё производительнее:
г=1 г=1
е( П А1 ,д^) = ^д1,1! А^ ,
при тг Е Ър и тр = 1 требует двух билинейных спариваний, по 1 х (Р — 1) возведений в степень в С2 и С1 для левой и правой частей.
Пакетная верификация доказательств знания результата произведения.
Если верификатор получает Р доказательств пг = ((Аг1, А^2), (Вг1, В^), (Ог1, О]2), то наивная верификация уравнений е(Аа,В2) = е(д^ О2)е(пг, д^(х)) требует 3Р билиней-
п
ных спариваний. Тогда рассматривается Z(X) = П(Х — иг-1) = Xп — 1 —единствен-
г=1
ный многочлен п-й степени, для которого Z(шг-1) = 0 при I Е [1,... , п], и пакетная версия
П е(Аг1,В!2У* = е(дъ П С™) е( П п?
г=1 \ г=1 / \г=1 /
требует только (Р + 2) билинейных спариваний, 1 х Р возведений в степень в С1, по 1 х (Р — 1) возведений в степень в С2 и Ст. Если Аг1 = А1 фиксировано, то за
( р V4
счёт изменения первого преобразования на е I А1, В]2\ вычисления сокращаются
до трёх билинейных спариваний, 1 х (Р — 1) возведений в степень в С1 и 2 х (Р — 1) возведений в степень в С2. Случай фиксированного В^ = В2 аналогичен.
Пакетная верификация доказательств знания циклического сдвига вектора. Если верификатор получает Р доказательств пг=(пг1, п22)=((Аг1, А^2), (Вг1, В^)), то наивная верификация требует 4Р билинейных спариваний. Пакетная версия
е (п пЦ П (Вг,пг,)т- = е (д?(х), П ) е ( П А?! ,д¥ (х)г'(х))
\г=1 г=р+1 / \ г=1 / \г=р+1 /
требует три билинейных спаривания, 1 х (Р — 1) и 1 х (2Р — 1) возведений в степень в С1, 1 х Р возведений в степень в С2.
Пакетная верификация доказательств знания суммы элементов множеств. Протокол гк-БКАИК доказательства знания суммы элементов, входящих в конечное множество, рассматривает такой набор Я = ((Б1,... , Бп), в) при Бг, в Е Ър, для
п
которого существует вектор Ь Е {0,1}п и выполняется равенство Е $гЬг = в. Доказы-
г=1
вается знание открытия обязательства (В1, В2) к вектору Ь, при котором выполняется указанное равенство.
Таким образом, верификатор генерирует случайные тг, I Е {1,... , 8}, т6 = т8 = 1,
и строит 1г(Х) = П((Х — и7-1)/(иг-1 — и7-1)) — 1-й базисный многочлен Лагранжа,
7=г
являющийся единственным многочленом степени п — 1, для которого 1г(иг-1) = 1 и 1г(п}7-1) = 0 при ] = I. Выполняется две проверки:
е(ВГ ОТ2 ВТ3 ,д] )е((В1/д1)Т4 (^1 )45 ,В^2 )е((д1^Г /(д?1 (х))*) = = е(дъВГ О2/(г2+ТБ ]В1Т3 )е(пТ4 п? п?, $(х)),
е(пТ1(В1/О1Пз1)Т8 }д2*(х)) = е((д?(х))47 ^ер?, д2^*(х)).
В результате требуется только восемь билинейных спариваний, 2 х 3 и 2 х 2 возведений в степень в Gi, три дополнительных возведения в степень в Gi, 1 х 3 возведений в степень в G2 и одно дополнительное возведение в степень в G2.
Пакетная верификация доказательств принадлежности диапазону. В протоколе zk-SNARK подтверждения принадлежности элемента общедоступному диапазону [L,...,H] доказывается знание открытия обязательства (Л1 ,Л1,) к значению a Е [L,...,H]. Это будет означать, что публичный вход (Л1,Л2) корректно привязан к вектору a с a1 = a и ai = 0 для i > 1. Диапазон [L,... ,H] можно заменить на [0,..., H — L], а затем использовать гомоморфные свойства схемы формирования обязательств, чтобы добавить L к зафиксированному значению. Поэтому предполагается, что диапазон равен [0,... , H] при H ^ 1. Данный вариант похож на протокол zk-SNARK доказательства знания суммы элементов, входящих в конечное множество, где дополнительно фиксируется значение a Е [0,... , H] и используется разреженный вектор S с Si = |_(H + 2г-1)/2г]. Доказываетя, что для обязательств (Л1, A22) зафикси-
n
рованного значения a выполняется равенство Sibi = a.
i=1
Таким образом, верификатор генерирует случайные ri, i Е {0,... , 8}, т6 = т8 = 1, и выполняет две проверки:
е(ЛЦ°B1 CT2D13,gY) e(g-T1 (В^)-(S1 Г) e((gil(x))T6,Dl/Л1) = = е(дъЛ1 T°CY(T2+T6)D2yT3) e(n\4n?n?,gf(x)), e^D./C^)T8,gf(x)) = e((gf(x))-^ e(D[8,gf(x)Z*(x)).
В результате требуется только восемь билинейных спариваний, 1 х 4, 2 х 3 и 1 х 2 возведений в степень в G1, три дополнительных возведения в степень в G1, 1 х 3 возведений в степень в G2.
В [21] представлен протокол zk-SNARK «Dory» с публичным формированием CRS без использования секретных значений, который строит доказательства знания результата сопряжения векторов двух групп и использует схему доказательств на основе преобразования Фиата — Шамира [46]. Протокол также объединяет доказательства в пакет, повышая производительность верификации. Кроме того, производительность [21] достигается за счёт симметрии сообщений и ключей, применяемых для формирования доказательств: если сообщение принадлежит G1, то ключ для формирования доказательства принадлежит G2, и наоборот.
5. Рекурсивная композиция доказательств
Объединение цепочки доказательств протоколов zk-SNARK в одно заключительное доказательство, которое имеет размер и сложность верификации, аналогичные отдельным доказательствам, является важной характеристикой систем достоверных вычислений. Например, протокол zk-SNARK [64] представляет развитие идей поэтапных вычислений с верификацией результатов на каждом промежуточном шаге (инкре-ментные доказываемые вычисления) [65-67] с произвольным компонентным протоколом zk-SNARK, например [8, 9] и др. Применяется рекурсивная композиция протокола zk-SNARK с фиксированным количеством шагов, что сокращает трудозатраты на формирование CRS за счёт её повторного использования. В результате понятие zk-SNARK расширяется до распределённой среды. После каждого этапа выводится текущее состояние и доказательство его корректности, а вычисления представляются в виде ориентированных ациклических графов, разворачивающихся во времени. В кон-
це цепочки верификатор протокола zk-SNARK получает единственное доказательство достоверности всех шагов.
Протокол zk-SNARK «FRACTAL» [68] представляет новую методологию рекурсивной композиции доказательств с публичным формированием CRS без использования секретных значений. Ядром схемы является постквантовый протокол zk-SNARK с системой ограничений ранга 1 (Rank-1 Constraint System, R1CS). Подобно [69, 70], схема [68] также использует коды Рида — Соломона при работе с R1CS и построении вероятностно-проверяемых доказательств.
Протоколы zk-SNARK семейства «Spartan» [71] также формируют CRS без использования секретных значений. В частности, реализация протокола zk-SNARK «Halo» [72] представляет рекурсивную композицию доказательств, в которой для группы G простого порядка p, случайного вектора G G Gd, d G Z, значений r, H G G, коэффициентов ai G Fp, являющихся членами i-й степени QAP-полинома p(X), формируется CRS в виде a = (G, Fp, G,H), а схема формирования обязательств имеет следующий вид:
Com(a,p(X); r) = (a, G) + [r]H.
Здесь (a, G) = a0G0 + а\С\ + a2G2 + ... — скалярное произведение векторов; [r]H — r-кратное сложение точки эллиптической кривой. В качестве секретов выступают a, r.
Источник [73] обобщает конструкцию «Halo» [72], продолжая развитие рекурсивных доказательств с использованием компактных схем обязательств для доказательства достоверности оценки полиномов в секретных точках. «Halo Infinite» [73] демонстрирует новую методологию построения систем доказательств знания «Bulletproofs» без протокола zk-SNARK, используя свойство агрегации внутренних доказательств. Версия «Halo Infinite» [73] объединяет линейные комбинации обязательств в краткое обязательство, открываемое при необходимости.
6. Сравнительный анализ производительности протоколов zk-SNARK
В таблице приведено сравнение протоколов zk-SNARK [7-9, 12-15, 17, 18, 20-36] по размерам CRS и доказательств, а также по сложности вычислений доказывающих и верификаторов. Используются следующие обозначения: n — количество логических элементов дискретных функций (вентилей арифметической/логической схемы); Л — параметр безопасности; G — размер элемента группы; A, M, E, P — затраты на сложение, умножение, возведение в степень и билинейное спаривание; lu,lw,lo — разрядность открытого и секретного входов и выхода; m — количество переменных дискретной функции (проводов арифметической/логической схемы); пм — количество элементов умножения дискретной функции (арифметической/логической схемы); l — размер открытого входа в элементах группы. Для протокола zk-SNARK [30] на основе полиномиальных наборов QPP введены дополнительные обозначения: d — количество корней полиномов набора QPP; v = max {n^j —максимальная степень полиномов на-
i=1,...,m
бора QPP; ni — степень выходного полинома ci(z) набора QPP для i = 1,... ,m; m — количество выходных полиномов; T — сложность вычисления всех полиномов ci(z).
Анализ таблицы показывает, что с точки зрения практической реализации наиболее приемлемыми являются протоколы zk-SNARK [12-14, 17, 18, 32-35], которые для произвольных дискретных функций всегда имеют фиксированный размер доказательств и постоянное количество уравнений верификации.
Выделяются работы [15, 30, 31], которые также имеют фиксированные размеры доказательств. Тем не менее сложность верификации протокола zk-SNARK [15] зави-
Сравнительный анализ производительности протоколов zk-SNARK
Протокол CRS Доказ-во Доказывающий Верификатор
Й. Грот и др. [22] O(1) G O(n) G O(n) E O(n) P
Й. Грот и др. [23] O(1) G O(n) G O(n) E O(n) E
М. Эйб и др. [24] O(1) G O(n) G O(n) E O(n) E
Дж. Джентри [25] O(1) G lwAO(1) G nAO(1) M nAO(1) M
Й. Грот [26] O(n1/2) G O(n1/2) G O(n) M O(n) M
Р. Дженнаро и др. [20] O(npoly(A)) G O(lo) G O(n poly(A)) M O(l0 poly (A)) M
Й. Грот [27] O(n) G O(n) G O(n) E O(n) M
Й. Грот [27] O(n) F2 O(n) F2 O(n) M O(n) M
Й. Грот [8] O(n2/3) G O(n2/3) G O(n4/3) E O(n) M, O(n2/3) P
Х. Липмаа [9] n1/3+o(1) g O(n2/3) G O(n4/3) A,n1+O(1) E O(n) M,O(n2/3) P
Х. Липмаа [28] O(n) G O(1) G O(nlog n) E O(1) P
Э. Бен-Сассон и др. [12] O(11n + 3l + 2) G1, 6 G2 11 G1,1 G2 O(n) G1, G2 O(l) E, 21 P
Р. Дженнаро и др. [15] O(n) G 9 G O(n + nlog2 n) E O(l„ + lw) E/P
Б. Парно и др. [13] O(7m + nM - 2l) G 8 G O(7m + nM - 2l) E O(l) E, 11 P
П. Фаузи и др. [29] n(1+O(1))/2 G O(n1/2) G n(1+O(1))/2 x x O(n1/2(1 + logn)) M O(n) M, O(n1/2) P
Г. Данезис и др. [18] O(2m + n - 2l) G1, O(m + n - l) G2 3 G1,1 G2 O(m + n - l) E1 O(l) M1, 6 P
Ю. Чжан и др. [7] O(m) G O(lw) G O(mlogm) E O(lw) E,P
А. Косба и др. [30] O(dl) G 8 G O(T + dv x x (log(dv) + m)) E o(Ei6[i] ni) M
Х. Липмаа [31] O(nlog n) G O(1) G O(n log2 n) E, O(n log n) M O(log n) P
Э. Бен-Сассон и др. [32] O(6m + ПМ + l) G1, O(m) G2 7 G1,1 G2 O(6m + пм - l) E1, O(m) E2 O(l) E1,12 P
К. Костелло и др. [33] O(7m + nM - 2l) G 8 G O(7m + nM - 2l) E O(l) E, 11 P
M. Бакес и др. [34] O(1 + 7m + n - 2l) G 3 + 8 G O(3l +7m + n - 2l) E 6 + 11 P,O(l) M, O(1 +1) E
Й. Грот [17] O(m + 2ПМ) G1, O(nM) G2 2 G1,1 G2 O(m + 3ПМ - l) E1, O(nM) E2 O(l) E1,3 P
Й. Грот и др. [35] O(m + 4nM + 5) G1, O(2nM +3) G2 2 G1,1 G2 O(m + 4ПМ - l) E1, O(2nM) E2 O(l) E1,6 P
Э. Бен-Сассон и др. [14] O(6m + ПМ - l) G1, O(m) G2 7 G1,1 G2 O(6m + пм - l) E1, O(m) E2 O(l) E1,12 P
А. Кьеза и др. [36] O(4n + 2) G1, 2 G2 13 G1, 8 Fq O(22n) G1, O(nlog m) Fq 2 P G1, O(lu + log n) Fq
Дж. Ли [21] - 1 GT, O(6 log d) GT O(d1/2) P O(log d) M, 1 P
сит от разрядностей открытого и секретного входов дискретной функции, в протоколе гк-БКАИК [31] сложность верификации зависит от количества логических элементов дискретной функции, а сложность верификации протокола гк-БКАИК [30] —от степеней полиномов, соответствующих выходам дискретной функции.
Характерно, что многие рассмотренные протоколы имеют структуру, унаследованную или соответствующую развитию исторически основополагающих криптографических протоколов гк-БКАИК [15, 13].
Отдельного внимания заслуживают протоколы гк-БЫАИК [22, 23], которые характеризуются простотой описания и могут быть реализованы с меньшими трудозатратами. Однако у данных протоколов размер доказательств и количество билинейных спариваний при верификации зависят линейно от количества логических элементов дискретной функции. Вопрос об их модификации для фиксирования размера доказательств и количества билинейных спариваний остаётся открытым. Тем не менее в ряде
случаев применение протоколов zk-SNARK [22, 23] может оказаться целесообразным, например для дискретных функций с небольшим количеством логических элементов.
В таблице рассматриваются протоколы zk-SNARK для фиксированных дискретных функций с формированием CRS доверенной стороной с использованием секретных значений. В качестве сравнения с ними приведены характеристики производительности протокола zk-SNARK «Marlin» [36], который однократно строит универсальную и обновляемую CRS, впоследствии используемую для различных дискретных функций. По аналогичным соображениям приведены характеристики производительности протокола zk-SNARK «Dory» [21] доказательства корректности произведения полиномов степени d, который не требует предварительного формирования CRS доверенной стороной с использованием секретных значений.
Заключение
Рассмотрены основные способы повышения производительности, которые в зависимости от конструкции могут являться общими для разных протоколов zk-SNARK. Они основаны на применении хеш-функций, в том числе более адаптированных к рассматриваемым протоколам [2-6, ] методах производительного деления [8, 9], умножения и возведения в степень [10-14] элементов множеств, разделении CRS на лаконичные компоненты [15, 17, 18] для доказывающих и верификаторов, а также на более эффективных билинейных спариваниях [16, 17]. Аналогично [18], доказательство протокола zk-SNARK [17] может сжиматься до двух элементов группы. Относительно применения хеш-функций существуют компромиссы между уменьшением размера доказательств и увеличением затрат на формирование доказательств/верификацию, уменьшением затрат на формирование доказательств и увеличением затрат на верификацию, фиксацией размера открытого входа и увеличением затрат на верификацию и др.
Зафиксирована возможность объединения цепочки промежуточных доказательств протоколов zk-SNARK в одно заключительное доказательство [64, 68, 71-73]. На примере протокола zk-SNARK [14] показаны структурные свойства полиномиального набора QAP, характеризующиеся наличием нулевых многочленов, что также сокращает трудозатраты. Представлен мощный инструмент пакетной верификации доказательств протоколов zk-SNARK [19], значительно сокращающий сложность вычислений за счёт более эффективной группировки элементов доказательств.
Сравнительный анализ протоколов zk-SNARK [7-9, 12-15, 17, 18, 20-36] показал, что конструкции [12-14, 17, 18, 32-35] формируют доказательства фиксированного размера и используют постоянное количество уравнений верификации, поэтому в большей степени подходят для практической реализации. Отдельно выделены работы [15, 30, 31] с фиксированными размерами доказательств, но со сложностью верификации, зависящей от входов, количества логических элементов и степеней полиномов выходов дискретных функций. Протоколы zk-SNARK [22, 23] выделяются простотой описания, однако в зависимости от количества логических элементов дискретных функций размеры доказательств и количество билинейных спариваний изменяются. Фиксирование размера доказательств и количества билинейных спариваний позволит [22, 23] приобрести более широкое распространение. Характерно, что многие рассмотренные протоколы имеют структуру, унаследованную или развитую от исторически основополагающих криптографических протоколов zk-SNARK [13, 15].
ЛИТЕРАТУРА
1. Мартыненков И. В. Краткие неинтерактивные аргументы с нулевым разглашением на основе наборов полиномов // Прикладная дискретная математика. 2023. №59. С. 20-57.
2. Grassi L., Khovratovich D., Rechberger C., et al. Poseidon: A New Hash Function for Zero-Knowledge Proof Systems. Cryptology ePrint Archive. Paper 2019/458. 2019. https:// eprint.iacr.org/2019/458.
3. Baylina J. and Belles M. 4-bit Window Pedersen Hash On The Baby Jubjub Elliptic Curve. 2019. https://docs.iden3.io/publications/pdfs/Pedersen-Hash.pdf. 8p.
4. Regev O. New lattice based cryptographic constructions // Proc. 35th Ann. ACM Symp. on Theory of Computing. N.Y.: ACM, 2003. P. 407-416.
5. Regev O. New lattice-based cryptographic constructions //J. ACM. 2004. V. 51. Iss.6. P. 899-942.
6. Regev O. On lattices, learning with errors, random linear codes, and cryptography // Proc. 37th Ann. ACM Symp. on Theory of Computing. N.Y.: ACM, 2005. P. 84-93.
7. Zhang Y., Papamanthou C., and Katz J. ALITHEIA: Towards practical verifiable graph processing // Proc. CCS'14. N.Y.: ACM, 2014. P. 856-867.
8. Groth J. Short pairing-based non-interactive zero-knowledge arguments // LNCS. 2010. V.6477. P. 321-340.
9. Lipmaa H. Progression-free sets and sublinear pairing-based non-interactive zero-knowledge arguments // LNCS. 2012. V. 7194. P. 169-189.
10. Pippenger N. On the evaluation of powers and related problems // 17th Ann. Symp. SFCS'1976. Houston, TX, USA, 1976. P. 258-263.
11. Bos J. and Coster M. Addition chain heuristics // LNCS. 1990. V.435. P. 400-407.
12. Ben-Sasson E., ChiesaA., GenkinD., et al. SNARKs for C: Verifying program executions succinctly and in zero knowledge // LNCS. 2013. V. 8043. P. 90-108.
13. Parno B., Howell J., Gentry C., and Raykova M. Pinocchio: Nearly practical verifiable computation // Proc. 34th IEEE Symp. on Security and Privacy. Berkeley, CA, USA, 2013. P. 238-252.
14. Ben-Sasson E., ChiesaA., Tromer E., and Virza M. Succinct Non-Interactive Zero Knowledge for a von Neumann Architecture. Updated version, 2019. https://eprint.iacr. org/2013/879.pdf. 37 p.
15. Gennaro R., Gentry C., Parno B., and Raykova M. Quadratic span programs and succinct NIZKs without PCPs // LNCS. 2013. V.7881. P. 626-645.
16. Costello C. Pairings for Beginners. https://www.craigcostello.com.au/pairings/ PairingsForBeginners.pdf. 2012. 146 p.
17. Groth J. On the size of pairing-based non-interactive arguments // LNCS. 2016. V. 9666. P. 305-326.
18. Danezis G., Fournet C., Groth J., and Kohlweiss M. Square span programs with applications to succinct NIZK arguments // LNCS. 2014. V.8873. P. 532-550.
19. Lipmaa H. Almost Optimal Short Adaptive Non-Interactive Zero Knowledge. Tech. Rep. 2014/396. International Association for Cryptologic Research, 2014. http://eprint.iacr. org/2014/396. 20 p.
20. Gennaro R., Gentry C., and Parno B. Non-interactive verifiable computing: Outsourcing computation to untrusted workers // LNCS. 2010. V. 6223. P. 465-482.
21. Lee J. Dory: Efficient, transparent arguments for generalised inner products and polynomial commitments // LNCS. 2021. V. 13043. P. 1-34.
22. Groth J., Ostrovsky R., and Sahai A. Perfect non-interactive zero knowledge for NP // LNCS. 2006. V. 4004. P. 339-358.
23. Groth J., Ostrovsky R., and Sahai A. Non-interactive zaps and new techniques for NIZK // LNCS. 2006. V. 4117. P. 97-111.
24. AbeM. and Fehr S. Perfect NIZK with adaptive soundness // LNCS. 2007. V.4392. P. 118-136.
25. Gentry G. Fully homomorphic encryption using ideal lattices // Proc. 41 Ann. ACM Symp. Theory of Computing. V.9. N.Y.: ACM, 2009. P. 169-178.
26. Groth J. Linear algebra with sub-linear zero-knowledge arguments // LNCS. 2009. V. 5677. P. 192-208.
27. Groth J. Short non-interactive zero-knowledge proofs // LNCS. 2010. V.6477. P. 341-358.
28. Lipmaa H. Succinct non-interactive zero knowledge arguments from span programs and linear error-correcting codes // LNCS. 2013. V. 8269. P. 41-60.
29. Fauzi P., Lipmaa H., and Zhang B. Efficient modular NIZK arguments from shift and product // LNCS. 2013. V. 8257. P. 92-121.
30. Kosba A.E., Papadopoulos D., Papamanthou C., et al. TRUESET: Nearly Practical Verifiable Set Computations. Cryptology ePrint Archive. Report 2014/160. 2014. http://eprint.iacr. org/2014/160. 30 p.
31. Lipmaa H. Efficient NIZK arguments via parallel verification of benes networks // LNCS. 2014. V. 8642. P. 416-434.
32. Ben-Sasson E., ChiesaA., Tromer E., and Virza M. Scalable zero knowledge via cycles of elliptic curves // LNCS. 2014. V. 8617. P. 276-294.
33. Costello C., Fournet C., Howell J., et al. Geppetto: Versatile verifiable computation // Proc. IEEE Symp. SP'15. IEEE Computer Society, USA, 2015. P. 253-270.
34. Backes M., BarbosaM., Fiore D., and Reischuk R. M. ADSNARK: Nearly practical and privacy-preserving proofs on authenticated data // IEEE Symp. on Security and Privacy, San Jose, CA, USA, 2015. P. 271-286.
35. Groth J. and Maller M. Snarky Signatures: Minimal Signatures of Knowledge from Simulation-Extractable SNARKs. IACR Cryptology ePrint Archive. 2017. 36 p.
36. ChiesaA., Hu Y., Maller M., et al. Marlin: Preprocessing zk-SNARKs with universal and updatable SRS // LNCS. 2020. V. 12105. P. 738-768.
37. Applebaum B., Ishai Y., and Kushilevitz E. From secrecy to soundness: Efficient verification via secure computation // LNCS. 2020. V.6198. P. 152-163.
38. Reitwiebner C. zkSNARKs in a Nutshell. 2017. https://blog.ethereum.org/2016/12/05/ zksnarks-in-a-nutshell/. 15 p.
39. Bitansky N., Canetti R., ChiesaA., and Tromer E. From extractable collision resistance to succinct non-interactive arguments of knowledge, and back again // Proc. ITCS'12. N.Y.: ACM, 2012. P. 326-349.
40. Goldwasser S., Lin H., and Rubinstein A. Delegation of Computation without Rejection Problem from Designated Verifier CS-proofs. Cryptology ePrint Archive. Report 2011/456. 2011. 30p.
41. Ajtai M. Generating hard instances of lattice problems (extended abstract) // Proc. STOC'96. N.Y.: ACM, 1996. P. 99-108.
42. Papamanthou C., Shi E., Tamassia R., and Yi K. Streaming authenticated data structures // LNCS. 2013. V. 7881. P. 353-370.
43. Katz J., Kolesnikov V., and Wang X. Improved non-interactive zero knowledge with applications to post-quantum signatures // Proc. ACM SIGSAC Conf. CCS'18. N.Y.: ACM, 2018. P. 525-537.
44. Bünz B., Fisch B., and Szepieniec A. Transparent SNARKs from DARK Compilers. Cryptology ePrint Archive. Paper 2019/1229. 2019. https://eprint.iacr.org/2019/1229. 59 p.
45. Ames S., Hazay C., Ishai Y., and Venkitasubramaniam M. Ligero: Lightweight sublinear arguments without a trusted setup // Proc. ACM SIGSAC Conf. CCS'17. N.Y.: ACM, 2017. P. 2087-2104.
46. Fiat A. and Shamir S. How to prove yourself: Practical solutions to identification and signature problems // LNCS. 1986. V.263. P. 186-194.
47. Aho A., Hopcroft J., and Ulman J. The Design and Analysis of Computer Algorithms. Addison-Wesley, 1974. 470 p.
48. Scott M. Implementing cryptographic pairings // Proc. 1st First Intern. Conf. on Pairing-Based Cryptography. Berlin; Heidelberg: Springer Verlag, 2007. P. 177-196.
49. Galbraith S. D., Harrison K., and Soldera D. Implementing the Tate pairing // LNCS. 2002. V. 2369. P. 324-337.
50. Barreto P. S. L. M., Lynn B., and Scott M. Constructing elliptic curves with prescribed embedding degrees // LNCS. 2003. V.2576. P. 257-267.
51. Vercauteren F. Optimal pairings // IEEE Trans. Inform. Theory. 2020. V. 56. No. 1. P. 455-461.
52. Beuchat J. L., Gonzalez-Diaz J. E., Mitsunari S., et al. High-speed software implementation of the optimal ate pairing over Barreto — Naehrig curves // LNCS. 2010. V. 6487. P. 21-39.
53. Scott M., Benger N., Charlemagne M., et al. On the final exponentiation for calculating pairings on ordinary elliptic curves // LNCS. 2009. V. 5671. P. 78-88.
54. Granger R. and Scott M. Faster squaring in the cyclotomic subgroup of sixth degree extensions // LNCS. 2010. V.6056. P. 209-223.
55. Fuentes-Castañeda L., Knapp E., and Rodriguez-Henriquez F. Faster hashing to G2 // LNCS. 2012. V. 7118. P. 412-430.
56. Kim T., Kim S., and Cheon J. H. On the final exponentiation in Tate pairing computations // IEEE Trans. Inform. Theory. 2013. V. 59. No. 6. P. 4033-4041.
57. Solinas J. A. ID-based Digital Signature Algorithms. 2003. http://cacr.uwaterloo.ca/ conferences/2003/ecc2003/solinas.pdf. 32 p.
58. Scott M. Computing the Tate pairing // LNCS. 2005. V. 3376. P. 293-304.
59. Granger R. and Smart N. On Computing Products of Pairings. Cryptology ePrint Archive. Report 2006/172. 2006. 11 p.
60. Arène C, Lange T., Naehrig M., and Ritzenthaler C. Faster computation of the Tate pairing // J. Number Theory. 2022. V. 131. No. 5. P. 842-857.
61. Frey G. and Rück H.-G. A remark concerning m-divisibility and the discrete logarithm in the divisor class group of curves // Mathematics of Computation. 1994. V. 62. No. 206. P. 865-874.
62. Frey G., Muller M., and Rück H.-G. The Tate pairing and the discrete logarithm applied to elliptic curve cryptosystems // IEEE Trans. Inform. Theory. 2006. V. 45. No. 5. P. 1717-1719.
63. Galbraith S. D., Paterson K. G., and Smart N. P. Pairings for cryptographers // Discrete Appl. Math. 2008. V. 156. No. 16. P. 3113-3121.
64. Bitansky N., Canetti R., Chiesa A., and Tromer E. Recursive Composition and Bootstrapping for Snarks and Proof-Carrying Data. IACR Cryptology ePrint Archive. 2012. http://eprint. iacr.org/2012/095. 61 p.
65. Valiant P. Incrementally verifiable computation or proofs of knowledge imply time/space efficiency // LNCS. 2008. V.4948. P. 1-18.
66. Crescenzo G. D. and Lipmaa H. Succinct NP proofs from an extractability assumption // LNCS. 2008. V. 5028. P. 175-185.
67. Mei T. Polylogarithmic two-round argument systems //J. Math. Cryptol. 2008. V. 2. No. 4. P. 343-363.
68. ChiesaA., OjhaD., and Spooner N. FRACTAL: Post-quantum and transparent recursive proofs from holography // LNCS. 2020. V. 12105. P. 769-793.
69. Kattis A., Panarin K., and Vlasov A. RedShift: Transparent SNARKs from List Polynomial Commitment IOPs. Cryptology ePrint Archive. Paper 2019/1400. 2019. https://eprint. iacr.org/2019/1400. 20p.
70. Ben-Sasson E., Bentov I., Horesh Y., and Riabzev M. Fast Reed — Solomon interactive oracle proofs of proximity // 45th Intern. Colloquium ICALP'2018. V. 107. Prague, Czech Republic,
2018. P. 1-17. https://doi.org/10.4230/LIPIcs.ICALP.2018.14.
71. Setty S. Spartan: Efficient and general-purpose zkSNARKs without trusted setup // LNCS. 2020. V. 12172. P. 704-737.
72. Bowe S., Grigg J., and Hopwood D. Recursive Proof Composition without a Trusted Setup. Cryptology ePrint Archive. Paper 2019/1021. 2019. https://eprint.iacr.org/2019/1021. 31 p.
73. Boneh D., Drake J., Fisch B., and Gabizon A. Halo Infinite: Recursive zk-SNARKs from any Additive Polynomial Commitment Scheme. Cryptology ePrint Archive. Paper 2020/1536. 2020. https://eprint.iacr.org/2020/1536. 66p.
REFERENCES
1. Martynenkov I. V. Kratkie neinteraktivnye argumenty s nulevym razglasheniem na osnove naborov polinomov [Zero-knowledge succinct non-interactive arguments of knowledge based on sets of polynomials]. Prikladnaya Diskretnaya Matematika, 2023, no. 59, pp. 20-57. (in Russian)
2. Grassi L., Khovratovich D., Rechberger C., et al. Poseidon: A New Hash Function for Zero-Knowledge Proof Systems. Cryptology ePrint Archive, Paper 2019/458, 2019. https:// eprint.iacr.org/2019/458.
3. Baylina J. and Belles M. 4-bit Window Pedersen Hash On The Baby Jubjub Elliptic Curve.
2019. https://docs.iden3.io/publications/pdfs/Pedersen-Hash.pdf. 8p.
4. Regev O. New lattice based cryptographic constructions. Proc. 35th Ann. ACM Symp. on Theory of Computing, N.Y., ACM, 2003, pp. 407-416.
5. Regev O. New lattice-based cryptographic constructions. J. ACM, 2004, vol.51, iss.6, pp.899-942.
6. Regev O. On lattices, learning with errors, random linear codes, and cryptography. Proc. 37th Ann. ACM Symp. on Theory of Computing. N.Y., ACM, 2005, pp. 84-93.
7. Zhang Y., Papamanthou C., and Katz J. ALITHEIA: Towards practical verifiable graph processing. Proc. CCS'14. N.Y., ACM, 2014, pp. 856-867.
8. Groth J. Short pairing-based non-interactive zero-knowledge arguments. LNCS, 2010, vol.6477, pp. 321-340.
9. Lipmaa H. Progression-free sets and sublinear pairing-based non-interactive zero-knowledge arguments. LNCS, 2012, vol. 7194, pp. 169-189.
10. Pippenger N. On the evaluation of powers and related problems. 17th Ann. Symp. SFCS'1976, Houston, TX, USA, 1976, pp. 258-263.
11. Bos J. and Coster M. Addition chain heuristicse LNCS, 1990, vol.435, pp. 400-407.
12. Ben-Sasson E., ChiesaA., GenkinD., et al. SNARKs for C: Verifying program executions succinctly and in zero knowledge. LNCS, 2013, vol.8043, pp.90-108.
13. Parno B., Howell J., Gentry C., and Raykova M. Pinocchio: Nearly practical verifiable computation. Proc. 34th IEEE Symp. on Security and Privacy, Berkeley, CA, USA, 2013, pp.238-252.
14. Ben-Sasson E., ChiesaA., Tromer E., and Virza M. Succinct Non-Interactive Zero Knowledge for a von Neumann Architecture, Updated version, 2019. https://eprint.iacr. org/2013/879.pdf. 37 p.
15. Gennaro R., Gentry C., Parno B., and Raykova M. Quadratic span programs and succinct NIZKs without PCPs. LNCS, 2013, vol.7881, pp. 626-645.
16. Costello C. Pairings for Beginners. https://www.craigcostello.com.au/pairings/ PairingsForBeginners.pdf, 2012. 146 p.
17. GrothJ. On the size of pairing-based non-interactive arguments. LNCS, 2016, vol.9666, pp. 305-326.
18. Danezis G., Fournet C., Groth J., and Kohlweiss M. Square span programs with applications to succinct NIZK arguments. LNCS, 2014, vol. 8873, pp. 532-550.
19. Lipmaa H. Almost Optimal Short Adaptive Non-Interactive Zero Knowledge. Tech. Rep. 2014/396. International Association for Cryptologic Research, 2014. http://eprint.iacr. org/2014/396. 20 p.
20. Gennaro R., Gentry C., and Parno B. Non-interactive verifiable computing: Outsourcing computation to untrusted workers. LNCS, 2010, vol.6223, pp. 465-482.
21. Lee J. Dory: Efficient, transparent arguments for generalised inner products and polynomial commitments. LNCS, 2021, vol.13043, pp. 1-34.
22. Groth J., Ostrovsky R., and Sahai A. Perfect non-interactive zero knowledge for NP. LNCS, 2006, vol. 4004, pp. 339-358.
23. GrothJ., Ostrovsky R., and Sahai A. Non-interactive zaps and new techniques for NIZK. LNCS, 2006, vol.4117, pp. 97-111.
24. AbeM. and Fehr S. Perfect NIZK with adaptive soundness. LNCS, 2007, vol.4392, pp.118-136.
25. Gentry G. Fully homomorphic encryption using ideal lattices. Proc. 41 Ann. ACM Symp. Theory of Computing, vol.9, N.Y., ACM, 2009, pp. 169-178.
26. GrothJ. Linear algebra with sub-linear zero-knowledge arguments. LNCS, 2009, vol.5677, pp.192-208.
27. Groth J. Short non-interactive zero-knowledge proofs. LNCS, 2010, vol.6477, pp. 341-358.
28. Lipmaa H. Succinct non-interactive zero knowledge arguments from span programs and linear error-correcting codes. LNCS, 2013, vol.8269, pp.41-60.
29. Fauzi P., Lipmaa H., and Zhang B. Efficient modular NIZK arguments from shift and product. LNCS, 2013, vol.8257, pp. 92-121.
30. Kosba A.E., Papadopoulos D., Papamanthou C., et al. TRUESET: Nearly Practical Verifiable Set Computations. Cryptology ePrint Archive, Report 2014/160, 2014. http://eprint.iacr. org/2014/160. 30 p.
31. Lipmaa H. Efficient NIZK arguments via parallel verification of benes networks. LNCS, 2014, vol.8642, pp. 416-434.
32. Ben-Sasson E., ChiesaA., Tromer E., and Virza M. Scalable zero knowledge via cycles of elliptic curves. LNCS, 2014, vol.8617, pp.276-294.
33. Costello C., Fournet C., Howell J., et al. Geppetto: Versatile verifiable computation. Proc. IEEE Symp. SP'15, IEEE Computer Society, USA, 2015, pp. 253-270.
34. Backes M., BarbosaM., Fiore D., and Reischuk R. M. ADSNARK: Nearly practical and privacy-preserving proofs on authenticated data. IEEE Symp. on Security and Privacy, San Jose, CA, USA, 2015, pp. 271-286.
35. Groth J. and Maller M. Snarky Signatures: Minimal Signatures of Knowledge from Simulation-Extractable SNARKs. IACR Cryptology ePrint Archive, 2017. 36 p.
36. ChiesaA., Hu Y., Maller M., et al. Marlin: Preprocessing zk-SNARKs with universal and updatable SRS. LNCS, 2020, vol. 12105, pp. 738-768.
37. Applebaum B., Ishai Y., and Kushilevitz E. From secrecy to soundness: Efficient verification via secure computation. LNCS, 2020, vol.6198, pp. 152-163.
38. Reitwiebner C. zkSNARKs in a Nutshell. 2017. https://blog.ethereum.org/2016/12/05/ zksnarks-in-a-nutshell/. 15 p.
39. Bitansky N., Canetti R., ChiesaA., and Tromer E. From extractable collision resistance to succinct non-interactive arguments of knowledge, and back again. Proc. ITCS'12, N.Y., ACM, 2012, pp.326-349.
40. Goldwasser S., Lin H., and Rubinstein A. Delegation of Computation without Rejection Problem from Designated Verifier CS-proofs. Cryptology ePrint Archive, Report 2011/456,
2011. 30p.
41. Ajtai M. Generating hard instances of lattice problems (extended abstract). Proc. STOC'96, N.Y., ACM, 1996, pp. 99-108.
42. Papamanthou C., Shi E., Tamassia R., and Yi K. Streaming authenticated data structures. LNCS, 2013, vol.7881, pp. 353-370.
43. Katz J., Kolesnikov V., and Wang X. Improved non-interactive zero knowledge with applications to post-quantum signatures. Proc. ACM SIGSAC Conf. CCS'18, N.Y., ACM, 2018, pp. 525-537.
44. BünzB., Fisch B., and Szepieniec A. Transparent SNARKs from DARK Compilers. Cryptology ePrint Archive, Paper 2019/1229, 2019. https://eprint.iacr.org/2019/1229. 59 p.
45. Ames S., Hazay C., Ishai Y., and Venkitasubramaniam M. Ligero: Lightweight sublinear arguments without a trusted setup. Proc. ACM SIGSAC Conf. CCS'17, N.Y., ACM, 2017, pp. 2087-2104.
46. Fiat A. and Shamir S. How to prove yourself: Practical solutions to identification and signature problems. LNCS, 1986, vol. 263, pp. 186-194.
47. Aho A., Hopcroft J., and Ulman J. The Design and Analysis of Computer Algorithms. Addison-Wesley, 1974. 470 p.
48. Scott M. Implementing cryptographic pairings. Proc. 1st First Intern. Conf. on Pairing-Based Cryptography, Berlin; Heidelberg, Springer Verlag, 2007, pp. 177-196.
49. Galbraith S. D., Harrison K., and Soldera D. Implementing the Tate pairing. LNCS, 2002, vol. 2369, pp. 324-337.
50. Barreto P. S. L. M., Lynn B., and Scott M. Constructing elliptic curves with prescribed embedding degrees. LNCS, 2003, vol.2576, pp.257-267.
51. Vercauteren F. Optimal pairings. IEEE Trans. Inform. Theory, 2020, vol.56, no. 1, pp. 455-461.
52. Beuchat J. L., González-Díaz J. E., Mitsunari S., et al. High-speed software implementation of the optimal ate pairing over Barreto — Naehrig curves. LNCS, 2010, vol.6487, pp.21-39.
53. Scott M., Benger N., Charlemagne M., et al. On the final exponentiation for calculating pairings on ordinary elliptic curves. LNCS, 2009, vol. 5671, pp. 78-88.
54. Granger R. and Scott M. Faster squaring in the cyclotomic subgroup of sixth degree extensions. LNCS, 2010, vol.6056, pp. 209-223.
55. Fuentes-Castañeda L., Knapp E., and Rodriguez-Henriquez F. Faster hashing to G2. LNCS,
2012, vol.7118, pp. 412-430.
56. Kim T., Kim S., and Cheon J. H. On the final exponentiation in Tate pairing computations. IEEE Trans. Inform. Theory, 2013, vol.59, no. 6, pp. 4033-4041.
57. Solinas J. A. ID-based Digital Signature Algorithms. 2003. http://cacr.uwaterloo.ca/ conferences/2003/ecc2003/solinas.pdf. 32 p.
58. Scott M. Computing the Tate pairing LNCS, 2005. vol. 3376, pp. 293-304.
59. Granger R. and Smart N. On Computing Products of Pairings. Cryptology ePrint Archive, Report 2006/172, 2006. 11 p.
60. Arène C, Lange T., Naehrig M., and Ritzenthaler C. Faster computation of the Tate pairing. J. Number Theory, 2022, vol. 131, no. 5, pp. 842-857.
61. Frey G. and Rück H.-G. A remark concerning m-divisibility and the discrete logarithm in the divisor class group of curves. Mathematics of Computation, 1994, vol. 62, no. 206, pp. 865-874.
62. Frey G., Müller M., and Rück H.-G. The Tate pairing and the discrete logarithm applied to elliptic curve cryptosystems. IEEE Trans. Inform. Theory, 2006, vol. 45, no. 5, pp. 1717-1719.
63. Galbraith S. D., Paterson K. G., and Smart N. P. Pairings for cryptographers. Discrete Appl. Math., 2008, vol.156, no. 16, pp. 3113-3121.
64. Bitansky N., Canetti R., Chiesa A., and Tromer E. Recursive Composition and Bootstrapping for Snarks and Proof-Carrying Data. IACR Cryptology ePrint Archive, 2012. http://eprint. iacr.org/2012/095. 61 p.
65. Valiant P. Incrementally verifiable computation or proofs of knowledge imply time/space efficiency. LNCS, 2008, vol.4948, pp. 1-18.
66. Crescenzo G. D. and Lipmaa H. Succinct NP proofs from an extractability assumption. LNCS, 2008, vol. 5028, pp. 175-185.
67. Mei T. Polylogarithmic two-round argument systems. J. Math. Cryptol., 2008, vol.2, no. 4, pp. 343-363.
68. Chiesa A., OjhaD., and Spooner N. FRACTAL: Post-quantum and transparent recursive proofs from holography. LNCS, 2020. vol. 12105, pp. 769-793.
69. Kattis A., Panarin K., and Vlasov A. RedShift: Transparent SNARKs from List Polynomial Commitment IOPs. Cryptology ePrint Archive, Paper 2019/1400, 2019. https://eprint. iacr.org/2019/1400. 20p.
70. Ben-Sasson E., Bentov I., Horesh Y., and Riabzev M. Fast Reed — Solomon interactive oracle proofs of proximity. 45th Intern. Colloquium ICALP'2018, vol. 107, Prague, Czech Republic, 2018, pp.1-17. https://doi.org/10.4230/LIPIcs.ICALP.2018.14.
71. Setty S. Spartan: Efficient and general-purpose zkSNARKs without trusted setup. LNCS, 2020, vol. 12172, pp. 704-737.
72. Bowe S., Grigg J., and Hopwood D. Recursive Proof Composition without a Trusted Setup. Cryptology ePrint Archive, Paper 2019/1021, 2019. https://eprint.iacr.org/2019/1021. 31 p.
73. Boneh D., Drake J., Fisch B., and Gabizon A. Halo Infinite: Recursive zk-SNARKs from any Additive Polynomial Commitment Scheme. Cryptology ePrint Archive, Paper 2020/1536, 2020. https://eprint.iacr.org/2020/1536. 66p.