Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
21 сентября 2017, 7:57:40 AM   # 1
 
 
Сообщения: 8
Цитировать по имени
цитировать ответ
по умолчанию Re: хеширования coinbase сделки, чтобы получить TXID

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Я не в состоянии получить TXID от coinbase сделок путем хеширования. Я могу получить его от любой другой операции, выполнив двойной хэш. Вот что я хочу:
Код:
импорт hashlib

TXID = 'd3104f6e12f47b9fef672820ed8721670b087aaa801591b43fa2210bf3887649'
txRaw = "0100000001c4efdc5025c9816bd6cc098b205ec7a5e5d91b398969e5350d4ce528310ea7a4000000006b483045022100a33944bd7354dd464b605d30f7f94f728f41c3dc58d434d918b4685e645b183e02200d37ec139c4d0de363ddd66bdb29ff19aac538644440dee950d03b935f1d3900012103eb38b8ea461b42ec464f738e890ab0c9ca909ef2e7df9599e5d939cb441e5390feffffff02b0ac1600000000001976a91492b00d72d4ef77d5710e71c415be831900e8739488acd0480a00000000001976a9149cadc280f1873709b80d005764e7a8741ee8d94788ac796b0700"
Распечатать('**')
печать ( 'Raw сделки:')
печать (txRaw)
Распечатать('**')
Данные = txRaw.decode ("наговор")
хэш = hashlib.sha256 (hashlib.sha256 (данные) .digest ()). дайджеста ()
печать ( 'TXID:')
печать (TXID)
Распечатать "Hashed Сырье ТХ: \ п"Хэш [:: - 1] .encode ( 'hex_codec')

Производительность при использовании обычной сделки:
Код:
**
Сырая сделка:
0100000001c4efdc5025c9816bd6cc098b205ec7a5e5d91b398969e5350d4ce528310ea7a4000000006b483045022100a33944bd7354dd464b605d30f7f94f728f41c3dc58d434d918b4685e645b183e02200d37ec139c4d0de363ddd66bdb29ff19aac538644440dee950d03b935f1d3900012103eb38b8ea461b42ec464f738e890ab0c9ca909ef2e7df9599e5d939cb441e5390feffffff02b0ac1600000000001976a91492b00d72d4ef77d5710e71c415be831900e8739488acd0480a00000000001976a9149cadc280f1873709b80d005764e7a8741ee8d94788ac796b0700
**
TXID:
d3104f6e12f47b9fef672820ed8721670b087aaa801591b43fa2210bf3887649
Hashed Сырье ТХ:
d3104f6e12f47b9fef672820ed8721670b087aaa801591b43fa2210bf3887649

Выход при использовании coinbase сделки:
Код:
**
Сырая сделка:
010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff3103816b07244d696e656420627920416e74506f6f6c6b2f4542312f4144362f4e59412f332059c36d7be1550000df320000ffffffff0238252e4d000000001976a914660371326d3a2e064c278b20107a65dad847e8a988ac0000000000000000266a24aa21a9edc11e8cdbd8d442b27bf8f273395baa83b5da4c9c3d87fbc539dad742480437100120000000000000000000000000000000000000000000000000000000000000000000000000
**
TXID:
d0783f480343fb37b009b5e3db90ccad85e2c8314639de98b3bb66c396dd7915
Hashed Сырье ТХ:
4495cc1d511e61de206cd5b18998eeab11932d42c6b1d264c400a20eefc97e99

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


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


21 сентября 2017, 7:51:46 PM   # 2
 
 
Сообщения: 2002
Цитировать по имени
цитировать ответ
по умолчанию Re: хеширования coinbase сделки, чтобы получить TXID

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





Вы, кажется, имеют плохую копию необработанной сделки.

Когда я смотрю на сырье сделки по TXID в blockchain (coinbase сделки по высоте блока 486,273, блок хэш 00000000000000000083cbfd33b63c2ac10e703266c5749bf3ce2fbff88f5791), я получаю следующее:

Код:
01000000 01000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00ffffff ff310381 6b07244d
696e6564 20627920 416e7450 6f6f6c6b
2f454231 2f414436 2f4e5941 2f332059
c36d7be1 550000df 320000ff ffffff02
38252e4d 00000000 66037132 1976a914
6d3a2e06 4c278b20 107a65da d847e8a9
88ac0000 00000000 0000266a 24aa21a9
edc11e8c dbd8d442 b27bf8f2 73395baa
83b5da4c 9c3d87fb c539dad7 42480437
10000000 00

Когда я вычисляю hashlib.sha256 (hashlib.sha256 (данные) .digest ()). Переваривать () на этих данных, я получаю правильный результат.

Вы, кажется, работает со следующим:
Код:
01000000 00010100 00000000 00000000
00000000 00000000 00000000 00000000
00000000 000000ff ffffff31 03816b07
244d696e 65642062 7920416e 74506f6f
6c6b2f45 42312f41 44362f4e 59412f33
2059c36d 7be15500 00df3200 00ffffff
ff023825 2e4d0000 00001976 a9146603
71326d3a 2e064c27 8b20107a 65dad847
e8a988ac 00000000 00000000 266a24aa
21a9edc1 1e8cdbd8 d442b27b f8f27339
5baa83b5 da4c9c3d 87fbc539 dad74248
04371001 20000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00

Обратите внимание, что дополнительные "0120" в конце следует дополнительным 36 байт "00"?
Также обратите внимание, что у вас есть дополнительный байт "00" между версией 4-байтовый (The 01000000) в начале, а "01" представляющее количество входов?
Тогда обратите внимание, что у вас есть дополнительные "01" Байт сразу же после в-счетчик?
Эти дополнительные байты в результате расчета по недействительному хэшу.
DannyHamilton сейчас офлайн Пожаловаться на DannyHamilton   Ответить с цитированием Мультицитирование сообщения от DannyHamilton Быстрый ответ на сообщение DannyHamilton

22 сентября 2017, 5:15:47 AM   # 3
 
 
Сообщения: 8
Цитировать по имени
цитировать ответ
по умолчанию Re: хеширования coinbase сделки, чтобы получить TXID

Благодарю. Это действительно странно. Я получаю сырую сделку от https://blockchain.info/tx/d0783f480343fb37b009b5e3db90ccad85e2c8314639de98b3bb66c396dd7915?format=hex , Я не пробовал получать данные из моего узла, так как я в настоящее время тестирования в regtest режима. Кстати, я с этой проблемой в regtest Aswell. Я буду смотреть больше в это, когда я прихожу домой с работы.
arch_stanton сейчас офлайн Пожаловаться на arch_stanton   Ответить с цитированием Мультицитирование сообщения от arch_stanton Быстрый ответ на сообщение arch_stanton

22 сентября 2017, 3:06:43 PM   # 4
 
 
Сообщения: 2002
Цитировать по имени
цитировать ответ
по умолчанию Re: хеширования coinbase сделки, чтобы получить TXID

- чик -
Я получаю сырую сделку от https://blockchain.info/...
- чик -

Blockchain.info имеет репутацию возникают проблемы. Я бы не рекомендовал когда-либо использовать их в качестве источника для чего-нибудь значительного.
DannyHamilton сейчас офлайн Пожаловаться на DannyHamilton   Ответить с цитированием Мультицитирование сообщения от DannyHamilton Быстрый ответ на сообщение DannyHamilton

22 сентября 2017, 4:47:53 PM   # 5
 
 
Сообщения: 8
Цитировать по имени
цитировать ответ
по умолчанию Re: хеширования coinbase сделки, чтобы получить TXID

Мой узел пара дней синхронизирования позади, так что я не могу получить сделку от нее еще. Но я пытался получать сырую сделку от электрума кошелька и chainquery.com, и все они имеют длинный хвост, начиная с 12 ... Где вы получаете вашу сырую сделку?
arch_stanton сейчас офлайн Пожаловаться на arch_stanton   Ответить с цитированием Мультицитирование сообщения от arch_stanton Быстрый ответ на сообщение arch_stanton

22 сентября 2017, 4:54:43 PM   # 6
 
 
Сообщения: 2002
Цитировать по имени
цитировать ответ
по умолчанию Re: хеширования coinbase сделки, чтобы получить TXID

Я пытался получать сырую сделку от электрума кошелька. , , и все они имеют длинный хвост, начиная с 12

Это удивительно. Может хотите сообщить о том, что. Звучит как ошибка Электрум, и они, как правило, очень хорошо о фиксации своих ошибок.

Где вы получите сырую сделку?

https://blockexplorer.com/api/rawtx/d0783f480343fb37b009b5e3db90ccad85e2c8314639de98b3bb66c396dd7915
DannyHamilton сейчас офлайн Пожаловаться на DannyHamilton   Ответить с цитированием Мультицитирование сообщения от DannyHamilton Быстрый ответ на сообщение DannyHamilton

22 сентября 2017, 4:56:19 PM   # 7
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: хеширования coinbase сделки, чтобы получить TXID

Вы, кажется, работает со следующим:
Код:
01000000 00010100 00000000 00000000
00000000 00000000 00000000 00000000
00000000 000000ff ffffff31 03816b07
244d696e 65642062 7920416e 74506f6f
6c6b2f45 42312f41 44362f4e 59412f33
2059c36d 7be15500 00df3200 00ffffff
ff023825 2e4d0000 00001976 a9146603
71326d3a 2e064c27 8b20107a 65dad847
e8a988ac 00000000 00000000 266a24aa
21a9edc1 1e8cdbd8 d442b27b f8f27339
5baa83b5 da4c9c3d 87fbc539 dad74248
04371001 20000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00

Обратите внимание, что дополнительные "0120" в конце следует дополнительным 36 байт "00"?
Также обратите внимание, что у вас есть дополнительный байт "00" между версией 4-байтовый (The 01000000) в начале, а "01" представляющее количество входов?
Тогда обратите внимание, что у вас есть дополнительные "01" Байт сразу же после в-счетчик?
Эти дополнительные байты в результате расчета по недействительному хэшу.
Но я пытался получать сырую сделку от электрума кошелька и chainquery.com, и все они имеют длинный хвост, начиная с 12 ...
Они, кажется, дают вам сделку в расширенном формате serialiation (следящие сериализации, когда есть свидетели). Это фактически неверно и в нарушении спецификации segwit в котором говорится, что свидетель сериализация сделки без свидетелей (как coinbase сделки) является наследие не удлиненный (без свидетелей) формат сериализация.

дополнительный 0001 между номером версии и количества входов маркерные и флаг байт для расширенной сериализации. 012000 ... в конце сделки является неправильными и недействительными свидетелями (это означает, что есть свидетель 1 пункта стек, который составляет 32 байт в длине и все 0. В ходе проверки, это будет толкнуло в стек, но это неправильно, чтобы иметь, что на всех).

Edit: Это было неправильно, объяснено в ниже должности.
achow101 сейчас офлайн Пожаловаться на achow101   Ответить с цитированием Мультицитирование сообщения от achow101 Быстрый ответ на сообщение achow101

22 сентября 2017, 5:03:55 PM   # 8
 
 
Сообщения: 2002
Цитировать по имени
цитировать ответ
по умолчанию Re: хеширования coinbase сделки, чтобы получить TXID

Они, кажется, дают вам сделку в расширенном формате serialiation (следящие сериализации, когда есть свидетели). Это фактически неверно и в нарушении спецификации segwit в котором говорится, что свидетель сериализация сделки без свидетелей (как coinbase сделки) является наследие не удлиненный (без свидетелей) формат сериализация.

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

22 сентября 2017, 5:43:54 PM   # 9
 
 
Сообщения: 8
Цитировать по имени
цитировать ответ
по умолчанию Re: хеширования coinbase сделки, чтобы получить TXID

Ок, отлично. Но моя установка regtest (версия 14.1) дает мне подобную сделку сырой coinbase:
Код:
020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff050282060101ffffffff020e642500000000002321031a70a95a57f63b7d63e46803d385fd483b77f7a71a7a753ffcf7aafb67ec3edcac0000000000000000266a24aa21a9edad9d9c439414e2d257fda34cdc00667c0ecd7d78256721a4178046b49ee7382f0120000000000000000000000000000000000000000000000000000000000000000000000000
Является ли ошибка реализации в узле? Может работать в 15.0?
arch_stanton сейчас офлайн Пожаловаться на arch_stanton   Ответить с цитированием Мультицитирование сообщения от arch_stanton Быстрый ответ на сообщение arch_stanton

22 сентября 2017, 6:25:01 PM   # 10
 
 
Сообщений: 12
Цитировать по имени
цитировать ответ
по умолчанию Re: хеширования coinbase сделки, чтобы получить TXID

Мой узел пара дней синхронизирования позади, так что я не могу получить сделку от нее еще. Но я пытался получать сырую сделку от электрума кошелька и chainquery.com, и все они имеют длинный хвост, начиная с 12 ... Где вы получаете вашу сырую сделку?

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

22 сентября 2017, 7:05:49 PM   # 11
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: хеширования coinbase сделки, чтобы получить TXID

Ок, отлично. Но моя установка regtest (версия 14.1) дает мне подобную сделку сырой coinbase:
Код:
020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff050282060101ffffffff020e642500000000002321031a70a95a57f63b7d63e46803d385fd483b77f7a71a7a753ffcf7aafb67ec3edcac0000000000000000266a24aa21a9edad9d9c439414e2d257fda34cdc00667c0ecd7d78256721a4178046b49ee7382f0120000000000000000000000000000000000000000000000000000000000000000000000000
Является ли ошибка реализации в узле? Может работать в 15.0?
Хм. Это интересно. Я могу воспроизвести это. Я буду исследовать и посмотреть, что с этим делать.

Несмотря на это, TXID рассчитывается из не-свидетелей сериализации сделки, так что вы должны вычистить части свидетелей этого и хэш остальных. Это поможет вам TXID.



Хорошо, таким образом, очевидно, что на самом деле ожидаемое поведение. Из BIP 141:
котировка
и свидетель Входные данные В coinbase в должен состоять из одного массива 32-байт для свидетель зарезервирован значение.
Это делается для обеспечения будущего расширения.
achow101 сейчас офлайн Пожаловаться на achow101   Ответить с цитированием Мультицитирование сообщения от achow101 Быстрый ответ на сообщение achow101

22 сентября 2017, 7:20:24 PM   # 12
 
 
Сообщения: 2002
Цитировать по имени
цитировать ответ
по умолчанию Re: хеширования coinbase сделки, чтобы получить TXID

- чик -
TXID рассчитывается из не-свидетелей сериализации сделки, так что вы должны вычистить части свидетелей этого и хэш остальных. Это поможет вам TXID.
- чик -

Это ключевая информация, чтобы забрать из этой темы. Achow101 поправьте меня, если я ошибаюсь, но я считаю, что это правда, независимо от того, является ли это наследство сделка или сделка SegWit. Эта нить научила меня, как определить сделки SegWit и как определить часть свидетелей сделки SegWit. Но относительно темы нити (вычисляющей TXID), ключ, чтобы удалить информацию свидетеля, прежде чем хэширования.
DannyHamilton сейчас офлайн Пожаловаться на DannyHamilton   Ответить с цитированием Мультицитирование сообщения от DannyHamilton Быстрый ответ на сообщение DannyHamilton

23 сентября 2017, 6:25:16 AM   # 13
 
 
Сообщения: 8
Цитировать по имени
цитировать ответ
по умолчанию Re: хеширования coinbase сделки, чтобы получить TXID

Хорошо, это большая информация. Но почему данные segwit только прикреплены к coinbase операции? Из случайных кирки сделок я проверяемых, это правда.
Изменить: К сожалению, читайте выше пост снова и получил его в этот раз. Спасибо за ваши ответы.
arch_stanton сейчас офлайн Пожаловаться на arch_stanton   Ответить с цитированием Мультицитирование сообщения от arch_stanton Быстрый ответ на сообщение arch_stanton



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW