Существуют идентификаторы транзакций (32-байтовые хэш TX тела) на blockchain.info, написанный в обратном направлении, то есть с обратными байтами?
Или это ошибка с моей стороны, и я его назад сам?
|
![]() |
# 1 |
Сообщений: 42
цитировать ответ |
![]()
Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome" Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e подробнее... Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru Существуют идентификаторы транзакций (32-байтовые хэш TX тела) на blockchain.info, написанный в обратном направлении, то есть с обратными байтами?
Или это ошибка с моей стороны, и я его назад сам? |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 2 |
Сообщений: 42
цитировать ответ |
![]() |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 3 |
Сообщения: 141
цитировать ответ |
![]() TX идентификаторы не записываются в обратном направлении. Возможно, вы имели в виду блок хэш? Блок хэш проходит через изменения порядка байт.
http://en.wikipedia.org/wiki/Endianness |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 4 |
Сообщений: 42
цитировать ответ |
![]() Нет, я не имею в виду блок хэш. Транзакция хэш (sha256 (sha256 (TX))), используемый
в и сообщения и определить входы транзакций. Хорошо. Возьмите этот пример TX сообщение: Код: 00000000 f9 быть b4 d9 78 00 74 00 00 00 00 00 00 00 00 00 | .... ТХ .......... | Существует ТЙ хэш используется как средство для идентификации ввода ОГО:00000010 02 01 00 00 90 43 5a 1c 01 00 00 00 01 21 шд ае | ..... CZ .......!. | 00000020 63 83 d4 8с 04 47 14 центибар 6а 2f 48 83 4d в.п. фб 75 | с .... G..j / H.M..u | 00000030 53 90 объявление 7e 76 5e 48 FC 24 бф 0e 20 59 00 00 00 |.. S .. ~ v ^ H $ Y. ... | 00000040 00 8b 48 30 45 02 20 69 93 20 23 будет и далее 4c ЕВ 21 | ..H0E. я. .. # L.! | 00000050 79 E7 b7 d1 ча 57 D7 1b 5e с5 20 91 45 63 ес б3 | у .... Ш .. ^. .ec .. | 00000060 53 00 й 1d a0 6a b7 02 21 00 f7 e4 39 Fe 2f аа | S .... J .. ... 9 ./!. | 00000070 83 с7 кд 72 кд 1f b1 79 8f 5а е6 EB CB 73 2e 1d | ... г ... y.Z ... с .. | 00000080 81 c7 f6 75 9e 30 15 62 72 01 41 6б 04 e7 d5 08 | ... 0u..brk.A .... | 00000090 09 71 D8 бб f0 d1 8f 25 35 шт 09 5f 63 16 6e а2 | .q .....% 5 .._ c.n. | 000000a0 0f 75 75 71 91 64 1a объявления a4 3d 0c 26 c1 50 b7 f8 | .uuq.d ... =.&.P .. | 000000b0 объявление от 67 3c ая e1 5C 59 1F 9c F6 4a 31 11 e0 61 | ..g<.. \ Y ... J1..a | 000000c0 да фб ср 00 52 d2 9с 35 21 f1 52 от f0 FF FF FF | .... R..5 .R .....! | 000000d0 Ф.Ф. 02 40, 4b, 4с 00 00 00 00 00 19 76 a9 14 06 f1 | .. @ KL ...... v .... | 000000e0 b6 70 79 92 56 1f Б.Ф. FC 89 8f 47 42 71 с2 2f 4b | .py..V .... GBq./K | 000000f0 b9 49 88 переменного тока c2 FD 00 00 18 00 00 00 19 76 a9 14 | .I ........... v .. | 00000100 16 дБ фб 2a d4 f8 2с быть d2 0b 3a 32 44 94 00 f4 | ... * .., ...: 2D ... | 00000110 быть 97 6d эф 88 переменного тока 00 00 00 00 | ..m ....... | bd21ae6383d48c044714cb6a2f48834dcefb755390ad7e765e48fc24bf590e20 Если вы будете искать его на blockchain.info, вы не найдете ничего. Если вы будете искать его байт-негативы (200e59bf24fc485e767ead905375fbce4d83482f6acb1447048cd48363ae21bd), ты найдешь сделка в вопросе. Это, кажется, безошибочно отменено для меня. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 5 |
Сообщения: 141
цитировать ответ |
![]() Кажется, я ошибся. Я смотрел на TXID и не понимал, порядок байт уже изменился.
|
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 6 |
Сообщений: 84
цитировать ответ |
![]() Это в Литтл порядке Endian байт (младший байт первого) в протоколе, но это написано в Big Endian порядка байтов (наиболее значащий байт первый), как и большинство других номеров на английском языке обычно являются.
|
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 7 |
Сообщений: 42
цитировать ответ |
![]() Порядок байтов имеют смысл, когда мы говорим о целых числах. ТХ идентификаторы не являются целыми числами, а массив байтов (символов).
|
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 8 |
Сообщений: 84
цитировать ответ |
![]() ИД транзакции является очень большим числом. Или вы могли бы сказать, что целое число также является массив байт.
|
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 9 |
Сообщений: 42
цитировать ответ |
![]() Нет.
Код: 32 гашиш символ [32] Хэш ссылочной сделки. Это не имеет никакого смысла лечить (и печать) как целые.Но, похоже, этот странный обычай (реверсивной represenation ТХ идентификаторами) уходит вглубь истории Bitcoin. Кто-то (Satoshi?) Реализовать это таким образом, и каждый раз следующим образом. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 10 |
Сообщений: 84
цитировать ответ |
![]() Криптографический хэш большое число. Что C ++ целочисленного типа вы будете использовать для хранения 256-разрядное целого числа, кроме массива меньшего целого типа (полукокс в данном случае)?
|
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 11 |
Сообщений: 42
цитировать ответ |
![]() Код: Криптографической хэш-функции является хэш-функция; то есть алгоритм, который принимает произвольный блок данных и возвращает фиксированный размер [б] битовая строка [/ B] Это не целое число, то бит (байт) строка.Вычисление хэш определяется с помощью битовых операций со строками, т.е. сдвигов и операцию XOR. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 12 |
Сообщения: 154
цитировать ответ |
![]() Код: Криптографической хэш-функции является хэш-функция; то есть алгоритм, который принимает произвольный блок данных и возвращает фиксированный размер [б] битовая строка [/ B] Это не целое число, то бит (байт) строка.Вычисление хэш определяется с помощью битовых операций со строками, т.е. сдвигов и операцию XOR. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 13 |
Сообщения: 653
цитировать ответ |
![]() Если вы хотите, чтобы прочитать фактическое определение SHA256, смотрите здесь:
http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf или здесь: http://tools.ietf.org/html/rfc6234 Хэш должен быть 256bit целое. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 14 |
Сообщений: 84
цитировать ответ |
![]() Код: Криптографической хэш-функции является хэш-функция; то есть алгоритм, который принимает произвольный блок данных и возвращает фиксированный размер [б] битовая строка [/ B] Это не целое число, то бит (байт) строка.Вычисление хэш определяется с помощью битовых операций со строками, т.е. сдвигов и операцию XOR. Имейте в виду, что число также является строка битов в двоичном компьютере, поэтому определение Википедии криптографической хэш-функции, является точной, но неполной при обсуждении конкретной хэш-функции, как SHA-256. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 15 |
Сообщений: 42
цитировать ответ |
![]() Просьба предоставить точную цитату. Это говорит о том, 8-, 32- и 64-разрядных целых чисел, но я не вижу ничего о хэш быть 256bin целое.
SHA-256 (хэш-функция используется для вычисления Bitcoin идентификаторы транзакций) обрабатывает значение хеш-функции в виде целого числа. Просьба предоставить достоверную цитату. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 16 |
Сообщений: 84
цитировать ответ |
![]() Вы правы, r.willis. Спецификации ША не явно указывают, что SHA-256 имеет представляет собой 256-битовое целое число.
Тем не менее, как программист, я, как правило, "читай между строк" и упростить функции для управления их сложности и попытаться лучше понять их. В случае SHA, спецификация указывает, что все слова сохраняются и представлены в тупоконечника порядке, поэтому я пришел к логическому выводу, что SHA-256 выводит 256-разрядное целое число, с H0 является наиболее значимым 32- битовое слово и H7 наименее значимы (H0 через H7 добавляются слева направо). Это также упрощает понимание того, как протокол Bitcoin обрабатывает хэш строки битов SHA-256 - как целое число хранится в Little Endian. Это согласуется с остальной частью протокола, поскольку большинство каждый целое число хранится в Литтл-Endian порядка байтов (IP-адреса и номера портов TCP быть заметными исключениями). Работа с хэш как массив 32 полукокса становится простым: хэш [0] является наименее значащим разрядом (основание-256 цифр, так как это символ 8 бит в ширину) и хэш [31] является наиболее значащей цифрой. Для того, чтобы распечатать хэш, это простой вопрос распечатки хэша [31] с помощью хэша [0], так как западная конвенция писать номера в Big-Endian порядка. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 17 |
Сообщений: 42
цитировать ответ |
![]() Существует ничего мало-младшему в SHA-256. Первый байт первый байт, и должны быть напечатан в качестве таковых (как в шестнадцатеричной свалке я обеспечил, например).
Один из подходов, чтобы избавиться от такого несоответствия будет использовать кодировку base58 (который явно рассматривает ценности как обратный порядок байт), с новыми версией / приложением байтами. Это будет короче, тоже. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 18 |
Сообщения: 154
цитировать ответ |
![]() Существует ничего мало-младшему в SHA-256. Первый байт первый байт, и должны быть напечатан в качестве таковых (как в шестнадцатеричной свалке я обеспечил, например). Это не было бы короче вообще. С основанием 58, то есть 58 возможных значений для каждого байта, с байтовой строкой вы получаете 256 значений для каждого байта. Было бы только выглядеть короче при печати.Один из подходов, чтобы избавиться от такого несоответствия будет использовать кодировку base58 (который явно рассматривает ценности как обратный порядок байт), с новыми версией / приложением байтами. Это будет короче, тоже. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 19 |
Сообщений: 42
цитировать ответ |
![]() Для человеческого восприятия формы, я имею в виду. Теперь они будут напечатаны в виде байтовых обращенный шестнадцатеричных значений.
|
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 20 |
Сообщений: 84
цитировать ответ |
![]() Существует ничего мало-младшему в SHA-256. Первый байт первый байт, и должны быть напечатан в качестве таковых (как в шестнадцатеричной свалке я обеспечил, например). Если мы рассмотрим хэш SHA-256, чтобы быть целым числом, оно может храниться в любом порядке байтов. В магазинах протокола Bitcoin это в Little Endian.Один из подходов, чтобы избавиться от такого несоответствия будет использовать кодировку base58 (который явно рассматривает ценности как обратный порядок байт), с новыми версией / приложением байтами. Это будет короче, тоже. Целое число в вашем примере 200e ... 21bd. В Little Endian порядка следования байт это последовательность байт шды 21 ... 0e 20. Это так же, как сохранение / отправка меньшего числа, как 12345678, как 78 56 34 12 в Little Endian. Единственное отличие состоит в число битов. |
![]() ![]() |
![]() ![]() ![]() |