эм привет я челси комлоу и я здесь чтобы представить обновления о морозе и морозе означает гибкие круглые оптимизированные пороговые сигнатуры Шнорра, и это совместная работа с моим сотрудником Ианом Голдбергом, который учится в университете Ватерлоо ммм, а потом много работы пришлось было сделано командой zcash Foundation, поэтому во-первых, если вы не знакомы с э-э пороговым секретом, это действительно важный вид лежащей в основе концепции заморозки и по сути, что такое пороговая схема разделения секрета это позволяет разделить секрет между набором участников так что восстановление или использование секрета требует сотрудничества среди того, что действительно важно, пороговое количество участников и поэтому, вероятно, если вы знакомы с пороговым разделением секрета, мм один из основных примитивов, который часто используется, называется мерцанием секретный обмен, и это супер известный алгоритм и это то, на чем строится и сам мороз, и так хм только начинаю этот разговор давай я сначала введу некоторые обозначения, которые мы будем использовать в этом разговоре и поэтому в пороговом секрете совместного использования схему, о которой мы часто говорим, как о представлении общего количества разрешенных участников и t как пороговое значение и мы увидим, насколько важны nnt в описывая эти схемы так что сначала вам может быть интересно, зачем вам на самом деле использовать секретный обмен эм, почему это так важно на практике поэтому одна из причин, по которой совместное использование секретов может быть полезно, - это аварийное восстановление так что по сути, если у вас есть секрет на одной машине и эта машина уничтожена, тогда ваш секрет навсегда потерян, и вместо этого если вы можете разделить его, и одна машина выйдет из строя тогда вы все еще сможете использовать этот секрет в будущем еще одна причина, по которой совместное использование секретов полезно, состоит в том, что это поднимает планку для противника, так что еще раз, если секрет только на одной машине и противник Компрометирует эту машину, тогда ваш секрет утерян навсегда однако, если он разделен между набором машин, тогда злоумышленнику сложнее взломать все эти машины и, наконец, причина, по которой секретное совместное использование полезно состоит в том, чтобы разделить доверие, так что, по сути, для разделения секрета требуется сотрудничество между набором участников, чтобы сделать что-то, чему доверяют так что это может быть доступ к секрету, который может выпускать подпись, на самом деле, так что секретное разделение было введены в 80-х годах, и в качестве варианта использования на самом деле вроде как защищать коды запуска ядерного оружия, чтобы вы могли видеть даже так, как вначале вроде предназначено для защиты доверенных вещей и требуют сотрудничества между некоторой когортой, чтобы сделай это надежное дело так что давайте посмотрим на это немного подробнее, так что я говорил об из n о пороговой схеме разделения секрета, поэтому здесь мы рассмотрим два из трех пример, так что здесь мы видим, что у нас есть один участник и у них есть одна секретная общая папка, поэтому допустим, что компьютер участника уничтожается, если вы не использовали секретный обмен план этот секрет будет утерян навсегда, однако, если вы используете схему «два из трех», у вас все еще есть два участника у каждого которые по-прежнему имеют свою долю, поэтому здесь важно что полный секрет может быть восстановлен с помощью любого t из n участников так что даже если один участник убежит, у вас все равно останется двое. чтобы восстановить секрет, так что еще раз посмотрим на наш пример допустим, у нас есть секретная доля и участник становится злонамеренным однако предположим, что у нас все еще есть второй и третий участник, и они все еще честный, так что снова здесь мы видим, что это противник, хотя они э-э, испорченный участник, один, они все еще должны испортить другого участника чтобы использовать этот секрет и так что-то, что действительно фундаментальным для пороговых схем является то, что они требуют предположения, что противник контролирует менее t участников, так что это любезно вроде действительно важной модели безопасности, над которой вы работаете внутри и в схемах совместного использования секретов до тех пор, пока противник контролирует меньше, чем порог схема считается безопасной поэтому, глядя на пороговые сигнатуры, он очень похож на пороговое разделение секрета, однако в этой модели ваш закрытый ключ по-прежнему является секретом, как мы уже рассматривали ранее, но у вас есть один общий открытый ключ, представляющий группу Итак, я снова подумал об этих двух параметрах из трех. ну, вы бы хотели, чтобы два участника работали вместе, чтобы поставьте подпись, и тогда эта подпись будет действительной под этим одним открытым ключом, который представляет группу вот так пороговые подписи соотносятся со схемами совместного использования секретов и одна из замечательных особенностей этих схем пороговой подписи - что весь секрет на самом деле никогда не восстанавливается, поэтому участники выполняют подписывая, используя только свою секретную долю, их секретная доля остается на их машина, но они могут выдать подпись, так что это что-то вроде хорошо в этих схемах и еще что приятно заключается в том, что выпущенная подпись может выглядеть идентично одной стороне подпись и поэтому это привлекательно для конфиденциальности причины, а также по причинам обратной совместимости чтобы вы могли использовать тот же алгоритм проверки для этих многосторонних схем, как и для однопартийных схемы так что я просто просматриваю некоторые применения пороговой подписи так что один из распространенных - выдача сертификатов, скажем, подпись или центр сертификации к консенсусу рассмотрел использование пороговой подписи, чтобы выдают свой сетевой консенсус, очевидно, в деньги настройка авторизации финансовых транзакций действительно полезна и вообще просто взгляд на распределенную аутентификацию для этого требуется минимальное количество подписывающих лиц, поэтому когда вы думаете о настройке порога Если вы думаете, что я хочу, чтобы какая-то группа, какая-то когорта, аутентифицировала эту вещь эээ пороговые подписи это вообще правильные инструмент для работы так что я собираюсь сделать шаг в сторону очень быстро и поговорить о сравнение со схемами с несколькими подписями, так что вы можете слышал о эээ, эээ своего рода параллельная работа с морозом, которая выполняется в экосистеме биткойнов люди блочного потока и их схема называется музыкой два и по сути то, что они определили, очень похоже на мороз, но мульти-подпись, так что я собираюсь как бы быстро поговорим о различиях между пороговой и мультиподписью так что, по сути, мультиподпись - это компактное представление из n подписей над некоторым сообщением и um в некоторых мульти подписях они полностью совместим со схемами подписи, такими как Шнорр в так же, как и мороз, но вроде как легкий способ помните разницу между порогом и мульти это мульти-подпись n из n, поэтому вам нужно n подписывающих лиц из n возможных подписывающих лиц, и порог Т из п и еще одна вещь, которая вроде позволяет для упрощения дифференциации заключается в том, что в схеме с несколькими подписями у каждого центра есть своя собственная пара публичных закрытых ключей, поэтому ключ генерация не интерактивна, тогда как в пороговой схеме ключ генерация интерактивна, и вот как вы получаете структура доступа t из n, так что это своего рода простой способ думать о множественных подписях по сравнению с порогом и так гм смотрю на некоторые конструкции и на то, где мороз вписывается в это так некоторые компромиссы, которые существуют в литературе, а затем связанные схемы с заморозками есть такие вещи, как количество раундов подписания, так что это необходимое количество сетевые раунды для генерации одной подписи Другой компромисс - надежны ли протоколы поэтому, если участники плохо себя ведут или произошел сбой в сети надежность говорит о том, может ли протокол завершиться предполагая, что есть по крайней мере пороговое количество подписывающих и, наконец, еще один компромисс: безопасен в параллельной настройке, поэтому здесь гм фрост и подобные схемы вроде музыки имеют вид продвинутого состояния литературы то есть операции подписи могут выполняться параллельно без снижения безопасности, тогда как предыдущие схемы были уязвимы для этой атаки, которая была введена водителями вообще и, по сути, эта атака жизнеспособна, когда подпись um может выполняться параллельно так что я как бы упомянул о вкладе мороз, мы пройдем через это и так во-первых, мороз - это двухэтапный протокол подписания порога или если вам удобна предварительная обработка это может быть протокол однократного подписания с таким типом этап предварительной обработки и, как я уже сказал, перед отправкой операции безопасны, даже если они выполняются одновременно так что вы можете открыть неограниченное количество операций подписи и нет никакого снижения безопасности и вроде э-э некоторые, я думаю, любят смотреть на некоторые предыдущие схемы в литературе часто бывает такое понятие честного большинства, которое просто отличается от необходимого порога количества подписывающих сторон, поэтому существует честная большинство, что противник не может развратить по сравнению с порогом, необходимым для подписания, но в подписание модели Frost может быть выполнено с помощью пороговое количество подписывающих лиц и охрана предполагает, что противник контролирует до t минус одна подписывающая сторона, поэтому эти модель безопасности и количество подписантов такие же на морозе так что теперь я собираюсь быстро напомнить вам об однопартийном шноре а потом посмотрим, как мороз сравнивает гм, как я уже сказал, мороз совместим с однопартийной проверкой шнора, но Я пройду через весь протокол подписания, так что в одиночку schnoor вы начинаете с генерации ключей как подписывающее лицо, а затем для подписания проверяющего отправит сообщение и открытый ключ, поэтому центр будет делать они будут генерировать объявления с равномерной выборкой наугад, они будут генерировать обязательство, а затем они сгенерируют это проблема, поэтому проблема - это хэш обязательства, открытый ключ и сообщение открытый ключ иногда является частью проблема иногда не здесь, мы показываем это как часть вызов, а затем они генерируют ответ и так что, по сути, ответ um является доказательством с нулевым разглашением знание x, но связанное с этим вызовом c Итак, вы доказываете, что знаете x um с уважением к этой проблеме, которая заключается в обязательстве открытого ключа и сообщения и поэтому эта подпись - это, по сути, просто обязательство и ответ относительно сообщения m, а затем верификатор повторно вызовите сами, и тогда они мы подготовлены, и это, по сути, то, что обязательство должно быть, поэтому подпись действительна, если это обязательство, которое они получают, равно опубликованному обязательству в подписи Итак, теперь давайте посмотрим на гм на морозе и на то, как он сравнивается с одиночной вечеринкой Schnoor, поэтому я не буду вдаваться в подробности о генерация ключей и заморозки эээ, в основном, самое важное здесь нужно знать, что генерация ключей может быть выполнена либо доверенным дилером, либо по протоколу распределенной генерации ключей так что доверенный дилер в настройках в основном так же, как если бы вы выпили чаепитие, поделившись секретами Шамира но здесь секрет s будет генерироваться случайным образом и тогда открытый ключ будет таким же, как если бы вы получили открытый ключ в однопартийном schmoor, но здесь в настройках um s будет Шамир секрет поделился среди участников э-э, dkg - это, по сути, протокол обмена секретами с умом, э-э-э-хамир, каждый участник выступает в роли дилера, и что важно в этой обстановке в том, что никакая вечеринка нас не учит, хотя каждая партия вносит свой вклад в нас это своего рода разница, когда они доверяют дилеру, которого они узнают s им доверяют ничего не делать по сравнению с настройкой dkg эм, ни одна из сторон не узнает этот долгоживущий секрет, и после генерации ключей каждый участник держит эм, это видит их секретную долю si, а затем они также у вас есть этот открытый ключ, ммм, это не опубликовано гм внешне, но он используется внутри для проверки во время подписания а затем обозначим совместный открытый ключ как y Итак, теперь смотрим на знаки заморозков, поэтому знак заморозков, как я уже сказал, можно выполнить за два раундов или может быть оптимизирован до одиночного раунда с помощью предварительная обработка и здесь мы показываем э-э фрост, используя этот понятие агрегатора подписи, но он также может быть выполнен без доверенные роли, если это желательно, так что по существу для предварительной обработки это первый раунд в этих двух раундах, говоря протокол так, но я просто представлю его в модели предварительной обработки, чтобы каждый участник начинает с генерации двух одноразовых номеров, а затем генерируют два обязательства для этих одноразовых номеров, а затем сохраняют эти значения локально а затем они публикуют свои обязательства, так что в чем разница? из настройки однопартийного программиста здесь они публикуют два обязательства вместо одного обязательства и если вы работаете в модели предварительной обработки, эти значения могут просто быть в кэше, но если вы находитесь в одном раунде их настройки будут опубликованы для всех остальных да ладно, вот что я только что сказал, ну ладно, а потом второй раунд мороз эм, по сути, вы начинаете с этого понятия агрегатора сигнатур, и все, что они делают, это выбирают э-э, который участники будут подписывать, это тоже может быть предопределено реализацией, поэтому все, что они делают, они собирают все обязательства для всех подписывающих лиц для этого подписания круглый а затем они отправляют сообщение, и это будет полезно для всех поэтому каждый центр будет начинать с генерации этого члена строки, и это просто хэш их идентификатора сообщение, а затем это значение b, которое является всем обязательства они порождают групповое обязательство, которое является продуктом каждого обязательства, когда одно обязательство возводится к этому термин строки ээ, генерирующий вызов, выполнен точно так же, как и в однопартийном шнорре, это просто хеш фиксирует открытый ключ в сообщении, и тогда ответ по существу просто беру те одноразовые номера, где один из одноразовых номеров умножается на этот связывающий член, а затем здесь эта лямбда i умножается на s я это делаю, это, по сути, часть секретного обмена Шмир, так что лямбда - это коэффициент лагранжа, а затем умножение на вызов так существенно, когда все эти ответы суммируются, это позволяет по сути, восстанавливая этот долгоживущий ключ подписи, так что это болтовня часть секретного обмена и гм, так что трюк с морозом в том, что гм, используя эти два одноразовых номера, умноженные на этот обязательный срок гарантирует, что шаг не может быть инвертирован кем-то, кто не знает немного ди или мало ei и затем они отправляют ответ агрегатору подписей а затем агрегатор подписей опубликует подпись которое является обязательством группы r, а затем сумма всех ответов, и что хорошо в этом, так это то, что формат подписи и проверка идентичны одностороннему шнорру, поэтому по сути, подпись может быть проверена так же, как простая подпись так как я говорил об э-э, мороз действительно обеспечивает защиту от этой атаки вызвал нападение водителя, и я собираюсь пройти через это эээ довольно быстро, но просто для того, чтобы дать вам некоторую интуицию гм без этой строки условия привязки, которая является хешем идентификатор участника сообщение и этот термин b по сути, противник может создать некоторую проблему c звезда, которая является результатом хэша некоторого обязательства r звезда y и m звезда, это подделка злоумышленника но мы знаем из алгоритма Вагнера и из атаки водителя что вы можете найти некоторую звезду c, которая равна сумме из гм вывод какого-то другого хэша э-э хеш-выходы, так что здесь вы можете найти некоторый набор обязательств rimi эта сумма к звезде c и, по сути, это исходя из алгоритма Вагнера и драйверов хм, все авторы отметили, что вы можете использовать это в в атаке подделки против схем с несколькими подписями так что, по сути, атмосфера должна была принять всех жертв ответы для каждого ri mi, а затем противник будет в состоянии предъявить действительную подделку в отношении этого наша звезда такая, что эта подпись будет равна сумма всех жертв так по сути, подлог был бы суммой правильные ответы жертвы, но это было бы с уважением к сообщению, что жертва на самом деле никогда не подписывала так что здесь фактор привязки в мороз просто делает каждый ответ сильно привязан к сообщению, а затем к обязательству гм, так что по сути, когда вы делаете это суммирование это фактически приведет к недействительной подписи так что это своего рода вихревой способ сказать, что этот фактор связывания важен для защиты от этого очень специфического такая атака опирается на алгоритм Вагнера и факт, что вы можете найти сумму выходов хеша функция, которая равна другому хеш-выходу хеш-функции Ладно, это вроде теории мороза, ну почему дизайн такой, так что теперь я как бы поговорим немного о прогрессе, достигнутом в zcash экосистема гм, так что мы закончили реализацию красного реактивного инея, эм, это было сделано довольно давно, и у нас это было проверены группой Taurus, и мы рады сказать, что что серьезных проблем не обнаружено, а по всем незначительным проблемам мы уже исправил их, так что у нас есть проверенный реализация, и мы чувствуем себя уверенно, и это безопасность и кое-что, над чем работала команда завершается стерилизация и десериализация сообщений о заморозках так что это полезно для передачи по сети или для таких вещей, как сохранение ключевой материал на диск, и я просто хотел сказать одну вещь: что вся команда zcash Foundation внесла свой вклад в хотя я говорю об этом, вся команда была вовлечены, поэтому я просто хочу узнать их и все усилия, которые они вложили в приготовление регент фроста, готового к использованию и где вы можете найти это, находится в crates.io, так что это в нашем красном Jumpjob ящик и он под морозным модулем и там вы увидите много отличной документации, и мы будем рады чтобы вы опробовали это и пришлите нам отчеты об ошибках, отправьте нам просьбы о функциях или просто скажите нам, что это было здорово использовать так что я думаю просто быстро о некоторых следующих шагах э-э с точки зрения того, как мороз вписывается в большую протокол zcash, так как вы знаете zcash протокол обеспечивает несвязанность транзакции перехода путем повторной рандомизации и так um или, по сути, повторной рандомизации um ключей, чтобы что подписи могут быть несвязанными, это одна вещь, над которой мы работали в сотрудничестве с Дара и Дейтеро Джек и Шон Это у меня несколько разных понятий? о том, что значит иметь несвязанные фрост-сигнатуры Итак, у нас есть один вариант, в котором, по сути, у нас есть надежный доказатель модель а потом у нас есть второй вариант что не требует этого надежного отдельного утверждающего и эм, мы в настоящее время или я в настоящее время работаю над доказательствами для обоих из них модели и это то, что у нас будет закончил довольно скоро так в целом просто думаю о еде на вынос, так что эм Одним из выводов о заморозке является то, что он определяет протокол установки пороговых значений. это безопасно, даже если подписание выполняется одновременно, так что какая-то хорошая вещь, которая улучшается в литературе и кое-чем, над чем команда очень усердно работала это сделать Red Job Red Frost готовым к использованию и несвязываемый красный драгоценный камень джим фрост скоро появится так что ищите дополнительную информацию об этом и некоторые из наших рецензий по мере их появления так что это все, что у меня есть, и я с нетерпением жду вопросы от всех хорошо, давай посмотрим, хорошо, так что у меня есть пара вопросы здесь уже, так что один вопрос - это любое подмножество стороны dkg гарантированно узнают только комбинацию из этих подмножеств делится так гм вот и все, я пытаюсь сначала задать этот вопрос так что по сути гарантия dkg заключается в том, что в конце dkg сторона узнает свою собственную долю, поэтому свои собственные секретный общий ресурс для подписи и открытые ключи для всех остальных участников и общий открытый ключ гм, это вроде как опубликовано извне, и гм также, dkg гарантирует, что ни один участник не может неправомерно влиять на распространение этого секрета, и вы знаю другие гнусные вещи, так что я думаю чтобы ответить на этот вопрос, да, dkg гарантирует что в конце вечеринка учится только собственному поделиться таким образом, что для подписания um требуется пороговое количество подписывающие эм да, я не знаю, хочет ли кто-то, кто задавал этот вопрос, уточнить, но хорошо круто рад что это отвечает на вопрос гм, были ли какие-либо обсуждения работоспособности между различными Frost реализации гм, так что это зависит так очевидно, что между кривыми не совсем имеет смысла ммм мы эээ, одна вещь, над которой мы работаем, это ITF тяга для варианта мороза гм где в основном мы надеемся определить стандарт формат сообщения и стандартный протокол, а затем где там просто кривые указаны ну вроде как поскольку они должны быть такими, я думаю, ответ на этот вопрос - да по модулю гм, это зависит от того, какая кривая эти реализации закончились так что ммм но да, очевидно, одна хорошая вещь о взаимодействии совместимость, например, если кто-то реализует Frost на hsm было бы неплохо иметь возможность работать в этом hsm в как горячий кошелек например Хорошо, еще один вопрос, а сообщения требуют быть отправленным через аутентифицированный и безопасный канал, это очень хороший вопрос, и многие люди спрашивали меня, что гм, так что важно то, что генерация ключей требует аутентифицированного и безопасного канала, потому что вы рассылают секретный ключ другим участникам, однако подписывают не требует аутентифицированного и безопасного канала и причина в том, что когда вы подписываете все, что вы публикуете, является общественной ценностью, поэтому вы публикуете общедоступные обязательств, а затем вы публикуете свой ответ, который также является общедоступным ценность, и вы никогда не раскрываете ваш секрет для всех, ваш искатель всегда остается на вашем устройстве эээ, что очень хорошо в пороговых сигнатурах и так далее. да, я думаю об этом вопросе генерация ключа: да, вам нужно, чтобы ваш сетевой канал был безопасным и аутентифицированным однако подписание может быть выполнено с помощью надежного канал я не вижу других вопросов, так что Я думаю, у нас есть еще один вопрос эээ, интернет-черновик совместим с красной проверкой DSA или он основан на еще один вариант schnoor um, насколько я помню красный dsa проверка просто требует, чтобы открытый ключ эээ это часть проблемы, эм, если я ошибаюсь, пожалуйста, поправьте меня так ммм я думаю, да, так что в основном в интернет-проекте просто будет вид уже в аромате ed dsa, где открытый ключ это вход в вызов эм поэтому я думаю, что да, но я еще раз посмотрю на красную проверку DSA алгоритм, чтобы убедиться, что круто, ладно, я думаю, что это было это было хорошо [Музыка] Хорошо, у меня есть минутка, спасибо всем за отличные вопросы и мы с нетерпением ждем ваших отзывов о морозе один вопрос, который у нас много, заключается в том, насколько удобен API гм, так что мы будем рады получить отзывы от людей, пока вы пробуете api если есть какие-то неровности или если документация может быть лучше так что дайте нам знать, как мы можем сделать это лучше так здорово, спасибо большое