Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
18 декабря 2012, 10:11:06 PM   # 1
 
 
Сообщения: 1092
Цитировать по имени
цитировать ответ
по умолчанию Re: корректные данные заголовка для блока 1

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Здравствуйте. У меня есть некоторый код, который вычисляет хэш для блока. Он прекрасно работает где-то раньше, но теперь по какой-то причине я не могу получить правильный хэш для блока 1. Я могу вычислить правильный хеш для блока генеза, но не блокировать 1. Я взял то, что я думал, что это правильно данные заголовка для блока 1 и я попытался хэш его вручную, используя метод, который работает для блока генеза и, кажется, что данные заголовка неверны. Может кто-нибудь найти проблему с этими данными? Я мог бы сходить с ума, как я не могу найти его:

Код:
// версия
0x1, 0x0, 0x0, 0x0,
// ПРЕД БЛОК HASH
0x6F, 0xe2, 0x8c, 0xa, 0xb6, 0xF1, 0xb3, 0x72, 0xc1, 0xa6, 0xa2, 0x46, 0xAE, 0x63, 0xf7, 0x4F, 0x93, 0x1E, 0x83, 0x65, 0xE1, 0x5a, 0x8, 0x9C, 0x68, 0xd6, 0x19, 0x0, 0x0, 0x0, 0x0, 0x0,
// MERKLE ROOT
0x98, 0x20, 0x51, 0xfd, 0x1E, 0x4b, 0xa7, 0x44, 0xBB, 0xcb, 0x68, 0xE, 0x1F, 0xEE, 0x14, 0x67, 0x7b, 0xa1, 0xa3, 0xC3, 0x54, 0xB, 0xf7, 0xb1, 0xcd, 0xb6, 0x6, 0xE8, 0x57, 0x23, 0x3e, 0xE,
// ВРЕМЯ
0x61, 0xbc, 0x66, 0x49,
// TARGET
0xff, 0xff, 0x0, 0x1D,
// NONCE
0x1, 0xe3, 0x62, 0x99

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


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


18 декабря 2012, 10:24:48 PM   # 2
 
 
Сообщения: 874
Цитировать по имени
цитировать ответ
по умолчанию Re: корректные данные заголовка для блока 1

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





по какой-то причине я не могу получить правильный хеш для блока 1 ..

для блока 1 или для блока генеза (блок 0)?
koin сейчас офлайн Пожаловаться на koin   Ответить с цитированием Мультицитирование сообщения от koin Быстрый ответ на сообщение koin

18 декабря 2012, 10:28:22 PM   # 3
 
 
Сообщения: 1092
Цитировать по имени
цитировать ответ
по умолчанию Re: корректные данные заголовка для блока 1

Привет koin. Я имею в виду блок с индексом 1, иначе. 2-й блок.

http://blockexplorer.com/b/1

Это сводит меня с ума немного. 🙂
MatthewLM сейчас офлайн Пожаловаться на MatthewLM   Ответить с цитированием Мультицитирование сообщения от MatthewLM Быстрый ответ на сообщение MatthewLM

18 декабря 2012, 10:31:49 PM   # 4
kjj
 
 
Сообщения: 1302
Цитировать по имени
цитировать ответ
по умолчанию Re: корректные данные заголовка для блока 1

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

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

18 декабря 2012, 10:33:33 PM   # 5
 
 
Сообщения: 1092
Цитировать по имени
цитировать ответ
по умолчанию Re: корректные данные заголовка для блока 1

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

Просто догадка.

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

18 декабря 2012, 11:54:54 PM   # 6
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: корректные данные заголовка для блока 1

Может быть, это одноразрядная ошибка! Я документально мой опыт с этим Вот.  Это сводило с ума, чтобы быть в состоянии подтвердить 1,5 млн ТХ хэшей и имеют ровно один провал. Это заняло у меня некоторое время, но в конце концов я сузил его. Я был в состоянии вручную сравнить ТЙ из другого источника к одному в моем blkfile. 
etotheipi сейчас офлайн Пожаловаться на etotheipi   Ответить с цитированием Мультицитирование сообщения от etotheipi Быстрый ответ на сообщение etotheipi

19 декабря 2012, 2:57:12 PM   # 7
 
 
Сообщения: 1092
Цитировать по имени
цитировать ответ
по умолчанию Re: корректные данные заголовка для блока 1

Спасибо за ссылку Алан, как это интересно.

Но я не получил блок данных из базы данных блока от Satoshi клиента. Я создал данные вручную. Он работал раньше, так что в какой-то момент я случайно что-то изменилось, я просто не знаю, что. Кто-нибудь знает, как сбросить данные блока байт из базы данных блока для Satoshi клиента? Делать это было бы очень полезно сравнить данные.

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

19 декабря 2012, 3:25:02 PM   # 8
kjj
 
 
Сообщения: 1302
Цитировать по имени
цитировать ответ
по умолчанию Re: корректные данные заголовка для блока 1

Кто-нибудь знает, как сбросить данные блока байт из базы данных блока для Satoshi клиента?

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

19 декабря 2012, 3:33:07 PM   # 9
 
 
Сообщения: 1092
Цитировать по имени
цитировать ответ
по умолчанию Re: корректные данные заголовка для блока 1

Мне удалось получить дамп данных необработанных блоков. Хранения blockchain данных является более простым, чем я думал, что это будет. Блоки хранятся с идентификатором сети ("волшебные байты"), А затем по длине блока, а затем блок. Это результат:

Код:
(Нуль): cbitcoin матовый $ шестнадцатеричного -C -n 80 -s 301 / Users / матовое / Library / Application \ Support / Bitcoin / blk0001.dat
0000012d 01 00 00 00 6f e2 8c 0a b6 f1 b3 72 c1 a2 a6 46 | .... о ...... г ... F |
0000013d ​​Ae 63 f7 4F 93 1e 83 65 e1 5a 08 9с 68 d6 19 00 | .c.o ... e.Z..h ... |
0000014d 00 00 00 00 98 20 51 FD 1e 4b а7 44 Bb быть 68 0e | ..... Q..K.D..h. |
0000015d 1f й 14 67 7b а1 а3 с3 54 0b f7 b1 кд b6 06 E8 | ... г {... Т ....... |
0000016d 57 23 3e 0e 61 BC 66 49 FF FF 00 1d 01 e3 62 99 | W #>.a.fI ...... б. |

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

Кто-нибудь знает, как сбросить данные блока байт из базы данных блока для Satoshi клиента?



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

19 декабря 2012, 5:22:35 PM   # 10
 
 
Сообщения: 1106
Цитировать по имени
цитировать ответ
по умолчанию Re: корректные данные заголовка для блока 1

FWIW Я написал некоторый Python код, который воссоздает необработанный шестигранный блок заголовок, ту часть, которая хешируется для создания блока-хэша, из выходного интерфейса RPC getblock:

Код:
импорт структура
импорт hashlib

bitcoin_header_format = struct.Struct ("<я 32s 32s I 4s I")

Защиту serialize_block_header (блок):
    """Сериализация блок заголовка из интерфейса RPC"""
    вернуться bitcoin_header_format.pack (
        Блок [ 'версия'],
        unhexlify (блок [ 'previousblockhash']) [:: - 1],
        unhexlify (блок [ 'merkleroot']) [:: - 1],
        Блок [ 'время'],
        unhexlify (блок [ 'биты']) [:: - 1],
        блок [ 'Nonce'])

Защиту calculate_block_hash (raw_block_header):
    hexlify (hashlib.sha256 (hashlib.sha256 (raw_block_header) .digest ()) дайджеста () [:: - 1].)

Обратите внимание на [:: - 1] в порядок байтов, чтобы изменить порядок следования байтов в нескольких местах.
Peter Todd сейчас офлайн Пожаловаться на Питер Тодд   Ответить с цитированием Мультицитирование сообщения от Peter Todd Быстрый ответ на сообщение Peter Todd



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW