Смарт-контракты и симметричное шифрование

В настоящее время я изучаю смарт-контракты, и у меня есть вопрос.

Я пытаюсь понять, как выполняются смарт-контракты. Я уже читал разные источники и обдумывал некоторые идеи вместе, но не уверен, что это правильно.

Чтобы развернуть смарт-контракт, мне нужно отправить транзакцию. Майнер берет его, создает адрес смарт-контракта, и как только блок становится действительным, у меня появляется возможность работать со смарт-контрактом.

Если я хочу выполнить смарт-контракт, я создаю новую транзакцию, используя ABI смарт-контракта для вызова функций. Поскольку это транзакция, майнер берет ее, выполняет код смарт-контракта. Но что происходит сейчас? Хранится ли выполнение в блокчейне вместе с результатом выполнения?

Мне было интересно, как это на самом деле работает. Предположим, я создаю смарт-контракт шифрования с симметричным ключом. Я отправляю сообщение и ключ, а смарт-контракт отправляет шифр обратно. Будет ли обычный текст виден всем или только зашифрованный текст?

заранее спасибо

Ответы (1)

Чтобы развернуть смарт-контракт, мне нужно отправить транзакцию. Майнер берет его, создает адрес смарт-контракта, и как только блок становится действительным, у меня появляется возможность работать со смарт-контрактом.

Именно это и происходит при создании транзакции. Вы отправляете транзакцию с кодом контракта и параметрами инициализации. Майнеры принимают транзакцию, создают адрес контракта, помещают код в этот адрес и создают экземпляр состояния контракта, запустив инициализирующую часть контракта.

Если я хочу выполнить смарт-контракт, я создаю новую транзакцию, используя ABI смарт-контракта для вызова функций. Поскольку это транзакция, майнер принимает ее,

Да вы правы. Когда вы создаете экземпляр смарт-контракта, вам необходимо знать ABI и адрес контракта. Когда у вас есть экземпляр контракта, вы можете отправить на него tx. Этот tx принимается майнером и выполняет tx.

выполняет код смарт-контракта. Но что происходит сейчас? Хранится ли выполнение в блокчейне вместе с результатом выполнения?

После выполнения кода смарт-контракта майнер обновляет состояние вашего контракта изменениями, которые вы внесли в контракт этим вызовом. Результат не сохраняется, но при необходимости вы можете использовать события для его извлечения.

Будет ли обычный текст виден всем или только зашифрованный текст?

Да, это будет видно всем, потому что ваши входные параметры являются частью tx, который включен в блок, поэтому он общедоступен, поэтому сообщение и ключ, которые вы отправляете, будут видны всем.

Итак, не рекомендуется иметь схему шифрования в смарт-контракте, так как все могут ее увидеть. Спасибо за ответ :)