Реальная история.
Мы хотели бы предложить кошелек сервис для сотен / тысяч наших клиентов. Мы хотим, чтобы сделать его как можно более безопасным.
На основании того, что описано здесь:
"- Сделать один кросс-браузер совместимого веб-версию и добавить браузер функции шифрования на стороне, чем вы можете использовать bitaddress.org скрипт для создания Bitcoin адреса и зашифрованного секретного ключа (используя пароль, введенный вашего клиент), чем магазин, который зашифрованном закрытый ключ в вашем сервере.
- Дайте те, что зашифрованы закрытый ключ, некоторый идентификатор или просто связать его с пользователями электронной почты, чтобы ваш сценарий может определить, какие шифруется секретный ключ он должен смотреть на то, когда пользователи пытаются войти в систему.
- Теперь вы можете показать остатки от этого адреса в панели управления пользователем и для дополнительной безопасности можно добавить 2fa.
- Если вы хотите запустить прибыльный Bitcoin кошелек, чем установить некоторые сборы починки (рекомендуется сетевой платы + прибыль) после того, как вы получите действительно хорошее количество пользователей, использующих свой кошелек на ежедневной основе."
Мы будем использовать importprivkey Bitcoin-Cli команды, чтобы добавить учетную запись в кошелек и создать "account1", "account2", "account3"И т.д. счетов. Как мы можем защитить эти счета так Account1 только будет в состоянии видеть и тратить то, что на Account1?
Или есть способ, который мы только импортировать закрытый ключ из учетной записи временно (путем дешифрования вышеупомянутого зашифрованного секретного ключа с паролем пользователя) и поместите его сразу после счета логает?
Там, кажется, много проблем с вашей теорией. Для начала: это выглядит, как вы хотите, чтобы ваш защитить секретные ключи вашего пользователя, позволяя им использовать bip38 шифрование, но вы все еще думаете об импорте этих (незашифрованные) закрытых ключей на свой узел ... Насколько я могу видеть, это аннулирует вашу модель безопасности. Основная Idear вашей модели, кажется, что закрытый ключ bip38 зашифрован в браузере пользователя перед отправкой на сервер. Вы только сохранить зашифрованный ключ. Когда пользователь пытается войти в систему, вы запрашиваете зашифрованный ключ, и он получает расшифрованы в браузере пользователя.
Если вы хотите ввезти ключ, пользователь должен отправить этот расшифрованный ключ к вам, и вы должны импортировать его ... Как я сказал: это сведет вашу концепцию безопасности.
Там нет простого способа импортировать закрытый ключ и баланс без повторной проверки цепи (занимает много времени). вам нужно запустить модифицированный Bitcoin демона, который позволяет индексировать адреса, TXID х, ... например, bitcore имеет реализацию, но AFAIK, они раздвоенные от ядра 0,12 ...
ссылкаЕсли вы идете по пути предоставления каждому пользователю счета, а затем импортировать его / ее частный ключ, вы должны реализовать "sendtoaddress" не имеет "Счет" вариант. Это означает, что кошелек будет выбрать наиболее подходящие неизрасходованные выходы не учитывая, к которым они принадлежат счетам. Это заставит вас вручную генерировать новые транзакции, вручную выбирая выходы, подписание, вещает ... Или вам нужно работать с "горячий" бумажник и отделить бухгалтерский учет, так что пользователь не имеет его собственный бумажник больше, он просто имеет адрес депозит, отслеживанию, и пусть проводят от hotwallet непосредственно ...
Может быть, вы можете посмотреть на реализацию bitcore о Bitcoin ядра и их реализации бумажника?
И последнее, но не менее важное: я приветствую пользователей экспериментируют с Bitcoin, но я сомневаюсь, что есть место в Bitcoin пейзаж для еще одного интернет-кошелька ... Многие из этих кошельков оказываются плохо написаны или простые из жульничества. Там может быть лучше проекты посвятить свое время, чтобы чем откачать еще-другой-скоро-к-быть-а-потенциал жульничество-онлайн-кошелька