Придется ли мне вечно хранить старые приватные ключи?

Допустим, кто-то (человек А) начинает использовать Биткойн и через некоторое время охотно публикует некоторые из своих случайно сгенерированных (например, клиентом Satoshi), получающих биткойн-адреса на форме, отправляет некоторые другие адреса некоторым людям и т. д.

Старые ключи теперь связаны с человеком А, и через пару лет некоторые люди могут захотеть отправить человеку А некоторые средства; они могут найти один из этих старых адресов (в старом сообщении на форуме или в старой частной адресной книге биткойнов) и использовать его.

Но к настоящему времени А перешел к использованию другого кошелька вместо исходного клиента Satoshi и перевел туда все свои средства.

Разве это не означает, что А всегда должен будет отслеживать все исходные (недетерминистически сгенерированные) закрытые ключи всех адресов, которые он мог отправить или сделать доступными для других людей, и продолжать импортировать их в новые кошельки. всякий раз, когда он переходит на новую систему кошелька, и продолжает создавать их резервные копии (безопасно) и т. д.? Это кажется очень утомительным и подверженным ошибкам.

Я знаю, что рекомендуется использовать новый адрес для каждой новой транзакции, но это никоим образом не соблюдается, и, что более важно, это находится вне контроля человека А — это все другие люди, которые могут захотеть отправить им деньги.

Эта проблема будет менее важной в будущем (например, с детерминированной генерацией ключей, которая требует резервного копирования только начального числа), но кто-то, кто широко и свободно использовал клиент Satoshi в прошлом, никогда не сможет сделать чистый разрез.

Так это реальная проблема или я что-то не так понимаю? Может быть, есть простой (и безопасный) обходной путь, или, может быть, это не так уж и громоздко?

Ответы (3)

Я думаю, что суть проблемы в том, что мы называем хэши открытых ключей в кодировке base58 «адресами», независимо от того, готовы ли люди принимать платежи по ним.

На мой взгляд, это всего лишь идентификаторы открытого ключа — нечто внутреннее в технологии Биткойн. Люди никогда не должны их видеть, если только они не занимаются отладкой.

Первоначально Сатоши не собирался использовать текущие адреса base58 в качестве «назначения платежа» — он думал, что оплата по IP (где открытый ключ согласовывается на месте) будет обычным способом выполнения транзакций. Плата за pubkeyhash через P2P была добавлена ​​позже только для случаев, когда получатель был в автономном режиме. У Pay-to-IP было несколько проблем, и он устарел, но у него было много преимуществ по сравнению с тем, что мы имеем сейчас. Я думаю, что решение возвращается к чему-то подобному, например, с оплатой по URI, где ключи снова согласовываются во время транзакции. Это означает, что вы всегда уверены, что используемый ключ по-прежнему активен, закрытые ключи не нужно хранить вечно, ни один ключ никогда не используется повторно (лучше для модели конфиденциальности Биткойн), и вы мгновенно получаете поддержку для прикрепления сообщений или информации о возврате к транзакциям. .

Конечно, люди, вероятно, все равно будут хранить закрытые ключи, например, в архивном кошельке, как упоминалось в других ответах на эти вопросы. Но, на мой взгляд, это не должно быть катастрофой, когда люди этого не делают.

Да, текущий биткойн API — это катастрофа. Ключи (если они вообще будут использоваться в качестве пунктов назначения платежей) всегда должны иметь (желательно короткий) срок действия.
Хорошо, так что я могу ожидать, что это улучшится в будущем. Реальное решение состоит в том, чтобы люди видели и относились к адресам как к одноразовым данным, в отличие от адресов электронной почты или телефонных номеров. Тот факт, что большинство (все?) биткойн-кошельков имеют адресные книги, здесь не помогает…
«случаи, когда приемник был в автономном режиме», не являются «хорошей» функцией. Возможность выстрелить и забыть в заданном месте назначения, не беспокоясь о том, находится ли получатель в сети, является абсолютной необходимостью, я не могу представить, чтобы Биткойн работал каким-либо другим способом.
@MeniRosenfeld Но у нас сейчас даже этого нет. Нет никакой гарантии, что сеть запомнит вашу отправленную транзакцию, пока она не будет включена. Тем не менее, я, конечно же, не выступаю за удаление отправки-к-pubkeyhash-через-P2P (например, для анонимных пожертвований я не вижу лучшего способа), просто утверждаю, что во многих случаях согласование платежа имеет преимущества.

Mt.Gox первым предложил это, но услуга очистки кошелька — это то, что решит эту проблему.

Если вы хотите (или должны) отказаться от кошелька, вы можете либо передать ключи, используя кучу технических шагов, либо вы можете загрузить wallet.dat в сервис, который будет следить за ним, и, если какие-либо средства будут получены, очистить эти средства на счет или биткойн-адрес, которым вы управляете.

Пока Mt.Gox не создаст пользовательский интерфейс для этого, эта функция загрузки wallet.dat возможна только с использованием API. Вы уже можете импортировать закрытые ключи по отдельности, используя API или браузер/пользовательский интерфейс.

Я не думаю, что предоставление моих закрытых ключей какой-либо внешней службе (например, MtGox) решит проблему, которую я описал, поскольку я не могу знать, как долго эта служба будет существовать в будущем. Кроме того, он добавляет требование, чтобы я доверял сервису (имея ключи, он может технически, если не юридически, тратить мои средства). Другими словами, импортировать ключи в онлайн-кошелек не проще и не дольше, чем в мой настольный кошелек, и требует дополнительного доверия.

Теоретически вы должны хранить все свои ключи, которые, по вашему мнению, могут быть использованы для отправки вам денег. Это может быть импорт их в новый кошелек или просто сохранение старого кошелька и периодическая его проверка. Если вы используете только несколько адресов, вы можете просто импортировать их в свой новый кошелек.

Поскольку эта проблема еще не настолько серьезна, есть несколько других решений, которые вы можете использовать. Вполне возможно, что в будущем у клиентов появится опция «архивного кошелька», где вы будете сбрасывать все свои старые кошельки, и он будет отслеживать, получаете ли вы там какие-либо новые монеты, не загромождая свой основной кошелек или какой-то онлайн-кошелек. сервис, работающий подобно электронному кошельку.

Импортировать их в новый клиент намного лучше, чем оставлять старый клиент, так как вы легко можете забыть кодовую фразу своего кошелька, или программа может перестать работать и т. д.