Я поигрался с государственными каналами и начал понимать силу подписи информации/транзакций, но не получил совершенно четкого представления о том, что я могу с ними сделать. Я думаю , что могу сделать следующее, и был бы очень признателен за разъяснения, дополнительные мысли и то, где я просто ошибаюсь!
- Подписание платежа, но не отправка его в блокчейн, а отправка его кому-то еще для отправки в блокчейн.
Подписанная транзакция действует как чек (ГБ)/чек (США). Я подписываю платеж, но вместо того, чтобы отправлять данные в блокчейн, могу ли я отправить их человеку, которому я должен деньги, и они отправляют его в блокчейн, и, следовательно, они платят комиссию за транзакцию, немного похоже на то, как государственный канал отправляет подписанное сообщение другой стороне, вообще не проходя через блокчейн.
- Подписание платежа, но при этом отмена старого.
Представьте, что я делаю то же самое, но затем, прежде чем получатель подписанной транзакции зафиксирует ее в блокчейне, я должен ему больше денег. Итак, я подписываю новую транзакцию, которая представляет собой сумму первоначальной плюс новые деньги, которые я должен. Есть ли реализация, которую я могу использовать, чтобы означать, что старая транзакция не будет работать, если они отправят новую (или наоборот?) - я смутно думаю о одноразовых номерах/порядковых номерах или что-то в этом роде. Я не могу это представить, но я знаю, что с государственными каналами, скажем, для игры в шахматы, если я отправлю ход в блокчейн, я не смогу отправить предыдущие на основе порядкового номера. А будущие....? Какие-нибудь причудливые подходы здесь?
- Оплата комиссии за транзакцию от имени подписанной транзакции
Если я подпишу транзакцию, но отправлю ее кому-то другому, а не в блокчейн, чтобы они могли ее отправить, кто будет платить комиссию за транзакцию? Человек, который заплатил, отправил транзакцию, или человек, который подписал транзакцию?
- Подписание транзакции для развертывания контракта
Представьте, что у меня есть контракт, который не был развернут в блокчейне. Кто-то еще хочет отправить его, чтобы он был владельцем контракта. Могут ли они подписать транзакцию, которая означает, что я могу развернуть этот контракт от их имени? Если да, то каков здесь механизм? Преимущество в том, что они платят за развертывание контракта, а не я. Или это единственный способ, если у меня нет их закрытого ключа, развернуть его и передать им право собственности?
- Если у меня есть деньги в кошельке, и я хочу купить что-то на смарт-контракте от имени кого-то другого, у которого нет денег в кошельке, могут ли они подписать транзакцию и отправить ее мне, чтобы я мог отправить ее на контракт и оплатить расходы сам, но они будут зарегистрированы в блокчейне как плательщик. Я понимаю, что это может не отображаться в транзакции, поскольку они являются лицом, которое заплатило, но с точки зрения смарт-контракта, скажем, есть функция,
payable
я оплачиваю эту функцию, но функция записывает в контракте их адрес (возможно, их адрес указан в поле данных транзакции) - есть стандартный подход к этому?
Спасибо!
Подписание платежа, но не отправка его в блокчейн, а отправка его кому-то еще для отправки в блокчейн.
A может подписать транзакцию, в которой говорится, что некоторое количество токенов или эфира будет передано B, а затем B может отправить его в блокчейн. Однако в то же время А может перевести все свои средства на другой счет, так что транзакция, отправленная В, станет недействительной.
По этой причине в государственных каналах участники блокируют определенное количество эфира или токенов. Они хранятся в смарт-контракте, затем B может отправить подписанную транзакцию в смарт-контракт, будучи уверенным, что средства не могут быть перемещены A.
Подписание платежа, но при этом отмена старого.
Ключевым моментом здесь является одноразовый номер. Представьте, что A платит B x эфир, они соглашаются, что B отправит его позже. Представьте, что новый платеж В должен быть произведен А, а В не предъявил предыдущий счет. A может выполнить новый платеж с тем же одноразовым номером и обновленной суммой. Только одна из этих транзакций будет действительной, и B наверняка отправит ту, на которую будет внесена полная сумма.
- Оплата комиссии за транзакцию от имени подписанной транзакции
- Подписание транзакции для развертывания контракта 5.
Аккаунт подписывается тем, кто его подписывает.
Можно, конечно, построить контракт, который позволяет одному человеку заплатить за что-то и отправить это кому-то другому, но не через тот механизм, который вы описываете.
Надеюсь, это поможет.