Вопрос 1: Может ли один владелец счета отправить эфир другому без использования смарт-контракта?
Вопрос 2: Есть ли необходимость, чтобы две учетные записи отправляли сообщения/транзакции напрямую друг другу?
Но контракт может вызывать другие функции контракта и изменять состояние второго контракта. Итак, вопрос:
Вопрос 3: Почему контракту не нужно подписывать сообщение, которое он отправляет?
Внешняя учетная запись отправляет ether
либо другой внешней учетной записи, либо смарт-контракту идентичным образом — инициируя подписание транзакции. Смарт-контракт получит только в том ether
случае, если вызываемая функция помечена payable
.
В случае отправки с внешней учетной записи на другую внешнюю учетную запись ether
просто переводятся (если у отправителя есть деньги), без проблем.
Смарт-контракт может отправлять ether
, но для начала эта отправка должна быть инициирована из внешней учетной записи (другими словами, смарт-контракты не могут инициировать транзакции). В прошлом люди называли этот тип отправки internal transaction
, но в наши дни это называется message call
, message
, call
и т. д.
Однако будьте осторожны со словом «сообщение». Я могу инициировать внешнюю транзакцию для другой внешней учетной записи и вставить message
текст в input
поле. Тогда мой друг сможет прочитать это «сообщение».
Другой тип, о котором message
вы услышите, — это message
смарт-контракт.
Что касается «почему контракт не нужно подписывать...», подумайте об этом так: смарт-контракт — это autonomous
. Там нет никого, кто бы что-то подписывал. Кроме того, смарт-контракт не может инициировать транзакции. Кроме того, если бы смарт-контракт мог инициировать транзакции и подписывать их, его закрытый ключ обязательно должен был бы храниться в блокчейне. Каждый мог это увидеть, любой мог это украсть, и было бы легко выдать себя за смарт-контракт, так что это не сработало бы в любом случае.
Прашант Прабхакар Сингх
sendTransaction
2. Я не совсем понимаю, но 2 аккаунта могут отправлять транзакции без контракта. 3. Поскольку контракты регулируются EoA. Таким образом, EOA регулирует работу контракта,