Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
20 сентября 2015, 12:05:55 PM   # 1
 
 
Сообщения: 2
Цитировать по имени
цитировать ответ
по умолчанию Re: Python Bitcoin - Вычисление Блок-заголовок

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


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

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

https://blockchain.info/rawblock/00000000000000000be983a81043933c38008010b849fd6a35d5dd2d57f929bd

Код:
Хэш: 00000000000000000be983a81043933c38008010b849fd6a35d5dd2d57f929bd
версия: 3
prev_block: 0000000000000000051f5de334085b92ce27c03888c726c9b2bb78069e55aeb6
mrkl_root: f4db18d3ecab87eeb23a56490d5b0b514848d510d409b43f6bbf2b82f55da8db
Время: 1442663985
Биты: 403867578
нонс: 3548193207

Мое обращение выглядит следующим образом:

Код:
веры -> HextoBinary -> 3 -> 11 -> 00000011
prev_block -> Нет преобразования необходимо (Hex)
mrkl_root -> Нет преобразования необходимо (Hex)
время -> toHex -> 1442663985 -> 55fd4e31 (Hex)
бит -> toHex -> 403867578 -> 181287ba
одноразовое значение -> toHex -> 3548193207 -> d37d21b7

Автор сценария:

Код:
импорт hashlib
header_hex = ("000000110000000000000000051f5de334085b92ce27c03888c726c9b2bb78069e55aeb6f4db18d3ecab87eeb23a56490d5b0b514848d510d409b43f6bbf2b82f55da8db55fd4e31181287bad37d21b7")
header_bin = header_hex.decode ( 'шестигранной')
хэш = hashlib.sha256 (hashlib.sha256 (header_bin) .digest ()). дайджеста ()
hash.encode ( 'hex_codec')
печать хэша [:: - 1] .encode ( 'hex_codec')

К сожалению, результат выглядит следующим образом:

7012fc1c69b4b5d0c0df1b732c5ea58752e96bd8f53f7c09d2f5b57bcc0186d1

но это должно быть

00000000000000000be983a81043933c38008010b849fd6a35d5dd2d57f929bd

Может быть, я делаю что-то неправильно с версией или prev_block поля?
Спасибо за Вашу поддержку

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


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


20 сентября 2015, 12:53:50 PM   # 2
 
 
Сообщения: 494
Цитировать по имени
цитировать ответ
по умолчанию Re: Python Bitcoin - Вычисление Блок-заголовок

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





Вы должны помнить все ByteArray, мало-младшему. Или большой обратный порядок байт, я никогда не могу вспомнить, что есть что. Пойнт вы должны изменить порядок байтов для каждого поля.

Так header_hex начинается с "11000000 ...", Следующая часть будет байты обращенных предыдущий блока хэш - так начинается с "b6ae55" и заканчивается строкой нулей.
Точно так же для всех остальных полей.

ETA я вижу из вашего "хэш [:: - 1]" строительство, что вы знаете о байтов. Ну, что касается каждого поля, а не заголовок всего блока. Как минимум "[:: - 1]" дает очень эффективный способ сделать это.
Нанкарроу сейчас офлайн Пожаловаться на Нанкарроу   Ответить с цитированием Мультицитирование сообщения от Нанкарроу Быстрый ответ на сообщение Нанкарроу

25 сентября 2015, 5:52:00 PM   # 3
 
 
Сообщений: 64
Цитировать по имени
цитировать ответ
по умолчанию Re: Python Bitcoin - Вычисление Блок-заголовок

В дополнение к вышесказанному ответ, строка 4 из кода ниже - hash.encode ( 'hex_codec') - это выражение, которое возвращает значение, но не меняется гашиш, так что это на самом деле не делает ничего.

<надрез>

Автор сценария:

Код:
импорт hashlib
header_hex = ("000000110000000000000000051f5de334085b92ce27c03888c726c9b2bb78069e55aeb6f4db18d3ecab87eeb23a56490d5b0b514848d510d409b43f6bbf2b82f55da8db55fd4e31181287bad37d21b7")
header_bin = header_hex.decode ( 'шестигранной')
хэш = hashlib.sha256 (hashlib.sha256 (header_bin) .digest ()). дайджеста ()
hash.encode ( 'hex_codec')
печать хэша [:: - 1] .encode ( 'hex_codec')

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

27 сентября 2015, 10:56:11 PM   # 4
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: Python Bitcoin - Вычисление Блок-заголовок

Для блока 00000000000000000be983a81043933c38008010b849fd6a35d5dd2d57f929bd:
  • версия = 3, кодируется как '03000000' (4-байтового мало с обратным порядком байтов);
  • previous_hash = 'b6ae559e0678bbb2c926c78838c027ce925b0834e35d1f050000000000000000';
  • merkle_root = 'dba85df5822bbf6b3fb409d410d54848510b5b0d49563ab2ee87abecd318dbf4';
  • время = 1442663985, закодированный как '314efd55' (4-байтового мало с обратным порядком байтов);
  • Биты с = '181287ba', хранится в виде 'ba871218';
  • Nonce = 3548193207, кодируется как 'b7217dd3' (4-байтового мало с обратным порядком байтов).

С учетом этих изменений, ваш код Python 2 становится:
Код:
импорт hashlib
header_hex = '03000000b6ae559e0678bbb2c926c78838c027ce925b0834e35d1f050000000000000000dba85df5822bbf6b3fb409d410d54848510b5b0d49563ab2ee87abecd318dbf4314efd55ba871218b7217dd3'
header_bin = header_hex.decode ( 'шестигранной')
хэш = hashlib.sha256 (hashlib.sha256 (header_bin) .digest ()). дайджеста ()
печать хэша [:: - 1] .encode ( 'hex_codec')
что дает 00000000000000000be983a81043933c38008010b849fd6a35d5dd2d57f929bd по мере необходимости.
teukon сейчас офлайн Пожаловаться на teukon   Ответить с цитированием Мультицитирование сообщения от teukon Быстрый ответ на сообщение teukon

2 октября 2015, 1:33:09 AM   # 5
 
 
Сообщений: 98
Цитировать по имени
цитировать ответ
по умолчанию Re: Python Bitcoin - Вычисление Блок-заголовок

OP это один хороший. Вы можете отправить нам code.py?
vlajce сейчас офлайн Пожаловаться на vlajce   Ответить с цитированием Мультицитирование сообщения от vlajce Быстрый ответ на сообщение vlajce



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW