Текущие методы отправки зашифрованных сообщений из контрактов

Я пытаюсь понять, существует ли в настоящее время способ отправки сообщения из контракта в другой контракт или на частный адрес ? Как будет выглядеть код Solidity для этого? Возможно, для этого можно использовать события?

Учитывая, что в блокчейне нет конфиденциальности, сообщение, очевидно, будет доступно для чтения всем. Поэтому единственный способ, который я могу придумать, - это зашифровать сообщение с помощью открытого ключа получателя.

Некоторые связанные вопросы приведены ниже, но у них нет ответов на мой вопрос (и похоже, что Whisper еще не реализован):

Ответы (1)

Вы не можете заставить контракт Ethereum начинаться с открытого текста и осмысленно шифровать сообщение, потому что выполнение всего контракта должно быть проверено всеми узлами в сети, поэтому, как вы говорите, все также должны иметь возможность видеть ваш открытый текст.

Если вы хотите отправить сообщение от одного пользователя контракта другому пользователю контракта, очевидно, что контракт должен управлять идентификатором пользователя, который хочет получить сообщение, например отпечатком PGP, и отправителю использовать это для поиска своего открытого ключа PGP на обычном сервере ключей и использовать его для шифрования сообщения для них.

Вы, вероятно, не хотите, чтобы зашифрованное сообщение действительно проходило через блокчейн, если только оно не очень мало, поскольку оно будет стоить газа, но вы можете использовать блокчейн, чтобы сообщить получателю, где найти зашифрованное сообщение — например, сохранить зашифрованное сообщение. сообщение в IPFS, и пусть отправитель обновит контракт, чтобы получатель знал хэш документа, который они поместили в IPFS.