Меня зовут Олег Андреев, я работаю на IOS / OSX бумажник и CoreBitcoin - чистый и хорошо документированный Bitcoin инструментарий в Objective-C.
Как вы все знаете, бумажники, как правило, шифруются с помощью пароля (с использованием некоторых ключевых растяжку алгоритма как PBKDF2 или Scrypt). Поскольку пароль слабее, чем чисто случайный 128+ битного ключа, то лучше, если пользователь держит их кошелек в каком-то частном месте, относительно трудно получить доступ. Такое резервное копирование лучше не быть разбросаны на популярных хостинг услуг, таких как Gmail или Dropbox. HD бумажники (BIP32) повышать эффективность работы пользователей, требуя, чтобы обеспечить только главный ключ и только один раз. Остальные ключи могут быть получены позже для получения средств.
Проблема заключается в том, бумажники могут иметь дополнительные метаданные, которые не могут быть получены из главного ключа. Например. пользователь отмечает, счет-фактура информация, или даже более важно, multisig pubkeys и скрипты P2SH. Для того, чтобы погасить платеж P2SH один должен знать оригинальный сценарий, который должен быть сохранен где-то и надежно скопированы до любой сделки производится с участием этого сценария. Задавая пользователю сделать резервную копию его защищенный паролем бумажник перед каждой такой сделки будет громоздким.
Я предлагаю дополнительную схему резервного копирования, где кошелек пользователя шифруются с использованием действительно непредсказуемый ключа AES, производный от главного ключа кошельков. Если сам главный ключ не является производным от слабой парольной фразы, но имеет 128+ биты по энтропии, ключ AES будет одинаково сильным. Поэтому бумажник может быть автоматически шифруются и загружены на один или несколько служб резервного копирования без каких-либо действий со стороны пользователя. Когда пользователю необходимо восстановить резервную копию, он должен будет восстановить первоначальный мастер-ключ первого, а затем сделать его бумажник подключения к серверам резервного копирования и извлечь самую последнюю резервную копию всего содержимого бумажника. Резервные сервера не могут расшифровать бумажники с брутфорсом, им нужно только, чтобы достоверный результатом поиска. бумажник пользователя может загрузить резервную копию через регулярные промежутки времени, чтобы обнаружить, если один из серверов потеряли свои данные или в автономный режим. В таком случае, другой сервер может быть использован или пользователь может быть предупрежден, чтобы сделать резервные копии вручную как можно скорее.
Предложение:
UPD2: https://github.com/oleganza/bitcoin-papers/blob/master/AutomaticEncryptedWalletBackups.md
PS. Я не хотел, чтобы создать запрос тянуть, как текст может меняться, и я не хочу иметь проблемы с перебазирования (и случайно потерять связь с запросом тянуть). Проблемы GitHub, кажется, быть отключены в Bitcoin / БИП репо. Так давайте обсудим это здесь сейчас.