Bitcoin Forum

Local => Кодеры => Topic started by: Tuwierun on November 12, 2018, 04:01:59 PM



Title: Как сгенерировать криптовалютные адреса
Post by: Tuwierun on November 12, 2018, 04:01:59 PM
Приветствую!
Ребят, возник такой вопрос. Возможно тупо поставленный, но я пытаюсь задать его максимально понятно. Есть такая проблема:

Для проекта необходима генерация адресов для каждого вновь зарегистрированного пользователя.
Требуются адреса по bitcoin, ethereum, ripple, bitcoin cash, litecoin, dash, monero, zcash.

То есть, новый пользователь зарегался на платформе, ему автоматически присвоили 8 адресов по каждой крипте.
Как присвоить, это понятно, где их, адреса, можно сгенерировать в таком количестве?))
Например, заранее для будущих пользователей 500 адресов по каждой крипте, то есть, 4 000 в общей сложности.

Может быть сервис какой есть?


Title: Re: Как сгенерировать криптовалютные адрес
Post by: fxpc on November 13, 2018, 11:48:16 AM
Какой смысл их впрок генерировать? Сделать это можно хоть на холодильнике, никакие сторонние сервисы для этого не нужны. Если интересуют чужие имплементации в коде, то по соответствующему запросу гугл выдаст тебе тысячи поделий


Title: Re: Как сгенерировать криптовалютные адрес
Post by: Tuwierun on November 13, 2018, 12:58:36 PM
Какой смысл их впрок генерировать? Сделать это можно хоть на холодильнике, никакие сторонние сервисы для этого не нужны. Если интересуют чужие имплементации в коде, то по соответствующему запросу гугл выдаст тебе тысячи поделий

Дружище, вот ты скажи, в моем вопросе есть что-то вроде: "Ищу смысл генерации", "На чем можно генерировать", "Нужны ли сторонние сервисы"?
Вроде как нет. Вопрос конкретный: есть ли известные вам сайты, где я могу для каждой из 8 криптовалют создать необходимое мне количество адресов?
Какой в этом смысл и прочее, вопрос вообще в конце очереди.

Если таких сервисов нет, достаточно написать, что их нет. Если есть, то можно просто название написать, даже ссылку кидать не обязательно.
Не надо умничать пожалуйста.
Спасибо.


Title: Re: Как сгенерировать криптовалютные адрес
Post by: fxpc on November 13, 2018, 02:14:04 PM
Умничаешь здесь только ты. Ещё раз повторяю для особо одарённых - сервисы для этого нахуй не нужны, софта для генерации адресов навалом. Тебя в гугле забанили, поэтому ты поисковые запросы сюда отправляешь? Пиздец, дайте ему сервисы, чтобы проебал приватные ключи от адресов клиентов ;D


Title: Re: Как сгенерировать криптовалютные адрес
Post by: DanMarteens on November 16, 2018, 09:15:28 PM
Есть по крайней мере несколько способов, все зависит от того где будет находиться нода - на твоем сервере, или с помощью api сторонних сервисов (те кто будет владельцем приватных ключей).

Если нужно чтобы нода была на сервере и приватные ключи были у тебя, то самый простой способ например, для битка - установить на сервер bitcoin-qt и используя его стандартную команду сгененрировать адрес через php.

<?php
use BitWasp\Bitcoin\Bitcoin;
use BitWasp\Bitcoin\Address;
use BitWasp\Bitcoin\Key\PrivateKeyFactory;

$network = Bitcoin::getNetwork();

$privateKey = PrivateKeyFactory::create(true);
$publicKey = $privateKey->getPublicKey();
$address = $publicKey->getAddress();


Можно также сгенерировать адрес через https://www.bitaddress.org/

Либо запросить api blockchain.com и при авторизации создавать через него новый кошелек и вытаскивать оттуда адрес

Как вариант еще bitaps - когда-то пользовался, не знаю рабочий ли сейчас

Есть еще библиотека bitcoin js.


Title: Re: Как сгенерировать криптовалютные адрес
Post by: alpot555 on November 18, 2018, 05:12:55 PM
Есть по крайней мере несколько способов, все зависит от того где будет находиться нода - на твоем сервере, или с помощью api сторонних сервисов (те кто будет владельцем приватных ключей).

Если нужно чтобы нода была на сервере и приватные ключи были у тебя, то самый простой способ например, для битка - установить на сервер bitcoin-qt и используя его стандартную команду сгененрировать адрес через php.

<?php
use BitWasp\Bitcoin\Bitcoin;
use BitWasp\Bitcoin\Address;
use BitWasp\Bitcoin\Key\PrivateKeyFactory;

$network = Bitcoin::getNetwork();

$privateKey = PrivateKeyFactory::create(true);
$publicKey = $privateKey->getPublicKey();
$address = $publicKey->getAddress();


Можно также сгенерировать адрес через https://www.bitaddress.org/

Либо запросить api blockchain.com и при авторизации создавать через него новый кошелек и вытаскивать оттуда адрес

Как вариант еще bitaps - когда-то пользовался, не знаю рабочий ли сейчас

Есть еще библиотека bitcoin js.

Аналогично, но как это сделать для dogecoin?


Title: Re: Как сгенерировать криптовалютные адрес
Post by: d34thkn3ll on November 19, 2018, 04:49:24 PM
Аналогично, но как это сделать для dogecoin?

networkVersion = 0x1e
privateKeyPrefix = 0x9e
WIFPrefix = '6'
compressedWIFPrefix = 'Q'

В остальном тот же алгоритм, что и у биткоина. Реализацию на JS можно подсмотреть, например, тут: https://bitcoinpaperwallet.com/bitcoinpaperwallet/generate-wallet.html?design=alt-dogecoin


Title: Re: Как сгенерировать криптовалютные адрес
Post by: ferumflex on November 25, 2018, 07:24:29 PM
Постараюсь объяснить как это делается. Как тут правильно заметили никаких сервисов тебе не надо, ибо можно потерять деньги.

Для того чтобы можно было генерировать сколько угодно адресов придумали bip44
https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki


это стандарт описывает и как генерятся адреса с помощью пути. Путь выглядит так

m / purpose' / coin_type' / account' / change / address_index
что для биткоина будет выглядеть так
m / 44' / 0' / 0' / 0 / 0
где самый последний ноль это address_index. Вот эго можно менять сколько угодно, самый простой способ это ид пользователя.

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

Алгоритм как это делается
1. На защищенной машине генерируется приватный ключ от всех кошельков, естественно он никогда не передается на сервер
2. из приватного ключа генерируем расширенный публичный ключ
3. расширенный публичный ключ загружаем на сервер и генерируем новый адрес для каждого пользователя используя path.

можно посмотреть как это реализовано в https://github.com/iancoleman/bip39


Title: Re: Как сгенерировать криптовалютные адрес
Post by: zan0za on November 26, 2018, 07:57:38 PM
Приветствую!
Ребят, возник такой вопрос. Возможно тупо поставленный, но я пытаюсь задать его максимально понятно. Есть такая проблема:

Для проекта необходима генерация адресов для каждого вновь зарегистрированного пользователя.
Требуются адреса по bitcoin, ethereum, ripple, bitcoin cash, litecoin, dash, monero, zcash.

То есть, новый пользователь зарегался на платформе, ему автоматически присвоили 8 адресов по каждой крипте.
Как присвоить, это понятно, где их, адреса, можно сгенерировать в таком количестве?))
Например, заранее для будущих пользователей 500 адресов по каждой крипте, то есть, 4 000 в общей сложности.

Может быть сервис какой есть?

А ты бы доверял таким сервисам если бы они были?

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


Title: Re: Как сгенерировать криптовалютные адрес
Post by: vromaniuk277 on April 06, 2020, 10:38:24 AM
Если тебе нужны просто не рабочие адреса, то можешь сознать переменную(0x)+рандомные цифры-буквы. Вот и  всё.


Title: Re: Как сгенерировать криптовалютные адрес
Post by: just_user on May 03, 2020, 04:47:16 PM
>>Алгоритм как это делается
>>1. На защищенной машине генерируется приватный ключ от всех кошельков, естественно он никогда не передается на сервер
>>2. из приватного ключа генерируем расширенный публичный ключ
>>3. расширенный публичный ключ загружаем на сервер и генерируем новый адрес для каждого пользователя используя path.

>>можно посмотреть как это реализовано в https://github.com/iancoleman/bip39

Здравствуйте, правильно ли я понимаю что создав пустой кошелек и сгенерировав расширенный публичный ключ,
я с помощью указанной вами программы могу на удаленном сервере сгенерировать допустим 10 000 000 адресов,
и при приходе на сгенерированный адрес битков bitcoin-cli это увидит,
и запишет адрес в локальный wallet.dat из которого был взят расширенный публичный ключ?

то-есть локальный wallet.dat будет расти в размере по мере поступления битков, а не сразу при генерации тех же 10 000 000 адресов?



Title: Re: Как сгенерировать криптовалютные адрес
Post by: tmp on January 01, 2021, 05:14:02 PM
И все же, подскажите плиз по поводу генерации адресов. Где можно почитать алгоритмы. Еле нашел подробную инфу по генерации биткоин адресов.
Наконец создал свой яваскрипт на основе библиотек CryptoJS library от Jeff Mott, BigInteger и Elliptic Curve implementation javascript libraries от Tom Wu для генерации биткоин адресов формата Legacy и P2SH (так только узнал что с одного приватного ключа может быть адрес двух версий).
Теперь вот надо прикрутить сюда же и Эфир, Лайт, Доги. Там другие алгоритмы или все тоже как и в биткоине только префиксы меняются?
Буду благодарен за любую наводку на документацию либо на подсказку. Заранее спасибо.



