Эй, мне было интересно, какой лучший метод будет для отправки зашифрованных данных в контракт, который впоследствии может быть расшифрован либо первоначальным пользователем, либо самим контрактом, но не кем-либо еще.
Мое лучшее предположение сейчас — создать пару ключей с помощью CryptoJS/Forge и зашифровать ее с помощью открытого ключа, а затем надежно удерживать закрытый ключ, пока сообщение не будет готово к расшифровке. Я предполагаю, что закрытый ключ будет раскрыт, как только вы расшифруете, поэтому мне нужно будет генерировать новую пару ключей для каждого события, требующего этого шифрования?
Я никогда не использовал CryptoJS или Forge или любое симметричное шифрование браузера, мне было интересно, как я могу безопасно осуществить это?
Ваша лучшая догадка в значительной степени точна. Если вы ожидаете, что контракт выполнит расшифровку, ваш секретный и закрытый ключ должны быть раскрыты для этого. Если это приемлемо, вы можете создать новые пары ключей для каждого секрета, который вы храните.
Если вы просто хотите сохранить секрет и расшифровать его вне контракта, вы, вероятно, можете использовать одни и те же ключи шифрования несколько раз.
Как вы предполагаете, ваш контракт не может быть расшифрован без раскрытия ключа (и недавно расшифрованного открытого текста) миру. Кроме того, остальной мир сможет увидеть ваш ключ раньше, чем ваш контракт, потому что люди смогут получить его из транзакции до того, как он будет добыт.
Возможно, мы сможем быть более полезными, если вы расскажете нам немного больше о том, чего вы пытаетесь достичь.
эфирный
Эдмунд Эдгар
эфирный
Эдмунд Эдгар