Просмотр и трата огромного количества офлайн-приватных ключей

Мы планируем принимать биткойны на нашем веб-сайте интернет-магазина. То, что мы хотим сделать, это:

1) Держите все закрытые ключи всегда в автономном режиме (холодное хранение).

2) Создайте не менее 100 000 пар ключей, из которых только одна будет храниться на нашем веб-сервере.

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

Теперь мои вопросы:

I) Есть ли способ отслеживать СУММУ всех биткойнов, отправленных на ВСЕ наши адреса?

Что-то вроде кошелька, который поддерживает импорт огромного количества адресов «только для просмотра», не требуя импорта закрытых ключей? Если кошелек представляет собой приложение, оно должно поддерживать прокси-соединения SOCKS. (Armory разрешает ключи только для просмотра, но я не знаю, поддерживает ли он массовый импорт и прокси-серверы SOCKS? Кроме того, по словам его разработчика, на данный момент он страдает серьезными ошибками перегрузки ОЗУ ...).

II) Есть ли способ продать СУММУ всех биткойнов, когда-либо отправленных на ВСЕ наши адреса СРАЗУ?

III) Сможет ли злоумышленник узнать, сколько биткойнов мы заработали в общей сложности?

Спасибо!

Is there a way to sell the SUM of all bitcoins ever sent to ALL of our addresses AT ONCE?Это кажется несвязанным вопросом. Я думаю, вы могли бы спросить об этом отдельно.

Ответы (2)

Прямые ответы на ваши вопросы:

I) Технически это не так уж сложно. Циклический просмотр каждой новой транзакции в каждом полученном новом блоке не требует слишком много ресурсов, а проверка каждой транзакции по 100 000 открытых ключей вообще не проблема. Однако я не знаю инструмента, который бы делал именно это. (Например, blockparser может вывести все балансы всех адресов во всей цепочке блоков менее чем за минуту.)

II) Нет. Вы не можете перевести все полученные биткойны за одну транзакцию, так как максимальный размер транзакции составляет 1 мегабайт. Что бы можно было тратить деньги, скажем, на 4000 разных адресов сразу, но не более того. Конечно, вы можете передать все приватные ключи кому-то еще «все сразу», что позволит им потратить монеты, но такая сторона вряд ли сочтет продажу успешной, пока не переведет все монеты на новые адреса. на всякий случай, если вы также сохранили закрытые ключи.

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

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

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

Имея это в виду, насколько я вижу, у вас есть два варианта:

1) Используйте настольное приложение. Оружейная, QT и т. д. — хотя я не уверен, насколько хорошо они справятся с более чем 1 миллионом адресов или ключей, и я на 75% уверен, что у них нет массового импорта.

2) Используйте другой сервер — размещенный или даже в вашей домашней сети (любой Raspberry Pi?), который знает все ваши открытые ключи, но полностью отделен от вашего внешнего сервера. Затем он может использовать биткойн API (Blockchain, BTCBalance.net, blockexplorer) и периодически проходить через все 1M ключей, проверяя их баланс. Изнутри вашей сети (это идеально, так как очень низкая вероятность внешнего доступа без присутствия на месте) вы можете вызвать сервер, и он сообщит вам, сколько биткойнов у вас есть на момент последнего подсчета. В настоящее время у меня есть настройка Raspberry Pi для выполнения аналогичных повторяющихся операций (хотя и с резервными копиями, а не с биткойнами), и она делает фантастическую работу.

Вы также, вероятно, сможете маршрутизировать вариант 2) через прокси.

Спасибо, но ни один из ответов не помог мне. 1) Использование внешнего сервера для биткойн API подвергает нас атаке, поскольку эти сервисы могут агрегировать наши запросы и видеть, сколько мы зарабатываем. 2) Я также спросил, есть ли способ ПРОДАТЬ (или хотя бы перевести на другой биткойн-адрес) сумму всех биткойнов со всех закрытых ключей. Вы говорите: «Используйте Оружейную, но не уверены, что она делает то, что вы хотите»… Спасибо, но на мои вопросы нет ответа.
Вот почему я предложил использовать что-то внутри вашей собственной сети, например, Raspberry Pi. Вы можете использовать разные API, если вас беспокоит, что они объединят ваши деньги.