Во-первых - Как я могу получить открытый ключ бумажника Чужая? Или еще лучше, может ли открытый ключ быть получен из адреса?
Чтобы построить адрес, двойной хэш (первый SHA-256 затем RIPEMD-160) открытого ключа добавляется к версии. Тогда первый четыре байта контрольной суммы (SHA-256 х 2) это значение добавляется. Все дело в том, base58 закодирован.
Когда вы посылаете кому-то сделка, вы положили хэш их открытого ключа в scriptsig выхода. Когда они утверждают, что выход, они должны иметь закрытый ключ, чьи открытый ключ хэши к этому значению.
Во-вторых - Как я могу генерировать адрес на основе этого открытого ключа? Какие математические расчеты, хэши, шифрование делается за кулисами?
base58encode (версия + RIPEMD-160 (SHA-256 (public_key)) + контрольная сумма (версия + RIPEMD-160 (SHA-256 (public_key))))
Там, где контрольная сумма первые четыре байта SHA-256 (SHA-256 (данные)).
В-третьих - Будет ли еще адрес "Работа" даже если он не был сгенерирован клиентом владельца Кошелька? Другими словами, если бы я имел открытый ключ чей-то кошелек, и генерируется адрес для них без их ведома, я мог послать их Bitcoins к этому вновь сгенерированного адрес, и они будут получать их?
увидеть эту вики статью:
https://en.bitcoin.it/wiki/Protocol_specification#AddressesДа, до тех пор, как они владеют секретный ключ, из которого формируется открытый ключ, и это правильный адрес Bitcoin.