Можно ли сделать вывод доступным только для определенного адреса?

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

Если это так, я полагаю, что также возможно разработать сценарий вывода таким образом, чтобы его можно было потратить на определенный адрес (и только на этот конкретный адрес) при наличии подписи определенной стороны, но на произвольные адреса, если что присутствует подпись стороны, а также подписи другой стороны. Если это по какой-либо причине невозможно, пожалуйста, сообщите мне. Это то, что меня в основном интересует.

Я не уверен, что получаю именно то, что вы просите, но в чем проблема со стандартным скриптом P2PKH? Там вы создаете скрипт, который можно потратить только по этому адресу.
@ sr-gi Я спрашиваю, можете ли вы разработать сценарий UTXO таким образом, чтобы его можно было потратить только таким образом, чтобы полученный UTXO принадлежал определенному адресу.
О, я понимаю, вы имеете в виду, что UTXO может потратить кто угодно, в результате чего он будет принадлежать определенному адресу. Я прав?
Возможно, какой-то контекст поможет. Что ты пытаешься сделать? Вы пытаетесь показать кому-то задатки или что-то в этом роде?

Ответы (4)

Нет, невозможно сделать вывод, который можно потратить только на определенный адрес. Потраченные выходы не влияют на выходы расходующей транзакции. Они полностью обособлены и независимы друг от друга за исключением суммы, которая была потрачена.

Выходной сценарий определяет только то, каким должен быть входной сценарий, и входной сценарий не влияет на выходные сценарии этой транзакции.

Насколько я знаю, ответ - нет.

То, что вы предлагаете, будет означать, что an UTXOможет повлиять на условия, в которых будут построены выходные данные транзакции, но это может повлиять только на то, как построены входные данные.

UTXOsмогут определить, как они должны быть потрачены, но не могут определить, как будут создаваться результирующие UTXOрасходы.

Такие вещи называются «заветной сделкой». В настоящее время это невозможно в биткойнах, однако есть предложения добавить это в биткойн, и одно из них, вероятно, появится где-то в ближайшие несколько лет. Один из них — OP_CHECKTEMPLATEVERIFY , а другой — OP_CONSTRAINDESTINATION .

Не без доверия, но если источник может доверить вам уничтожение информации или придумать схему, по которой вы не сможете просмотреть или сохранить закрытый ключ, вы можете:

  1. Отправьте на адрес, для которого у вас есть закрытый ключ
  2. Подпишите транзакцию, проводя вывод по целевому адресу
  3. Уничтожить закрытый ключ
  4. Дайте получателю подписанную транзакцию.

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