Например, у меня есть 3 счета с остатками:
1 аккаунт - 5 эфиров
2 аккаунт - 15 эфиров
3 аккаунт - 7 эфиров
Я хочу отправить 20 эфиров, поэтому будет использован 1 и 2 аккаунт. Я понимаю, как совершать только простые транзакции, но для этого нужно будет платить комиссию за каждую транзакцию. И для каждой транзакции перед отправкой мне нужно разблокировать аккаунт. Контракт не может разблокировать учетную запись, поэтому я не понимаю, как будет выводиться эфир с этих учетных записей и как у него может быть разрешение на это. Пожалуйста помоги.
Коротко: нельзя отправлять с нескольких аккаунтов за одну транзакцию.
Длинный: каждая учетная запись контролируется связанным с ней закрытым ключом. Это означает, что весь эфир, который покидает эту учетную запись, должен быть подписан этим ключом, а затем подписанная транзакция транслируется по всей сети. Поэтому у вас не может быть только одна транзакция, которая отправляет эфир с трех учетных записей, контролируемых закрытым ключом. Что вы можете сделать, так это иметь смарт-контракт с несколькими подписями. В этом контракте будет храниться весь эфир, и вы сможете, например, контролировать любой из трех аккаунтов. Это позволяет вам по-прежнему отправлять средства, если вы потеряли ключ к одной учетной записи. Обратите внимание, что в то же время это означает, что все средства находятся под угрозой, если злоумышленник получит доступ к любому из этих трех закрытых ключей. Поэтому вам может быть лучше настроить мультиподпись 2 из 3 и вам понадобятся 2 из всех 3 закрытых ключей для подписи транзакции. Читать здесьподробнее о мультиподписных смарт-контрактах для Ethereum.
DeV1doR
СКБюргель