Title: Re: Как сгенерировать криптовалютные адрес
Post by: A-Bolt on January 01, 2021, 06:54:29 PM
Теперь вот надо прикрутить сюда же и Эфир, Лайт, Доги. Там другие алгоритмы или все тоже как и в биткоине только префиксы меняются?
Litecoin и Dogecoin - алгоритм генерации адреса из приватного ключа тот же, что и у Bitcoin, но с другими префиксами.

У Ethereum другой алгоритм хеширования публичного ключа - Keccak. Для генерации адреса из приватного ключа можно воспользоваться библиотекой ethjs (https://github.com/ethjs/ethjs-account/blob/master/docs/user-guide.md).


Title: Re: Как сгенерировать криптовалютные адрес
Post by: tmp on January 05, 2021, 04:58:17 PM
Спасибо большое за предыдущий ответ. Еще вопрос такой в тему генерации адресов:

Планирую (пока что только в проекте) создать некий гибридый сервис по обслуживанию криптоадресов.
Одной из функций будет генерация адресов N-ое количество крипто валюты. Во время создания генератора понял что адреса на разные криптокоины можно создавать с одного приватного ключа.
Для обычного пользователя - это очень удобно. С другой стороны, учитывая безопасность, это не совсем правильно.
скажите пожалуйста свое мнение как лучше было бы - один приватный ключ и N-ое количество адресов на каждую крипту или все таки лучше на каждый адрес отдельный приватный ключ?
Я вижу и в той и в той реализации 50% плюсов и 50% минусов. Не могу определиться :)


Title: Re: Как сгенерировать криптовалютные адрес
Post by: mrxtraf on January 05, 2021, 06:10:06 PM
Спасибо большое за предыдущий ответ. Еще вопрос такой в тему генерации адресов:

Планирую (пока что только в проекте) создать некий гибридый сервис по обслуживанию криптоадресов.
Одной из функций будет генерация адресов N-ое количество крипто валюты. Во время создания генератора понял что адреса на разные криптокоины можно создавать с одного приватного ключа.
Для обычного пользователя - это очень удобно. С другой стороны, учитывая безопасность, это не совсем правильно.
скажите пожалуйста свое мнение как лучше было бы - один приватный ключ и N-ое количество адресов на каждую крипту или все таки лучше на каждый адрес отдельный приватный ключ?
Я вижу и в той и в той реализации 50% плюсов и 50% минусов. Не могу определиться :)
А какой разумный человек будет пользоваться сгенеренным на стороне приватными ключами?


Title: Re: Как сгенерировать криптовалютные адрес
Post by: tmp on January 05, 2021, 07:26:02 PM

А какой разумный человек будет пользоваться сгенеренным на стороне приватными ключами?
Вся генерация будет происходить посредством яваскриптов на стороне клиента. Можно будет при генерации хоть интернет отключать для безопасности. Код будет открытым. Для особо недоверчивых. Смогут сами все проверить. Суть не в этом. :) 


Title: Re: Как сгенерировать криптовалютные адрес
Post by: mrxtraf on January 05, 2021, 09:04:41 PM

А какой разумный человек будет пользоваться сгенеренным на стороне приватными ключами?
Вся генерация будет происходить посредством яваскриптов на стороне клиента. Можно будет при генерации хоть интернет отключать для безопасности. Код будет открытым. Для особо недоверчивых. Смогут сами все проверить. Суть не в этом. :)  
И чем это будет отличатся к примеру от этого?
https://mrxtraf.github.io/brainwalletXX/#game


Title: Re: Как сгенерировать криптовалютные адрес
Post by: tmp on January 05, 2021, 09:20:06 PM

И чем это будет отличатся к примеру от этого?
https://mrxtraf.github.io/brainwalletXX/#game

ну вопрос был не в этом ))) А все свои планы раскрывать пока, я думаю, не стоит. Хотя одно отличие скажу - там нет Эфира :)  Все равно у меня пока все в процессе генерации идей и не знаю хватит ли сил на воплощение  ))) Поэтому пока что интересует мнение о приватном ключе к адресам разных монеток.


Title: Re: Как сгенерировать криптовалютные адрес
Post by: Free_fly on January 11, 2021, 01:02:08 AM
...
 Во время создания генератора понял что адреса на разные криптокоины можно создавать с одного приватного ключа.
Для обычного пользователя - это очень удобно....
Максимально безопасно, когда для каждого вида валют, свой уникальный ключ.

Хочешь экономить на размере хранилища, создай 2 ключа и суммируй их в определенном порядке.


Title: Re: Как сгенерировать криптовалютные адрес
Post by: tmp on January 12, 2021, 05:08:52 PM

Максимально безопасно, когда для каждого вида валют, свой уникальный ключ.
Принял! Спасибо! Тоже так и думал )))
Хочешь экономить на размере хранилища, создай 2 ключа и суммируй их в определенном порядке.
А вот это интересная идея! Надо будет подумать над ней! Спасибо!


Title: Re: Как сгенерировать криптовалютные адрес
Post by: alexeyneu on April 11, 2021, 08:05:34 AM
ну вопервых тебе нужен hd адрес правильно? ну поскольку ты слово bip впервый раз слышишь у тебя ноль шансов тупо это сделать