Я буду писать в C #, но я достаточно с другими языками знакомы переводить. Еще лучше было бы псевдо-код, как было бы обеспечить более четкое понимание того, что необходимо и почему чеки. Я знаю, это может быть достигнуто с помощью RPC вызова bitcoind, но я пустошь хотел бы избежать этой зависимости.
Мое понимание Bitcoin адресов является то, что адрес создается следующим образом
Код:
базовая версия = + RIPEMD-160 (SHA256 (открытый ключ)))
контрольная сумма = lower4bytes (SHA-256 (SHA-256 (основание))
fulladdress = Base58 (базовая + контрольная сумма)
контрольная сумма = lower4bytes (SHA-256 (SHA-256 (основание))
fulladdress = Base58 (базовая + контрольная сумма)
учитывая реверсирования хэш невозможно, мы можем рассмотреть базу дискретными и заново контрольную сумму.
так что мой удар по валидации кода псевдо будет
Код:
BOOL IsValid (строка адреса)
Все, что мне не хватает?