Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
16 июля 2015, 5:25:34 AM   # 1
 
 
Сообщения: 233
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование Pycoin провести нестандартные сценарии

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Давайте http://test.webbtc.com/tx/76cf175637ee40281b9893e691113a9b5c835d8eb44875954a68b9d582b14a9e В качестве примера (Testnet, TXID: 76cf175637ee40281b9893e691113a9b5c835d8eb44875954a68b9d582b14a9e)

(Я нашел это через страницу Unknown P2SH Скрипты webbtc.com)

Код:
2
OP_PICK
1
OP_PICK
OP_NOT
OP_BOOLOR
OP_VERIFY
1
OP_PICK
OP_VERIFY
OP_2DROP
OP_DROP
1

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


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


17 июля 2015, 6:17:43 PM   # 2
 
 
Сообщения: 126
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование Pycoin провести нестандартные сценарии

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





Как бы я использовать Pycoin поиграться с нестандартными сценариев, как это? С другой стороны, pybitcointools.
Написание сценария "компилятор" в питон должен быть очень прямо вперед. PyBitcoinTools будет разобрать сценарии с десериализацией, то вы берете «ASM» сценарий и написать декомпилятор.

Если затем поместить данные «ASM» обратно в Словаре и сериализации с pybitcointools вы должны быть хорошо идти.

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

18 июля 2015, 6:41:04 AM   # 3
 
 
Сообщения: 233
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование Pycoin провести нестандартные сценарии

Как бы я использовать Pycoin поиграться с нестандартными сценариев, как это? С другой стороны, pybitcointools.
Написание сценария "компилятор" в питон должен быть очень прямо вперед. PyBitcoinTools будет разобрать сценарии с десериализацией, то вы берете «ASM» сценарий и написать декомпилятор.

Если затем поместить данные «ASM» обратно в Словаре и сериализации с pybitcointools вы должны быть хорошо идти.

Спасибо за ответ!

Я действительно знаком с pybitcointools, так что я, конечно, можно увидеть, как работает ваше предложение. Однако, проблема заключается при использовании serialize_script; а именно, если у вас есть объекты (как Публичные), то serialize_script Метод не добавляет нажимные коды для размера объекта.

То есть:

Код:
my_script = serialize_script ([OP_foo, OP_bar, "20byte_pubkey_hash", OP_spam])

MyScript вернется 11 22 33 01234567890123456789 вместо 11 22 14 +01234567890123456789 33
HeadsOrTails сейчас офлайн Пожаловаться на HeadsOrTails   Ответить с цитированием Мультицитирование сообщения от HeadsOrTails Быстрый ответ на сообщение HeadsOrTails

18 июля 2015, 6:53:46 AM   # 4
 
 
Сообщения: 126
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование Pycoin провести нестандартные сценарии

Я действительно знаком с pybitcointools, так что я, конечно, можно увидеть, как работает ваше предложение. Однако, проблема заключается при использовании serialize_script; а именно, если у вас есть объекты (как Публичные), то serialize_script Метод не добавляет нажимные коды для размера объекта.

То есть:

Код:
my_script = serialize_script ([OP_foo, OP_bar, "20byte_pubkey_hash", OP_spam])

MyScript вернется 11 22 33 01234567890123456789 вместо 11 22 14 +01234567890123456789 33
ЛОЛ...

Я ужасно не знаком с PyBitcoinTools, так как мои «Wow есть модуль PyBitcoinTools" пост с сегодняшнего дня, скорее всего, свидетельствует.

Я никогда не понимал, был serialize_скрипт метод. Я просто думал о сериализации (tx_dict). Я думал, вы бы исправить свои собственные (или переписать) метод serialize_script. Я имею в виду есть менее 100 ОП-коды правильно?
d4n13 сейчас офлайн Пожаловаться на d4n13   Ответить с цитированием Мультицитирование сообщения от d4n13 Быстрый ответ на сообщение d4n13

18 июля 2015, 8:49:12 AM   # 5
 
 
Сообщения: 233
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование Pycoin провести нестандартные сценарии

Я никогда не понимал, был serialize_скрипт метод. Я просто думал о сериализации (tx_dict). Я думал, вы бы исправить свои собственные (или переписать) метод serialize_script. То есть есть меньше, чем 100 ОП-коды правильно? [/ Размер]

Да, это, безусловно, выполнимо. Я раскошелиться библиотеку pybitcointools и посмотреть, как я иду с ним.

Я смотрел на Питер Тодд питон-bitcoinlib и Ричард Поцелуй Pycoin, главным образом потому, что классы гораздо более мощным для игр с сценариями, SIGHASH и т.д. Это, как говорится, ООП для питон-bitcoinlib пытается эмулировать программное ядро ​​именования, и это действительно сложно.

Если кто-то может обеспечить один пример нестандартного сценария Tx использованием Pycoin / питон-bitcoinlib, я действительно ценю это.


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

19 июля 2015, 6:28:34 AM   # 6
 
 
Сообщения: 126
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование Pycoin провести нестандартные сценарии

Да ... есть ошибка где-то там ...

Попробуйте следующее
Код:
от Bitcoin импорта *
serialize_script (deserialize_script ( 'ас'))
---
RuntimeError: максимальная глубина рекурсии превышена при вызове объекта Python
d4n13 сейчас офлайн Пожаловаться на d4n13   Ответить с цитированием Мультицитирование сообщения от d4n13 Быстрый ответ на сообщение d4n13

20 июля 2015, 7:13:30 AM   # 7
 
 
Сообщения: 126
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование Pycoin провести нестандартные сценарии

Я просто думал о сериализации (tx_dict). Я думал, вы бы исправить свои собственные (или переписать) метод serialize_script. Я имею в виду есть менее 100 ОП-коды правильно?

Это сработало....



Сделка 5e4cf125218fcab2746303485ce3a2a74dc12271f678e851fc95fd97cd0153e4 путы "Привет мир" на blockchain
Сделка 602c4d614351ee615ee1dc280c16a4cf962ccc928a8c3a0dca6f9ccd46104976 проводит "Привет мир" на blockchain.

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

20 июля 2015, 9:09:31 AM   # 8
 
 
Сообщения: 233
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование Pycoin провести нестандартные сценарии

Да ... есть ошибка где-то там ...

Попробуйте следующее
Код:
от Bitcoin импорта *
serialize_script (deserialize_script ( 'ас'))
---
RuntimeError: максимальная глубина рекурсии превышена при вызове объекта Python

Yeh, я часто запускать скрипты на IOS Pythonista, и есть много ошибок рекурсии, которые возникают, т.к. по умолчанию глубина рекурсии 256; поэтому установка sys.setrecursiondepth (512) часто работает в этой среде.

pybitcointools ошибка странно, потому что код упорядочивает multisig сценарии, но есть ошибка с CHECKMULTISIG; поэтому вместо сериализации «аи», это только добавляет «аи» к концу возвращаемой строки.

Я смотрю на использование этого кода:

Код:
Защиту mk_script (* арг):
    # LST = [ '76', 'A9', '14', 'dd6cce9f255a8cc17bda8ba0373df8e861cb866e', '88', 'ас']
    если LEN (аргументы) == 1 и isinstance (арг [0], (список, кортеж))
        LST = лист (арг [0])
    Элиф Len (арг) > 1 и все (карта (лямбда о: isinstance (о, ул), арг)):
        LST = [арг]
    еще:
        LST = [changebase (ул (х), 10, 16, 2), если isinstance (х, (интермедиат, долго)) остальное х для х в арг]
   
    llens = [LEN (changebase (х, 16, 256, 1)) для й в LST] длина # байт
    ворс = карта (лямбда ч: декодирование (ч, 16), LST) # список, как Интс
   
    ASM = 0xff
    для г в диапазоне (LEN (ворс)):
        ASM = ASM << (8 * llens [я]) | ворс [я]
   
    asmhex = "0x" + Кодирование (ASM, 16, (сумма (llens) + 1) * 2)
    Окончательный = asmhex.partition ( '0xff') [- 1]
    вернуться окончательным

Как бы я идти о тонких настройках этого кода, чтобы избежать ручного добавления push20?


то есть. Я хочу использовать
Код:
mk_script ([ '76', 'A9', 'dd6cce9f255a8cc17bda8ba0373df8e861cb866e', '88', 'ас'])
... вместо
Код:
mk_script ([ '76', 'A9', '14', 'dd6cce9f255a8cc17bda8ba0373df8e861cb866e', '88', 'ас'])
(Обратите внимание "14"  предшествующий pubkeyhash, который действует как толкать 20 байт).

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

20 июля 2015, 9:39:45 AM   # 9
 
 
Сообщения: 126
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование Pycoin провести нестандартные сценарии

Как бы я идти о тонких настройках этого кода, чтобы избежать ручного добавления push20?


то есть. Я хочу использовать
Код:
mk_script ([ '76', 'A9', 'dd6cce9f255a8cc17bda8ba0373df8e861cb866e', '88', 'ас'])
... вместо
Код:
mk_script ([ '76', 'A9', '14', 'dd6cce9f255a8cc17bda8ba0373df8e861cb866e', '88', 'ас'])
(Обратите внимание "14"  предшествующий pubkeyhash, который действует как толкать 20 байт).

Я бы предпочел, чтобы избежать использования нажимные байтов
Да, немного о push20 не чиста ... нет ошибки. Тот факт, что у вас есть элемент списка из 40 шестнадцатеричных цифр является доказательством того, что Deserialize потребляли push20. Если потребляется push10 вы бы элемент списка из 20 шестнадцатеричных цифр вместо ..

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

20 июля 2015, 12:41:57 PM   # 10
 
 
Сообщения: 352
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование Pycoin провести нестандартные сценарии

Я не знаю, если это связано, но что-то кажется, что изменилось в пути pybitcointool упорядочивает сценарии, так как я работал с этим вокруг:
https://github.com/vbuterin/pybitcointools/commit/87aaf6dc3f38d853dd8cb324a4eaf72ae309d322
...я думаю, это еще версия, которую вы получите, если вы делаете
пункт установить pybitcointool
(Это, прежде чем название было изменено на "Bitcoin".)

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

20 июля 2015, 11:26:09 PM   # 11
 
 
Сообщения: 126
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование Pycoin провести нестандартные сценарии

Да ... есть ошибка где-то там ...

Попробуйте следующее
Код:
от Bitcoin импорта *
serialize_script (deserialize_script ( 'ас'))
---
RuntimeError: максимальная глубина рекурсии превышена при вызове объекта Python

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

21 июля 2015, 3:06:08 AM   # 12
 
 
Сообщения: 233
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование Pycoin провести нестандартные сценарии

Да ... есть ошибка где-то там ...

Попробуйте следующее
Код:
от Bitcoin импорта *
serialize_script (deserialize_script ( 'ас'))
---
RuntimeError: максимальная глубина рекурсии превышена при вызове объекта Python

Отправлено выпуск № 104

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

21 июля 2015, 3:15:40 AM   # 13
 
 
Сообщения: 233
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование Pycoin провести нестандартные сценарии

Может быть, мы можем работать над этим Tx: http://test.webbtc.com/tx/2e7f518ce5ab61c1c959d25e396bc9d3d684d22ea86dc477b1a90329c6ca354f

Я создал сценарий, как это:

Код:
OP_IF
0330ed33784ee1891122bc608b89da2da45194efaca68564051e5a7be9bee7f63f
OP_CHECKSIGVERIFY
OP_ELSE
80bf07
OP_NOP2
OP_DROP
OP_ENDIF
042daa93315eebbe2cb9b5c3505df4c6fb6caca8b756786098567550d4820c09db988fe9997d049d687292f815ccd6e7fb5c1b1a91137999818d17c73d0f80aef9
OP_CHECKSIG

Таким образом, его мастер-ключ, который sha256 ("мастер"* 42)

Как бы использовать pybitcointools провести этот сценарий?

Nb скрипт:
Код:
MyScript = "63210330ed33784ee1891122bc608b89da2da45194efaca68564051e5a7be9bee7f63fad670380bf07b1756841042daa93315eebbe2cb9b5c3505df4c6fb6caca8b756786098567550d4820c09db988fe9997d049d687292f815ccd6e7fb5c1b1a91137999818d17c73d0f80aef9ac"
HeadsOrTails сейчас офлайн Пожаловаться на HeadsOrTails   Ответить с цитированием Мультицитирование сообщения от HeadsOrTails Быстрый ответ на сообщение HeadsOrTails

21 июля 2015, 4:07:50 AM   # 14
 
 
Сообщения: 126
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование Pycoin провести нестандартные сценарии

Может быть, мы можем работать над этим Tx: http://test.webbtc.com/tx/2e7f518ce5ab61c1c959d25e396bc9d3d684d22ea86dc477b1a90329c6ca354f

Я создал сценарий, как это:

Код:
OP_IF
0330ed33784ee1891122bc608b89da2da45194efaca68564051e5a7be9bee7f63f
OP_CHECKSIGVERIFY
OP_ELSE
80bf07
OP_NOP2
OP_DROP
OP_ENDIF
042daa93315eebbe2cb9b5c3505df4c6fb6caca8b756786098567550d4820c09db988fe9997d049d687292f815ccd6e7fb5c1b1a91137999818d17c73d0f80aef9
OP_CHECKSIG

Таким образом, его мастер-ключ, который sha256 ("мастер"* 42)

Как бы использовать pybitcointools провести этот сценарий?

Nb скрипт:
Код:
MyScript = "63210330ed33784ee1891122bc608b89da2da45194efaca68564051e5a7be9bee7f63fad670380bf07b1756841042daa93315eebbe2cb9b5c3505df4c6fb6caca8b756786098567550d4820c09db988fe9997d049d687292f815ccd6e7fb5c1b1a91137999818d17c73d0f80aef9ac"

Я работал на более чистую реализации ... но получил отстранился сегодня ...

В основном вы должны переопределить
Код:
знак (ТХ, я, собств, хэш-код)
Вы хотите изменить Линия 341 из transaction.py так что он принимает входной скрипт. Вы должны кормить его в scriptPubKey в UTXO вы тратите.
Код:
   signing_tx = signature_form (ТХ, я, '', хэш-код)

Тогда вы должны подписать сделку с Публичных 042d ... d17c и скопировать сиговых в "sig1", А затем подписать сделку с Публичных 0330 ... f63f и скопировать сиговых в "Sig2",  

Наконец ваш нестандартный scriptSig является:
Код:

Я сделал это на "Привет мир" Например, я сделал выше, но код своего рода некрасиво.

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

21 июля 2015, 4:15:28 AM   # 15
 
 
Сообщения: 233
Цитировать по имени
цитировать ответ
по умолчанию Re: Использование Pycoin провести нестандартные сценарии


В основном вы должны переопределить
Код:
знак (ТХ, я, собств, хэш-код)
Вы хотите изменить Линия 341 из transaction.py так что он принимает входной скрипт. Вы должны кормить его в scriptPubKey в UTXO вы тратите.
Код:
   signing_tx = signature_form (ТХ, я, '', хэш-код)

Тогда вы должны подписать сделку с Публичных 042d ... d17c и скопировать сиговых в "sig1", А затем подписать сделку с Публичных 0330 ... f63f и скопировать сиговых в "Sig2",  

Наконец ваш нестандартный scriptSig является:
Код:

Я сделал это на "Привет мир" Например, я сделал выше, но код своего рода некрасиво.

Позвольте мне очистить его, и я буду писать реализацию pybitcointools потратить монету.

Ах-ха! Хорошо, что имеет смысл. Постараюсь его.

Там есть развилка pybitcointools который обновляется чаще Вот. Одна из проблем, с которыми я столкнулся с pybitcointools является кодирование DER; проверяет вилки для кодирования DER, в то время как оригинальные pybitcointools даже не КОБ в некоторых случаях (например, если R- или S- значение имеет ведущий бит, установленный и менее чем 2 ** 255, кодирование не предварять nullbytes)
HeadsOrTails сейчас офлайн Пожаловаться на HeadsOrTails   Ответить с цитированием Мультицитирование сообщения от HeadsOrTails Быстрый ответ на сообщение HeadsOrTails



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW