Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
27 ноября 2013, 3:27:35 AM   # 1
 
 
Сообщения: 1330
Цитировать по имени
цитировать ответ
по умолчанию Re: [Может быть, решаемые] Подробнее Wiki-забаву, кодирование base58check.

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Так, вики говорит

котировка
8 - Добавление 4 байта контрольной суммы от точки 7 в конце расширенной RIPEMD-160 хэша от точки 4. Это 25-байтовый двоичный Биткойн Адрес.

   00010966776006953D5567439E5E39F86A0D273BEED61967F6

9 - Преобразование результата из строки байт в строку base58, используя кодирование Base58Check. Это наиболее часто используемый формат Bitcoin адрес

   16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM

Так давайте трещать на страницу кодирования base58check.

котировка
Берут версия / приложение байтов и байтов полезной нагрузки, и объединить их вместе (побайтно).
Возьмите первые четыре байта SHA256 (SHA256 (результаты шага 1))
Конкатенируйте результаты стадии 1 и результаты шага 2 вместе (побайтно).

Таким образом, на данном этапе, мы имеем 0000010966776006953D5567439E5E39F86A0D273BEED61967F6xxxxxxxx

где ХХХХ четыре байта Ша Ша.

затем

котировка
Лечение результаты шага 3 - серия байт - как один большой-Endian bignumber, преобразовать в базу-58 с помощью обычных математических шагов (bignumber деления) и основания 58 алфавита, описанного ниже. Результат должен быть нормализованы, чтобы не иметь каких-либо ведущих базовых 58 нулей (символ «1»).
Ведущий символ «1», который имеет значение, равный нуль в base58, зарезервирован для представления всего ведущих нулевых байт, а когда он находится в положении ведущего, не имеет значения, как символ base58. Там может быть один или несколько ведущих «, когда это необходимо для представления одного или нескольких ведущих нулевых байт 1 в. Подсчитайте число ведущих нулевых байт, которые были результатом шага 3 (для старых адресов Bitcoin, всегда будет по крайней мере один для байта версии / приложения, для новых адресов, никогда не будет никакого). Каждый нарастающий нулевой байт должен быть представлен своим собственным символом «1» в конечном итоге.
Соединить 1 от шага 5 с результатами шаге 4. Это результат Base58Check.

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

Тогда есть немного на странице под "Кодирование адреса Bitcoin" что говорит "Биткойн адрес является кодированием Base58Check из хэша соответствующего сценария." Сценарий? Материал на https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses ничего не знает о сценариях не упоминается.

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




Richy_T сейчас офлайн Пожаловаться на Richy_T   Ответить с цитированием Мультицитирование сообщения от Richy_T Быстрый ответ на сообщение Richy_T


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


27 ноября 2013, 4:41:36 AM   # 2
 
 
Сообщения: 1330
Цитировать по имени
цитировать ответ
по умолчанию Re: [Может быть, решаемые] Подробнее Wiki-забаву, кодирование base58check.

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





Кто-нибудь видел, что здесь?

Вики говорит, что следовать шаги ... тогда сделать кодировку base58check.

Но кодирование base58check включает в себя этапы, которые уже были сделаны.

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

Хмм.
Richy_T сейчас офлайн Пожаловаться на Richy_T   Ответить с цитированием Мультицитирование сообщения от Richy_T Быстрый ответ на сообщение Richy_T

27 ноября 2013, 8:16:28 AM   # 3
 
 
Сообщений: 32
Цитировать по имени
цитировать ответ
по умолчанию Re: [Может быть, решаемые] Подробнее Wiki-забаву, кодирование base58check.

Вот мой код. Это функция называется `->address`, который принимает `pubkey` данные, concats вместе одну последовательность` версии + hash160 + checksum` байт, и base58 кодирует его.

Код:
;; ByteArray -> строка
(Defn ->адрес [Публичный]
  (Пусть [вер (в байт-массив [0x00])
        hash160 (криптографический / hash160 Публичных) ;; (Hash160 _) является (rmd160 (sha256 _))
        веры + hash160 (Concat байты вер hash160)
        контрольная сумма (криптографический / известково-контрольная сумма вер + hash160)
        веры + hash160 + контрольная сумма (CONCAT-байты веры + hash160 контрольная сумма)]
    (Base58-кодирование вер + hash160 + контрольная сумма)))

(->адрес "0450863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b23522cd470243453a299fa9e77237716103abc11a1df38855ed6f2ee187e9c582ba6")
знак равно> "16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM"

Версия байт фактически определяется сетью:

Код:
(DEF сети
  {: {Mainnet: адрес / версия (байт 0x00)}
   : {Testnet3: адрес / версия (байт 0x6F)}})

Кроме того, если вы base58-кодирования байт-массив с ведущими 0-байт, каждый из 0 байт преобразуется в "1",

С Bitcoin годов тестирование, "00000000000000000000" (Шестнадцатеричный) получает base58-закодированный в "1111111111" (Строка).

В общем, если вики не поможет, а затем проверить любого из реализаций 50 частичных Bitcoin и допрашивать их.
danneu сейчас офлайн Пожаловаться на danneu   Ответить с цитированием Мультицитирование сообщения от danneu Быстрый ответ на сообщение danneu

27 ноября 2013, 2:47:21 PM   # 4
 
 
Сообщения: 1330
Цитировать по имени
цитировать ответ
по умолчанию Re: [Может быть, решаемые] Подробнее Wiki-забаву, кодирование base58check.

Я работал его из bitaddress.org. Что было мало работы, как я не реально на О.О. Javascript, но это было достаточно хорошо. Теперь у меня есть данные для ключа, мне просто нужно сделать ведущие-нули части.
Richy_T сейчас офлайн Пожаловаться на Richy_T   Ответить с цитированием Мультицитирование сообщения от Richy_T Быстрый ответ на сообщение Richy_T

27 ноября 2013, 3:24:22 PM   # 5
 
 
Сообщения: 7
Цитировать по имени
цитировать ответ
по умолчанию Re: [Может быть, решаемые] Подробнее Wiki-забаву, кодирование base58check.

"Technical_background_of_Bitcoin_addresses" вики страница выполняет шаги 1, 2 и 3 из "Base58Check_encoding" вики. Он должен содержать только эти 5 шагов вместо:

0 - то же
1 - то же
2 - то же
3 - то же самое
4 - Преобразование результата из строки байт в строку base58, используя <кодирование Base58Check> (Для главной сети, используйте 0х00 в качестве версии байта). Это наиболее часто используемый формат Bitcoin адреса.
FreedomDealer сейчас офлайн Пожаловаться на FreedomDealer   Ответить с цитированием Мультицитирование сообщения от FreedomDealer Быстрый ответ на сообщение FreedomDealer



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW