Новый кошелек для каждого клиента или новый адрес?

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

Берете ли вы средства на хранение при их внесении или пытаетесь перепродать продукт кошелька?

Ответы (2)

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

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

Чтобы связать адреса с пользователями, вы должны сделать пометку об этом в базе данных вашего приложения.

Если вы хотите связать адреса с пользователями каким-то детерминированным образом, вы можете назначить каждому пользователю идентификационный номер и счетчик, который будет служить индексом адреса. Затем вы можете разработать соответствующий путь вывода, включающий эти две вещи. Так, например, Алиса может иметь идентификатор пользователя 5430. Адреса депозитов Алисы — m/5430/i, где i — счетчик в базе данных. Первый адрес Алисы будет m/5430/0, второй будет m/5430/1 и так далее. Идентификатор пользователя не изменится после того, как пользователь зарегистрируется, поэтому даже с более старыми резервными копиями, если у вас есть идентификатор пользователя, вы можете увеличивать счетчик, пока не дойдете до правильного.

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

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

Похоже, вы делаете обмен.

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

Однако адреса отправки находятся в базе данных, и база данных отслеживает, сколько BTC у вас есть внутри.

Когда вы просите отправить BTC кому-то, база данных проверяет, есть ли этот кто-то также в их базе данных, на основе toAdress, если да, то просто вычитаете сумму от вас и добавляете сумму другому человеку. Это происходит вне цепи.

Если нет, то они вычитают сумму из вас и отправляют BTC с одного из своих адресов.

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

Удачи!

Проголосовали против, потому что: а) адреса не должны транслироваться или «находиться в блокчейне», прежде чем вы сможете их использовать; б) вы не можете ограничить количество денег, которое кто-то отправляет на ваш адрес; в) в биткойне нет адресов from.
Я не использовал правильную терминологию, такую ​​​​как UTXo, потому что OP не похоже, что он так много знает о блокчейне. Также ОП звучит так, как будто он хочет построить обмен. Биржи обычно работают, выполняя все обмены, которые происходят внутри биржи, через свою собственную базу данных. Если вы можете сказать мне, где я ошибся, за исключением терминологии, я буду рад измениться. Блокчейн — сложная концепция, и я, возможно, по ошибке сказал что-то неуместное, дайте мне знать
Я объяснил, где вы ошиблись выше.