Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
26 июля 2013, 6:45:54 PM   # 1
 
 
Сообщения: 116
Цитировать по имени
цитировать ответ
по умолчанию Re: Лучший способ извлечения адресов из sigScript и PkScript?

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


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

Есть ли лучший способ практики извлечения адресов из sigScript и PkScript?

Например, можно безопасно предположить, что толчки данных из 20 байтов адреса и 33/65 (если начиная с 0x02 / 0x03 для 33 и 0x04 для 65) являются открытыми ключами?

Я знаю, что есть сделки, которые не имеют адреса, как этот: https://blockchain.info/tx/a4bfa8ab6435ae5f25dae9d89e4eb67dfa94283ca751f393c1ddc5a837bbc31b

Но есть операции, которые имеют более чем один? Должен ли я запускать скрипты, чтобы выяснить, какой из них на самом деле используется?

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


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


26 июля 2013, 6:48:18 PM   # 2
 
 
Сообщения: 1750
Цитировать по имени
цитировать ответ
по умолчанию Re: Лучший способ извлечения адресов из sigScript и PkScript?

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





Всем привет,

Есть ли лучший способ практики извлечения адресов из sigScript и PkScript?

Например, можно безопасно предположить, что толчки данных из 20 байтов адреса и 33/65 (если начиная с 0x02 / 0x03 для 33 и 0x04 для 65) являются открытыми ключами?

Я знаю, что есть сделки, которые не имеют адреса, как этот: https://blockchain.info/tx/a4bfa8ab6435ae5f25dae9d89e4eb67dfa94283ca751f393c1ddc5a837bbc31b

Но есть операции, которые имеют более чем один? Должен ли я запускать скрипты, чтобы выяснить, какой из них на самом деле используется?

Я также читал где-то, что можно получить открытый ключ подписи или это не так?

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

26 июля 2013, 6:54:08 PM   # 3
 
 
Сообщения: 116
Цитировать по имени
цитировать ответ
по умолчанию Re: Лучший способ извлечения адресов из sigScript и PkScript?

Конечно, это не безопасно предположить, что. Почему бы вам не просто использовать регулярное выражение для извлечения адреса?

Что бы критерии для регулярного выражения тогда? Там в 20 байт адреса, все из них случайным образом.

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

26 июля 2013, 6:59:19 PM   # 4
 
 
Сообщения: 1750
Цитировать по имени
цитировать ответ
по умолчанию Re: Лучший способ извлечения адресов из sigScript и PkScript?

Конечно, это не безопасно предположить, что. Почему бы вам не просто использовать регулярное выражение для извлечения адреса?

Что бы критерии для регулярного выражения тогда? Там в 20 байт адреса, все из них случайным образом.



В Perl регулярное выражение

^ 76a914 (. {40}) $ 88ac
jl2012 сейчас офлайн Пожаловаться на jl2012   Ответить с цитированием Мультицитирование сообщения от jl2012 Быстрый ответ на сообщение jl2012

26 июля 2013, 7:04:41 PM   # 5
 
 
Сообщения: 116
Цитировать по имени
цитировать ответ
по умолчанию Re: Лучший способ извлечения адресов из sigScript и PkScript?


В Perl регулярное выражение

^ 76a914 (. {40}) $ 88ac

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

26 июля 2013, 7:05:54 PM   # 6
kjj
 
 
Сообщения: 1302
Цитировать по имени
цитировать ответ
по умолчанию Re: Лучший способ извлечения адресов из sigScript и PkScript?

Если вы не делаете полный скриптовый движок, вы должны сделать шаблоны и искать их, пока не найдете хит.

jl2012 приводит пример из "стандарт" Шаблон транзакции.

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

26 июля 2013, 7:06:20 PM   # 7
 
 
Сообщения: 1106
Цитировать по имени
цитировать ответ
по умолчанию Re: Лучший способ извлечения адресов из sigScript и PkScript?

Всем привет,

Есть ли лучший способ практики извлечения адресов из sigScript и PkScript?

Например, можно безопасно предположить, что толчки данных из 20 байтов адреса и 33/65 (если начиная с 0x02 / 0x03 для 33 и 0x04 для 65) являются открытыми ключами?

Я знаю, что есть сделки, которые не имеют адреса, как этот: https://blockchain.info/tx/a4bfa8ab6435ae5f25dae9d89e4eb67dfa94283ca751f393c1ddc5a837bbc31b

Но есть операции, которые имеют более чем один? Должен ли я запускать скрипты, чтобы выяснить, какой из них на самом деле используется?

Я также читал где-то, что можно получить открытый ключ подписи или это не так?

У меня есть тянуть-REQ, которые могут помочь вам: https://github.com/bitcoin/bitcoin/pull/2830

В основном это добавляет "decodescript" RPC вызов, который берет сценарий и декодирует его в читабельной форме. Это включает в себя опкоды, а также сам адрес, либо оплата за скрипт-хэш (стандартные адреса) или P2SH. (Или нестандартным, если сценарий не соответствует стандартной форме адреса) Она также позволяет вычислить адрес P2SH, который соответствовал бы в что сценарий - если вы не понимаете, что я имею в виду под этим утверждением читать на P2SH.

Чем больше вопрос, хотя почему именно вам нужно это сделать? Вы пытаетесь написать библиотеку?
Peter Todd сейчас офлайн Пожаловаться на Питер Тодд   Ответить с цитированием Мультицитирование сообщения от Peter Todd Быстрый ответ на сообщение Peter Todd

26 июля 2013, 7:08:37 PM   # 8
 
 
Сообщения: 1778
Цитировать по имени
цитировать ответ
по умолчанию Re: Лучший способ извлечения адресов из sigScript и PkScript?

Всем привет,

Есть ли лучший способ практики извлечения адресов из sigScript и PkScript?

Например, можно безопасно предположить, что толчки данных из 20 байтов адреса и 33/65 (если начиная с 0x02 / 0x03 для 33 и 0x04 для 65) являются открытыми ключами?

Я знаю, что есть сделки, которые не имеют адреса, как этот: https://blockchain.info/tx/a4bfa8ab6435ae5f25dae9d89e4eb67dfa94283ca751f393c1ddc5a837bbc31b

Но есть операции, которые имеют более чем один? Должен ли я запускать скрипты, чтобы выяснить, какой из них на самом деле используется?

Я также читал где-то, что можно получить открытый ключ подписи или это не так?
В конечном счете, нет такой вещи, как адрес.
Да, вы можете делать все эти вещи, и они не будут работать в 90 +% случаев, но так и не для всех из них.
Если вы продаете его шахтер, вы можете ввести ТЙ, который может создать новый формат адрес - все, что вы можете думать.
Я думаю, вы должны быть в состоянии назвать то

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

26 июля 2013, 7:14:56 PM   # 9
 
 
Сообщения: 116
Цитировать по имени
цитировать ответ
по умолчанию Re: Лучший способ извлечения адресов из sigScript и PkScript?

Если вы не делаете полный скриптовый движок, вы должны сделать шаблоны и искать их, пока не найдете хит.

jl2012 приводит пример из "стандарт" Шаблон транзакции.

Также см

У меня есть полный двигатель сценария, но я пишу SPV узел теперь не делают полную оценку сценария. Он просто хочет, чтобы извлечь адреса для теста против местного бумажника. Я предполагаю, что это действительно не имеет значения слишком много, если я получаю ложные срабатывания, так как они будут отфильтрованы по цвету фильтр / локального БД в любом случае.

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

26 июля 2013, 7:20:30 PM   # 10
 
 
Сообщения: 1778
Цитировать по имени
цитировать ответ
по умолчанию Re: Лучший способ извлечения адресов из sigScript и PkScript?

Я думаю, вам нужно только проанализировать данные из pk_scripts, из неизрасходованных выходов - входные адреса будут только АЯ ида (кто заботится).
Они (txout скрипты), вообще говоря, довольно много прямо вперед,
Недавно хэш, с чем-то.
Ранее был весь открытый ключ.
piotr_n сейчас офлайн Пожаловаться на piotr_n   Ответить с цитированием Мультицитирование сообщения от piotr_n Быстрый ответ на сообщение piotr_n

26 июля 2013, 7:34:03 PM   # 11
kjj
 
 
Сообщения: 1302
Цитировать по имени
цитировать ответ
по умолчанию Re: Лучший способ извлечения адресов из sigScript и PkScript?

Если вы не делаете полный скриптовый движок, вы должны сделать шаблоны и искать их, пока не найдете хит.

jl2012 приводит пример из "стандарт" Шаблон транзакции.

Также см

У меня есть полный двигатель сценария, но я пишу SPV узел теперь не делают полную оценку сценария. Он просто хочет, чтобы извлечь адреса для теста против местного бумажника. Я предполагаю, что это действительно не имеет значения слишком много, если я получаю ложные срабатывания, так как они будут отфильтрованы по цвету фильтр / локального БД в любом случае.

В таком случае, почему вы потрудились извлекая Публичный? Клиент Сатоси просто сравнивает сценарий с сохраненной копии сценария, который соответствует ключ.
kjj сейчас офлайн Пожаловаться на kjj   Ответить с цитированием Мультицитирование сообщения от kjj Быстрый ответ на сообщение kjj

26 июля 2013, 7:39:33 PM   # 12
 
 
Сообщения: 116
Цитировать по имени
цитировать ответ
по умолчанию Re: Лучший способ извлечения адресов из sigScript и PkScript?

В таком случае, почему вы потрудились извлекая Публичный? Клиент Сатоси просто сравнивает сценарий с сохраненной копии сценария, который соответствует ключ.

Так что это здание до: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG

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

26 июля 2013, 7:41:06 PM   # 13
 
 
Сообщения: 1778
Цитировать по имени
цитировать ответ
по умолчанию Re: Лучший способ извлечения адресов из sigScript и PkScript?

В таком случае, почему вы потрудились извлекая Публичный? Клиент Сатоси просто сравнивает сценарий с сохраненной копии сценария, который соответствует ключ.

Так что это здание до: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG

и только соответствие по этому поводу?

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

26 июля 2013, 8:02:55 PM   # 14
kjj
 
 
Сообщения: 1302
Цитировать по имени
цитировать ответ
по умолчанию Re: Лучший способ извлечения адресов из sigScript и PkScript?

В таком случае, почему вы потрудились извлекая Публичный? Клиент Сатоси просто сравнивает сценарий с сохраненной копии сценария, который соответствует ключ.

Так что это здание до: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG

и только соответствие по этому поводу?

Да, точно.

Понимание этого является ключом к осмыслению сжатых ключей и WiFS тоже.
kjj сейчас офлайн Пожаловаться на kjj   Ответить с цитированием Мультицитирование сообщения от kjj Быстрый ответ на сообщение kjj

26 июля 2013, 8:34:58 PM   # 15
 
 
Сообщения: 116
Цитировать по имени
цитировать ответ
по умолчанию Re: Лучший способ извлечения адресов из sigScript и PkScript?

Да, точно.

Понимание этого является ключом к осмыслению сжатых ключей и WiFS тоже.

Я понимаю, сжатые ключи и WIF-х

Во всяком случае, я решил не делать простой memcmp, а скорее что-то более общее:

Код:
        Внутреннее статическое Hash160 GetAddress (байт [] aScript)
        {
            Hash160 хэш = NULL;
            ParseState parseState = ParseState.OP_ANY;
            ScriptParser анализатор = новый ScriptParser (aScript, делегат (Опкод aOpcode, байт [] AData)
            {
                Переключатель (parseState)
                {
                    случай ParseState.OP_ANY:
                        если (aOpcode == Opcode.OP_HASH160)
                            parseState = ParseState.OP_20;

                        если ((aOpcode == (Опкод) 33) || (aOpcode == (Опкод) 65))
                        {
                            если (хэш! = NULL)
                                вернуться ложным;

                            если (Utils.VerifyPublicKey (ADATA, aData.Length)! = 1)
                                вернуться ложным;

                            хэш = новый Hash160 (Utils.RIPEMD160SHA256 (AData));
                        }
                        ломать;

                    случай ParseState.OP_20:
                        если (aOpcode! = (Опкод) 20)
                            вернуться ложным;

                        если (хэш! = NULL)
                            вернуться ложным;

                        хэш = новый Hash160 (AData);
                        parseState = ParseState.OP_EQUALVERIFY;
                        ломать;

                    случай ParseState.OP_EQUALVERIFY:
                        если (aOpcode! = Opcode.OP_EQUAL && aOpcode! = Opcode.OP_EQUALVERIFY)
                            вернуться ложным;

                        parseState = ParseState.OP_ANY;
                        ломать;
                    по умолчанию:
                        вернуться ложным;
                }
                возвращает истину;
            });

            если (parser.Parse ())
            {
                возвращать хэш;
            }

            возвращать нуль;
        }

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



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW