Вернуться   Биткоин Форум > - Помощь начинающим
8 декабря 2012, 11:42:43 AM   # 1
 
 
Сообщения: 1
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin алгоритмы, нужна помощь с кодировкой base58

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Я пишу код, чтобы узнать больше о процессах Bitcoin. У меня есть большая часть все понял, но мне интересно, о кодировке base58. https://en.bitcoin.it/wiki/Base58Check_encoding
Скажем, у меня есть следующий Bitcoin адрес и секретный ключ (очевидно, я не буду использовать этот для чего-то важного.)

Адрес: 1JHYG91McMgviqDDLSXq1TsPvZB7LYxV1s
PrivKey: 5JczEN6uCWESxHLyvnLbCWtjBJkTmHCtZBYcQztspvDJctmdKmF

Если я использую схему на странице base58 связаны выше, а затем преобразовать каждый символ закрытого ключа в число от 0 до 57. Должен ли я использовать 6 бит для представления каждого числа, и сцепить результат?

Если это так, то, я в конечном итоге с чем-то вроде этого:
Код:
000001010001110001100111001011010101000101001011001101010111001011010011111011000001011001000111101011101101011001010001001101010111110011010101000101010001110101001011001101000001001101110011000001000101011111110001011101100111110011010011111101101011000011010001110001110011001101001001001001001101000111

Или в шестнадцатеричном,
Код:
28E3396A8A59AB969F60B23D76B289ABE6A8A8EA59A09B9822BF8BB3E69FB5868E399A49268E

Так что реально не иметь никакого сходства ни с чем я столкнулся, я задаюсь вопросом - как именно я могу получить закрытый ключ от WIF и наоборот? Есть простой "для чайников" ссылка где-то, из которого я могу получить краткое изложение?

То, что я хотел бы сделать, в конечном счете, это есть функция, я могу ввести произвольное 256 битное число, а затем быть в состоянии превратить его в WIF, и принять WIF значение и преобразовать его обратно в 256-битовое число.

Мое мышление до сих пор в основном идет как следующее - Преобразование каждого символа закрытого ключа в 6-битовое число, сцепить каждое последующее значение в одну строку.
Я предполагаю, что это неправильный подход, и хотел бы немного помочь (да, каламбур.)

У меня есть библиотека SHA256 и все остальное, что необходимо в значительной степени готовы пойти, в этот момент я просто застрял на base58. Благодаря!
jrowe47 сейчас офлайн Пожаловаться на jrowe47   Ответить с цитированием Мультицитирование сообщения от jrowe47 Быстрый ответ на сообщение jrowe47


Как заработать Биткоины?
Без вложений. Не майнинг.


8 декабря 2012, 4:26:17 PM   # 2
 
 
Сообщения: 2016
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin алгоритмы, нужна помощь с кодировкой base58

Получил 1806 Биткоинов
Реальная история.





С той же странице, что вы связаны с:

котировка
. . . преобразовать в базу-58 с помощью обычных математических шагов (bignumber деление). , ,


code_string = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
   х = convert_bytes_to_big_integer (hash_result)
  
   output_string = ""
  
   в то время как (х > 0)
       {
           (Х, остаток) = деление (х, 58)
           output_string.append (code_string [остальное])
       }
  
   повтор (number_of_leading_zero_bytes_in_hash)
       {
       output_string.append (code_string [0]);
       }
  
   output_string.reverse ();


Так что если вы просто представить каждый номер с 6 бит, вы все еще в base58 вы просто используя свой собственный новый составленный алфавит, чтобы представлять каждую base58 цифру.

Если вы хотите 256 битное число, то вы должны преобразовать в двоичный (не представляют символы в двоичном коде).

Пример:

номер Base58Check 35 = Значение base58 24 знак равно 2 х 581 + 4 х 580 = Значение base10 120 = Значение шестигранного 0x78

Я предполагаю, что там может быть каким-то способ преобразования непосредственно из base58 в base16 (HEX) без прохождения через base10 первые, но я включил преобразование base10 здесь, так что вы можете видеть, что вы смотрите на 3-х различные представлениях десятичного числа 120 (35 в Base58Check, 24 в основании 58, и 78 в base16).
DannyHamilton сейчас офлайн Пожаловаться на DannyHamilton   Ответить с цитированием Мультицитирование сообщения от DannyHamilton Быстрый ответ на сообщение DannyHamilton

9 марта 2013, 6:02:27 PM   # 3
 
 
Сообщений: 47
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin алгоритмы, нужна помощь с кодировкой base58

Я пытаюсь выяснить, как добраться до base58, а также и я немного запутался. Я прочитал несколько реализаций при переходе к base58 от текущих приложений, таких как https://github.com/pointbiz/bitaddress.org и один размещен на сайте bitcoin.it, и все они, кажется, принимают значение, которым нужно изменить и преобразовать его в большом целое. Затем разделить его на 58 и целое число преобразуется в base58 с остатком снова проходит процесс. Ну, глядя на https://en.bitcoin.it/wiki/Wallet_import_format Я понимаю, что первые 6 шагов, но если я номер 6 и преобразовать его в число база 10 это безумно массивное число. Попытка разделить, что 58 будет равна массивное число, так что это, где я путаюсь.

Пример: шаг 6 = 800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D507A5B8D

в десятичную ~ = 6368099731808814328175274076776670756354696346421856450745089246076352148867543 0192536461

/ 58 ~ = 1,09794822962220936692677139254770185454391316317618214668018780104764692221854 1899871318293103448275862068965517241 ... Ч 10 ^ 87

Я предполагаю, что я буду об этом неправильно.
Onichan сейчас офлайн Пожаловаться на Onichan   Ответить с цитированием Мультицитирование сообщения от Onichan Быстрый ответ на сообщение Onichan

9 марта 2013, 8:11:00 PM   # 4
 
 
Сообщения: 2016
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin алгоритмы, нужна помощь с кодировкой base58

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

Я думаю, что у вас есть, что в обратном направлении.

Возьмите большое число, разделить его на 58. Остаток представляет собой базу 58 "цифра", Фактор проходит через процесс снова. Так как остаток всегда должен быть меньше, чем 58 (или не будет остатком), все ваши цифры будут один из 58 цифр, используемых в основании 58.
DannyHamilton сейчас офлайн Пожаловаться на DannyHamilton   Ответить с цитированием Мультицитирование сообщения от DannyHamilton Быстрый ответ на сообщение DannyHamilton

9 марта 2013, 8:40:11 PM   # 5
 
 
Сообщений: 47
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin алгоритмы, нужна помощь с кодировкой base58

Хорошо, что делает больше смысла, но я до сих пор думаю, что я получаю неправильное большое число, как 6368099731808814328175274076776670756354696346421856450745089246076352148867543 0192536461 больше, чем число 128bit.

Изменить: Я понял, что нужно использовать язык, который поддерживает произвольную точность.
Onichan сейчас офлайн Пожаловаться на Onichan   Ответить с цитированием Мультицитирование сообщения от Onichan Быстрый ответ на сообщение Onichan

10 марта 2013, 2:35:51 PM   # 6
CJP
 
 
Сообщения: 210
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin алгоритмы, нужна помощь с кодировкой base58

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

Обратите внимание, что мой исходный код включает в себя очень мало "произвольный размер"/"большое число" реализация, которая содержит достаточно только функциональные возможности для base58 кодирования Bitcoin. Также отметим, что у меня есть только кодирование, декодирование не; это потому, что я не ожидаю, что моя заявка будет когда-нибудь понадобится декодирование.
CJP сейчас офлайн Пожаловаться на CJP   Ответить с цитированием Мультицитирование сообщения от CJP Быстрый ответ на сообщение CJP



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW