Адрес возврата транзакции

В заметках о том, что нового в Bitcoin Core 0.9.0 , есть ссылка на адрес возврата . Я пытался найти это на форумах и вики, но ничего не нашел.

  • Как я могу установить refund addressпри отправке денег с QT client?

  • Как я могу получить refund addressдля транзакции из bitcoin-cli?

Ответы (1)

Это мое понимание, основанное на прочтении BIP 70 и источниках Bitcoin Core, а также на нескольких тестах.

Платежный запрос BIP 70 содержит, среди прочего, адрес назначения, сумму и URL-адрес платежа HTTPS. Когда вы открываете платежный запрос с помощью клиента Bitcoin Core (в виде файла или через bitcoinURI со встроенной ссылкой на платежный запрос), вам отображается диалоговое окно «Отправить» с полями, предварительно заполненными в соответствии с запросом. Когда вы нажимаете «Отправить», транзакция подписывается, но вместо того, чтобы немедленно транслироваться в сети p2p, на URL-адрес платежа отправляется сообщение, содержащее подписанные транзакции, а также адрес возврата. Затем запрашивающая сторона несет ответственность за широковещательную передачу транзакции после проверки ее соответствия запросу.

Так, в частности, адрес возврата отправляется непосредственно получателю через HTTPS, который несет ответственность за его хранение на случай, если он понадобится позже. Он не является частью транзакции, не отправляется в p2p-сети Биткойн и никогда не появляется в цепочке блоков (если только он не используется для отправки возмещения).

Bitcoin Core автоматически сгенерирует адрес возврата; графический интерфейс не предоставляет возможность указать его. На самом деле детали таковы: он проверяет учетную запись с именем "Refund from [requester]". Если эта учетная запись существует и содержит адрес, она использует этот адрес в качестве адреса возврата; в противном случае он создает учетную запись и новый адрес внутри нее (из пула ключей ). Таким образом, вы можете найти адрес возврата с помощью getaddressesbyaccountконсольной команды, но, похоже, он не отображается в графическом интерфейсе.

Можно попробовать так: есть онлайн-генератор платежных запросов для Testnetего исходники ). Если вы сгенерируете запрос, откроете его с помощью Bitcoin Core и отправите платеж, вы обнаружите, что он listaccountsпоказывает новую учетную запись с именем "Refund from www.bitcoincore.org"и getaddressesbyaccount "Refund from www.bitcoincore.org"адрес возврата, который был сгенерирован и отправлен.

Это впечатляет. +1