Как добавить два числа, которые вам нельзя увидеть
мне задали это в выходные и я дал плохой ответ, так что пошёл и прочитал всё как следует.
Hedger использует гомоморфное шифрование на базе ElGamal для ECC. в «простом» виде это даёт следующее: вы можете выполнять вычисления над ЗАШИФРОВАННЫМИ значениями, не расшифровывая их заранее.
так что контракт, хранящий два зашифрованных баланса, может корректно получить зашифрованную сумму, ни разу не узнавая ни одно из чисел и ни их общий итог.
это звучит как фокус, и это не фокус. это свойство того, как устроено шифрование: у ElGamal такое свойство есть для умножения, которое встраивается в сложение в показателе степени. об этом известно ещё с восьмидесятых.
почему объединять это с доказательствами с нулевым разглашением, а не использовать по отдельности.
потому что гомоморфное шифрование говорит вам, что математику МОЖНО выполнить над скрытыми значениями. но оно не говорит, что человек, который это делает, сделал это честно, и не гарантирует, что входные данные вообще были валидными. именно для этого нужны доказательства.
то есть один примитив отвечает за конфиденциальные вычисления, а другой — за проверяемую корректность, и ни один из них не заменяет другой. большинство систем приватности полагаются одними лишь доказательствами и платят за это сложностью схем (цепей), потому что вы тогда доказываете утверждения об арифметике, которую также нужно скрывать.
честное уточнение: гомоморфные схемы не бесплатны. это частично гомоморфная схема, а не полностью гомоморфное шифрование, о котором пишут захлёбывающиеся восторженные статьи; разница в том, что частичная схема поддерживает только некоторые операции, а не произвольные вычисления. именно это ограничение и делает её ДОСТАТОЧНО БЫСТРОЙ, чтобы запускать в браузере меньше чем за две секунды.
это была бы и моя сделка: универсальность и «непригодность» никому не помогает.
#dusk @Dusk $DUSK
мне задали это в выходные и я дал плохой ответ, так что пошёл и прочитал всё как следует.
Hedger использует гомоморфное шифрование на базе ElGamal для ECC. в «простом» виде это даёт следующее: вы можете выполнять вычисления над ЗАШИФРОВАННЫМИ значениями, не расшифровывая их заранее.
так что контракт, хранящий два зашифрованных баланса, может корректно получить зашифрованную сумму, ни разу не узнавая ни одно из чисел и ни их общий итог.
это звучит как фокус, и это не фокус. это свойство того, как устроено шифрование: у ElGamal такое свойство есть для умножения, которое встраивается в сложение в показателе степени. об этом известно ещё с восьмидесятых.
почему объединять это с доказательствами с нулевым разглашением, а не использовать по отдельности.
потому что гомоморфное шифрование говорит вам, что математику МОЖНО выполнить над скрытыми значениями. но оно не говорит, что человек, который это делает, сделал это честно, и не гарантирует, что входные данные вообще были валидными. именно для этого нужны доказательства.
то есть один примитив отвечает за конфиденциальные вычисления, а другой — за проверяемую корректность, и ни один из них не заменяет другой. большинство систем приватности полагаются одними лишь доказательствами и платят за это сложностью схем (цепей), потому что вы тогда доказываете утверждения об арифметике, которую также нужно скрывать.
честное уточнение: гомоморфные схемы не бесплатны. это частично гомоморфная схема, а не полностью гомоморфное шифрование, о котором пишут захлёбывающиеся восторженные статьи; разница в том, что частичная схема поддерживает только некоторые операции, а не произвольные вычисления. именно это ограничение и делает её ДОСТАТОЧНО БЫСТРОЙ, чтобы запускать в браузере меньше чем за две секунды.
это была бы и моя сделка: универсальность и «непригодность» никому не помогает.
#dusk @Dusk $DUSK