Генерация биткоинов открытых и закрытых ключей

Мне удалось написать код, который будет создавать открытый и закрытый ключи

Закрытый Ключ

$ввод = "satoshinakamoto";
$SHA256 хэш = хэш("SHA256 с", ($вход));
Эхо "<сильный>закрытый ключ: </сильные>".$и SHA256."<БР/>";

Открытый Ключ

 Шаг 1 $ = hexStringToByteString("0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6");
 Эхо "<Р><сильный>Шаг 1:</сильные> ".$Шаг1."</Р>";
 Шаг 2 $ = хэш("и SHA256", $Шаг1);
 Эхо "<Р><сильный>шаг 2: </сильные>".$Шаг 2."</Р>";
 Шаг 3 $ = хэш('ripemd160', hexStringToByteString($Шаг 2));
 Эхо "<Р><сильный>Шаг 3: </сильные>".$Шаг 3."</Р>";
 Шаг 4 $ = '00'.$Шаг 3;
 Эхо "<Р><сильный>Шаг 4: </сильные>".$Шаг 4."</Р>";
 Шаг 5 $ = хэш("SHA256 с", hexStringToByteString($Шаг 4));
 Эхо "<Р><сильный>шаг 5: </сильные>".$Шаг 5."</Р>";
 Шаг 6 $ = хэш("SHA256 с",hexStringToByteString (Шаг 5$));
 Эхо "<Р><сильный>Шаг 6: </сильные>".$Шаг 6."</Р>";
 Шаг 7 $ = функцию substr($Шаг 6,0,8);
 Эхо "<Р><сильный>шаг 7: </сильные>".$Шаг 7."</Р>";
 Шаг 8 $ = Шаг 4$.$Шаг 7;
 Эхо "<Р><сильный>шаг 8: </сильные>".$Шаг 8."</Р>";
 $step9 = bc_hexdec($Шаг 8);
 Эхо "<Р><сильный>Шаг 9: </сильные>".$step9."</Р>";
 $step10 = bc_base58_encode($step9);
 Эхо "<Р><сильный>шаг 10: </Strong>в 1".$step10."</Р>";
 возврат $step10;

Для генерации открытого ключа я взял ссылку из https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses

В этой ссылке они предоставили шаг за шагом процесс, и я за то же и если Я ввод с шагом 1 в ссылке , то я могу преобразовать код с открытым ключом, но я не уверен, как конвертировать шага 0 к шагу 1

т. е.

От:

18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725

Для

0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6

В документе

Принять соответствующий открытый ключ, сгенерированный с ним (65 байт, 1 байт 0х04, 32 байта, соответствующего координате X, 32 байт, соответствующая координата Y)

Что это значит? Как я могу генерировать это значение от закрытого ключа.

Редактирование 1

Этот вопрос говорит https://stackoverflow.com/questions/17672696/generating-bitcoin-address-from-ecdsa-public-key

Вступление в эллиптических открытый ключ и я все еще не понимаю, что они.

+240
oqrxke 23 авг. 2015 г., 16:58:57
26 ответов

Каждый раз, когда я запустить биткоин наличные тестовом режиме ядра на Raspberry Pi с 3, он просто перестает по каким-то причинам и журналы отладки при загрузке кошелек.

Так же малина Pi 3 могу справиться с биткоин кошелька наличные тестовом режиме?

Вот отчет, который заканчивается каждый раз: 2018-01-29 00:53:20 инит сообщение: загрузка бумажник...

+977
Oliver Davies 03 февр. '09 в 4:24

Подпись Шнорра, без ключа поставив, представляет собой кортеж {по умолчанию (П), сообщения (М), Р, С}, где уравнение R == СГ + H(Р||М)П держит.

Теперь, предположим, у вас есть публичные ключи P и Р2, которые по дискретной бревна отличаются на C, которая мне известна, как и в случае незакаленная бип 32, Когда я знаю продлен по умолчанию (Р2 == Р + ку). Если я знаю, что подпись по умолчанию P для сообщения м, я могу использовать его, чтобы подделать подпись м по умолчанию Р2: {Р2, м, р, ш(Р||М)С} потому что если ты пишешь отношению к Р2 и затем выразить это в терминах отношений для первой подписи, вот что вы получаете.

