Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
16 июля 2011, 2:48:41 PM   # 1
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)

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


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

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



У меня есть еще пара изображений приходят, показывая процесс OP_CHECKSIG, но они должны быть очищены, прежде чем я могу опубликовать их здесь. Пожалуйста, дайте мне знать, если вы обнаружите какие-либо ошибки, так что я могу исправить их.  

Наслаждайтесь!
-Eto

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


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


16 июля 2011, 3:03:15 PM   # 2
 
 
Сообщения: 812
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)

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





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

16 июля 2011, 7:21:43 PM   # 3
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)

Хорошо!  Проведя десяток часов выяснить процедуру OP_CHECKSIG, и разработка всех вопросов, порядок байт и другие детали в моем коде, я не решил никто другой должен пройти через это, как смешивать, как я был! Таким образом, я настоящим представить иллюстрированный путеводитель по OP_CHECKSIG (только с SIGHASH_ALL). Опять же, нажмите на него для полной детализации изображения.



Пожалуйста, дайте мне знать, если вы заметили какие-либо ошибки. Я хотел бы сделать эту диаграмму как можно точнее.

Кстати, это было много от работы! Так что, если вы получаете какую-то выгоду из этой диаграммы, пожалуйста, поддержите 0.1 BTC мне! Мой адрес в моей подписи. (И я хотел бы, чтобы показать свою подругу, что это возможно, чтобы получить компенсацию за все время я провожу на компьютере!)

Наслаждайтесь!
-Eto
etotheipi сейчас офлайн Пожаловаться на etotheipi   Ответить с цитированием Мультицитирование сообщения от etotheipi Быстрый ответ на сообщение etotheipi

16 июля 2011, 8:32:58 PM   # 4
 
 
Сообщений: 70
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)

Отлично сработано! 0,1 BTC отправлено
vector76 сейчас офлайн Пожаловаться на vector76   Ответить с цитированием Мультицитирование сообщения от vector76 Быстрый ответ на сообщение vector76

16 июля 2011, 10:56:32 PM   # 5
 
 
Сообщений: 42
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)

Хорошая работа! Только глюк я заметил, что значение поля в TxOut составляет 64 бита * * длинный, то есть 8 байт. Большинство других длин полей, как представляется, в байтах.

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

16 июля 2011, 11:09:50 PM   # 6
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)

Ack, хороший улов! Я обновил фотографию в Dropbox. Может быть, я буду держать его в Dropbox на некоторое время, пока я не получаю немного больше обратной связи, как это ...

Я понятия не имел OP_CHECKSIG не было настолько сложным, либо ... пока я не начал пытаться выяснить, что мне нужно хэш для проверки подписи. Это было похоже на 2-3 дня назад, и только сейчас я получил его!

-Eto

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

19 июля 2011, 12:20:30 AM   # 7
 
 
Сообщений: 59
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)

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

19 июля 2011, 8:00:53 AM   # 8
 
 
Сообщений: 28
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)

Спасибо, сэр. Документирование, что это большой плюс!
MountainMan сейчас офлайн Пожаловаться на MountainMan   Ответить с цитированием Мультицитирование сообщения от MountainMan Быстрый ответ на сообщение MountainMan

20 июля 2011, 9:15:39 PM   # 9
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)

Прежде всего, здесь есть ссылка на файл необработанного .svg я использую:  

https://dl.dropboxusercontent.com/u/1139081/BitcoinImg/BTC_Illustrations.svg

Это, как правило, как я подготовить изображения для презентаций, которые я делаю на работе. Я использую Inkscape для создания кучу диаграмм, а затем выберите каждый из них и "Файл-->Экспорт растровых изображений", С помощью этого файла там, он должен быть доступен для других, чтобы загрузить, модифицировать и повторно пост где-нибудь еще, если я попал под автобус завтра. Кстати, Inkscape удивительно. После того, как вы узнаете некоторые горячие клавиши, выравнивания, группирования, заполнить&инсульт и т.д., это очень приятно и эффективно использовать. Кривая обучения не очень крутой, и у них есть интерактивные обучающие программы, которые на самом деле Inkscape холсты, с объектами Inkscape для Вас, чтобы играть.

Во-вторых, здесь другая схема. Это не так сложно, как OP_CHECKSIG, но как только у меня было наметили, как это, я был в состоянии сделать тонну адрес магии в моем коде и получить его прямо на первую попытку. Не имея угадать порядок байтов на каждом шагу это большая помощь! Запоминание дополнительных байт, которые должны быть добавлены здесь и там помогают, тоже.



Полный размер здесь: https://dl.dropboxusercontent.com/u/1139081/BitcoinImg/PubKeyToAddrSmall.png
etotheipi сейчас офлайн Пожаловаться на etotheipi   Ответить с цитированием Мультицитирование сообщения от etotheipi Быстрый ответ на сообщение etotheipi

20 июля 2011, 10:27:39 PM   # 10
 
 
Сообщения: 140
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)



Это хорошо. Но я буду называть вас по длине адреса предварительно base58: это длина 25 байт, а не 24, а верхние байты всегда 0 для обычных адресов Bitcoin. Кроме того, процедура кодирования base58 будет предварять на 1 для каждого из предшествующего \ x00 байта в предварительно кодированный адресе, а не только один 1.
samr7 сейчас офлайн Пожаловаться на samr7   Ответить с цитированием Мультицитирование сообщения от samr7 Быстрый ответ на сообщение samr7

20 июля 2011, 10:36:00 PM   # 11
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)

Ах ха. Маленькие детали, которые я пропустил ...

Хорошо. Поэтому мне нужно, чтобы добавить «\ x00» байт в 24 байт двоичного адрес, чтобы сделать его 25-байтовый ... и это никогда не имело значение, потому что это большие байты поэтому расчет целого работает так же ...? Поэтому, когда бы этот байт не быть '\ x00'? И это то же самое \ x00, что вы говорите, отвечает за «1» в начале адреса? Там может быть несколько «\ x00» байт? 

Черт этих мелких деталей! Я буду обновлять диаграммы, когда я понимаю, сам.

-Eto

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

20 июля 2011, 11:09:52 PM   # 12
 
 
Сообщения: 140
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)

Хорошо. Поэтому мне нужно, чтобы добавить «\ x00» байт в 24 байт двоичного адрес, чтобы сделать его 25-байтовый ... и это никогда не имело значение, потому что это большие байты поэтому расчет целого работает так же ...? Поэтому, когда бы этот байт не быть '\ x00'?

Это верно!

Единственные интересные случаи для первого байта будучи отличны от нуля являются testnet адреса и namecoin адреса.

котировка
И это то же самое \ x00, что вы говорите, отвечает за «1» в начале адреса? Там может быть несколько «\ x00» байт? 

Да как! И, как вы упомянули, предшествующие нули игнорируются на этапе бинарного к base58-строке преобразования. Без этого правила, это не было бы возможным, чтобы иметь адрес, который начался с 11 или 111, и можно было бы, чтобы иметь адрес короче, чем 25 символов (что невозможно в текущей схеме).
samr7 сейчас офлайн Пожаловаться на samr7   Ответить с цитированием Мультицитирование сообщения от samr7 Быстрый ответ на сообщение samr7

21 июля 2011, 12:29:35 AM   # 13
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)

Как насчет того, если я просто изменить название сказать "Операции Bitcoin Main-Network Address"? Я не чувствую, что все дополнительные детали оправдано, это будет просто испоганить диаграмму, чтобы разместить случаи, что большинство людей никогда не столкнуться.

Постскриптум - Я только что обновил изображение, чтобы включить один \ X00 байт, и изменил название, как я только что описал. Дайте мне знать, что вы думаете.

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

21 июля 2011, 10:02:25 AM   # 14
 
 
Сообщения: 1232
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)

Эй, спасибо.

Определенно буду использовать это в моем проекте: http://forum.bitcoin.org/index.php?topic=30646
(Проверить это

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

21 июля 2011, 1:44:11 PM   # 15
 
 
Сообщения: 1232
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)

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

21 июля 2011, 1:49:15 PM   # 16
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)

Пять или шесть должностей до Я включил .svg файл, содержащий все изображения до сих пор. Это своего рода беспорядок, но все это есть. 

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

26 июля 2011, 12:12:21 PM   # 17
 
 
Сообщения: 672
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)

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

После этого самостоятельно документированы разными людьми (которые все имеют свой собственный стиль визуализации и объяснить то же самое) является большим подспорьем. Я считаю, особенно эту тему (OP_CHECKSIG & друзья) заслуживает более explanaition и эту нить и отличные диаграммы являются очень ценным вкладом.

Я надеюсь, что больше из тех людей горя, уже полностью поняло, что будет пытаться документировать и передавать свои знания и, возможно, также пытаюсь объяснить свои слова, не только то, что делает этот код, но и почему некоторые шаги необходимы или сделать именно так, как они делаются или найти еще более эффективные способы визуализации, что происходит. Я лично, конечно, попытаться сделать это, как только у меня есть рабочая реализация OP_CHECKSIG (я все еще занят скучной implementtion протокола сетевого и ПЕРСИСТЕНТНОСТЬ слоя, но в какой-то момент мне нужно будет начать работу по проверке сделки).
prof7bit сейчас офлайн Пожаловаться на prof7bit   Ответить с цитированием Мультицитирование сообщения от prof7bit Быстрый ответ на сообщение prof7bit

26 июля 2011, 10:58:06 PM   # 18
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)

Я произвел несколько часовые семинары на работе, с целью добавления чрезвычайно подробные зрительные образы для описания механизмов криптографии. Так, для меня, эти визуализации были довольно легко, как я стал чрезвычайно эффективным с помощью Inkscape. Твердая часть была понимание алгоритмов для начала! Когда я, наконец, получил свой OP_CHECKSIG код работает, я знал, что я мог бы использовать свои навыки Inkscape, чтобы принести пользу другим (и я сам, так как эти изображения прекрасно подходят для моей ссылки).

Если вы чувствуете, что есть больше алгоритмов / концепций, которые могли бы извлечь выгоду из такой визуализации, я буду счастлив, чтобы произвести их, до тех пор, как я понимаю. Возможно, другие могут помочь, вводя эти изображения в вики в соответствующих местах. Конечно, если вы считаете, что есть ошибка в одном из них, пожалуйста, дайте мне знать.

На этой ноте я хотел бы сделать несколько вариантов OP_CHECKSIG диаграммы, по одному для каждого HashType. К сожалению, я не в полной мере понять их сам. Мне нужно SIGHASH_NONE, SIGHASH_SINGLE, SIGHASH_ANYONECANPAY. Я прочитал описание, но до сих пор не понимаю их достаточно хорошо, чтобы завершить визуализацию. Возможно, кто-то, что действительно может понять, объяснить их в контексте моей диаграммы SIGHASH_ALL.

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

27 июля 2011, 3:54:07 AM   # 19
 
 
Сообщения: 1232
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)

я Wouldnt беспокоиться о них еще нет. которые могут не использоваться в любом месте blockchain и они для будущих типов транзакций. они управляют, какими родители ТХ Арентов хэшируются.

вместе с ними вы можете сделать заменяемые операции с использованием порядковых номеров, например.

Во всяком случае, если кто-то хочет немного сырой код, чтобы сделать OP_CHECKSIG затем libbitcoin имеет модульное тестирование по тестам / EC-key.cpp (сделать ес-ключ && ./bin/tests/ec-key) ... Будет ли загружать завтра вместо с рабочей OP_CHECKSIG моей системы скриптового однажды я очищено все это внутренне:

Код:
#включают
#включают
#включают
#включают
#включают
#включают
#включают
#включают
#включают
#включают
используя libbitcoin :: elliptic_curve_key;
используя libbitcoin :: сериалайзер;
используя libbitcoin :: hash_digest;
используя libbitcoin :: data_chunk;
используя libbitcoin :: LOG_INFO;
используя libbitcoin :: log_fatal;

Int основных ()
{
    сериализатору сс;
    // BLK номер 170, ТЕ 1, вход 0
    // версия = 1
    ss.write_4_bytes (1);
    // 1 входы
    ss.write_var_uint (1);

    // вход 0
    // prevout хэш
    ss.write_hash (hash_digest {0x04, 0x37, 0xcd, 0x7F, 0x85, 0x25, 0xce, 0xed, 0x23, 0x24, 0x35, 0x9C, 0x2d, 0x0B, 0xa2, 0x60, 0x06, 0xd9, 0x2d, 0x85, 0x6a, 0x9C, 0x20, 0xFA, 0x02, 0x41, 0x10, 0x6e, 0xe5, 0xA5, 0x97, 0xc9});
    // индекс prevout
    ss.write_4_bytes (0);

    // сценарий ввода после запуска OP_CHECKSIG для этого ТХ один
    // OP_CHECKSIG опкод
    data_chunk raw_data;
    raw_data = {0x04, 0x11, 0xdb, 0x93, 0xE1, 0xdc, 0xdb, 0x8a, 0x01, 0x6b, 0x49, 0x84, 0x0F, 0x8c, 0x53, 0xbc, 0x1E, 0xb6, 0x8a, 0x38, 0x2e, 0x97, 0xb1, 0x48 , 0x2e, 0xca, 0xd7, 0xb1, 0x48, 0xa6, 0x90, 0x9A, 0x5c, 0xb2, 0xE0, 0xea, 0xdd, 0xfb, 0x84, 0xCC, 0xf9, 0x74, 0x44, 0x64, 0xf8, 0x2e, 0x16, 0x0B, 0xFA , 0x9b, 0x8b, 0x64, 0xf9, 0xd4, 0xc0, 0x3f, 0x99, 0x9b, 0x86, 0x43, 0xf6, 0x56, 0xb4, 0x12, 0xa3};
    data_chunk raw_script;
    raw_script = data_chunk ();
    raw_script.push_back (raw_data.size ());
    libbitcoin :: extend_data (raw_script, raw_data);
    raw_script.push_back (172);
    ss.write_var_uint (raw_script.size ());
    ss.write_data (raw_script);
    // последовательность
    ss.write_4_bytes (0xffffffff);

    // 2 выхода для этого TX
    ss.write_var_uint (2);

    // выход 0
    ss.write_8_bytes (1000000000);
    // Скрипт для вывода 0
    raw_data = {0x04, 0xAE, 0x1a, 0x62, 0xfe, 0x09, 0xc5, 0xf5, 0x1b, 0x13, 0x90, 0x5f, 0x07, 0xf0, 0x6b, 0x99, 0xa2, 0xf7, 0x15, 0x9b, 0x22, 0x25, 0xf3, 0x74 , 0xcd, 0x37, 0x8d, 0x71, 0x30, 0x2f, 0xa2, 0x84, 0x14, 0xe7, 0xAA, 0xb3, 0x73, 0x97, 0xf5, 0x54, 0xa7, 0xDF, 0x5f, 0x14, 0x2c, 0x21, 0xc1, 0xB7, 0x30 , 0x3b, 0x8a, 0x06, 0x26, 0xF1, 0xBA, 0xDE, 0xd5, 0xc7, 0x2a, 0x70, 0x4F, 0x7e, 0x6c, 0xd8, 0x4c};
    // когда данные < 75, мы можем просто написать его длина в один байт ( «специальный»
    // опкоды)
    raw_script = data_chunk ();
    raw_script.push_back (raw_data.size ());
    libbitcoin :: extend_data (raw_script, raw_data);
    // OP_CHECKSIG
    raw_script.push_back (172);
    // теперь на самом деле написать сценарий
    ss.write_var_uint (raw_script.size ());
    ss.write_data (raw_script);

    // выход 0
    ss.write_8_bytes (4000000000);
    // Скрипт для вывода 0
    raw_data = {0x04, 0x11, 0xdb, 0x93, 0xE1, 0xdc, 0xdb, 0x8a, 0x01, 0x6b, 0x49, 0x84, 0x0F, 0x8c, 0x53, 0xbc, 0x1E, 0xb6, 0x8a, 0x38, 0x2e, 0x97, 0xb1, 0x48 , 0x2e, 0xca, 0xd7, 0xb1, 0x48, 0xa6, 0x90, 0x9A, 0x5c, 0xb2, 0xE0, 0xea, 0xdd, 0xfb, 0x84, 0xCC, 0xf9, 0x74, 0x44, 0x64, 0xf8, 0x2e, 0x16, 0x0B, 0xFA , 0x9b, 0x8b, 0x64, 0xf9, 0xd4, 0xc0, 0x3f, 0x99, 0x9b, 0x86, 0x43, 0xf6, 0x56, 0xb4, 0x12, 0xa3};
    // когда данные < 75, мы можем просто написать его длина в один байт ( «специальный»
    raw_script.push_back (raw_data.size ());
    libbitcoin :: extend_data (raw_script, raw_data);
    // OP_CHECKSIG
    raw_script.push_back (172);
    // теперь на самом деле написать сценарий
    ss.write_var_uint (raw_script.size ());
    ss.write_data (raw_script);

    // Конец 2 выходов

    // Locktime
    ss.write_4_bytes (0);

    // hash_type_code записи
    ss.write_4_bytes (1);

    // шестнадцатеричного на экран
    LOG_INFO () << "хеширования:";
    {
        автоматическое log_obj = LOG_INFO ();
        log_obj << станд :: шестигранный;
        для (INT вал: ss.get_data ())
            log_obj << станд :: setfill ( '0') << станд :: setw (2) << вал << ' «;
    }
    LOG_INFO ();

    data_chunk raw_tx = {0x01, 0x00, 0x00, 0x00, 0x01, 0xc9, 0x97, 0xA5, 0xe5, 0x6e, 0x10, 0x41, 0x02, 0xFA, 0x20, 0x9C, 0x6a, 0x85, 0x2d, 0xd9, 0x06, 0x60, 0xa2, 0x0B, 0x2d, 0x9C, 0x35, 0x24, 0x23, 0xed, 0xce, 0x25, 0x85, 0x7F, 0xcd, 0x37, 0x04, 0x00, 0x00, 0x00, 0x00, 0x43, 0x41, 0x04, 0x11, 0xdb, 0x93, 0xE1, 0xdc, 0xdb, 0x8a, 0x01, 0x6b, 0x49, 0x84, 0x0F, 0x8c, 0x53, 0xbc, 0x1E, 0xb6, 0x8a, 0x38, 0x2e, 0x97, 0xb1, 0x48, 0x2e, 0xca, 0xd7, 0xb1, 0x48, 0xa6, 0x90, 0x9A, 0x5c, 0xb2, 0xE0, 0xea, 0xdd, 0xfb, 0x84, 0xCC, 0xf9, 0x74, 0x44, 0x64, 0xf8, 0x2e, 0x16, 0x0B, 0xFA, 0x9b, 0x8b, 0x64, 0xf9, 0xd4, 0xc0, 0x3f, 0x99, 0x9b, 0x86, 0x43, 0xf6, 0x56, 0xb4, 0x12, 0xa3, 0xac, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00, 0xca, 0x9A, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x43, 0x41, 0x04, 0xAE, 0x1a, 0x62, 0xfe, 0x09, 0xc5, 0xf5, 0x1b, 0x13, 0x90, 0x5f, 0x07, 0xf0, 0x6b, 0x99, 0xa2, 0xf7, 0x15, 0x9b, 0x22, 0x25, 0xf3, 0x74, 0xcd, 0x37, 0x8d, 0x71, 0x30, 0x2f, 0xa2, 0x84, 0x14, 0xe7, 0xAA, 0xb3, 0x73, 0x97, 0xf5, 0 x54, 0xa7, 0xDF, 0x5f, 0x14, 0x2c, 0x21, 0xc1, 0xB7, 0x30, 0x3b, 0x8a, 0x06, 0x26, 0xF1, 0xBA, 0xDE, 0xd5, 0xc7, 0x2a, 0x70, 0x4F, 0x7e, 0x6c, 0xd8, 0x4c, 0xac, 0x00, 0x28, 0x6b, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x43, 0x41, 0x04, 0x11, 0xdb, 0x93, 0xE1, 0xdc, 0xdb, 0x8a, 0x01, 0x6b, 0x49, 0x84, 0x0F, 0x8c, 0x53, 0xbc, 0x1E, 0xb6, 0x8a, 0x38, 0x2e, 0x97, 0xb1, 0x48, 0x2e, 0xca, 0xd7, 0xb1, 0x48, 0xa6, 0x90, 0x9A, 0x5c, 0xb2, 0xE0, 0xea, 0xdd, 0xfb, 0x84, 0xCC, 0xf9, 0x74, 0x44, 0x64, 0xf8, 0x2e, 0x16, 0x0B, 0xFA, 0x9b, 0x8b, 0x64, 0xf9, 0xd4, 0xc0, 0x3f, 0x99, 0x9b, 0x86, 0x43, 0xf6, 0x56, 0xb4, 0x12, 0xa3, 0xac, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00};
    BITCOIN_ASSERT (raw_tx == ss.get_data ());

    hash_digest tx_hash = libbitcoin :: generate_sha256_hash (ss.get_data ());

    data_chunk Публичных {0x04, 0x11, 0xdb, 0x93, 0xE1, 0xdc, 0xdb, 0x8a, 0x01, 0x6b, 0x49, 0x84, 0x0F, 0x8c, 0x53, 0xbc, 0x1E, 0xb6, 0x8a, 0x38, 0x2e, 0x97, 0xb1, 0x48 , 0x2e, 0xca, 0xd7, 0xb1, 0x48, 0xa6, 0x90, 0x9A, 0x5c, 0xb2, 0xE0, 0xea, 0xdd, 0xfb, 0x84, 0xCC, 0xf9, 0x74, 0x44, 0x64, 0xf8, 0x2e, 0x16, 0x0B, 0xFA , 0x9b, 0x8b, 0x64, 0xf9, 0xd4, 0xc0, 0x3f, 0x99, 0x9b, 0x86, 0x43, 0xf6, 0x56, 0xb4, 0x12, 0xa3};
    // Оставить из последнего байта, так как это hash_type_code (SIGHASH_ALL в этом
    // дело)
    data_chunk подпись {0x30, 0x44, 0x02, 0x20, 0x4e, 0x45, 0xE1, 0x69, 0x32, 0xb8, 0xAF, 0x51, 0x49, 0x61, 0xa1, 0xd3, 0xa1, 0xa2, 0x5f, 0xDF, 0x3f, 0x4F, 0x77, 0x32 , 0xe9, 0xd6, 0x24, 0xc6, 0xc6, 0x15, 0x48, 0xab, 0x5f, 0xb8, 0xcd, 0x41, 0x02, 0x20, 0x18, 0x15, 0x22, 0xec, 0x8e, 0xca, 0x07, 0xDE, 0x48, 0x60, 0xa4 , 0xac, 0xdd, 0x12, 0x90, 0x9d, 0x83, 0x1c, 0xc5, 0x6c, 0xBB, 0xac, 0x46, 0x22, 0x08, 0x22, 0x21, 0xa8, 0x76, 0x8d, 0x1D, 0x09};
    BITCOIN_ASSERT (signature.size () == 70);

    elliptic_curve_key ключ;
    если (! key.set_public_key (Публичный))
    {
        log_fatal () << "не в состоянии установить открытый ключ EC";
        вернуться -1;
    }

    LOG_INFO () << "checksig возвращается: " << (Key.verify (tx_hash, подпись)? "правда" : "ложный");
    возвращать 0;
}


Кстати, что это первый провел ТХ в Bitcoin из блока 170,

http://blockexplorer.com/block/00000000d1145790a8694403d4063f323d499e655c83426834d4ce2f8dd4a2ee
http://blockexplorer.com/tx/f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16
genjix сейчас офлайн Пожаловаться на genjix   Ответить с цитированием Мультицитирование сообщения от genjix Быстрый ответ на сообщение genjix

27 июля 2011, 4:03:32 AM   # 20
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: О-о-проводные байты карты OP_CHECKSIG диаграмма (пожертвование знаний!)

Для моего OP_CHECKSIG кода я тестировал с помощью следующих двух операций:

Тх2 использует выходной сигнал из Тх1. Я хотел бы отдать должное тому, кто дал мне это ... но я не могу вспомнить ....

Код:
tx1raw = «\ x01 \ x00 \ x00 \ x00 \ x02 \ X0F {\ x7f \ xb8mL \ xf6F \ x05 \ x8eA \ XD3 \ XB0 \ X07 \ x18? \ xdfysn \ xd1 \ X9b * й \ Xab \ xc5 \ XBD \ x04 \ xb1n \ x91 \ x00 \ x00 \ x00 \ x00 \ x8cI0F \ x02! \ x00 \ XB2 \ xee9 \ XD2 \ хк \ xc2 \ xe5TJW \ xc3 \ X0F {NI \ XCF \ XB8""фм \ x03O \ xb9 \ x0e"4 \ x8e \ x17 \ XE2 \ x8e \ X0F \ x02! \ X00 \ XDB \ x91 \ xc3 \ x19 \ x9c \ xc7 \ XB4 \ x1dMz \ хк \ xe0 \ XCC \ XB4 \ xce \ XB4 $ \ xb9GmQ \ xc0aBX = \ XAFS \ xce \ п \ x9bf \ x01A \ x04 \ xc3"\ X15 \ xA9 \ t0 \ x11 \ XBD\ XFB \ xd8- \ x149 \ XBE \ x01A \ x04 \ xc3"\ X15 \ xA9 \ t0 \ x11 \ XBDtx2raw = "\ X01 \ x00 \ x00 \ x00 \ x030 \ xf3p \ x1f \ X9b \ xc4dU / ПОВ \ x91 \ x04 \ x08 \ x17 \ xcewz \ xd5 \ фиксировано \ xe1nR \ x9f \ XCD \ x0c \ x0e \ x94 \ x91V \ x94 \ x00 \ x00 \ x00 \ x00 \ x8cI0F \ x02! \ x00 \ xf5tk \ x0b% OZ7 \ xe7RQE \ x9cz # \ XB6 \ XDF \ XCB \ x86 \ X8A \ xc7F ~ \ XDD \ x9ao \ XDD \ x1d \ x96 \ x98q \ XBE \ x02! \ x00 \ x88 \ x94 \ X8A \ хеа) \ XB6 \ x91a \ xca4 \ x1cI \ xc0&\ X86 \ xa8 \ x1d \ x8c \ xbbs \ x94 \ X0F \ x91 \ x7f \ xa0 \ xedqThm>[\ X01A \ x04G \ xd4 \ x90V \ x1f9l \ X8A \ x9e \ хк \ x14Hk \ xc1 \ x98 \ x88K \ xa1 \ x83y \ XBC \ XAC. \ X0b \ XE2 \ xd8RQ4 \ xabt / 0 \ x1a \ X9a \ xca6 `п]) \ Хаа # \ X8A \ x9e) \ x93 \ x001PB = \ XF6 \ x92Ecd-J \ XFE \ X9b \ XF4 \ XFE (\ XFF \ XFF \ XFF \ xffr \ x14 + \ xf7hl \ xE9, м \ xe5 \ xb73e \ XBF \ xb9 \ xd5 \ X9b \ XB6 \ x0c, \ x80 \ x98-YX \ xc1 \ XE6 \ XA3 \ XB0 \ x8e \ xa6 \ x89 \ x00 \ x00 \ x00 \ x00JI0F \ x02! \ x00 \ XBC \ xe4: \ XD3 \ XAC \ xbcy \ XB0 $ ~ T \ xc8 \ xc9 \ x1e \ XAC \ X1C \ xf9 \ x03u \ x05 \ x00 \ x0e \ x01 \ xd1 \ XFD \ x81 \ x18T \ xd8 [\ xc2 \ ! x1a \ x02 \ x00 \ x99 * оо / \ xebob \ xd3po; \ X9a \ хаа \ XB8 \ x8d \ x9f \ x112 \ x95j \ x1d \ XFF \ xA9&\ XcdUn \ xd5S` \ XDF \ x01 \ XFF \ XFF \ XFF \ XFF \ XD2 \ x81 (\ Xbb \ XB6 | \ X1C = \ пс \ x0c \ xc6 \ x19 \ XDc ~ {\ xeaV \ XAC \ x19 \ xa1 \ XDA \ XB1' \ xc6, х \ РФА \ x1bc, \ x00 \ x00 \ x00 \ x00IH0E \ x02 \ x97W6 \ x81aSw \ x08 \ XFD) \ xd8 \ X9b \ XB1 \ xE9 \ xd6H \ x00yI \ XEC \ XFD \ xedx \ x9bQ \ xa9c $ \ xcbe \ x18 \ x02 \ x00 \ XCD \ X0F |! 0 9 \ x16H + п \ x16m \ x8aO + \ x98 \ x1fw ~ \ XB1 \ x84 \ XCD \ x8aI_ \ X1B = 6 \ x90 \ XFB \ xbf- \ x01 \ XFF \ XFF \ XFF \ XFF \ x01 \ x00 \ xa6 \ xf7_ \ x02 \ x00 \ x00 \ x00 \ x19v \ xA9 \ x14 \ x9e5 \ xd9<ж \ x92 \ XBD \ XCA \ xadV \ x97 \ XDD \ xeb \ xf0CS \ xd9 \ xa5 \ xe1 \ x96 \ x88 \ XAC \ x00 \ x00 \ x00 \ x00"

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



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW