Уважність і терпіння: як відбуваються транзакції в мережі Bitcoin

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

Ще раз про блокчейн

Вся інформація про операції біткоін записується в спеціальні блоки, які складаються зі списку всіх вироблених транзакцій. Якщо скласти блоки в ланцюжок, отримаємо історію того, як криптовалюта передавалася від одного користувача до іншого. Сам блок складається з заголовка і списку транзакцій. Тема містить хеш-коди транзакцій, власний хеш і хеш попереднього блоку.

В основі біткоіна лежить блокчейн, який був створений для неконтрольованих ніким (ні органом влади, ні будь-якими владними особами) грошей. Блокчейн — розподілена база даних, що складається з пов’язаних блоків. Блоки, в свою чергу, складаються з транзакцій користувачів. З огляду на децентралізований блокчейн його розмір грає важливу роль в стабільності системи. Чим більший блокчейн, тим вищі ризики, які пов’язані з виведенням системи з стабільного робочого стану.

Розмір блоку безпосередньо впливає на розмір всього блокчейна. Виходячи з першого пункту, виходить, що є логічне обґрунтування створювати блоки і записувати їх в блокчейн якомога меншого розміру, який важливий в питанні його поширення. Блок має конкретний максимальний обсяг і становить 1 МБ. Кожна транзакція також має свій розмір, тому максимальну кількість транзакцій в конкретному блоці обмежено сумарним розміром транзакцій в байтах. Через збільшення інтересу до біткоіна блоки заповнюються максимально щільно.

  розмірблоку в блокчейні біткоін
Розмір блоку в блокчейні біткоін за всю історію існування зростає. Популярність мережі спонукатиме на активне використання і продовження тенденції на збільшення обсягу.

У блокчейні не зберігається інформація про баланс кожної адреси, там є вся історія здійснених транзакцій. Завдяки якій можна в будь-який момент розрахувати баланс в гаманці того чи іншого користувача шляхом підсумовування коштів, що надіслані та отримані. Таким чином кожен гаманець проводить розрахунок цих транзакцій, як класичний дебет-кредит.

Транзакції «вхід» — «вихід»

Усі транзакції діляться на два типи: приходять — «вхід» та «вихід» — коли користувач сам відправив зі свого гаманця монети іншому користувачеві. Послідовність транзакцій строго завірена. Першою в списку йде та, в якій вказується винагорода — комісія за створення нового блоку. Щоб перевірити справжність операцій з криптовалютами, транзакції повинні бути перенесені в блокчейн. Частини цієї системи зберігаються на безлічі комп’ютерів в мережі Bitcoin.

Кожна транзакція має свій власний розмір в байтах, який залежить від кількості входів і виходів, а не від розміру переказаної суми. Так, наприклад, транзакційний вхід важить близько 148 байтів, один вихід — приблизно 34 байта, отже, сумарний обсяг повного циклу транзакції становить близько 200 байтів. Тому чим більше входів і виходів, тим більше розмір транзакцій в байтах.

Для підтвердження транзакції необхідно виконати складні обчислення — запис даних про операції в блоки є важким процесом і вимагає наявності потужного устаткування. Обчислювальні процеси проходять на стороні користувача, підключеного до мережі біткоін. Так, виходить, що підтвердження транзакції — це її приєднання до списку транзакцій в блоці.

Після проведення операції з криптовалютами, коли один користувач  передав монети іншому, рахунки на стороні відправника  і одержувача оновлюються через деякий час. У традиційних  додатках для підтвердження транзакції має бути знайдено шість блоків, які доводять її валідність, тобто правоту.

При цьому користувач, який проводить операцію, може зменшити число перевірок. Це має сенс робити в тому випадку, якщо користувач керує незначною сумою біткоін. Дана процедура дозволяє спростити і прискорити процес підтвердження транзакції. Як правило, приблизний час підтвердження однієї транзакції становить 15-20 хвилин. Не можна сказати, що це швидко. Адже є мережі, які генерують блоки в сто разів швидше.

Час вивірки транзакції біткоін завжди відрізняється і залежить від наступних показників:

  • Завантаженість мережі. Останнім часом цей показник зростає зі стрімкою швидкістю, система часто відчуває перевантаження. Розробники вже намагаються виправити цей фактор, але поки немає значних досягнень програмування, які б привели до зниження рівня перевантаження. Бувають моменти, коли середня кількість блоків зростає і сам розмір блоків доходить до максимальної величини. Подібне трапляється при накопиченні великої кількості непідтверджених транзакцій.
Оціночна кількість тера-хеш в секунду
Оціночна кількість тера-хеш в секунду (трильйони хеш в секунду), які виконує мережу біткоін з початку свого існування. Зростання почалося в 2016 році, зниження темпів в роботі не планується. Це означає, що перевантаження траплятимуться частіше.
  • Маленька незначна комісія. Крипто-мережа влаштована так, що першими проходять перевірку ті транзакції, у яких вказана велика комісія в якості винагороди за роботу майнерів. Ці перекази користуються популярністю, а значить, відбуваються швидко. Транзакції з невеликим відсотком комісії можуть проходити перевірку кілька днів.
  • Стрибки курсу криптовалют. Різка волатильність криптовалюти біткоін впливає на настрій користувачів. При низькому курсі або черговому обвалі майнери не хочуть братися за роботу, так як підтвердження транзакції стає невигідним процесом.
Середній час для здійснення транзакцій
Середній час для здійснення транзакцій протягом декількох років тримається приблизно на одному рівні.

Підвищуються комісії

Для захисту від DDoS-атак і спам-розсилок від тих користувачів, які прагнуть завантажити мережу порожніми блоками, за кожну транзакцію призначається комісія, не прив’язана до суми переказу. Також вона служить в якості бонусу для майнерів, які займалися підтвердженням роботи. Щоб розрахувати розмір комісії, необхідно спиратися на два показники: дані, що їх надсилають з транзакцією, і частота здійснення транзакцій в мережі. Тобто, якщо користувач отримує багато переказів з незначними сумами ($ 0.2, $ 1, $ 2) або часто витрачає ці ж гроші, то рекомендована гаманцем комісія за новий платіж іншому користувачу буде великою. Якщо користувач спочатку переводить в гаманець велику суму і витрачає вагому кількість монет, то комісія за транзакцію буде несуттєвою.

Ще два роки тому комісії в крипто-гаманцях становили кілька відсотків. Тепер процентна ставка за комісію зросла в 8-10 разів і більше. Якщо верифікації переказу монет не відбулася, і користувач не отримала бажану суму, то система повертає кошти назад на гаманець відправника.

Комісія розраховується в одиницях «Сатоши» і дорівнює 1 Сатоши = 1/100 мільйонів ВТС. Щоб обчислити винагороду майнеру за переказ біткоіна, необхідно запропонувати число Сатоши (запропоновану комісію від гаманця) помножити на 1000 (так можна перевести байти в кілобайти) і потім розділити на 100 мільйонів. Кінцева сума комісії за транзакцію складається з двох параметрів: розмір транзакції в байтах, який залежить від кількості входів і виходів (чим їх більше, тим більше розмір транзакції), і рівень комісії в мережі біткоін, який залежить від навантаження на мережу (чим більше в аркуші очікувань непідтверджених транзакцій, тим вище комісія за кожен байт). Отримані показники фіксуються в мережі, потім відбувається транзакція, на обчислення якої піде багато часу.

Але що  робити якщо користувач захоче перевести монети в максимально короткі терміни?

Існують способи, які допомагають скоротити час підтвердження транзакції:

  •  Підвищення комісії для майнерів — крипто-ентузіасти, особливо самі майнери, які отримують цю винагороду, радять не скупитися і віддавати за підтвердження транзакції від 0.0002 ВТС і більше, залежно від суми переказу, хоч вона і не впливає на прийняття рішення.
  • Обсяг переказаних коштів — чим більше активності в мережі, тим статус операції вище. З кожної виробленої транзакцією статус користувача підвищується, до нього з’являється більше довіри.
  • Використання спеціалізованих майданчиків — криптобірж, на яких покупці і продавці зберігають свої ключі. Завдяки цьому підтвердження відбувається в рамках даної платформи, а не в загальній мережі. В роботі криптовалютного обмінника є значний мінус, через який там не слід зберігати всі свої інвестиції — всі значущі біржі централізовані: якщо станеться хакерська атака, то будуть викрадені гроші майже всіх користувачів.
  • Використання біткоін-гаманців з функцією створення мультипідпису — на подібних сервісах для підтвердження операцій з криптовалютами від користувача буде потрібно лише вказати закритий ключ. Другий «підписом» виступає ключ сервісу. Так не витрачаються кошти і час на підтвердження транзакції.

Головна помилка більшості користувачів полягає в тому, що вони оцінюють розмір комісії в абсолютному вираженні і не враховують розмір самої транзакції. Через це виникають моменти, коли платіж підвисає в мережі на кілька днів. Крипто-гаманці надають функції встановленої комісії і роблять всю роботу за користувачів. Найчастіше цей розмір занадто завищений. Замість того, щоб дати користувачам свободу дій, крипто-гаманці просто показують кінцеву вартість, тобто комісія призначається за замовчанням.

Щоб заощадити на комісіях за транзакції, можна знехтувати всіма перерахованими способами і поставити той показник, який користувачеві здасться найоптимальнішим. У разі, якщо швидкість переказу не важлива, користувач може перевірити кількість непідтверджених транзакцій. Якщо цей показник менше 10,000, то комісію можна знизити вручну в 8-10 разів.

Після затвердження комісії та проведення самої транзакції відправник одержувач повинні дочекатися не менше шести підтверджень, тобто не менше шести знайдених блоків. Це робиться для безпеки мережі, і кількість в 6 блоків обрано не випадково: з теоретичної точки зору ймовірність того, що шахрай накопичить більше 10% від хешрейта мережі для фальсифікації транзакції, невелика, крім того, незначний ризик, менше 0,1%, допускається в мережі і не є критичним.

Заповітні шість підтверджень

Для здійснення атаки або підробки транзакції хакери повинні володіти значними потужностями, які багато в чому перевищують потужності відправника і одержувача. Але це фактично неможливо, або перевищує вартість викрадень. Таким чином, 6 підтверджень є тим нездоланним бар’єром, який стає на шляху до атаки. За часом і при сприятливих обставинах це займає близько години з розрахунку 1 блок = 10 хвилин. Ті користувачі, у яких є більше 10% потужності (тобто інвестиції в обчислювальні потужності в мільйони доларів), досить просто отримують шість підтверджень поспіль.

Користувач, який відправляє біткоіни може знизити кількість перевірок. Зростання завантаженості мережі викликає у користувачів паніку. Тому багато хто не чекають поставленого часу і ставлять підтвердження в кількості двох блоків = 20 хвилин. Це можливо при невеликих переказах.

Біткоіни, які видаються мережею за перебування блока, можна використовувати тільки через 100 підтверджень. 100 знайдених блоків. Користувач з благими намірами не відображує отримані за рішення блоку монети до тих пір, поки не нагромадиться 120 підтверджень.

Загальна сума доходу з блоку і комісій за операцію, виплачена майнерам
Загальна сума доходу з блоку і комісій за операцію, виплачена майнерам. На даний момент індекс не є критичним або високим. Тому існує ймовірність, судячи з графіку, що цей показник буде падати.

Численні користувачі на різних форумах і блогах пишуть про якісь проблеми, що виникають в мережі біткоін. Емоційні повідомлення супроводжуються яскравими епітетами і описовими моментами, коли щось пішло не так і переказ монет з одного гаманця на інший не здійснився. Як правило, після довгих міркувань про баги біткоіна і його неспроможності учасники соціальних платформ приходять до висновку, що необхідно досконально вивчати функціонування технології, бути постійно в курсі всіх подій, аналізувати їх, застосовувати на практиці, і тоді будь-яких труднощів можна буде уникнути. Якщо мережа буде перевантажена (і довгого переказу через це не уникнути), то завдяки науковому та новинному бекграунду користувач зможе спокійно відреагувати на ситуацію, не піддатися паніці і дочекатися завершення своєї угоди.

Нагадуємо, що ми раніше писали Як вибрати стиль і стратегію торгівлі криптовалютами