Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
27 сентября 2015, 2:51:57 PM   # 1
 
 
Сообщения: 2
Цитировать по имени
цитировать ответ
по умолчанию Re: Нонс слишком короток - Пожалуйста, помогите

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


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

У меня есть следующие проблемы:

Иногда, одноразовое значение блока короче 8 байт, и я не знаю, как Гендель того случая.
Например, пожалуйста, взгляните на этот блок:

https://blockexplorer.com/block/000000000000000007a9aef4df0b3782c31b713ebc573685cdce376d7308e5b0

Нонс блока составляет: 70755497
Старинное проклясть это: 4a7a43 ---> 6 байт вместо 8

Другой пример (предыдущий блок выше блока):

https://blockexplorer.com/block/0000000000000000051073be739add17c258ad9f60b6a2cd4bd9616d13163be6

Нонс: 2735789883
Hex: 3bd710a3 -> !8! Б



Если теперь попытаться удвоить SHA этого вида блока только 6 байт для одноразового номера я не получаю правильный результат для блока хэша.
If've пытался поставить "00" бувигер и за цифрами, но это не решает проблему.

Кто-нибудь знает, как это исправить?
Большое спасибо

С уважением,
Rambo123

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


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


27 сентября 2015, 7:32:55 PM   # 2
 
 
Сообщения: 2002
Цитировать по имени
цитировать ответ
по умолчанию Re: Нонс слишком короток - Пожалуйста, помогите

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





Нонс блока составляет: 70755497
Старинное проклясть это: 4a7a43 ---> 6 байт вместо 8

Один из нас, кажется, сделал ошибку в нашей математике.

Когда я преобразовать десятичное число 70755497 в шестнадцатеричном в большой прямой порядок байтов порядка байтов, я получаю 0x0437A4A9

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

Я допустил ошибку, или не так?

Посмотрим...

0 * 167 = 0
4 * 166 = 67108864
3 * 165 = 3145728
7 * 164 = 458752
10 * 163 = 40960
4 * 162 = 1024
10 * 161 = 160
9 * 160 = 9

67108864 + +3145728 + 458752 + 40960 + 1024 + 160 + 9 = 70755497

Кстати, данный случай является всего 4 байта, а не 8. Каждый байт представлен двумя символами при кодировании в шестнадцатеричном формате.

Пример 1 байт в нескольких представлениях:

представление Ascii (1 символ):
Z

Шестнадцатеричное представление (2 символа):
7A

Десятичное представление (3-х символов):
122

Восьмеричное представление (3-х символов):
172

Двоичное представление (8 символов):
1111010

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

27 сентября 2015, 9:59:04 PM   # 3
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: Нонс слишком короток - Пожалуйста, помогите

Нонс блока составляет: 70755497
Старинное проклясть это: 4a7a43 ---> 6 байт вместо 8

Что-то пошло шатким здесь.

Nonce из 70755497 хранится в заголовке блока, как "a9a43704" (4 байта). Именно в этом 4-байтовый большой обратный порядок байт прямой порядок байтов представление нонса.

Моя быстрая проверка Python 3:
Код:
>>> (70755497) .to_bytes (4, порядком байтов = 'немного')
Ь '\ xA9 \ xa47 \ x04'
>>> '' .join (формат (байт, '02x') для байта в _)
'A9a43704'

Если теперь попытаться удвоить SHA этого вида блока только 6 байт для одноразового номера я не получаю правильный результат для блока хэша.
If've пытался поставить "00" бувигер и за цифрами, но это не решает проблему.

В этом большой обратный порядок байт прямой порядок байтов формы вы получите правильный блок хэш.
Код:
импорт hashlib

Защиту sha256 (сообщение):
    Возвращение hashlib.sha256 (сообщение) .digest ()

версия = '03000000'
previous_hash = 'e63b16136d61d94bcda2b6609fad58c217dd9a73be7310050000000000000000'
merkle_root = '213f7741f14eb9b972b44402647b20f1e2705c73416dfb35d5f0b6fca86eb8e9'
время = '098d0656'
Биты с = 'ba871218'
одноразовое значение = 'a9a43704'
заголовок = '' .join ([версия, previous_hash, merkle_root, время, биты, Nonce])
hash_bytes = sha256 (sha256 (bytes.fromhex (заголовок)))
печать ( ''. присоединиться (формат (байт, '02x') для байта в отмененных (hash_bytes)))
возвращает 000000000000000007a9aef4df0b3782c31b713ebc573685cdce376d7308e5b0.

Редактировать: Исправленная тупоконечника к небольшим обратным порядком байтов во всем. Приветствия Дэнни.
teukon сейчас офлайн Пожаловаться на teukon   Ответить с цитированием Мультицитирование сообщения от teukon Быстрый ответ на сообщение teukon



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW