Несколько дней назад я думал, что мы можем сделать, чтобы сделать bitcoind безопаснее для «банков» или обмена и чем я пришел с идеей multiwallet bitcoind.
Для того, чтобы получить доступ к кошельку с помощью JSON RPC мы должны предопределить rpcuser и пароль. Кроме того, чтобы обеспечить бумажник мы должны начать bitcoind на отдельном сервере, чем веб-интерфейс, кроме того, мы должны подключить к нему только как соединение VPN. В ближайшем будущем bitcoind также будет иметь возможность шифровать кошелек с помощью пароля, известного только владельцу.
Но как насчет доступа к bitcoind по JSON RPC таким образом:
- rpcuser определяет, какой файл бумажника для выбора (напр. для пользователя «zwierzak» выбираем «wallet_zwierzak.dat»),
- пароль не записываются в любой базе данных, так как проверка пользователя является успешной расшифровкой кошелька.
Таким образом, вы можете иметь bitcoind на том же сервере, на котором у вас есть веб-интерфейс (не рекомендуется) и воровал пароль для всех учетных записей пользователей будет гораздо сложнее, чем украла 1 глобальный пароль пользователя или получить доступ к отделенной серверу.
Так преимущества:
- каждый пользователь несет ответственность за сохранность своего файла бумажник,
- мы могли бы позволить пользователю загружать свои бумажники на жесткий диск, если они хотят (у каждого пользователя есть отдельный зашифрованный кошелек) и вставить его в Bitcoin клиента
- проще, чтобы убедиться, что крекеры может воровал только часть Bitcoins
Мы должны заботиться о:
- убедитесь, что пользователь использовать жесткий пароль (libcrack)
- Имя пользователя может содержать только некоторые символы (регулярных выражений: «[A-Za-z0-9 \ -_]»), чтобы не допустить, чтобы написать что-то вроде «../../../etc/passwd»
Но это делает 2 новые проблемы:
- если пользователь потерял свой пароль, то это будет наша вина, что он потерял все свои сбережения, потому что он не может расшифровать его бумажник
- обмен не будет в режиме реального времени, потому что если вы используете только один кошелек и 1-адрес для каждого пользователя, рассчитать баланс по своему усмотрению. Исходящие деньги вы можете подписать с каждого закрытого ключа в бумажнике. Но если вы разделите бумажники, что после операции на месте вам нужно перевести монеты с одного счета на другой. Но это время, чтобы соответствовать сделки.
Что вы думаете об этом, и вы будете заинтересованы в этой модификации bitcoind? Также у вас есть какие-либо идеи, как решить эту 2 проблемы? Или, может быть, вы думаете, что проблемы где-то еще?