Блокчейн перевірити транзакцію. Біткоїн транзакції: перевірка, відстеження та комісія за переклад. Тут залишається лише один варіант – чекати

Так ви вже тут другий рік «стоїте»! Та ось чекаю на підтвердження транзакції з биткоинами. Мабуть, маленьку комісію призначив. (З анекдоту, підслуханого в блокчейн)

Простіше, швидше та легше! Такими «гаслами» я керуватимуся, щоб дохідливо пояснити вам, як довго відбувається підтвердження транзакції. Але спочатку перерахуємо ті питання, на які ми спробуємо відповісти:

Як це працює?

Вибачте, але «вантажитиму» 😉 Без цього зрозуміти принцип маніпуляцій з криптовалютою не вийде.

1) Інформація про операції з биткоинами записується у спеціальні блоки, які є список транзакцій. Якщо скласти блоки в ланцюжок, то отримаєте історію «ходіння» криптовалюти.

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

3) Щоб перевірити справжність операцій з криптовалютою, транзакції мають бути валідовані блокчейн. Він є розподіленою БД. Її частини зберігаються на багатьох комп'ютерах у мережі Bitcoin.

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

Підтвердження транзакції – це її приєднання до списку транзакцій у блоці.

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

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

Якщо верифікації перекладу криптоденег не відбулося, система повертає кошти назад на гаманець відправника.

Як довго чекати?

У мене в середньому йде від 20 хвилин до години.

Час очікування залежить від кількох складових:

1)Завантаженість «криптомережі»— за останні два роки кількість операцій із біткоїнами зросла більш ніж у 8 разів. Це видно на графіку нижче.

Він показує зростання кількості трильйонів хешів, що виконуються за секунду в мережі Bitcoin.

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

Така ситуація виникає при накопиченні величезної кількості непідтверджених транзакцій.

2) Маленька комісія– у «криптомережі» першими проходять валідацію транзакції із великим розміром винагороди майнерам. У деяких випадках, якщо сильно економити, процедура підтвердження може тривати кілька днів.

3) Стрибки курсу криптовалюти– також підвищують час верифікації.

Ось відео, в якому розповідається про подібний випадок на blockchain.

Як дізнатись скільки підтверджень пройшло?

Раджу тим, хто шукає «невідомо що» за своїми (і не тільки) операціями з биткоинами заходити на blockchain.info . Тут можна знайти будь-яку інформацію щодо блоків, транзакцій. А також "промоніторити" загальну ситуацію на ринку.

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

Внизу сторінки знаходиться список здійснених транзакцій. Натисніть на потрібну та отримайте потрібне значення.

Як збільшити швидкість?

Методи скорочення часу транзакції:

  • Підвищення комісії для майнерів – фахівці радять «не скупитися» та віддавати за підтвердження від 0,0002 ВТС та більше.
  • Обсяг коштів, що переводяться – чим більше криптовалюти перекладаєте, тим статус операції вищий у «криптомережі».
  • Використання спеціалізованих майданчиків на кшталт coinbase.com – на таких сервісах покупці та продавці зберігають свої ключі. Завдяки цьому підтвердження відбувається в рамках цієї платформи, а не спільної мережі.

  • Використання біткоін-гаманців з функцією створення мультипідпису – на подібних сервісах для підтвердження операції з криптовалютою від користувача потрібно лише вказати закритий ключ. Другим «підписом» виступає ключ сервісу. Таким чином не витрачаються кошти та час на підтвердження транзакції.

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

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

Кожен учасник (комп'ютер, клієнт-гаманець, вузол мережі) біткойн-системи є самостійним сервером, що зберігає записи про всі bitcoin-операції у світі.

Відомості про транзакції (переклади) між біткоін-адресами загальнодоступні та відкриті для перегляду з моменту появи першого біткоїну. Але власники цих адрес нікому не відомі.

Основні принципи системи Біткоїн

1. Стати анонімним власником BTC-гаманця може кожен користувач Мережі. Для цього достатньо встановити та запустити біткоїн-клієнт або скористатися онлайн-сервісом типу blockchain.info (блокчейн-гаманець).

В результаті реєстрації ви отримаєте унікальний набір символів – адресу біткойн-гаманця, дані для ідентифікації (ключ), паролі, секретні комбінації слів для відновлення доступу.

2. Для отримання біткоїнів мережі комп'ютерів (вузли, ферми, пули) вирішують складні обчислювальні завдання (інформаційні блоки), а переможцю дістається винагорода.

Середній час, що відводиться на рішення – 10 хвилин. Далі формується наступний блок.

3. Отримати монети Bitcoin можна іншими способами:

Самостійний видобуток, соло-майнінг, (майнути поодинці непродуктивно із співвідношення витрат ресурсів до одержуваного прибутку)
- майнінг у групі ентузіастів (об'єднання людей у ​​так званий "пул")
- через біткоін-крани (дають безкоштовно біткоїни за активність на сайтах - зазвичай, введення капчі або ігри)
- транзакції та платежі (найпродуктивніший спосіб заробітку)
- обмін інших валют на біткойни (трейдинг, торгівля).

4. Не можна заблокувати перекази монет, повернути надіслані кошти або вплинути на курси валют.

5. Якщо провести аналогію між біткойнами та рублями, то "копійки" тут називають "сатоші". 1 сатоші дорівнює 0,000 000 01 BTC. Це найдрібніша одиниця біткоін-системи.

6. Для переказу коштів використовується адреса гаманця отримувача та підпис відправника (ідентифікатор транзакцій учасника). Підпис підтверджує вашу особу (участь) у системі Bitcoin.

7. Біткойни фактично не існують у вигляді монет або паперових грошових знаків. Є тільки записи про транзакції, які зберігаються в єдиній базі (реєстр усіх операцій bitcoin).

Оскільки дані про переклади доступні кожному учаснику та розподілені по інтернету серед тисяч і сотень тисяч учасників, це забезпечує захист Bitcoin-системи від зламування хакерів.

8. Немає єдиного органу чи організації (емітента), що контролює фінансові процеси та випуск валютних знаків. Заборонити BTC-криптовалюту неможливо фізично. Для цього доведеться вимкнути весь інтернет та всі комп'ютери світу.

9. З кожним роком добувати (майнити) біткоїни все складніше. Кінцевий обсяг монет обмежений та становить 21 мільйон BTC. Останній біткоїн буде отримано 2140 року.

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

10. Кожні 4 роки потенційний прибуток майнерів скорочується вдвічі (халвінг). Це пояснює зростання цінності криптовалюти та її купівельної спроможності.

11. За допомогою Bitcoin можна оплачувати товари чи послуги, як за рублі чи долари. Для цього використовують електронні віртуальні переклади.

Транзакції Bitcoin

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

1. INPUT - вхідні дані, звідки біткоїни потрапили до Каті, і скільки.
2. AMOUNT - сума (число) біткойнів для перекладу.
3. OUTPUT – вихідні дані – адреса Олі.

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

Записи біткоін передаються у фіксованому розмірі, що відповідає засобам, що надійшли. А після – відправнику приходить здавання.

Наприклад, Катя отримала 1 BTC від Михайла, але хоче передати Олі 0,4 BTC. Щоб транзакція пройшла, система записує передачу Оле 1 BTC від Каті, а потім створює нову операцію - "здачу", в якій Каті повертається 0,6 біткоін від Олі.

Щоб операція підтвердилася якнайшвидше і не зависла в черзі очікування, Катя підвищує привабливість транзакції комісійними ставками. Сума комісії дістанеться майнерам, які підтвердять переведення та включать його до наступного блоку обробки.

У Блокчейн мінімальний операційний збір (MIN_RELAY_TX_FEE) становить 0,0001 біткоїн (10 000 сатоші). Чим вище встановлена ​​комісія, тим більший її пріоритет у списку формування блоків транзакцій, тим скоріше відбудеться операція.

Заявка виконується, коли вона потрапляє до блоку транзакцій, де її помітять майнери/пули та підтвердять.

Час очікування транзакцій з перекладів біткоїнів

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

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

Як прискорити транзакцію Bitcoin

Іноді дрібні та невигідні заявки можуть висіти досить довго. Якщо для невеликих сум 2-7 годин – це нормально, то для великого трейдера, який торгує валютою у реалтаймі, це дуже довгі терміни.

Існує ризик, що транзакційний блок так і не сформується, а заявка зависне.

Для повного закриття транзакції слід дочекатися підтвердження "N" інформаційних блоків (залежить від програми одержувача). Ваша заявка повинна потрапити до "N" наступних блоків, а для цього у вашому розпорядженні:

1. Централізовані послуги

Це системи, що об'єднують багато гаманців та користувачів, щоб проводити операції без участі екосистеми Блокчейну. Приклад - Coinbase, де транзакції йдуть усередині системи та займають мінімум часу.

2. Мультипідпис надійності

Великі компанії-гаранти (наприклад, GreenAddress) додають до заявок свої гарантійні мультипідписи, що підвищує статус та пріоритет заявок. Блокчейн "бачить" надійні переклади та прискорює транзакції.

3. Відкрита транзакція

Якщо відомості про переклади є максимально відкритими, вони втрачають анонімність, але прискорюють обробку заявок.

4. Сервіси-прискорювачі

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

Приклад прискорювача транзакцій – сервіс Transaction Accelerator. Вам потрібно вказати лише TXID (ідентифікатор) транзакції та ввести капчу.

Для самостійного прискорення вручну не забувайте ставити комісію більше за мінімальне значення 0,0001 BTC (уважно рахуйте знаки від коми). Комісія підвищить пріоритет та привабливість заявки, і та швидше потрапить до наступного інформаційного блоку.

Основні критерії швидкого обміну (з приватного досвіду):

1) Переклад плюс здавання (сума транзакції) - не нижче 0.01 BTC
2) Є велика кількість підтверджень по транзакціях, з яких надходять біткойни
3) Обсяг даних (транзакція як набір символів) не перевищує 999 байт

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

Завислі транзакції, особливості ПЗ та софту

Число N-підтверджень залежить від програмного забезпечення (ПЗ) одержувача коштів. За фактом заявка на транзакцію йде в систему миттєво. Але за рахунок різниці софту не завжди гроші відразу відображаються на гаманцях.

Стан транзакції перевіряють TXID на блокчен.інфо.

Час транзакції залежить від швидкості видобутку криптовалюти майнерами. Безглуздо писати в техпідтримку сайту чи клієнта – розробники софту не в змозі прискорити процес.

Заявка або буде оброблена (і підтверджена) або гроші автоматично повернуться на гаманець відправника (у разі зависання). За весь час існування Bitcoin не було жодного запису, що безслідно зник.

У разі бага (збою) програми-клієнта або онлайн-сервісу можна вжити низку додаткових заходів для перезавантаження софту. Головне - зберегти секретні ключі та дані входу.

Зависла транзакція Bitcoin, яка ще не пройшла до мережі, повернеться у вихідний стан. Після цього повторіть транзакцію.

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

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

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

Весь сенс транзакції полягає у можливості користуватися биткоинами, а чи не просто їх накопичувати.

Як прискорити транзакцію Bitcoin на блокчейн ви дізнаєтесь у цьому відео:

Перевірка чи відстеження транзакції

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

Щоб побачити доказ переказу коштів або переглянути сам процес, існують різні сервіси – Blockchain.info один з них і є найбільш затребуваним.

Важливо: оскільки формування в ньому гаманця займає гранично короткий період, його доступно використовувати для одиничного випадку перекладу.

Як використовувати сервіс

Застосування цього сервісу таке:

  • Після створення гаманця на першій сторінці необхідно знайти меню «гаманець»;
  • Ввести ідентифікатор та пароль;
  • Вибрати рядок «відкритий гаманець»;
  • Тепер можна побачити, як підсумковий баланс, так і сам процес пересування коштів.

Підтвердження транзакції

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

Але, якщо користувач сплатить відправлення трохи вище, то він сприятиме зняттю завантаженості з системи. В результаті він отримує:

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

Важливо: володіючи інформацією про кількості підтвердження та варіанти прискорення процесу, користувач може впливати на весь процес загалом за допомогою створення спеціальної стратегії.


Що таке біткоїн і як його купити?

Додаткова транзакція

Користувачі, які мають у цьому напрямку досвід, рекомендують:

  • Створювати адреси із приватними ключами, які не підключені до гаманців;
  • Виконати на сформовані адреси перерахування для розмінного запасу – по 1 ВТС на 10 гаманців, по 0,5 ВТС ще на 100 тощо;
  • Використовувати передачу приватного ключа одержувачу за рахунок чого відбувається миттєвий переказ, тому що той у свою чергу приєднає його до свого гаманця. ви дізнаєтеся, що таке біткоін, у чому його особливості та як самостійно створити гаманець.

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

  • Мережа вже отримала інформацію за створеними адресами кілька блоків тому;
  • Тому людина, яка приєднує ключ від такої адреси, отримує миттєве поповнення балансу;
  • При цьому всі процедури створення адрес виконуються заздалегідь, за допомогою сформованого резерву;
  • Завдяки наявному запасу монет весь процес пришвидшується до кількох секунд.

Важливо: слід пам'ятати, що такий варіант допустимо лише для переказу коштів дуже наближеним людям, оскільки існує можливість виведення всіх коштів за допомогою приватного ключа.

Докази перекладу

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

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

Між іншим, BitPay надає виписки про проведення транзакції зі сторінок замовлень.

Висновок

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

Як прискорити підтвердження транзакції біткоїн – дивіться у цьому відео:

02.08

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

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

Для проведення операції її слід включити до так званого блоку - набору перекладів, створюваного майнерами та відповідного певного програмного рішення. Усі біткоін-транзакції можна відстежити у мережі, оскільки вони відкриті будь-яких зацікавлених осіб. Конкретних імен немає, адже один із принципів даної системи – анонімність. Однак ви зможете знайти адресу (індивідуальний код) якого-небудь користувача, де зможете подивитися всі надіслані та надіслані суми з підтвердженнями.

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

Так як подібних операцій стає все більше, то постійно потрібна безліч нових блоків. Їх створення через складність процесу відбувається не так швидко, як хотілося б. У результаті виникає специфічне явище - Mempool (черга перекладів, які чекають на виконання).

Останнім часом у мережі Bitcoin спостерігалися неодноразові випадки "підвисання" одночасно понад 100 тисяч транзакцій. Причому у чергу потрапляють, як правило, операції з найменшими комісійними.

До уваги: ​​стандартним алгоритмом операцій закладено, що майнінг одного блоку займає приблизно 10 хвилин.

Де перевірити транзакцію Bitcoin?

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

  • коливань курсу;
  • стабільність мережі;
  • розміру збору.

Транзакція вважається підтвердженою, якщо вона включена до блоків, кількість яких коливається від 1 до 6 (виходячи з кількості біткоїнів). Відповідно проведення дрібних сум має тривати приблизно 10 хвилин, а великих - не більше 1 години.

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

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

Для перевірки транзакцій ви можете скористатися сервісом *blockchain.info*

Для зменшення часу очікування скористайтеся такими порадами:

  1. Перекладайте великими сумами (у таких транзакцій Bitcoin вищий статус, тому вони виконуються насамперед).
  2. Встановлюйте розмір комісії в ручному режимі (чим він більший, тим краще переклад для майнера).
  3. Вибирайте спеціалізовані майданчики, наприклад BitPay або Coinbase, що пропонують миттєві транзакції біткоін за рахунок внутрішніх інструментів.

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

13.02.201717:21


Борис Оболікшто
експерт

Приємно відчувати себе руйнівником міфів, і спокуса зайняти таку позицію завжди велика. Щоб не піддатися йому, відразу зауважу, що описані нижче події трапляються рідко і не повинні бути спростуванням усталених уявлень про те, що біткоін - надійний платіжний інструмент, а біткоін-транзакція (переведення цього цифрового грошика) - швидка і проста операція. Тим не менш, для більшості користувачів біткоін-сервісів платіж, що «завис», виявиться несподіваним і, можливо, лякаючим. Тому повторюся: випадок нетиповий, але не унікальний. І дуже яскраво демонструючий, з одного боку, користь від розуміння основ роботи криптовалют (як, втім, і будь-якої технології), а з іншого - неготовність існуючої інфраструктури до роботи з блокчейном.

Які залежать Bitcoin-платежі: як це відбувається? Фото: mmgp.ru

Отже, наша історія почалася з банального бажання мого знайомого поповнити рахунок мобільного телефону за допомогою біткоін-сервісу, для цього і призначеного (ТАК! вас є непустий биткоин-гаманець). Також раніше ми розповідали, у тому числі за допомогою мобільного додатку.

Отже, йшли останні дні серпня 2016 року, було жарко і… Ну не знаю, нехай виною всьому буде 30+ градусів, комп'ютер, що перегрівся, і мозок, що плавиться від спеки. Все одно більш виразних причин, які явно пояснюють ексцес, я поки не знайшов.

Скриншот 1. Щоб поповнити рахунок биткоинами, потрібно всього кілька кліків

Поповнити рахунок просто: заходиш на сайт сервісу, вводиш свій номер телефону, вибираєш суму поповнення рахунку та отримуєш адресу для перекладу BTC-шек зі свого гаманця сервіс-провайдеру (див. скріншот 1). Якщо гаманець на мобільному пристрої, то ще простіше: QR-код допоможе швидко передати всі параметри та здійснити оплату. Зазвичай так і відбувається: ви наводите камеру на QR-код, гаманець формує транзакцію і виконує оплату. Але того разу щось пішло не так… Ні-ні, читачу, немає причин хвилюватися – все добре скінчилося, але не забігатимемо вперед.

Отже, з погляду користувача все як завжди: гаманець (це був Bitcoin Core - найтрадиційніший з можливих) сформував транзакцію, відправив її в мережу і… І нічого не сталося. Не прийшло підтвердження перекладу, що надходить зазвичай хвилин через п'ять-п'ятнадцять (рідше - через півгодини-годину). І наступного дня гаманець повідомляв про статус транзакції невтішне: Status: 0/unconfirmed, in memory pool (Статус: непідтверджена, в пулі). Як напевно знає читач, транзакції в биткоине безвідкличні, тобто немає способу їх скасувати, гроші, що перераховуються з гаманця, пішли, а до одержувача не дійшли. Зависли, тепер і в гаманці їх немає, і рахунок мобільного не поповнений.

Ситуація «завислої» біткоін-транзакції не унікальна, навіть російською мовою Google дає тисячі посилань на запит «завислі біткоін транзакції» (у видачі за запитом «Bitcoin Transaction Pending» кілька сотень тисяч позицій, обширне обговорення транзакцій, що зависли) російською мовою. Постараємося розібратися, що сталося, але для цього нам потрібне докладніше уявлення про те, як відбуваються транзакції, ніж натиснув кнопку - і ОК.

Не дублюватиму розповідь про те, як влаштований біткоїн (можна прочитати), зупинимося тільки на процесі виконання транзакції. Ваш біткоін-додаток, запитавши з якого гаманця, скільки і кому ви перекладаєте, сформує та відправляє в мережу запит на транзакцію, яка описує все, що перераховане в належному форматі. Транзакція потрапить до пулу (memory pool - mempool) і там чекатиме майнера, який помістить її в блок. Коли блок із цією транзакцією потрапить до блокчейну, переклад завершиться. Як пам'ятає читач, блокчейн складається не з окремих транзакцій, а з блоків, тобто наборів транзакцій та даних, що їх засвідчують. Блоки формують майнери, які одержують за це два види винагород: плату за блок (зараз це 12,5 BTC) та комісію за транзакції, включені до блоку.

Майнери змагаються за цю плату, тому створити блок завжди намагаються одночасно кілька майнерів. Хтось виявляється успішнішим і робить це раніше, отримуючи винагороду, іншим доводиться лише сподіватися на удачу в майбутньому. Зрозуміло, можлива ситуація, коли кілька майнерів створюють свої блоки майже одночасно (блоки, зазвичай, не однакові, оскільки майнери включають до них ті чи інші транзакції з пулу на власний розсуд). Винагорода дістанеться одному з майнерів - тому, чий блок продовжить ланцюг (тобто після нього з'явиться наступний блок і т.д.), блок (або навіть невеликий ланцюжок блоків), що залишився, не отримавши продовження, «помре».

Але поки повернемося до пулу – місця, де «живуть» транзакції, ще не підтверджені та не відкинуті (детальніше). Майнери відбирають із пулу транзакції, намагаючись сформувати з них блоки. Так як розмір блоку обмежений, то в блок найчастіше відбирається лише частина транзакцій з пулу (зараз, коли я пишу ці рядки, в пулі майже 41 тисяча непідтверджених транзакцій, що займають більше 42 МБ - зрозуміло, що їх не помістити в один блок). . Якщо ми простежимо долю типової транзакції, то побачимо фази її життя (див. скріншоти 2 та 3).

Скріншот 2. Транзакція з'явилася у пулі

Скріншот 3. Транзакція підтверджена та з'явилася у блокчейні

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

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

Нашій транзакції не пощастило: чи то рука здригнулася під час відправлення оплати, чи ще якась непередбаченість трапилася, але в транзакції, яка пішла в пул, виявилася нульова комісія (fee). Тут потрібне пояснення. Формально протокол біткоін-мережі не вимагає комісії. Коли біткоїн тільки-но з'явився, були можливі безкоштовні транзакції (на жаль, не всі стежать за змінами, і досі іноді можна почути від неофітів, що переклади біткоїну безкоштовні).

Коли технологія стала популярною і темп появи транзакцій зріс, виникло кілька причин появи плати за транзакцію (transaction fee). По-перше, щоб позбавитися спаму - безглуздих транзакцій, що породжуються зловмисниками, що атакують ресурси спільноти, або помилками невмілих розробників. По-друге, необхідністю ранжувати транзакції, щоб дати можливість користувачам прискорити проходження своїх платежів. У транзакцій із нульовою комісією трохи шансів потрапити до блоку та стати підтвердженою в наш час, коли запитів на транзакції більш ніж достатньо. Тому доля нашої транзакції мала бути незавидною: померти по таймууту або витіснитись з пула.

Залежно від того, яким гаманцем ви користуєтеся, звичайна доля «вбитої» транзакції може бути різною. Наприклад, транзакція може бути оголошена такою, що не відбулася, і невідправлені кошти знову з'являться в гаманці. Але можлива й повторна спроба гаманця відправити транзакцію на виконання у пул. У такому разі транзакція «відродиться» у пулі і висітиме там, періодично відновлюючись, необмежено довго. У разі ваші кошти виявляються замороженими: вони недоступні ні вам, ні одержувачу. Саме такий випадок найчастіше описують користувачі, що зіткнулися з завислими транзакціями (див. наприклад, замітку про експерименти з нульовою комісією). На перший погляд, саме з такою ситуацією і зіткнувся мій знайомий - гаманець завзято повідомляє все те саме: Status: 0/unconfirmed, in memory pool.

В описаних випадках (див., зокрема, посилання вище), кошти, що зависли, вдається повернути в гаманець, використовуючи спеціальні ключі перезавантаження або перезавантаживши програму з нуля (в останньому випадку блокчейн завантажується знову шляхом запитів до мережі, тобто транзакції, що не потрапили в нього, будуть проігноровані, і кошти повернуться до гаманця). Процедура повного перезавантаження клопітка і може займати дуже багато часу (не жарт - перезавантажити більше 100 ГБ даних блокчейна), проте мій знайомий виконав її. І нічого доброго не побачив. Навіть через кілька місяців популярний сервіс аналізу блокчейну blockchain.info повідомляв: «Transaction rejected by our node. Reason: Fee is too low / Not sufficient priority» («Транзакція відкинута нашим вузлом. Причина: Комісія надто мала / Недостатній пріоритет»). Тобто транзакцію, як і раніше, бачив, але виконувати її відмовлявся. Сумна ситуація.

Але нам пощастило! 21 січня справа дійшла до нашої транзакції, і вона (ура!) Виконалася. І в описі транзакції видно, що було незвичним. Розглянемо скріншот 4.

Скріншот 4. «Нашу» транзакцію підтверджено!

Крім нульової комісії (Fees), транзакція відрізняється від показаної на третьому скріншоті ще й полем Lock Time. Цей параметр транзакції показує, з якого блоку майнери можуть включати в блок транзакцію. Багато гаманців ставлять 0, дозволяючи вмикати негайно. А гаманець Bitcoin Core, який по праву першозасновника вважає себе зобов'язаним стежити за безпекою всієї біткоін-мережі, встановлює значення найближчого генерованого блоку, що перешкоджає можливості зловмисникові атакувати мережу, вибудовуючи з пізніх транзакцій гілка, що конкурує з уже існуючими блоками. Але блок 427560 виявився саме тим рідкісним блоком, який придбав конкурента. Два майнери майже одночасно, на відміну менше двох секунд, згенерували блоки з таким номером (правильніше говорити «такої висоти» - порядковий номер блоку в блокчейні називають висотою).

Блоки, які породжували точки розгалуження, відображає, наприклад, Blockchain.info

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

З одного боку, у міру зростання інтересу до технології та числа активних гаманців, зростає кількість запитів на транзакції, а значить і конкуренція за підтвердження транзакцій (тобто виконання платежів). З іншого боку, ситуація покращується тому, що нові гаманці підтримують динамічне завдання комісії залежно від наповненості пулу. А розробники вводять нові можливості, зокрема, можливість збільшити комісію для вже відправленої в пул, але транзакції, що ніяк не підтверджується (функція Opt-In Replace-by-fee (RBF)). Звичайно, нові можливості з'являються не відразу і не у всіх гаманцях, що змушує користувачів стежити за ситуацією, можливо, уважніше, ніж хотілося б. Можна порадити, зокрема, переклад щодо свіжої замітки «Що робити, якщо «зависла» транзакція в мережі Біткоїна?»

Сервіс підтримки користувачів міг би стати ще одним фактором, що стимулює поширення біткоін-платежів. Але поки порятунок рук, що потопають, справа... Нехай не тільки самих потопаючих, але ще й ентузіастів, що підказують на форумах що робити. Однак хотілося б бачити постійно діючі сервіси/гарячі лінії, хай хоча б на рівні оголошень на стовпах: «Настрою біткоін-платежі, допоможу повернути транзакції, що зависли». Зрозуміло, тут є проблема: поки платежів небагато, сервіс не може бути рентабельним, поки сервісу немає - важко розраховувати на вибухове зростання числа платежів (до речі, зростання мало б створювати і сервіси-надбудови, що дозволяють виконувати кліринг платежів між учасниками сервісу, знижуючи навантаження на блокчейн).

Ще одне питання стосується не технології, а права. Якщо транзакція може відбуватися досить довго, а волатильність біткоїна немаленька, то потрібні правила, оскільки звичні «три банківські дні» перестають відповідати нашим уявленням про справедливість. У прикладі, на якому ми розглядали завислий платіж, кошти були зараховані за курсом на момент створення транзакції. Але з моменту транзакції курс біткоїну зріс у півтора рази! Ок, мій приятель, що зачекався перекладу, був радий і цьому. Але навряд чи такі ризики є прийнятними для масових платежів. Насилу уявляю собі і зворотну ситуацію, коли транзакція, що прийшла на третій день, втратила помітну частину вартості. Можливо, ситуацію поправила б страховка біткоін-платежів? Але й про такі послуги я не чув.

Іншими словами: технологічна готовність до впровадження криптовалют на сьогодні набагато вища, ніж інфраструктурна. Почасти поліпшенню ситуації може сприяти кожен, хто включився у освоєння криптовалют. А поки що від усіх ентузіастів потрібно не втрачати пильності і не упускати з уваги зміни, що відбуваються.

Мережева безпека