Введите открытый ключ скрипта len

Почему в некоторых транзакциях открытый ключ после R и S длиннее 33 байт, а в других — 65 байт? Есть ли разница при проверке подписи?

Спасибо

Возможный дубликат отличия входного скрипта
взгляните на вопросы и особенно на их ответы, они содержат полное объяснение того, как структурированы подписи. Если это не ответ, то подумайте о том, чтобы перефразировать свой вопрос, это не имеет смысла, поскольку сигги всегда имеют компоненты R и S, каждый из которых имеет шестнадцатеричный размер 0x47 или 0x48 байтов.
Привет, я думаю, что мой вопрос ясен. Я задал боту вопрос не просто так. Первый был о заголовочном скрипте, этот о Len открытого ключа. Я хочу сейчас, почему у меня могут быть открытые ключи разной длины

Ответы (1)

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

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

pubkey hex без сжатия (04 + x + y):

04 50863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B2352 2CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6

или это: шестнадцатеричный сжатый публичный ключ (02 + x, y = четный):

02 50863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B2352

В случае, когда y=нечетное, тогда в начале стоит 03. Глядя на длину, у вас есть 65 байтов для несжатых и 33 байта для сжатых ключей.