Pages:
Author

Topic: Как сгенерировать криптовалютные адреса (Read 862 times)

member
Activity: 312
Merit: 30
ну вопервых тебе нужен hd адрес правильно? ну поскольку ты слово bip впервый раз слышишь у тебя ноль шансов тупо это сделать
tmp
jr. member
Activity: 96
Merit: 1

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

Хочешь экономить на размере хранилища, создай 2 ключа и суммируй их в определенном порядке.
tmp
jr. member
Activity: 96
Merit: 1

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

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

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

А какой разумный человек будет пользоваться сгенеренным на стороне приватными ключами?
Вся генерация будет происходить посредством яваскриптов на стороне клиента. Можно будет при генерации хоть интернет отключать для безопасности. Код будет открытым. Для особо недоверчивых. Смогут сами все проверить. Суть не в этом. Smiley 
member
Activity: 255
Merit: 27
Спасибо большое за предыдущий ответ. Еще вопрос такой в тему генерации адресов:

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

Планирую (пока что только в проекте) создать некий гибридый сервис по обслуживанию криптоадресов.
Одной из функций будет генерация адресов N-ое количество крипто валюты. Во время создания генератора понял что адреса на разные криптокоины можно создавать с одного приватного ключа.
Для обычного пользователя - это очень удобно. С другой стороны, учитывая безопасность, это не совсем правильно.
скажите пожалуйста свое мнение как лучше было бы - один приватный ключ и N-ое количество адресов на каждую крипту или все таки лучше на каждый адрес отдельный приватный ключ?
Я вижу и в той и в той реализации 50% плюсов и 50% минусов. Не могу определиться Smiley
legendary
Activity: 2310
Merit: 2295
Теперь вот надо прикрутить сюда же и Эфир, Лайт, Доги. Там другие алгоритмы или все тоже как и в биткоине только префиксы меняются?
Litecoin и Dogecoin - алгоритм генерации адреса из приватного ключа тот же, что и у Bitcoin, но с другими префиксами.

У Ethereum другой алгоритм хеширования публичного ключа - Keccak. Для генерации адреса из приватного ключа можно воспользоваться библиотекой ethjs.
tmp
jr. member
Activity: 96
Merit: 1
И все же, подскажите плиз по поводу генерации адресов. Где можно почитать алгоритмы. Еле нашел подробную инфу по генерации биткоин адресов.
Наконец создал свой яваскрипт на основе библиотек CryptoJS library от Jeff Mott, BigInteger и Elliptic Curve implementation javascript libraries от Tom Wu для генерации биткоин адресов формата Legacy и P2SH (так только узнал что с одного приватного ключа может быть адрес двух версий).
Теперь вот надо прикрутить сюда же и Эфир, Лайт, Доги. Там другие алгоритмы или все тоже как и в биткоине только префиксы меняются?
Буду благодарен за любую наводку на документацию либо на подсказку. Заранее спасибо.

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

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

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

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

newbie
Activity: 42
Merit: 0
Если тебе нужны просто не рабочие адреса, то можешь сознать переменную(0x)+рандомные цифры-буквы. Вот и  всё.
jr. member
Activity: 46
Merit: 3
Приветствую!
Ребят, возник такой вопрос. Возможно тупо поставленный, но я пытаюсь задать его максимально понятно. Есть такая проблема:

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

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

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

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

Если злоумышленник сделает такой сервис и будет тебе генерировать пары адрес-приватный ключ то этот злоумышленник может себе оставлять эти пары и постоянно мониторить блокчейн и как только на любой из адресов который он сгенерил поступят монеты то он сможет забрать их имея приватный ключ.
full member
Activity: 256
Merit: 102
Постараюсь объяснить как это делается. Как тут правильно заметили никаких сервисов тебе не надо, ибо можно потерять деньги.

Для того чтобы можно было генерировать сколько угодно адресов придумали 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
jr. member
Activity: 52
Merit: 1
Аналогично, но как это сделать для dogecoin?

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

В остальном тот же алгоритм, что и у биткоина. Реализацию на JS можно подсмотреть, например, тут: https://bitcoinpaperwallet.com/bitcoinpaperwallet/generate-wallet.html?design=alt-dogecoin
member
Activity: 152
Merit: 12
Есть по крайней мере несколько способов, все зависит от того где будет находиться нода - на твоем сервере, или с помощью api сторонних сервисов (те кто будет владельцем приватных ключей).

Если нужно чтобы нода была на сервере и приватные ключи были у тебя, то самый простой способ например, для битка - установить на сервер bitcoin-qt и используя его стандартную команду сгененрировать адрес через 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?
newbie
Activity: 16
Merit: 0
Есть по крайней мере несколько способов, все зависит от того где будет находиться нода - на твоем сервере, или с помощью api сторонних сервисов (те кто будет владельцем приватных ключей).

Если нужно чтобы нода была на сервере и приватные ключи были у тебя, то самый простой способ например, для битка - установить на сервер bitcoin-qt и используя его стандартную команду сгененрировать адрес через 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.
sr. member
Activity: 1316
Merit: 420
KTO EC/\U HUKTO?
Умничаешь здесь только ты. Ещё раз повторяю для особо одарённых - сервисы для этого нахуй не нужны, софта для генерации адресов навалом. Тебя в гугле забанили, поэтому ты поисковые запросы сюда отправляешь? Пиздец, дайте ему сервисы, чтобы проебал приватные ключи от адресов клиентов Grin
member
Activity: 294
Merit: 26
Какой смысл их впрок генерировать? Сделать это можно хоть на холодильнике, никакие сторонние сервисы для этого не нужны. Если интересуют чужие имплементации в коде, то по соответствующему запросу гугл выдаст тебе тысячи поделий

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

Если таких сервисов нет, достаточно написать, что их нет. Если есть, то можно просто название написать, даже ссылку кидать не обязательно.
Не надо умничать пожалуйста.
Спасибо.
sr. member
Activity: 1316
Merit: 420
KTO EC/\U HUKTO?
Какой смысл их впрок генерировать? Сделать это можно хоть на холодильнике, никакие сторонние сервисы для этого не нужны. Если интересуют чужие имплементации в коде, то по соответствующему запросу гугл выдаст тебе тысячи поделий
Pages:
Jump to: