Към съдържанието
ДаретеEN

Трансакции

Вход

Входовете на трансакция в биткойн (bitcoin) сочат по-стар изход чрез TXID и VOUT и го отключват. Вижте петте полета на вход, размерите и примери.

От Dimitar Zurnov · Обновено на 4 ноември 2026
Адаптирано от Learn Me a Bitcoin на Greg Walker.

Вход на трансакция е препратка към по-стар изход и кодът, който го отключва. Той съдържа TXID и VOUT, с които назовава изхода, ScriptSig, който го отключва, и sequence (пореден номер), който задава окончателността. Всеки вход харчи точно един изход. Щом трансакцията бъде изкопана, изходът се брои за похарчен.

Обикновено трансакцията има един или два входа. Толкова, колкото ѝ трябват, за да покрие сумата, която праща, и таксата.

Какво прави входът?

Изходът е UTXO, докато някой не го похарчи. За да го похарчи, нова трансакция го назовава в един от входовете си и подава кода за отключване. Мрежата проверява дали кодът изпълнява заключването. Ако го изпълнява, изходът се маркира като похарчен.

Входът не носи стойност. Суровите данни съдържат препратката и кода за отключване, но не и сумата, която посоченият изход е имал. За да я научите, гледате трансакцията, която е създала изхода. Затова портфейлът трябва да следи кои изходи може да похарчи.

Кои са полетата на входа?

Всеки вход има едни и същи пет полета. Те се повтарят за всеки вход в трансакцията.

Поле Размер Формат Какво съдържа
TXID 32 байта Естествен ред на байтовете Хешът на трансакцията, която е създала изхода. Вижте TXID.
VOUT 4 байта Цяло число в little-endian Индексът на изхода в тази трансакция, броен от 0. Вижте VOUT.
ScriptSig size Променлив Compact size Дължината в байтове на ScriptSig, който следва.
ScriptSig Променлив Скрипт Кодът за отключване на legacy заключване. При нативните segwit входове е празен. Вижте ScriptSig.
Sequence 4 байта Битово поле в little-endian Настройките за окончателност: locktime, RBF и относително заключване. Вижте sequence.

TXID и VOUT заедно образуват outpoint, уникален етикет за един изход във веригата. Нативните segwit входове запазват същите пет полета, но данните им за отключване се местят в секцията witness, затова размерът им на ScriptSig е 00. Segwit вход, опакован в P2SH-P2WPKH, пази къс ScriptSig, който записва 22-байтовата witness програма.

Входът посочва по-стар изход с TXID и VOUT, а този изход е онзи, който харчи. По-ранна трансакция 78569dd4…a4a54599 за експлорър 0 1 2 харчи се от този вход Входът TXID 9945a5a440f2…d49d5678 VOUT 01000000 изход 1 SIZE 6a 106 байта за ScriptSig SCRIPT подпис и публичен ключ SEQ ffffffff TXID в суровия ред на данните
TXID назовава трансакцията, а VOUT назовава изхода в нея.

Как изглежда трансакция с един вход?

Тази трансакция, 05d350c8a65010bbe9d220b2accd7601b4c6541b7c6d7f5ad451efbcc07f8d66, е една от най-простите възможни. Ето суровите ѝ данни:

02000000019945a5a440f2d3712ff095cb1efefada1cc52e139defedb92a313daed49d5678010000006a473044022031b6a6b79c666d5568a9ac7c116cacf277e11521aebc6794e2b415ef8c87c899022001fe272499ea32e6e1f6e45eb656973fbb55252f7acc64e1e1ac70837d5b7d9f0121023dec241e4851d1ec1513a48800552bae7be155c6542629636bcaa672eee971dcffffffff01a70200000000000017a9148ce773d254dc5df886b95848880e0b40f10564328700000000

Входът ѝ се чете така:

  • TXID: 9945a5a440f2d3712ff095cb1efefada1cc52e139defedb92a313daed49d5678, който експлорърите показват в обратен ред като 78569dd4….
  • VOUT: 01000000, т.е. изход 1 на тази трансакция.
  • Размер на ScriptSig: 6a, което е 106 байта.
  • ScriptSig: 71-байтов подпис с байта за sighash, след него 33-байтов компресиран публичен ключ. Това е отключващият код за P2PKH заключване.
  • Sequence: ffffffff, което означава окончателен.

Трансакцията има един изход. Полето за стойност е a702000000000000. Ако обърнем байтовете, получаваме 02a7, което е 679 сатоши. Изходът е P2SH заключване.

Как една трансакция харчи няколко изхода?

Някои плащания изискват повече от един вход. Да кажем, че портфейл има два малки изхода и иска да прати повече от стойността на всеки от тях. Той харчи и двата, така че трансакцията има два входа.

Трансакция 42563ae3e391d74de7160e64ebfc730885306faad799197b80ebe5fb1386b7a2 точно това прави. Входовете ѝ назовават два изхода: изход 25 на една трансакция, на стойност 1,000,000 сатоши, и изход 31 на друга, на стойност 6,690,000 сатоши. Заедно те покриват един изход от 7,684,711 сатоши. Входовете дават общо 7,690,000, така че 5,289-те сатоши, които остават, са таксата.

Повече входове означават по-голяма трансакция. Всеки вход носи собствен подпис и публичен ключ, така че размерът расте с всеки вход. Това влияе на таксата, защото майнърите подреждат трансакциите по такса на виртуален байт.

Какво представлява входът coinbase?

Първата трансакция във всеки блок е coinbase. Нейният единствен вход е специален. Той не харчи по-ранен изход, затова TXID е 32 нулеви байта, а VOUT е ffffffff. Майнърът вписва в ScriptSig каквито данни поиска, в рамките на 2 до 100 байта. Coinbase си има отделна страница: вижте coinbase.

От блок 227,931 нататък BIP 34 изисква ScriptSig-ът на coinbase входа да започва с височината на блока. Страницата ни за височината на блока обяснява защо това помага да различаваме блоковете.

Можете ли да избирате кои входове да ползвате?

Да, с подходящ портфейл. Входовете на трансакцията са монетите, които тя харчи, затова избирането на входове е избиране на монети. Портфейлите го наричат избор на монети (coin selection) или контрол на монетите (coin control).

Много портфейли избират входовете вместо вас и се опитват да държат таксата ниска, като използват колкото може по-малко входове. Други ви оставят сами да изберете изходите. Това може да помогне за поверителността: ако не искате две плащания да се свързват, пазете монетите им отделно. Може да помогне и за таксите. Ако слеете много малки изходи в един по-голям, докато таксите са ниски, спестявате пари, когато похарчите по-късно и таксите може да са по-високи.

Следващата страница, TXID, обяснява първото поле на всеки вход: как се построява хешът, който назовава по-ранната трансакция.

Източници

В този раздел: Трансакции

Целият курс „Биткойн от нулата“

Нещо не изглежда наред? Кажете ни