Ідентифікатор транзакції Bitcoin, який зазвичай скорочено називають TXID, є основоположним ідентифікатором в екосистемі біткоїна. Це буквено-цифровий рядок, що діє як унікальний цифровий відбиток для кожної окремої транзакції, записаної в блокчейні біткоїна. Як зазначено в описі, цей ідентифікатор створюється шляхом застосування криптографічної хеш-функції, а саме подвійного SHA-256, до всіх даних транзакції. TXID — це більше, ніж просто набір символів; він слугує важливим чеком, що дозволяє користувачам відстежувати, перевіряти та посилатися на конкретні перекази біткоїнів (BTC) з високою точністю за допомогою будь-якого публічного оглядача блокчейну.
Наявність TXID забезпечує незмінний запис про те, що певна кількість BTC була надіслана з однієї адреси на іншу в конкретний час. Без цього унікального ідентифікатора відстеження руху вартості в децентралізованому реєстрі було б фактично неможливим, що підірвало б прозорість та можливість аудиту — основні засади технології блокчейн. Він об’єднує дані транзакції, включаючи входи, виходи та метадані, в єдине, компактне та унікальне представлення.
Необхідність у TXID випливає безпосередньо з принципів побудови децентралізованої системи реєстру, що не потребує довіри. У традиційній банківській системі номери рахунків та ідентифікатори транзакцій керуються та видаються банками централізовано. У мережі Bitcoin немає центрального органу. Тому самогенерований, перевірюваний та унікальний ідентифікатор для кожної транзакції має першочергове значення.
Ось чому TXID є критично важливими:
Створення Bitcoin TXID — це точний, детермінований процес, що включає всі сирі дані транзакції та специфічний криптографічний алгоритм. Це не випадково призначене число, а прямий математичний наслідок змісту транзакції.
Перш ніж можна буде згенерувати TXID, важливо зрозуміти, що таке «транзакція Bitcoin». Транзакція Bitcoin — це структура даних, яка по суті каже: «платник А хоче надіслати X суму BTC одержувачу Б». Ця структура даних складається з кількох ключових компонентів, які часто серіалізуються в потік байтів:
Важливо зазначити, що самі дані свідка (які включають підписи в транзакціях SegWit) виключаються з даних, що використовуються для розрахунку TXID у SegWit-транзакціях. Це було свідомим дизайнерським рішенням для виправлення пластичності транзакцій (transaction malleability), про що йтиметься далі. Для застарілих (non-SegWit) транзакцій хешується все корисне навантаження транзакції, включаючи підписи.
Щоб захешувати дані транзакції, їх спочатку потрібно перетворити в стандартизований компактний бінарний формат. Цей процес, відомий як серіалізація, гарантує, що кожен вузол (нода) у мережі інтерпретуватиме дані транзакції ідентично, що призведе до однакового розрахунку TXID. Правила серіалізації диктують порядок і байтове представлення кожного компонента (версія, входи, виходи, locktime тощо).
Для транзакції без SegWit дані, які серіалізуються та хешуються, включають:
Після того, як дані транзакції серіалізовані в масив байтів, наступним кроком є застосування криптографічної хеш-функції. Bitcoin використовує SHA-256 (Secure Hash Algorithm 256-bit) не один, а два рази.
Процес відбувається наступним чином:
H1 = SHA256(серіалізовані_дані_транзакції)H2 = SHA256(H1)TXID = H2Отриманий 32-байтний хеш і є сирим TXID. Цей сирий хеш зазвичай представляється як 64-символьний шістнадцятковий рядок для зручності читання людиною (кожен байт представлений двома шістнадцятковими символами).
Тонкою, але важливою деталлю для відображення та інтерпретації TXID є «порядок байтів» (endianness). Коли сирий 32-байтний хеш TXID відображається як шістнадцятковий рядок, він часто подається у зворотному порядку байтів (little-endian) порівняно з тим, як він зберігається внутрішньо (big-endian).
У Bitcoin внутрішнє представлення хешу зазвичай є big-endian. Однак, коли ви бачите TXID в оглядачі блокчейну, він зазвичай представлений у шістнадцятковому вигляді little-endian. Наприклад, якщо внутрішній сирий 32-байтний хеш має вигляд 0123456789abcdef..., він може відображатися як efcd8967452301.... Ця інверсія застосовується лише з метою відображення і не змінює основне унікальне значення хешу. Хоча це здається технічною дрібницею, розуміння цього може запобігти плутанині при порівнянні сирих виходів хешу з даними оглядачів.
Вибір і застосування SHA-256 як алгоритму хешування є центральними для безпеки та цілісності Bitcoin TXID.
SHA-256 є членом сімейства криптографічних хеш-функцій SHA-2. Його властивості мають вирішальне значення для безпеки Bitcoin:
Використання подвійного SHA-256 (SHA256d) для TXID (а також для хешів блоків) є специфічним дизайнерським вибором у Bitcoin. Хоча один прохід SHA-256 зазвичай вважається достатньо безпечним, «подвійний хеш» забезпечує додатковий рівень захисту, зокрема проти теоретичної атаки, відомої як «атака на подовження повідомлення» (length-extension attack).
У такій атаці, якщо зловмисник знає хеш повідомлення та довжину оригінального повідомлення, він може додати дані до оригінального повідомлення та обчислити хеш нового, розширеного повідомлення, не знаючи змісту оригіналу. Хоча сам SHA-256 загалом стійкий до цієї атаки в більшості контекстів, подвійне застосування ефективно нівелює цю вразливість. Перший хеш перемішує дані, а другий хеш хешує вже перемішані дані, що робить вкрай важким використання будь-яких потенційних слабкостей, пов'язаних із довжиною повідомлення. Це додатковий рівень консервативної безпеки.
Крім технічної генерації, TXID глибоко інтегровані в практичне використання Bitcoin, виконуючи кілька критичних функцій для користувачів, сервісів та самої мережі.
Мабуть, найпоширенішим використанням TXID для звичайного користувача є відстеження транзакції. Коли ви надсилаєте або отримуєте біткоїни, ви часто отримуєте TXID. Ввівши цей ідентифікатор у будь-який публічний оглядач блокчейну (наприклад, Blockstream.info, Blockchain.com, Mempool.space), ви можете побачити:
Ця можливість самостійно перевіряти деталі транзакції, не покладаючись на треті сторони, є наріжним каменем прозорості Bitcoin.
Для бізнесу, бірж або навіть приватних осіб TXID слугує незаперечним доказом оплати.
Він функціонує подібно до банківського референс-номера, але з додатковою перевагою публічної перевірки в незмінному реєстрі.
Мережа Bitcoin працює на моделі UTXO, а не на моделі на основі акаунтів (рахунків). Коли ви отримуєте біткоїни, ви не отримуєте баланс на рахунку; ви отримуєте UTXO. Коли ви витрачаєте біткоїни, ви споживаєте один або кілька UTXO і створюєте нові.
Кожен вхід у новій транзакції повинен посилатися на існуючий UTXO. Це посилання формується за допомогою:
Ця система забезпечує безперервний ланцюжок володіння та витрачання коштів. Таким чином, TXID — це не просто ідентифікатор, а критично важливий компонент для побудови нових транзакцій, що фактично пов'язує всю історію переказів Bitcoin.
Якщо ви зіткнулися з проблемою в транзакції Bitcoin — можливо, вона застрягла або кошти не надійшли вчасно — надання TXID службам підтримки (наприклад, гаманців або бірж) зазвичай є першим кроком у діагностиці проблеми. Це дозволяє миттєво зосередитися на конкретній події в блокчейні.
В екосистемі Bitcoin існує кілька типів ідентифікаторів, і важливо відрізняти TXID від суміжних, але відмінних понять.
Хоча TXID є фундаментальними, певні нюанси та історичні події вплинули на те, як вони сприймаються та використовуються.
Значним історичним викликом, пов'язаним із TXID, була «пластичність транзакцій» (transaction malleability). До активації Segregated Witness (SegWit) підпис (частина ScriptSig) у вході транзакції включався в дані, що хешувалися для створення TXID. Оскільки підпис міг бути злегка змінений третьою стороною без анулювання транзакції (наприклад, шляхом зміни компонента підпису «S» на його негативний еквівалент, що є математично коректним), TXID транзакції міг змінитися до того, як вона була підтверджена та додана в блок.
Це створювало проблеми для сервісів, які покладалися на непідтверджені TXID, зокрема для «ланцюжків» непідтверджених транзакцій (де одна транзакція витрачає вихід іншої непідтвердженої транзакції). Якщо TXID першої транзакції змінювався, друга транзакція ставала недійсною, оскільки посилалася на неіснуючий TXID.
Рішення SegWit: SegWit (BIP141, BIP143, BIP144) вирішив проблему пластичності транзакцій, винісши підпис (дані свідка) за межі даних, що використовуються для розрахунку традиційного TXID. Для SegWit-транзакцій TXID обчислюється лише на основі основних даних транзакції (версія, входи, виходи, locktime). Дані свідка хешуються окремо у «wTXID» (witness TXID), який включає дані свідка. Традиційний TXID для SegWit-транзакцій тепер захищений від пластичності, оскільки дані, які він хешує, більше не можуть бути змінені третіми сторонами. Це значно покращило надійність відстеження непідтверджених транзакцій і дозволило впровадити нові функції, такі як Lightning Network.
Поява TXID в оглядачі блокчейну не означає негайну «остаточність» транзакції. Транзакція вважається справді незворотною та фінальною лише після того, як вона отримала достатню кількість підтверджень блоками. Хоча сам TXID фіксується після трансляції транзакції, безпека переказу зростає з кожним новим блоком, видобутим поверх блоку з транзакцією. Загальноприйняті галузеві стандарти рекомендують:
Хоча TXID забезпечують прозорість, вони також сприяють псевдонімній природі біткоїна. Кожна транзакція, ідентифікована за допомогою TXID, є публічно видимою, пов'язуючи адреси відправника та отримувача. Хоча ці адреси прямо не розкривають особистостей у реальному світі, моделі витрат і складний аналіз іноді можуть деанонімізувати користувачів. Таким чином, TXID є палицею з двома кінцями: забезпечуючи прозорість мережі, вони вимагають від користувачів бути уважними до своєї фінансової конфіденційності.
Фундаментальний метод генерації TXID (подвійний SHA-256 серіалізованих даних транзакції) навряд чи зміниться в основному протоколі Bitcoin через його базову роль та акцент мережі на зворотній сумісності та стабільності. Однак, у міру еволюції структур транзакцій (наприклад, з Taproot або новими типами скриптів), точний зміст серіалізованих даних, що хешуються, може зазнавати незначних коригувань, завжди з ретельним урахуванням цілісності TXID. TXID залишається незмінним, перевірюваним і унікальним цифровим чеком у самому серці кожного переказу Bitcoin.



