Насколько я вижу, в настоящее время существует два метода получения адреса отправителя в биткойн-транзакции:
Является ли один из них предпочтительнее другого?
«Исходный адрес» не является допустимой концепцией в биткойнах.
Некоторые сайты (например, Satoshi Dice) пытаются сделать обоснованное предположение, но с таким же успехом они могут бросать дротики с завязанными глазами.
Единственный безопасный способ вернуть биткойны — это явно получить адрес возврата от того, от кого вы принимаете платеж.
Все, что вы делаете, рано или поздно сломается, когда клиент заплатит вам через тип кошелька или транзакцию, которую вы не ожидали.
«Взлом» здесь означает отправку средств не тому лицу или, что еще хуже, их безвозвратную потерю, отправив на адрес, для которого не существует закрытого ключа.
scriptSig содержит открытый ключ, который принадлежит исполнителю выходной транзакции и доказывает, что создателю разрешено выкупать выходное значение.
Итак, вы хотите проверить указанный вывод, если ищете исходный адрес.
Грег Хьюгилл
Марк Голденстайн