P2PK
P2PK биткойн (bitcoin) заключва изход към суров публичен ключ, а един подпис го отключва. Вижте hex записа, стека и реални примери.
От Dimitar Zurnov · Обновено на 4 ноември 2026
Адаптирано от Learn Me a Bitcoin на Greg Walker.
P2PK, съкращение от pay to public key (плащане към публичен ключ), е най-простото заключване в биткойн (bitcoin). Той заключва изхода директно към публичен ключ. Всеки, който може да направи валиден подпис със съответния частен ключ, може да похарчи монетите. P2PK е остарял тип от първите години на биткойн и днес е рядък.
Как изглежда заключващият скрипт на P2PK?
Заключващият скрипт (scriptPubKey) се състои от два опкода около един публичен ключ. 41 поставя в стека следващите 65 байта, които са некомпресиран публичен ключ, а ac е OP_CHECKSIG. Целият заключващ скрипт е 67 байта:
41049464205950188c29d377eebca6535e0f3699ce4069ecd77ffebfbd0bcf95e3c134cb7d2742d800a12df41413a09ef87a80516353a2f0a280547bb5512dc03da8ac
Изход 1 на 1db6251a9afce7025a2061a19e63c700dffc3bec368bd1883decfac353357a9d използва това заключване. Компресираният публичен ключ е 33 байта, така че същото заключване с компресиран ключ е 35 байта: 21, ключът и после ac.
Как се харчи изход P2PK?
Отключващият скрипт (scriptSig) е един елемент, подписът:
483045022100c219a522e65ca8500ebe05a70d5a49d840ccc15f2afa4ee9df783f06b2a322310220489a46c37feb33f52c586da25c70113b8eea41216440eb84771cb67a67fdb68c01
48 поставя в стека следващите 72 байта. Подписът е в DER формат, а последният му байт, 01, е sighash типът SIGHASH_ALL. Този байт показва кои части от трансакцията подписът покрива. Харчещият не показва публичен ключ, защото заключването вече го съдържа. Вход 0 на e827a366ad4fc9a305e0901fe1eefc7e9fb8d70655a079877cf1ead0c3618ec0 е харчене от този вид.
Как работи P2PK скриптът?
Двете части се изпълняват една след друга, а стекът пренася подписа от едната към другата:
- Отключващият скрипт поставя подписа в стека.
- Заключващият скрипт поставя публичния ключ.
OP_CHECKSIGвзима двата елемента от стека и проверява подписа спрямо ключа.- Ако подписът е валиден,
OP_CHECKSIGпоставяOP_1. Ако не е, поставя празен елемент (невярно, същото катоOP_0) и скриптът се проваля.
Когато OP_1 е единственият елемент, който остава, скриптът е валиден и монетите могат да се движат.
Кои P2PK изходи можете да проверите в нашия explorer?
- Coinbase трансакцията на генезис блока, 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b, плаща изход 0 към некомпресирано P2PK заключване. Монетите никога не са се движили.
- Блок 170 съдържа f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16, трансакцията, с която Сатоши е изпратил 10 BTC на Hal Finney. И двата ѝ изхода са P2PK. Вход 0 на ea44e97271691990157559d0bdd9959e02790c34db6c006d779e82fa5aee708e харчи един от тях.
- Изход 0 на 3db8816c460f674e47f0e5799656721a249acdd53cd43a530c83384577485947 е P2PK заключване към компресиран ключ от 33 байта. Вход 0 на cda1f7d88232ff7e4fc1fcbf8a66b2cc3b8e19b5bc0ad22618453b8b75156740 го харчи.
Защо P2PK е рядък днес?
Ранните майнъри са получавали наградите си в P2PK изходи. P2PK се среща главно в coinbase трансакциите на първите блокове. Причината не е известна. Най-вероятното обяснение е, че майнърът не е имал нужда от адреси, така че по-простото заключване му е стигало.
По-късно портфейлите предлагали само адреси, а адресът се превръща в P2PKH заключване. P2PK заключване можело да се направи само ръчно, в суровата трансакция. P2PKH също скрива публичния ключ до харченето, което P2PK не прави.
Има ли P2PK изходът адрес?
Не. P2PK изходът няма официален адрес. Някои explorer-и все пак показват такъв. Те вземат HASH160 на публичния ключ и го кодират като P2PKH адрес. За изхода на генезис блока този адрес е 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa. Това е адресът, който същият ключ би имал като P2PKH заключване. Адресът е полезен за търсене, но самият P2PK изход няма собствен адрес.
В този раздел: Скриптовият език
Целият курс „Биткойн от нулата“
Нещо не изглежда наред? Кажете ни