
Двійковий код — це універсальна система для представлення інформації, що використовує лише 0 і 1. У блокчейн-технологіях транзакції, блоки, адреси, геші та інструкції смартконтрактів зберігаються й обробляються як послідовності бітів — рядки, складені з двійкового коду.
Біт — це найменший елемент інформації, який можна уявити як перемикач: 0 — вимкнено, 1 — увімкнено. Вісім бітів формують байт. Всі дані на комп’ютерах і у блокчейнах розкладаються та зберігаються у вигляді послідовностей байтів. Наприклад, символ ASCII “A” має двійковий код 01000001, а SHA-256-геш — це 32 байти двійкових даних.
Двійковий код застосовує тільки 0 і 1, оскільки електронні пристрої впевнено розрізняють лише два стани. Це спрощує апаратне забезпечення та підвищує стійкість до збоїв.
В електронних схемах рівні напруги позначають 0 і 1; у носіях даних цю функцію виконують наявність або відсутність магнітного поля чи електричного заряду. Використання двох станів для побудови складної інформації подібне до створення музики з “увімкнених/вимкнених” нот: чим більше бітів, тим більше даних можна виразити.
Блокчейн упакує кожну транзакцію як послідовність байтів у двійковому коді перед записом у блок. Кожне поле має фіксовану або змінну довжину в байтах, що спрощує розбір і перевірку вузлами.
Крок 1: Гаманець формує поля транзакції — відправник, одержувач, сума, дані про комісію — та кодує їх у байти в пам’яті за допомогою двійкового коду.
Крок 2: Ці байти впорядковуються і кодуються у дані транзакції для передачі. В Ethereum поля транзакції пакуються у послідовність байтів у визначеному порядку, після чого зазвичай відображаються як шістнадцятковий рядок. У Bitcoin входи, виходи та інші дані також структуруються у двійковому форматі, а потім транслюються у шістнадцятковому або сирому вигляді байтів.
Крок 3: Після отримання транзакції вузол розбирає байти згідно з протоколом, перевіряє підпис і баланс, потім записує транзакцію у двійкову структуру даних блоку. Блоки зв’язуються між собою шляхом гешування цих двійкових послідовностей.
Адреси і геші виглядають як рядки, але в основі — це двійковий код. Рядковий формат лише відображає послідовності байтів у зручному для читання вигляді.
Крок 1: Геш утворюється шляхом пропускання вхідних даних через алгоритм, що створює “відбиток” фіксованої довжини. Наприклад, SHA-256 видає 32 байти двійкових даних, які зазвичай показуються як 64-символьний шістнадцятковий рядок — це різні форми представлення одних і тих самих даних.
Крок 2: Адреси зазвичай створюють шляхом об’єднання у двійковому вигляді “версія/префікс + корисне навантаження + контрольна сума”, а потім кодують результат для відображення. Bitcoin використовує Base58Check-кодування — формат, що виключає схожі символи (0, O, I, l). Адреса Ethereum — це 20-байтове двійкове значення, яке зазвичай показують як шістнадцятковий рядок, що починається з “0x”, іноді з міксованим регістром (EIP-55) для виявлення помилок введення.
Смартконтракти компілюються у “байткод” — послідовність інструкцій, що складається з двійкового коду. Віртуальна машина (наприклад, Ethereum Virtual Machine, EVM) зчитує ці байти по одному, інтерпретуючи кожен байт або групу байтів як операційний код для виконання.
Під час розгортання контракту його вихідний код компілюється у потік байтів. Коли вузли отримують цей двійковий код, вони виконують його згідно з правилами віртуальної машини — виконують арифметичні обчислення, операції зі зберігання, реєстрацію подій тощо. “Байткод контракту”, який ви бачите у блокчейн-оглядачах, зазвичай відображається у шістнадцятковому вигляді для зручності, але виконується на ланцюгу як сирі байти.
Гаманці й біржі використовують шістнадцяткове або Base58-кодування для зручного відображення двійкового коду. На сторінці депозиту Gate адреси BTC показані як рядки Base58Check — це комбінація версійного байта + гешу публічного ключа + контрольної суми у двійковому вигляді; адреси ETH представлено як 40-символьні шістнадцяткові рядки, що базуються на 20-байтових двійкових адресах.
На практиці QR-коди — ще один спосіб представлення цих рядків: вони кодують адресу у вигляді графічного шаблону, який при скануванні декодується назад у двійковий код для обробки.
Нагадування про ризики:
Транзакції та блоки, що передаються між вузлами, — це потоки байтів, закодовані у двійковому форматі. Перевірка передбачає обробку цих байтів за правилами протоколу — гешування, перевірку підписів, підтвердження балансів.
Для передачі двійковий формат забезпечує чіткі межі полів і ефективний розбір. Для перевірки алгоритми підпису використовують повідомлення (байти транзакції) і приватний ключ для створення послідовності байтів підпису; вузли використовують публічний ключ для перевірки відповідності цієї послідовності, забезпечуючи автентичність і цілісність даних. Геш блоку стискає всі його дані у двійковий відбиток фіксованої довжини для швидкої перевірки та зв’язування блоків у ланцюг.
Двійковий код — спільна мова даних блокчейну: транзакції, адреси, геші, байткод смартконтрактів і мережеві передачі складаються з послідовностей 0 і 1. Шістнадцяткове, Base58-кодування та QR-коди — це лише зручні способи відображення цих байтів. Розуміння двійкового коду та основних схем кодування допомагає краще інтерпретувати дані у блокчейн-оглядачах і підвищує точність і безпеку операцій. Під час депозиту або переказу коштів уважно перевіряйте кодування й мережу — і починайте з невеликих тестових транзакцій для безпеки.
Комп’ютери використовують 0 і 1, оскільки електронні компоненти надійно визначають лише два стани: під напругою (1) або без напруги (0). Двійкова система проста й надійна, уникає складнощів багатостанової ідентифікації. Весь текст, зображення та відео зрештою перетворюються на комбінації 0 і 1 для зберігання й обробки.
Щоб конвертувати десяткове число у двійкове, послідовно діліть його на 2 і записуйте залишок. Наприклад, для 5: 5 поділити на 2 — 2, залишок 1; 2 поділити на 2 — 1, залишок 0; 1 поділити на 2 — 0, залишок 1. Зчитуючи залишки знизу вгору, отримаєте 101 (двійковий код для 5). Калькулятори роблять це швидко, але з практикою це можна навчитися робити вручну.
Двійковий код — базова мова для зберігання й перевірки даних блокчейну. Інформація про транзакції, адреси гаманців, приватні ключі та інші дані кодуються у двійковому форматі на рівні протоколу; геш-функції переводять їх у шістнадцятковий формат для відображення користувачам. У гаманцях, як-от Gate, адреси, які ви бачите, — це лише зручна для читання форма базових двійкових даних.
Двійковий код використовує лише 0 і 1; шістнадцятковий — 0–9 і A–F. Шістнадцятковий формат спрощує довгі двійкові рядки, оскільки чотири двійкові цифри точно відповідають одній шістнадцятковій (наприклад, 1111 — це F у шістнадцятковому). Це робить довгі коди зручнішими для читання.
Для більшості користувачів базове розуміння двійкового коду може допомогти краще зрозуміти принципи роботи блокчейну, але це не є обов’язковим — платформи на кшталт Gate автоматично виконують усі операції з двійковим кодом під час депозиту чи виведення коштів. Якщо ж ви хочете стати розробником або глибше розбиратися у смартконтрактах, знання двійкового коду є необхідним.


