Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
20 сентября 2016, 4:39:13 AM   # 1
 
 
Сообщения: 428
Цитировать по имени
цитировать ответ
по умолчанию Re: создание сырец без знака ТХ Обновлен пример

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Обновление 2016-11-29:
Так как это пример помог мне, что я решил добавить его здесь для всех, кто может быть заинтересован в будущем.

Прокрутка вниз к новым вопросам

следуя этому: http://bitcoin.stackexchange.com/a/32695
TL; DR: что "76 а9 14" а также "88 переменного тока" который добавляется к hash160 и почему он отличается при использовании других кошельков, чтобы сделать сырой ТХ.

я зашел так далеко, как создание сырьевой беззнаковое ТХ себе:
Код:
01000000
01
902dbe4ae9a20b85f53cb6813396e6aae272ee4e3b699e8c2498d2ce8f5833ee
00000000
19
76a914 fdf8bdeae5fe5fb35328dc04a95b17b8ed70bed1 88ac
FFFFFFFF
01
c027090000000000
19
76a91437ba8314fcd8bbbf49ed9a1d6d27f9797e7d60f188ac
00000000

я также получить то же самое с https://coinb.in/#newTransaction

но с Электрум (так как это единственный кошелек у меня есть) я получаю это:
Код:
01000000
01
902dbe4ae9a20b85f53cb6813396e6aae272ee4e3b699e8c2498d2ce8f5833ee
00000000
19
01ff16fd00 fdf8bdeae5fe5fb35328dc04a95b17b8ed70bed1
FFFFFFFF
01
c027090000000000
19
76a91437ba8314fcd8bbbf49ed9a1d6d27f9797e7d60f188ac
00000000

так как вы можете видеть первый метод использования 76a914 {} Hash160 88ac формат
Весь Электрум использует 01ff16fd00 {} Hash160 формат

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


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


20 сентября 2016, 4:52:28 AM   # 2
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: создание сырец без знака ТХ Обновлен пример

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





76a914 ... 88ac является стандартной формой для вывода сценария с оплатой в-Публичным-хэш. Когда вы подписываете сделку, выход скрипт переходит в scriptsig, следовательно, этот формат там. Вы заметите его вниз выходами.

Что же касается того, что делает Электрум, я не уверен, это не кажется, что это должно работать, моя догадка, что это что-то внутреннее, чтобы помочь ему понять вещи. Я предлагаю взглянуть через исходный код (https://github.com/spesmilo/electrum), Чтобы увидеть, что происходит.
achow101 сейчас офлайн Пожаловаться на achow101   Ответить с цитированием Мультицитирование сообщения от achow101 Быстрый ответ на сообщение achow101

20 сентября 2016, 5:00:42 AM   # 3
 
 
Сообщения: 428
Цитировать по имени
цитировать ответ
по умолчанию Re: создание сырец без знака ТХ Обновлен пример

Я просто использовал Электрум удвоить чек и посмотреть, если TX, что я генерировать себя правильно, так как я не имею никакого другого кошелька.

Я пытаюсь узнать код и следующий шаг Bitcoin трудный путь + Разработчики руководство для меня, чтобы узнать больше о том, что подписание сырым ТХ.
Кодирование Энтузиаст сейчас офлайн Пожаловаться на Coding Энтузиаст   Ответить с цитированием Мультицитирование сообщения от Coding Энтузиаст Быстрый ответ на сообщение Coding Энтузиаст

20 сентября 2016, 11:57:38 AM   # 4
 
 
Сообщения: 2002
Цитировать по имени
цитировать ответ
по умолчанию Re: создание сырец без знака ТХ Обновлен пример

Присмотритесь, во всех трех случаях (Электрум, coinb.in, и ваше сырье UNSIGNED транзакции), scriptPubKey точно так же.

То, что вы описываете в вашем посте не scriptPubKey, это scriptSig. Так как ваша сделка UNSIGNED, он еще не имеет scriptSig. Поэтому вы, coinb.in и Электрум по всей видимости, поставить некоторые замещающий мусор там. В конце концов, при подписании сделки, это шаблонные данные будут заменены фактической scriptSig.

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

23 сентября 2016, 6:18:57 AM   # 5
 
 
Сообщения: 428
Цитировать по имени
цитировать ответ
по умолчанию Re: создание сырец без знака ТХ Обновлен пример

Хорошо, я получил еще некоторое время, чтобы работать над этим.

Присмотритесь, во всех трех случаях (Электрум, coinb.in, и ваше сырье UNSIGNED транзакции), scriptPubKey точно так же.

То, что вы описываете в вашем посте не scriptPubKey, это scriptSig. Так как ваша сделка UNSIGNED, он еще не имеет scriptSig. Поэтому вы, coinb.in и Электрум по всей видимости, поставить некоторые замещающий мусор там. В конце концов, при подписании сделки, это шаблонные данные будут заменены фактической scriptSig.

я теперь понимаю, но я до сих пор путают о том, как это может иметь смысл и все еще быть разными:
да я понял, что это временный заполнитель быть заполнены scriptSig позже.
но что меня смущает то, как это может быть мусор, когда это имеет смысл, и должно быть разобранный когда передается в код для проверки, а затем подписать.
чтение скрипт страница:
Код:
OP_DUP OP_HASH160 <не знаю, что 0x14 это, не могли найти> ... OP_EQUALVERIFY OP_CHECKSIG



еще 2 вопроса:
  • он говорит, что В-счетчик а также Из-счетчика находятся "Переменные целые длины" может кто-нибудь дать мне пример В-счетчик с "3", "5" а также "9" байт, так что я знаю, как это будет выглядеть. также является Эта как получить размер затем значение VarInt
  • все числа (количество, длины, время блокировки, ...) Little-Endian?
Кодирование Энтузиаст сейчас офлайн Пожаловаться на Coding Энтузиаст   Ответить с цитированием Мультицитирование сообщения от Coding Энтузиаст Быстрый ответ на сообщение Coding Энтузиаст

23 сентября 2016, 12:07:14 PM   # 6
 
 
Сообщения: 2002
Цитировать по имени
цитировать ответ
по умолчанию Re: создание сырец без знака ТХ Обновлен пример

я до сих пор путают о том, как это может иметь смысл и все еще быть разными:
да я понял, что это временный заполнитель быть заполнены scriptSig позже.
но что меня смущает то, как это может быть мусор, когда это имеет смысл, и должно быть разобранный когда передается в код для проверки, а затем подписать.

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

Это довольно бесполезно для заполнения scriptSig с большими значениями заполнителей, и я не знаю, почему Электрум или coinb.in будет делать это. Когда я использую Bitcoin Ядро для создания неподписанной сырой сделки, вся стоимость заполнителя scriptSig только 00.

Код:
createrawtransaction [{\"TXID \": \"ee33588fced298248c9e693b4eee72e2aae6963381b63cf5850ba2e94abe2d90 \"\"Vout \": 0}] {\"165fbdntWGih7i9mfs9v5ZHgGyNxhHS4Wb \": 0.00600000}

0100000001902dbe4ae9a20b85f53cb6813396e6aae272ee4e3b699e8c2498d2ce8f5833ee0000000000ffffffff01c0270900000000001976a91437ba8314fcd8bbbf49ed9a1d6d27f9797e7d60f188ac00000000

чтение скрипт страница:
Код:
OP_DUP OP_HASH160 <не знаю, что 0x14 это, не могли найти> ... OP_EQUALVERIFY OP_CHECKSIG

Любое OP значение кода из 0х01 через 0x4b только число байтов толкнуть на стек. Таким образом, код 0x14 указывает на то, что следующие 0x14 байты должны быть в стек. В scriptPubKey, эти 20 байт хэш-значение ripemd160.

он говорит, что В-счетчик а также Из-счетчика находятся "Переменные целые длины" может кто-нибудь дать мне пример В-счетчик с "3", "5" а также "9" байт, так что я знаю, как это будет выглядеть.

EDIT: Похоже, я не понял, это следующая часть, а я думал, что я сделал. См комментарии achow101 ниже

Вы никогда не увидите в прилавке или вне счетчика больше, чем 3 байта. Это потребовало бы сделку, чтобы иметь больше, чем 2097151 входов или выходов.

Вот два байта bigendian шестнадцатеричное представление значения 258 десятичного в varInt:

Код:
- УДАЛЕНО -
0x8102

Вот 3 байта bigendian шестнадцатеричное представление значения 65535 в десятичной varInt:
Код:
- УДАЛЕНО -
0x82FE7F

Вот 4 байта bigendian шестнадцатеричное представление значения 4294967296 десятичного в varInt:
Код:
- УДАЛЕНО -
    0x8EFEFEFF00

    также является Эта как получить размер затем значение VarInt [/ li] [/ список]

    Нет.

    Вы получаете значение, как это:
    https://github.com/bitcoin/bitcoin/blob/master/src/serialize.h#L361

    Вы получаете размер, как это:
    https://github.com/bitcoin/bitcoin/blob/master/src/serialize.h#L331



    • все числа (количество, длины, время блокировки, ...) Little-Endian?

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

    23 сентября 2016, 12:21:09 PM   # 7
     
     
    Сообщения: 1246
    Цитировать по имени
    цитировать ответ
    по умолчанию Re: создание сырец без знака ТХ Обновлен пример

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

    Это довольно бесполезно для заполнения scriptSig с большими значениями заполнителей, и я не знаю, почему Электрум или coinb.in будет делать это. Когда я использую Bitcoin Ядро для создания неподписанной сырой сделки, вся стоимость заполнителя scriptSig только 00.
    При подписании происходит, scriptsig заполняется с предыдущим scriptpubkey. Оказывается, что Электрум и coinb.in делают это так, что, когда подписание произойдет, они знают, что положить в scriptsig без того, чтобы найти его в blockchain.

    Я не думаю, что значения VarInt когда-либо прямой порядок байтов, но я не 100% уверен. Все остальное кажется.
    Varint описан в https://bitcoin.org/en/developer-reference#compactsize-unsigned-integers
    achow101 сейчас офлайн Пожаловаться на achow101   Ответить с цитированием Мультицитирование сообщения от achow101 Быстрый ответ на сообщение achow101

    23 сентября 2016, 1:27:48 PM   # 8
     
     
    Сообщения: 2002
    Цитировать по имени
    цитировать ответ
    по умолчанию Re: создание сырец без знака ТХ Обновлен пример

    - чик -
    Это довольно бесполезно для заполнения scriptSig с большими значениями заполнителей, и я не знаю, почему Электрум или coinb.in будет делать это. - чик -
    - чик -
    Оказывается, что Электрум и coinb.in делают это так, что, когда подписание произойдет, они знают, что положить в scriptsig без того, чтобы найти его в blockchain.

    Хорошо, я думаю, что имеет смысл.

    При расчете scriptSig, вы должны знать, какой секретный ключ, чтобы подписать с. Это можно определить, посмотрев на blockchain на выходе, затрачиваемых, но если вы храните эту информацию в scriptSig пространстве без знака операции, то вы можете сэкономить время необходимости вернуться назад и посмотреть его снова.

    Я не думаю, что значения VarInt когда-либо прямой порядок байтов, но я не 100% уверен. Все остальное кажется.
    Varint описан в https://bitcoin.org/en/developer-reference#compactsize-unsigned-integers

    Вау. Здесь я думал, что я уже понял цифровое представление сделки довольно хорошо, и все же в течение последних 4,5 лет я совершенно не понял, как представлены целые числа переменной длины. Я предполагаю, что я просто никогда не приходилось иметь дело с (или внимательно посмотреть) либо переменной длины целых чисел со значением больше, чем 252, так что я никогда не замечал, что я ошибся.

    Благодарю.

    Таким образом, если compactSize целые числа без знака, используются в транзакции для количества входов и выходов, то где же использовать Биткойн VarInt, и / или почему он в serialize.h?
    DannyHamilton сейчас офлайн Пожаловаться на DannyHamilton   Ответить с цитированием Мультицитирование сообщения от DannyHamilton Быстрый ответ на сообщение DannyHamilton

    23 сентября 2016, 1:38:53 PM   # 9
     
     
    Сообщения: 1246
    Цитировать по имени
    цитировать ответ
    по умолчанию Re: создание сырец без знака ТХ Обновлен пример

    Таким образом, если compactSize целые числа без знака, используются в транзакции для количества входов и выходов, то где же использовать Биткойн VarInt, и / или почему он в serialize.h?
    Compactsize целые числа без знака, как правило, называют varint.

    Но в Bitcoin ядро, VarInt используется для чего-то еще внутренне. Это связано с классом CVarint, который используется для некоторого внутреннего представления, IIRC он имеет что-то делать с на диске сериализации, например, BLK * .dat файлы.
    achow101 сейчас офлайн Пожаловаться на achow101   Ответить с цитированием Мультицитирование сообщения от achow101 Быстрый ответ на сообщение achow101

    23 сентября 2016, 4:21:43 PM   # 10
     
     
    Сообщения: 428
    Цитировать по имени
    цитировать ответ
    по умолчанию Re: создание сырец без знака ТХ Обновлен пример

    Большое спасибо за помощь

    - чик -
    Это довольно бесполезно для заполнения scriptSig с большими значениями заполнителей, и я не знаю, почему Электрум или coinb.in будет делать это. - чик -
    - чик -
    Оказывается, что Электрум и coinb.in делают это так, что, когда подписание произойдет, они знают, что положить в scriptsig без того, чтобы найти его в blockchain.

    Хорошо, я думаю, что имеет смысл.

    При расчете scriptSig, вы должны знать, какой секретный ключ, чтобы подписать с. Это можно определить, посмотрев на blockchain на выходе, затрачиваемых, но если вы храните эту информацию в scriptSig пространстве без знака операции, то вы можете сэкономить время необходимости вернуться назад и посмотреть его снова.

    я сделал небольшой код для сериализации сырье Txs, чтобы лучше понять его особенности это демо на вики и rawtx вы сделали с ядром, и теперь я вижу, что именно вы имеете в виду. они заполняются нулями.
    поэтому я полагаю, это почему вы разжевывать "scriptPubKey": шестигранный Bitcoin ядра в автономном режиме, когда вы хотите signrawtransaction


    я искал для примера 515 = 0xfd0302 который не был доступен на вики по какой-то причине!
    спасибо, я предполагаю, что я должен начать читать как теперь


    У меня есть потратить пару дней на понимание только сырье "неподписанный" сделка и сделать небольшой код для него, и я до сих пор не начали со стороны подписания, и это самое страшное, а не из-за потери денег (я только тестирование вещи здесь), но потому, что он настолько сложен, а также, так как это криптографический, это очень неумолимый!
    но это по крайней мере, хороший вид страшно + приятный
    Кодирование Энтузиаст сейчас офлайн Пожаловаться на Coding Энтузиаст   Ответить с цитированием Мультицитирование сообщения от Coding Энтузиаст Быстрый ответ на сообщение Coding Энтузиаст

    23 сентября 2016, 4:29:48 PM   # 11
     
     
    Сообщения: 2002
    Цитировать по имени
    цитировать ответ
    по умолчанию Re: создание сырец без знака ТХ Обновлен пример

    - чик -
    я до сих пор не начали со стороны подписания, и это самое страшное, а не из-за потери денег
    - чик -

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

    23 сентября 2016, 4:54:18 PM   # 12
     
     
    Сообщения: 428
    Цитировать по имени
    цитировать ответ
    по умолчанию Re: создание сырец без знака ТХ Обновлен пример

    Если вы работаете на testnet, то вы можете попробовать свои операции, не беспокоясь о потере денег.

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

    29 сентября 2016, 3:34:17 PM   # 13
     
     
    Сообщения: 101
    Цитировать по имени
    цитировать ответ
    по умолчанию Re: создание сырец без знака ТХ Обновлен пример

    >> У меня есть потратить пару дней на понимание только сырье "неподписанный" сделка
    >> и сделать небольшой код для него, и я до сих пор не начали со стороны подписания и
    >> является самым страшным, не из-за потери денег (я только тестирование вещи здесь), но
    >> потому что она настолько сложна, а также, так как это криптографический, это очень неумолимый!
    >> но это по крайней мере, хороший вид страшно + приятный

    нет необходимости бояться 
    Нарисуйте картину, а затем пройти через деталь, что требуется. Один процесс ввода подписи не так сложно. Вы можете создать свой неподписанный сырец TRX и оставить PKScript (76A914 + предыдущий TRX скрипт + 88AC) в своей позиции. Вы подписываете всю структуру. А потом заменить эту PKScript с генерируемой подписью, которая затем просто конкатенации. Обратите внимание на поля длины, они почти всегда меняются ...

    Где получить немного более продвинутый в двух или более входов, вызывают все подписи должны быть сделаны специально, смотрите здесь:
    http://bitcoin.stackexchange.com/questions/41209/how-to-sign-a-transaction-with-multiple-inputs

    удачи!
    (Кстати: какой кодирование языка вы используете?)
    pebwindkraft сейчас офлайн Пожаловаться на pebwindkraft   Ответить с цитированием Мультицитирование сообщения от pebwindkraft Быстрый ответ на сообщение pebwindkraft

    29 сентября 2016, 3:50:28 PM   # 14
     
     
    Сообщения: 428
    Цитировать по имени
    цитировать ответ
    по умолчанию Re: создание сырец без знака ТХ Обновлен пример


    http://bitcoin.stackexchange.com/questions/41209/how-to-sign-a-transaction-with-multiple-inputs
    удачи!
    (Кстати: какой кодирование языка вы используете?)

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

    и я использую C♯ (я новичок, хотя)
    Кодирование Энтузиаст сейчас офлайн Пожаловаться на Coding Энтузиаст   Ответить с цитированием Мультицитирование сообщения от Coding Энтузиаст Быстрый ответ на сообщение Coding Энтузиаст

    29 ноября 2016, 2:01:02 PM   # 15
     
     
    Сообщения: 428
    Цитировать по имени
    цитировать ответ
    по умолчанию Re: создание сырец без знака ТХ Обновлен пример

    Я обновляю это с примером сделки, которая содержит те CompactSize неподписанные Целые что мы говорили о том, для кого-то, кто может быть заинтересован в реальном примере ТХ.

    https://blockchain.info/tx/ef492f5dd516f51061a77bc148b8925e74557b1f31a42ca51098f26b82c23fb0?format=hex
    Это ТХ, что я нашел 290 входов (tx_in счетчик), Который показывает, с 0xfd2201
    Кодирование Энтузиаст сейчас офлайн Пожаловаться на Coding Энтузиаст   Ответить с цитированием Мультицитирование сообщения от Coding Энтузиаст Быстрый ответ на сообщение Coding Энтузиаст

    

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

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

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

    3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW