Цифров подпис
Цифров подпис биткойн доказва, че държите частния ключ, без да го показвате. Всеки подпис важи само за една трансакция. Научете как се създава и проверява.
От Dimitar Zurnov · Обновено на 4 ноември 2026
Адаптирано от Learn Me a Bitcoin на Greg Walker.
Цифровият подпис е кратка двойка числа, която доказва, че държите частен ключ, без да го разкрива. Създава се от частния ключ и данните за една трансакция. Всеки може да го провери с публичния ключ, но никой не може да го подправи или да го ползва за друга трансакция.
Защо харченето изисква подпис?
За да похарчите изход, трябва да го отключите. Заключването на изхода е свързано с публичен ключ или с адреса, направен от него, затова трябва да покажете, че държите съответния частен ключ. Заключванията обясняват това по-подробно. Адресът е просто кратко кодиране на публичен ключ, така че да платите на адрес означава да заключите монетите към този публичен ключ.
Най-простият метод би бил да сложите частния ключ директно в трансакцията. Това е лоша идея. Всеки, който прочете трансакцията, ще види ключа и ще може да го ползва, за да похарчи всеки друг изход, заключен към същия адрес.
Как се създава подпис?
Подписването взема две неща. Първото е вашият частен ключ. Второто е отпечатък на данните от трансакцията, тоест хеш на частите, които се подписват. Тъй като отпечатъкът обхваща точно тези части, подписът е свързан с една конкретна трансакция.
Подписването изисква и случайно число. То прави всеки подпис уникален, така че един и същ ключ никога не дава два еднакви подписа. Това случайно число никога не бива да се повтаря. Ако се повтори, от двата подписа може да се възстанови частният ключ.
Математиката съчетава тези данни и създава подпис от две числа, наречени r и s. Подписът се поставя във входа, който отключва. При по-старите видове адреси той е в отключващия скрипт. При по-новите е в witness данните.
Как се проверява подпис?
Проверката ползва само публични данни: самия подпис, отпечатъка и публичния ключ. Проверяващият ги ползва, за да намери точка от кривата. Ако стойността x на тази точка съвпада с r, подписът е валиден. Проверката никога не изисква частния ключ.
Повечето плащания ползват схемата за подписи ECDSA. Изходите на Taproot вместо нея ползват Schnorr подписи. Идеята е същата, но математиката е различна.
Защо подписът не може да се ползва повторно?
Всеки подпис е свързан с една трансакция чрез отпечатъка си. Ако някой сложи подписа в друга трансакция, отпечатъкът вече не съвпада. Подписът вече не е валиден и нодовете отхвърлят трансакцията.
Същото се случва, ако някой промени трансакцията, след като е подписана. По подразбиране подписът обхваща цялата трансакция, така че промяна на сума или на получател променя и отпечатъка. Старият подпис вече не отговаря на данните.
Какво доказва подписът?
Когато подписвате, доказвате, че контролирате публичния ключ, към който е заключен изходът. Никога не разкривате частния ключ, а подписът важи само за една трансакция. Тази комбинация прави заключванията на биткойн безопасни.
Следващата страница, SegWit, разказва за ъпгрейда от 2017 г., което премества подписите извън ID-то на трансакцията, и защо това има значение.
В този раздел: Начинаещи
Целият курс „Биткойн от нулата“
Нещо не изглежда наред? Кажете ни