Для дозирования: задача есть мы имеем двух до n уравнений вида R_n = s_nG + h_nP_n, мы могли наивно пакетной проверки, сначала перепишите их как 0 = сумма(s_n)г + сумма(h_nP_n) - сумма(R_n), а затем с помощью эффективной multiexp, чтобы вычислить продукт-сумма. Е. Г. если мы хотим сделать {Р1, М1, Р1, С1} удерж можно добавить в пакет {-Р1, М1, Р1, С1} так что теперь ошибки отменить.

Чтобы решить эту проблему, верификатор должен delinearize уравнений путем умножения каждой злоумышленник, неизвестное значение, что делает их не отменить с коэффициентом более чем случайность. Это может быть сделано без ущерба для эффективности гораздо подставляя его в скаляров в multiexp.

Для еще более простой пример: рассмотрим пакетная проверка, где злоумышленник знает всех действительных подписей. Злоумышленник может просто перетасовать значения между подписями в пакете. Без delinearization партии будет, очевидно, до сих пор проходят (как наивно сумма не заботится о порядке значения), но подписи будут недействительными.

+962
kuaas bhzza 13 мая 2016 г., 12:26:56

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

Ваш кошелек всегда будет искать подтвердили входы первого и использует только неподтвержденные данные, что и в последней инстанции.

https://github.com/bitcoin/bitcoin/issues/3288

Чтобы не создавать цепочки подтвержденных сделок всегда включать соответствующий платеж.

https://bitcoinfees.21.co/#delay

+919
user273394 27 нояб. 2013 г., 0:38:35

скачать полный блокчейн и импорт вашего кошелька.DAT-файл.

Поздравляю кстати. Надеюсь, вы это понимаете.

+919
John Baxendale 14 февр. 2013 г., 10:59:14

Итак, у меня есть собственный биткоин-кошелек, на который я собственный закрытый ключ, это не в обмен.

Несмотря на segwit2x вилка была отменена, некоторые люди по-прежнему торговле и segwit2x вилка кажется еще запускаемые пользователем. Так что где-то существует, не так ли?

Я бы хотел, чтобы держать БТЦ нетронутыми в мой кошелек и отправлять монеты 2х от развилки на обмен.

Какой кошелек или программное обеспечение я могу использовать для отправки монет 2х? Я погуглил и ничего не приходит, кроме веб-сайта, который предлагает использовать Эт кошельки, что это не имеет смысла и, похоже, жулик.

Кроме того, я думаю, отправки монет 2x в другой частный кошелек, а затем и монеты BTC на еще один новый кошелек (так как для предотвращения атак воспроизведения), и только потом двигаться мои монеты 2x в обмен.

+916
Marie Kindt 8 мар. 2018 г., 18:50:13

Для повышения производительности bitcoinj библиотека определяет класс LazyECPoint , чьи экземпляры ECPoint , который еще не был инициализирован. Следовательно, поскольку ECPoint (скажем точка)- это по существу то же самое как его ленивые коллеги (скажем, ленивого), библиотека чувствует призыв к ленивым.равна(точка) должна вернуть правда. Однако, призыв к точке.равно(лень) по-прежнему возвращает значение false, и в самом деле, если точка рассматривается как объект же = точка, то лень.равно(то же самое) сейчас ложные. Мое личное ощущение заключается в том, что библиотеки не должны быть так оно и есть. Мне было интересно, если профессиональный разработчик хочет прокомментировать, что правильный способ справиться с этой ситуацией. Стоит ли пытаться сравнить ECPointи LazyECPoint'S, и если да, стоит ли добавлять сложности в код, так как для удаления рода закидоны, которые я упомянул? (На самом деле, ECPoint не bitcoinj класса, она является частью крипто библиотека spongycastle , поэтому я не могу даже увидеть, как, чтобы установить вещи прямо, без изменения spongycastleс кодом). Прилагаю фрагмент кода:

импорт орг.bitcoinj.ядро.Эке;
импорт орг.bitcoinj.крипто.LazyECPoint;
импорт орг.spongycastle.математика.ЕС.ECPoint;

тест общественных класса {
 общественности статической силы основных(string[] аргументы){

 Эке ключ = новый Эке(); // случайные (сжатый) ключ
 Точка ECPoint = ключ.getPubKeyPoint(); // связанные ECPoint
 LazyECPoint ленивый = новый LazyECPoint(точка); // то же самое, но другого типа

 Системы.из.код println(ленив.равна(точки)); // верно 
 Системы.из.метод println(точка.равно(лень)); // false, то равенство не симметрично

 Объект же = точка;
 Системы.из.код println(ленив.равно(то же самое)); // ложь ...

}
}
+909
afrekmntn 18 июн. 2015 г., 16:57:13

Лучшее, что я нашел до сих пор является Википедия. Это на самом деле весьма актуальной.

https://en.wikipedia.org/wiki/Legality_of_bitcoin_by_country

+752
Phoeniz 16 апр. 2017 г., 20:23:52

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

Это Coinomi, он может импортировать закрытый ключ и поддерживает БТГ.

(Когда я хотел свалить и продать свой БТГ, Coinomi было здорово, хотя мне нужно, чтобы использовать Android эмулятор Genymotion [потому что у меня нет Android устройства])

+669
Simon DK 13 мар. 2015 г., 13:18:00

Пожалуйста, кто-нибудь в доме, чтобы помочь с этой сделки

https://blockchain.info/tx/4ad6cccbd988248d1718909da6d98aaa3872594dfafc1aca7c52c3dbb7bd6ff4 Это был неофициальный дней

+658
Dima Pasechnik 9 янв. 2010 г., 7:37:23

Можно ли создать кошелек услуги URL-адрес для ядра биткоин кошелек

+522
gasam 4 окт. 2011 г., 21:07:18

Объяснение на вопрос ДАН здесь и приводится ниже, а также:

Электрум в настоящее время используют тот же словник в качестве BIP39 (2048 слов). Типичное семя состоит из 12 слов, что приводит к 132 бит энтропии в выборе семян.

После BIP39, 2048 итераций ключевым растяжения добавляются для генерации мастер-закрытый ключ. С точки зрения хэши, это эквивалентно добавлению дополнительной 11 бит безопасности для семени (2048=2^11).

С точки зрения злоумышленника, ограничение добавлены путем введения префикса к семени версия хэш не уменьшается энтропия семя, потому что нет знаний о семени фразы. Злоумышленник еще должен перечислить и проверить 2^н кандидат семян ключевыми словами, где n-количество бит энтропии используется для создания семян.

Однако, проверка, проведенная злоумышленник вернется быстрее, если семя кандидат не является допустимым семян, потому что злоумышленнику не нужно генерировать ключ. Это означает, что ввел префикс снижает прочность ключа растяжку.

Пусть N обозначает количество бит энтропии семени, и M-количество разрядов сложности добавлено по основным растяжка: м = lоg2(stretching_iterations). Пусть K-длина префикса в битах.

На каждой итерации атаки, вероятность получить действительный семян Р = 2^-к

Количество хэшей, необходимых для тестирования семян кандидату: Р * (1+2^м) + (1-р)*1 = 1 + 2^(м-к)

Таким образом, стоимость нападения: 2^Н * (1 + 2^(м-к))

Это могут быть аппроксимированы как 2^(Н + М - К), Если M>K, а как 2^N в противном случае.

С стандартных значений, используемых в настоящее время в Электрум, мы получаем: 2^(132 + 11 - 8) = 2^135. Это означает, что стандартные семян Электрум эквивалентно, с точки зрения хэши, до 135 бит энтропии.

Есть предположение, что 2048 раундов ключа растяжку добавить 11 бит для безопасности правильное семя? Это в целом верное объяснение?

+520
user18623 11 янв. 2018 г., 1:00:12

Еще Один Момент

  • Меньше десятичных знаков (уменьшает размер базы данных)

  • Деньги создаются путем участия в сети, а не выполняя вычислений (нет точного разъяснения, как это предотвратило бы злоупотребления)

Я уточню свою точку зрения. Вы все еще должны сделать некоторые основные расчеты для шифрования новых монет. Это в принципе ничего.

Да, вы получаете timekoins участвуя в сеть. Но, скорость поколения базируется на работоспособность. Как только вы получаете избран позволило создать Вы сможете только создать один timekoin каждые 5 минут (цикл). Через неделю вы сможете создать 2 монеты каждого цикла. Через две недели вы сможете генерировать 3 монеты за один цикл. Timekoin награды людям, которые имеют высшее безотказной работы.

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

Защита от ботнета

  • Много людей хотят быть избранными на таком же времени
  • им придется подождать
  • После этого подождите, они производят в медленном темпе.
  • Большинство ботов не будет онлайн в течение 1 недели+ прямые.
+518
James Hampton 19 окт. 2018 г., 14:21:17

После того, как майнер нашел блок, как легко для него, чтобы добавить или удалить Техас входит в тот самый блок? Он мог бы решить изменен блок с нуля или там точку, он может возобновить процесс решения?

+504
Maxwell Elliott 3 дек. 2011 г., 22:17:09

Это хорошая идея, чтобы мой скрипт на основе криптовалют, как сумасшедший, Digitalcoin, на JavaScript, вместо того, платные объявления.

Скрипт мой, используя все компьютеры, посетив мой сайт.

+446
mefju 14 июл. 2013 г., 23:22:30

Это на самом деле большая проблема.

К бабушке я бы назвал это цифровые деньги или электронные деньги. Денег, которые существует в Интернете. То есть все, что нужно знать.

С другой стороны, когда вы начнете объяснять более подробно, есть определенный уровень чтения и понимания, что человек должен быть ответственным за, потому что это новые вещи. Фиат, децентрализованных, книги, Р2Р стала все больше и больше входит в наш словарь.

Подумайте, как было банкомате объяснил, когда он впервые вышел. "Бабушка, вы ставите этот кусок пластика в стену, нажимать кнопки и деньги"

+415
user61199 29 июн. 2014 г., 11:34:07

ТЛ;ДР желаю чтобы сохранить какой-то ключ в моей приложения для каждого поставщика счета, что позволяет для моего приложения, чтобы создать получения адреса для клиентов, чтобы сделать платежи.

Я пишу некоторые программы-фактуры в Java, которые я хотел бы, чтобы использовать Bitcoin. В основном то, что я хочу, чтобы произошло это поставщик может спасти какой-то ключ к их реквизитами (вроде как через PayPal ID и секретный ключ) и всех клиентов, оплата поставщику через биткоин будет дан URL-адрес, чтобы заплатить. Я не хочу, чтобы это быть средним программного обеспечения человеком в том смысле, что я никогда не будет никаких биткоинов на моем сервере, я не буду принимать платежи, а только позволяет дать адреса оплаты поставщика к клиенту.

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

Так что я интересно, если есть какой-то способ я могу генерировать адреса для поставщика на моем сервере, не держа их кошелек. Я смотрел на bitcoinj и кажется, что там может быть какой-то способ сделать это, но я очень новой для биткоин. Это вообще возможно? Это разумное ожидание для моего приложения? Если нет, есть ли у меня другие варианты?

+270
Alexandre Kirszenberg 23 сент. 2019 г., 12:24:00

Компания говорит, что они надеются предложить способ купить Bitcoins с помощью кредитной карты.

В то же время, это не происходит или, по крайней мере, не минуя некоторые способ, как VirWoX (купить там SLLs и торговле тех, SLLs за BTC).

Есть несколько методов денежных вкладов. Внесение наличных денег в банк или 7-11, компания Walmart, CVS-это будет самый быстрый и простой способ.

  • http://www.BitInstant.com (депозит в крупных банках, 7-11, Волмарт, резюме, MoneyGram и др., или в Бразилии с помощью boleto или Recomendito Банко, или в России, через QIWI или Киберплат.)
  • http://www.CAVirtEx.com (депозит наличными в несколько банков)
  • http://www.Spendbitcoins.com (внести наличные в банке в Австралии)
  • http://www.MrBitcoins.com (депозит в банке в США, Индии, Австралии)
  • http://BitcoinNordic.com (купить кашу или Ukash в десятках стран)
  • http://www.MtGox.com (внести денежные средства в любое Барклая в Великобритании)

Есть также индивидуальных трейдеров в 70 стран и сотен городов:

+267
Yuming Cao 10 авг. 2014 г., 6:15:40

Биржи, где покупатели и продавцы ведут свой бизнес. Продавец БТЦ депозиты БТЦ с адресом биржи. Затем он может использовать свой положительный баланс BTC в обмен на продажу своего BTC за доллары (или другие монеты). Аналогичным образом, покупатель депозитов БТЦ USD с биржи и затем использует баланс купить БТЦ от продавцов.

+254
Muhammad Haseeb Anwar 13 дек. 2015 г., 20:18:24

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

Но обмены добавить централизации, они имеют сомнительную безопасность, и они могут манипулировать ценами криптовалюты по своей воле.

Тут может быть альтернативная структура рынка криптовалют, что освобождает нас от лукавого бирж?

+200
Jj J2 18 апр. 2014 г., 2:59:04

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

+129
fishyflop 28 окт. 2013 г., 16:13:52

Нет, это не возможно.

Поэтому сделка должна склоняются, если лимит будет исчерпан, но:

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

+96
Dave DeCot 13 нояб. 2013 г., 11:18:43

Я устанавливаю в Bitcoin-Qt и читал про Биткоин основы, но я нашел очень мало информации о клиенте. У меня есть несколько вопросов о программе Биткоин-от Qt (версии v0.8.1-бета-версия под Windows 7),

  1. Где полные Bitcoin-Qt в документации? Я не могу найти его.
  2. Как изменить расположение файлов для блок-услуги для хранения?
    • Блок цепь ~6 ГБ
    • По умолчанию оказывается Мои документы\папка AppData\роуминг\
    • Мой диск с: системным маленькая, и у меня есть второй диск для данных.
  3. Это "кошелек" отдельным файлом/лица из блок-цепи?
    • Как мне определить местонахождение кошелька?
    • Я могу резервного копирования бумажник простой copy/paste/tar.gz без проведения всего блока-цепь?
  4. Ли биткойн-клиент на Qt в настоящее время имеют встроенные добычи/обработки транзакций? Я не вижу диалоговое окно для настройки. У меня есть видеокарта и достаточное впустую центральный процессор-циклов.

Спасибо за разъяснения. Ссылки на соответствующие документы приветствуются!

+59
PASHAProfit 18 июл. 2015 г., 9:57:04

Если вы хотите просмотреть детали сделки, вы можете искать его (используя идентификатор транзакции или отправке или получении адреса) на блок обозреватель веб-сайта, такие как blockchain.info.

Если у вас есть понимание уплаченной пошлины, в сатоши за байт, можно увидеть, где что подходит число операций, используя сайт, который анализирует неподтвержденные транзакции и свои гонорары, как Johoe по Mempool статистики

Дальнейшие подробности о том, что делать доступны на канонический вопрос о неподтвержденных операций.

+57
Heedless 14 авг. 2018 г., 0:35:48

Я новичок в Bitcoin. Как я могу проверить, если мой Blockchain работает? Я протестировал несколько бесплатных биткойн-сайтов, но ни один из них не работал.

+37
John J 1 окт. 2016 г., 0:14:36

Это стандарт.

Все эти основанные ERC20 маркеров (как минимум) одни и те же имена атрибутов, те же имена методов.

Так что я автоматически знаю, что мне нужно вызвать метод "передачи", когда я хочу передать мои жетоны. Никто не назовет его "transfer_tokens_hello_world". Несущественно, какой из тысячи маркер я хочу перевести: это всегда один и тот же метод.

Преимущество бирж и/или пользовательских интерфейсов является то, что он очень прост в реализации. Если биржевой список маркеров A и B, то знак C имеет такие же структуру и легко это реализовать,.

+31
Declanmar 8 февр. 2010 г., 21:46:26

Индивидуальный или продавца с требованием оплаты как правило, хотят получить биткоин-адрес, специфичными для данной сделки. Когда это сделано вручную, это получается из биткойн-клиент на Qt, нажав кнопку "Получить". Купец будет иметь программное обеспечение, которое будет запрашивать у клиента bitcoin.org для получения адреса. Оператора eWallet обеспечит для вас этот адрес.

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

С Bitcoin, клиент использует математику для создания закрытого ключа (и от этого определить биткоин адрес). Так что тут не нужно быть каким-то мастером реестра, где хранятся биткоин-адреса. Клиент человек просто держит ключи необходимо потратить любые средства, полученные по адрес.

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

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

+18
Lolopinguin 14 мая 2010 г., 14:58:02

Показать вопросы с тегом