Каков безопасный метод управления большим количеством принимающих биткойнов?

Скажем, я хочу запустить большой проект, где пользователи могут постоянно запрашивать новые адреса для посылки биткойнов в свою онлайн-учетную запись. Я предполагаю, что мне придется предварительно генерировать тысячи биткойнов-ключей и импортировать их в исполняемый экземпляр bitcoind на моем сервере. Каждый раз, когда пользователь запрашивает новый адрес для посылки биткойнов в свою учетную запись, я назначу ему новый адрес. Тогда bitcoind уведомит меня, когда какой-либо из импортированных адресов получит транзакцию.

Первый вопрос: Является ли bitcoind способным отслеживать тысячи адресов в режиме реального времени? Должен ли я планировать выделенный компьютер для этого?

Второй вопрос: поскольку мне нужно будет переместить полученные биткойны в холодное хранилище, а также делать выплаты автоматически много раз в день, мне также нужно будет хранить секретные ключи на онлайн-сервере. Я могу иметь wallet.dat защищенный паролем, но , что является самым безопасным методом для автоматического разблокирования кошелька, перемещения средств и последующего его блокировки без возможного списания пароля? Я не считаю это безопасным если пароль отображается в любом месте кода, конфигурации или базы данных. И я не хочу вводить пароль вручную несколько раз в день.

Третий вопрос: Будет ли биткойн генерировать новый «общий адрес» каждый раз, когда я перемещаю средства с получающего адреса на выплаты и холодное хранение? Я спрашиваю: если биткойнд использовал один из импортированных адресов для изменения, он выглядел бы так, как если бы клиент получил биткойны.

11 голосов | спросил user10507 9 MonEurope/Moscow2013-12-09T23:17:24+04:00Europe/Moscow12bEurope/MoscowMon, 09 Dec 2013 23:17:24 +0400 2013, 23:17:24

2 ответа


10

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

  

Является ли биткойн способным отслеживать тысячи адресов в режиме реального времени?

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

  

Какой безопасный способ автоматически разблокировать кошелек, переместить средства и затем заблокировать его снова, если пароль не будет скомпрометирован?

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

  

Будет ли биткойн генерировать новый «общий адрес» каждый раз, когда я перемещаю средства с получающего адреса на выплаты и холодное хранение?

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

В идеале установка выглядит следующим образом:

Сервер:

  • Горячий кошелек bitcoind, создает новые адреса получателей и представляет их клиенту. Используя walletnotify или blocknotify, он обновляет полученные балансы для каждого пользователя во внешней базе данных, такой как Postgres или Redis.
  • Сценарий проверки гарантирует, что bitcoind никогда не хранит более 50 BTC в своем кошельке, если баланс превышает 50BTC, выполняется сценарий, который генерирует новый ключ с детерминированным открытым ключом (сервер никогда должен знать секретный ключ для этого) или использует предварительно сгенерированный список. Он отправляет избыток на этот адрес, чтобы сохранить его в безопасности.
  • Если у кошелька нет средств для оплаты пользователю, когда он делает запрос на вывод средств, проявите мягкое усилие и сообщите администратору, что горячий кошелек необходимо пополнить. Объясните, что это защита пользователя.

Offline:

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

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

Очень важно, но это примерно так, как работают другие системы, и это должно быть так, если вы не хотите, чтобы в итоге получилось http://inputs.io /, которые потеряли цельный кошелек BTC по причине халатности. Вы никогда не сможете быть слишком параноидальными в таких ситуациях. Ваша максимальная потеря в этом случае будет 50BTC горячим кошельком, который лучше, чем потерять все.

Играть в безопасном режиме.

ответил Anonymous 10 TueEurope/Moscow2013-12-10T09:45:37+04:00Europe/Moscow12bEurope/MoscowTue, 10 Dec 2013 09:45:37 +0400 2013, 09:45:37
0
  

Какой безопасный способ автоматически разблокировать кошелек, переместить средства и затем заблокировать его снова, если пароль не будет скомпрометирован?

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

Вот почему у вас есть «горячий кошелек» и «холодный кошелек». Горячий кошелек содержит количество биткойнов, которые вы можете позволить себе потерять. Холодный кошелек держит биткойны в длительном хранении.

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

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

ответил Peter Green 14 12016vEurope/Moscow11bEurope/MoscowMon, 14 Nov 2016 18:35:14 +0300 2016, 18:35:14

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132