Нетипичный сценарий ввода

В блокчейне много нетипичных Input scriptданных. Что это значит?

Например, транзакция:

4A253F17E5F4B24B41F72A6AE46DD1BCB25F7F33769C2AA5D50C6A6A7CF9F76E( ссылка )

имеет входной скрипт:

3046022100EE238CAD1E8AC7F14661760B1B1FB2CF171F41AFB31E3B59D3CED2284A1C2A71022100BEF7FB989CCFB00A65C009A77B46BC818D2E80458668F73DA0072966AAA28B620103B2ABE09A1C4E67C3EB9ACD5596452A5D785C6E5A772FBEA9A29CA95C15598EA6

Когда я пытаюсь проанализировать эти необработанные данные, результат:

30

46

02

21

00EE238CAD1E8AC7F14661760B1B1FB2CF171F41AFB31E3B59D3CED2284A1C2A71- Сиг р

02

21

00BEF7FB989CCFB00A65C009A77B46BC818D2E80458668F73DA0072966AAA28B62- Сиг с

01

03

B2ABE09A1C4E67C3EB9ACD5596452A5D785C6E5A772FBEA9A29CA95C15598EA6Неизвестные данные .

Какие неизвестные данные? Это не открытый ключ, но что это такое?

PS Я проверил, что эти неизвестные данные не являются частью открытого ключа (координата X открытого ключа, как я думаю). После вычисления координаты Y (по EC) открытого ключа я получаю 9F203515694856269C76C797D8E8E784EBDB927B650705E348F6FBA07DC56FAF. После того, как я проверю подпись (Sig) следующим образом:

Public Key = B2ABE09A1C4E67C3EB9ACD5596452A5D785C6E5A772FBEA9A29CA95C15598EA6, 9F203515694856269C76C797D8E8E784EBDB927B650705E348F6FBA07DC56FAF

Transaction hash for this Sig = 59E4367A829551DE94594777789B9274BFBDAC9F66550B02B85639945F21BE3A.

Затем я вычисляю xи yот Public Key, Hashи от образующей точки G. Но xне соответствует Sig rнеобработанным данным. Так что этот способ не работал.

Ответы (1)

Это открытый ключ. Я думаю, что вы неправильно анализируете эту транзакцию - вы должны получить два элемента. Первый элемент представляет собой подпись и имеет длину 73 байта, начиная с 3046022100ee238c...Второй элемент представляет собой открытый ключ длиной 33 байта и начинается с03b2abe09a1c4e67...


Вот транзакция, которую вы связали, разбитая на sig и pubkey.

версия

01000000

вин граф

01

минус

3abe215f943956b8020b55669facbdbf74929b7877475994de5195827a36e45900000000

сценарий Лен

6c

push немедленно 73 байта

49

байты

3046022100ee238cad1e8ac7f14661760b1b1fb2cf171f41afb31e3b59d3ced2284a1c2a71022100bef7fb989ccfb00a65c009a77b46bc818d2e80458668f73da0072966aaa28b6201

push немедленно 33 байта

21

байты

03b2abe09a1c4e67c3eb9acd5596452a5d785c6e5a772fbea9a29ca95c15598ea6

последовательность

ffffffff

(Все, что ниже, является частью выходных данных.)

0206cfbb9f0f0000001976a914a66ba35c1d9bdcc8dfeb0fb8bedb16e1a570487d88ac09165612000000001976a914b420350a7b274e059d7ba5c97e8887d447b7287588ac00000000
Да, он просматривает уже разобранные данные. Не полный скрипт в шестнадцатеричном формате.
Открытый ключ — это точка, которая имеет два числа 32b, но эти неизвестные данные имеют только одно число. Ошибки нет, потому что я смотрю эти данные на сайтах обозревателя блоков, и они такие же, как в моем вопросе.
@Denis Это сжатый ключ, который представляет собой одно число 32b и один бит. См. bitcoin.org/en/glossary/compressed-public-key и bitcoin.stackexchange.com/questions/3059/…
@NickODell, как я понимаю, сжатый ключ - это координата X несжатого ключа?
@ Денис Да, верно. См. davidederosa.com/basic-blockchain-programming/… , чтобы узнать, как его сжать.