ГЛАВНАЯ Визы Виза в Грецию Виза в Грецию для россиян в 2016 году: нужна ли, как сделать

График неподтвержденных транзакций bitcoin. Что делать, если транзакция не подтверждена? Как отменить транзакцию

Одна из особенностей протокола Bitcoin - ограниченная пропускная способность. В связи с ростом числа транзакций система все хуже справляется с их отправкой, и пользователи часто сталкиваются с проблемой неподтвержденных переводов. В этой статье мы подробно расскажем о том, что делать, если зависла транзакция в блокчейн и как обезопасить себя от возникновения подобных ситуаций.

Почему транзакция не подтверждается

Каждый перевод в сети Bitcoin проверяют майнеры. Если транзакция легитимна, она включается в новый блок: в этом случае говорят, что транзакция получила подтверждение. Включение в каждый последующий блок увеличивает количество подтверждений, что повышает доверие к транзакции среди всех участников сети.

В идеальном случае каждая транзакция в Bitcoin должна получить как минимум 6 подтверждений, хотя на практике часто используется и меньшее количество. Однако, ни один сервис не примет неподтвержденную транзакцию, то есть такую, которая не включена ни в один новый блок. Именно в таких случаях принято говорить, что перевод завис в блокчейне.

Проблема зависших транзакций возникает по единственной причине: недостаточный размер комиссии. Дело в том, что майнеры проверяют транзакции на конкурентной основе: чем выше комиссия, тем больше вероятность попадания перевода в очередной блок. Если комиссия слишком мала, майнеры могут долго игнорировать перевод, отдавая предпочтение транзакциям с высокой комиссией.

Современные кошельки, такие как Bitcoin Core или blockchain.info, автоматически предлагают оптимальный размер комиссии. Проблема в том, что алгоритм расчета не идеален, и может не учитывать мощные всплески активности в сети. Даже если пользователь указал рекомендуемую комиссию для своей транзакции, существует риск ее зависания в блокчейне.

Зависла транзакция в блокчейн: что делать

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

  • транзакция войдет в новый блок (получит подтверждение) в течение нескольких минут или часов;
  • процесс подтверждения получится ускорить одним из доступных способов;
  • при высокой загруженности сети и отсутствии возможности ускорения транзакции перевод просто вернется на счет отправителя в течение нескольких дней.

Первое, что необходимо сделать - получить информацию о статусе транзакции. Для этого зайдите на сайт blockchain.info и введите id транзакции (обычно обозначается как tx или txid) в текстовое поле, расположенное в правом верхнем углу. Запрос выполняется нажатием клавиши на клавиатуре (нажимать кнопку не нужно!).

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

В графе «Плата за байт» указан размер комиссии. Это число пригодится для дальнейшей оценки ситуации.

Далее нужно сравнить эту комиссию с текущей статистикой сети Bitcoin. Сделать это можно, просмотрев рекомендуемые комиссии на сайте bitaps.com . Если плата за байт примерно равна или превышает последнее число в поле «Recommended fee», можно надеяться на подтверждение транзакции в течение 1 – 2 часов.

Для подтверждения информации можно воспользоваться сервисом Bitcoinfees , который показывает количество неподтвержденных переводов, разделяя их по размеру комиссии.

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

Способы ускорения транзакций

Если у вас возникла неподтвержденная транзакция в блокчейн, что делать дальше и как ее побыстрее «протолкнуть»? Существует несколько способов ускорения транзакций, которые могут помочь в различных ситуациях. Перечислим основные методы в порядке увеличения сложности.

Использование ускорителей майнинговых пулов

Майнинговые пулы, контролирующие большую долю мощности в системе Bitcoin, могут способствовать пользователям в ускорении транзакций. На данный момент интерес представляют сервисы двух крупных пулов:

В первую очередь стоит использовать ускоритель ViaBTC: он не требует регистрации, и все, что нужно сделать пользователю - ввести id транзакции и капчу.

Если после нескольких попыток транзакция так и не подтвердилась, следует переходить к использованию ускорителя Antpool. Для регистрации на сайте нужно указать E-mail и пароль.

Бот-ускоритель в Telegram

Telegram бот @FastTXbot создан для автоматического ускорения переводов в сети Bitcoin. Для его использования необходимо отправить номер зависшей транзакции и ждать результата. На самом деле бот использует один из предыдущих способов - ускорение через Antpool. При этом робот автоматически делает всю работу за пользователя: достаточно просто дождаться уведомления о результате процедуры, которое обычно приходит в течение 10 минут.

Данный способ не всегда срабатывает для переводов, которые используют очень низкую комиссию.

replace-by-fee

Данная возможность позволяет создать копию зависшей транзакции с повышенной комиссией. На сегодня replace-by-fee поддерживается популярными десктопными кошельками Bitcoin Core и Electrum, а также онлайн-кошельком GreenAddress. Для использования функции нужно создать перевод, содержащий точно такую же сумму, при этом увеличив комиссию до приемлемого уровня. Кроме того, при отправке транзакции нужно обязательно выбрать пункт replace-by-fee: в противном случае средства отправятся дважды. В Bitcoin Core нужная галочка спрятана в нижней части окна отправки.

CPFP (Child pays for parent)

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

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

Для использования CPFP в Bitcoin Core нужно перейти в меню «Настройки» - «Опции», выбрать вкладку «Кошелек» и отметить галочки, как показано на скриншоте.

После этого останется создать новую транзакцию на вкладке «Отправить». Щелчком по кнопке «Входы» нужно выбрать сумму, которая изначально была отправлена на счет получателя. Если ускорение производит отправитель, в качестве входа нужно выбирать «сдачу», которая осталась после отправки транзакции. Увидеть размер сдачи можно при просмотре транзакции на сайте blockchain.info.

При использовании CPFP следует устанавливать комиссию, достаточную для проведения сразу двух транзакций. Например, при рекомендуемой плате 150 sat/B следует устанавливать комиссию 300 sat/B или выше.

Двойное расходование

Наиболее сложный способ, доступный только для пользователей Bitcoin Core. Рекомендуется для опытных пользователей, так как требует навыков использования командной строки и очень аккуратного обращения с входами транзакций.

Для начала необходимо запустить кошелек из командной строки с параметром -zapwallettxes. Кроме того, для современных версий Bitcoin Core требуется удаление файла mempool.dat из папки с программой. После этого можно создавать новую транзакцию, которая в точности повторит старую, за исключением увеличенной комиссии.

При двойном расходовании возникает важный нюанс: старый перевод в какой-то момент также может оказаться подтвержденным, из-за чего средства с кошелька спишутся дважды. Избежать этой ситуации можно, указав в списке входов для новой транзакции хотя бы один вход, который использовался в предыдущей транзакции.

Заключение: как защититься от неподтвержденных транзакций

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

  • Подборки новостей один раз в день к вам на Email:
  • Подборки криптоновостей 1 раз в день в Телеграме: BitExpert
  • Инсайды, прогнозы обсуждения важных тем у нас в Телеграм чате: BitExpert Chat
  • Вся лента криптоновостей журнала BitExpert у вас в Телеграме: BitExpert LIVE

Нашли ошибку в тексте? Выделите ее и нажмите CTRL+ENTER

Количество платежей в Биткоинах растет, но не все завершаются удачно. Неподтвержденные транзакции на основе blockchain — одна из главных проблем самой популярной в мире криптовалюты. Когда пользователей, желающих сделать перевод становится слишком много, сеть не справляется с предоставлением двух подтверждений. Выстраивается очередь, а некоторые переводы вообще так никогда и не будут выполнены. Из-за подобных неудобств падает популярность Биткоина.

Блокчейн и транзакции

Блокчейн, по сути, набор транзакций, соединенных в блоки. Прежде чем перевод попадет в блок, он должен получить подтверждение. У каждого блока ограниченные размеры, например, в Биткоин блок вмещал изначально 1 Мб, а после внедрения SegWit — 4 МБ. Его можно заполнить частично, но если блок переполнен, сеть его не примет. Это помогает защищать блокчейн от нападок злоумышленников.

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

Блокчейн – это цепочка блоков. Транзакции являются строительным материалом для их формирования. Это записи в блокчейне, содержащие три составляющих:

  • адрес отправителя (Input);
  • сумму, отсылаемую отправителем (Amount);
  • адрес получателя (Output).

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

Как проводятся транзакции

Все транзакции проходят по общей схеме:

  1. Пользователь собирается отправить несколько монет. Он делает заявку и подписывает её секретным ключом. В «заявке» указаны три перечисленные выше параметра – адрес получателя, сумма и адрес отправителя.
  2. Майнеры (участники сети) занимаются подтверждением транзакций отправленных пользователями. За это они получают деньги, потому им выгодно подтверждать переводы с высокой комиссией. Когда сделка подтверждена, она попадает в блок.
  3. Когда блок присоединяется к блокчейну, на кошелек получателя поступает то количество монет, которое было списано с бумажника отправителя.

В блокчейн-транзакциях принимают участие все пользователи, и сеть обновляется на всех подключенных компьютерах. Комиссия за операцию — один из решающих факторов в скорости перевода. Чем выше комиссия, тем больше шансов, что операция будет включена в блокчейн на протяжении нескольких минут.

Неподтвержденная транзакция

Что значит неподтвержденная транзакция? Неподтвержденная транзакция – это платеж, который был инициирован, но в блок не попал. Подтверждают транзакции и отправляют их в блоки майнеры, приоритетными выбирая те переводы, где проставлена высокая комиссия. Неподтвержденными транзакциями становятся переводы с низкой комиссией или без комиссии.

Отследить статус платежа можно на blockchain.info. Чтобы увидеть результат, достаточно в поисковом ходе указать TXID. Если возле транзакции расположена кнопка «Cofirmations» и отмечена зеленым цветом, значит, операция подтверждена. Красный цвет обозначает неподтверждённые сделки. Возле них стоит пометка «Unconfirmed Transaction».


Если комиссия высокая, в среднем, на подтверждение нужно 10-30 минут. Платежи с низкой комиссией проходят 72 часа, а иногда и дольше. Сколько неподтвержденных транзакций можно увидеть на blockchain info.

Причины

Майнеры проверяют все транзакции в блокчейне. Если операция легитимна, она получает «зеленый свет». Например, в биткоине, чтобы транзакция осуществилась, требуется 6 подтверждений, но на практике достаточно двух. Причин зависания несколько:

  1. Ошибки пользователей. Обычно подобная проблема возникает у новичков, не успевших разобраться, как работает цифровая система.
  2. Комиссия. В блокчейне биткоина приоритетной транзакцией будет та, где высокая комиссия. В большинстве кошельков, например Bitcoin Core или blockchain.info, есть опция с рекомендуемой комиссией. Это минимальная сумма, гарантирующая прохождение транзакции. Если комиссия слишком маленькая, майнеры игнорируют перевод. Комиссия не связана с пересылаемой суммой. Она может оказаться больше чем сам перевод. Решающим является вес перевода в байтах.
  3. Загруженность сети. Если в блокчейне выполняется слишком много переводов, даже высокая комиссия не гарантирует быстрое выполнение сделки. Перегруженность возникает из-за возросшего количества пользователей. Ситуацию могут усложнять периодически возникающие спам-атаки.
  4. Ограниченные размеры блоков. Блоки Bitcoin весили всего 1 МБ, потому не могли поместить транзакции всех желающих. Из-за популярности биткоина количество пользователей возросло, и заложенные изначально размеры уже не справляются с обслуживанием сети.

Изначально платформа Bitcoin осуществляла транзакции с минимальными, фиксированными комиссиями. Очередей не было, так как пользователей было мало. Когда биткоин обрел популярность, и пользователей стало больше, появились очереди. Чтобы сделки прошли, начали поднимать комиссии, а команда проекта занялась решением проблемы расширения блоков.

Что делать

Даже если транзакция не подтверждена, деньги никуда не испаряются. Но есть несколько сценариев:

  • транзакция не получает необходимые подтверждения и висит в сети вечность, вместе с другими, такими же переводами;
  • пользователь не ждет неизвестно чего, а пытается продвинуть транзакцию.

В первом случае никаких действий не требуется. Можно отслеживать статус заявки и ждать, что возможно, каким-то чудом она пройдет. Иногда пользователи ждут неделями.

Как долго ждать

Чтобы увидеть статус транзакции и время её подтверждения можно воспользоваться специальными сервисами:

  • blockchain.info;
  • Bitaps;
  • Blocktrail.

Но указанные там цифры редко отвечают реальности. Чтобы получить более точные сведения можно сделать расчёты самостоятельно:

  1. Взять число, указанное в строчке Fee per byte.
  2. Перейти на сайт btc.com.
  3. Найти раздел unconfirmed transactions.

В указанном разделе будет представлена среднестатистическая цена байта и время для проведения транзакции с той или другой комиссией.

Как снизить риски зависания

Решить проблему способны три метода:

  1. Увеличение блока. Блокчейн Биткоина не рассчитывался на те нагрузки, которые существуют сегодня. Одного МБ для всех желающих провести транзакции явно мало, поэтому блок нужно увеличивать. Но с этим разработчики не спешат из-за того, что обслуживание блоков становится более трудоемким и дорогостоящим. В таком случае поддержание работы сети оказывется недоступным большинству пользователей и платформа превращается в централизованное сообщество для избранных.
  2. Протокол SegWit. Он позволяет делать софт форк (мягкое ветвление), чтобы повысить производительность блокчейна, удалив из транзакций информацию о подписях. Именно этот метод был выбран для увеличения вместительности блоков Биткоина от 1 до 4 Мб.
  3. Использование динамического размера блока. Эта технология применяется в Monero. В данном случае размер блока автоматически меняется в зависимости от загруженности сети. Блокчейн, построенный на таких блоках, практически не подвержен рискам замедления работы.

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

Как предотвратить блокировку

Чтобы зависание не произошло, можно прибегнуть к следующим мерам:

  1. Использовать высокую комиссию. Плата за перевод должна быть выше средней. Кошелек иногда выставляет слишком низкие комиссионные. Это можно исправить вручную или сделать соответствующие настройки в бумажнике. Если комиссия маленькая, операция тоже может пройти, но на это потребуется больше времени.
  2. Воспользоваться бумажником с динамическими комиссиями. Эти кошельки имеют связь с блокчейном биткоина, подстраиваются под требования сети и автоматически изменяется в кошельке. Бумажник после небольшой настройки будет указывать ту комиссию, с помощью которой сделку встроят в ближайший блок.
  3. Обновить свой бумажник. Если количество задержанных транзакций, особенно в час пик, растет,- это сигнал, что бумажник устарел. Для начала его можно обновить, но если это не поможет, сменить. Средства, которые хранятся на одном бумажнике, достаточно перевести на другой, только что созданный, или просто экспортировать приватные ключи. Последний вариант позволит избежать проведения транзакций через блокчейн и не ждать, пока монеты придут на новый кошелек.

Обычно этого бывает достаточно, чтобы избавиться от проблемы.

Если транзакция уже отправлена

Если транзакция сделана, но она «зависла», есть несколько способов её продвинуть:


Что делать получателю

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

  1. Если бумажник позволяет пользоваться неподтвержденными транзакциями, можно повторить описанную выше схему через CPFP. Она предусматривает пересылку неподтвержденных входящих биткоинов на исходный бумажник, включив высокую комиссию.
  2. Применить ускоритель транзакций ViaBTC, который помогает не только отправителям, но и получателям.

Если самостоятельно справиться не получилось, можно попросить отправителя повторить отправку, воспользовавшись Opt-In RBF.

Как отменить транзакцию

Если возле операции в блокчейн.инфо стоит надпись «сделка не подтверждена», её можно отменить в несколько шагов:

  1. Вход в личный кабинет и отладочную консоль (помощь – окно отладки — консоль). Если счет зашифрован, к нему нужен доступ.
  2. Выбор адреса и создание неформального ключа – в строчке dumpprivkey заменить слово на адрес, выбранный для перевода крипты. Полученный результат – это неформальный ключ, который желательно скопировать. Ключи нужны для всех кошельков, на которые переводились монеты.
  3. Аннулирование кошелька. Достаточно перемещения на другое устройство или смены имени.
  4. Перезагрузка клиента. После этого важно перейти в консоль и импортировать ключи через команду importprivkey. Это может занять время.

Обновленный бумажник не содержит зависшую транзакцию, все пропавшие средства — на счету. Схема подойдет для всех криптокошельков, за исключением облачных.Согласно данным биткоин.инфо, в сети постоянно находятся тысячи неподтвержденных транзакций. Это обычное явление для криптовалютной отрасли. Разработчики пытаются решить эту проблему, а пользователи хотят избежать связанных с ним хлопот.

У более молодых криптовалютных систем, ввиду их небольшой популярности, с подобным клиенты сталкиваются редко.

Если транзакции не добавляются в блок, прежде всего нужно увеличить комиссию. Пока это единственный общедоступный метод борьбы с застрявшими сделками. А если операция уже подвисла, можно прибегнуть к услугам специальных ускорителей – майнингового пула ViaBTC или его менее известного конкурента AntPool.

Хотите ли вы стать разработчиком блокчейн-приложений или просто интересуетесь, что происходит во время отправки биткоинов другу – вам нужно разбираться в процессе создания и осуществления транзакций. Почему?

Потому что переводы – это основная операция, являющаяся вершиной того фундамента, на котором построен блокчейн. Транзакции объединяют технологии криптографии, структур данных и скриптов. Эти составляющие достаточно просты, чтобы не перегружать процесс транзакции, но они гибкие и позволяют программистам настраивать систему под себя. Сегодня мы расскажем об этих механизмах подробнее.

Разработчики узнают, как их Биткоин клиент осуществляет транзакции в сети (и что происходит, когда они получены).

Простые пользователи найдут ответ на вопрос: “Какие запускаются процессы, когда вы отправляете биткоины другу?”.

Эта статья предполагает наличие у читателя базовых знаний об асимметричной криптографии, хэшировании и P2P-сетях. Также неплохо было бы знать, что из себя представляют блокчейн-механизмы, даже если вы не знакомы с тонкостями их работы.

Биткоин транзакции и их роль в общей картине

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

Это простое, но точное описание может озадачить: так что же на самом деле представляет из себя транзакция?

⦁ Как понимание процесса переводов поможет стать хорошим разработчиком блокчейнов?

⦁ Каким образом транзакции позволяют переводить биткоины другому человеку?

Ответы на эти вопросы различаются в зависимости от вида транзакции. Даже работая только с биткоином, мы можем воспользоваться несколькими системами переводов.

Но начнём с азов и разберёмся с главным видом транзакции под названием pay-to-PK-hash. Сейчас этим типом переводов пользуются 99% владельцев биткоинов.

Для начала давайте смоделируем работу криптосистемы. Многие представляют её как привычную всем среду учётных записей. Вы отправляете кому-то биткоины, другой человек их получает, а у вас уменьшается баланс.

На самом же деле всё не так просто. Все ваши деньги в момент передачи уходят с баланса (минус транзакционные сборы). Некоторые биткоины возвращаются обратно на аккаунт – так формируется остаток.

Каждая Биткоин транзакция состоит из “входов” (inputs) и “выходов” (outputs). Мы отобразили её структуру на изображении:

С первого раза понять это довольно трудно, поэтому расскажем о схеме подробнее.

Когда вы отправляете подруге деньги, то в качестве адреса используется её “выход”. А ваши “входы” будут доказательством, что у отправителя есть достаточная сумма для осуществления операции. У вас может быть несколько “входов”, сумма которых и является балансом аккаунта. В этом простом случае в транзакции участвует только один вход и один вывод.

Подробно о биткоин транзакциях

Давайте разберёмся в механизме реальной Биткоин транзакции. Для наглядности взгляните ещё раз на изображение.

Если мы изучим типичную транзакцию в “разрезе”, то увидим, что она состоит из 3-х больших частей: заголовка, вход(ов) и выход(ов). Давайте кратко рассмотрим компоненты, входящие в эти секции, так как они будут важны для понимания процесса. Отметим, что все эти поля присущи так называемым row-транзакциям. Они осуществляются между одноранговыми узлами при создании перевода.

Заголовок

хэш (hash) : применяется во всех транзакциях. Биткоин использует его в качестве указателя, также хэш необходим для проверки целостности данных. Мы рассмотрим его подробнее в следующей главе.

ver : номер версии, которая используется для верификации блока.

vin_sz : число входов транзакции. Vout_sz отображает число выходов.

lock_time : определяет самое раннее время, когда блок может быть добавлен в цепь. Это либо высота блока, либо метка unix-времени.

Вход

хэш предыдущего выхода: указывает на предыдущий неосуществленный выход транзакции (UTXO). По сути, это ваши деньги, которые вы собираетесь потратить на эту транзакцию.

n : индекс в списке выходов предыдущей транзакции. Показывает актуальный номер текущего выхода.

scriptSig : скрипт отправки, который подтверждает, что у создателя транзакции есть права пересылать деньги.

Выход

значение (value) : количество потраченных сатоши (1 BTC = 100,000,000 Satoshi).

scriptPubKey : второй из двух скриптов, осуществляющих транзакцию. Нужен для определения хэша публичного ключа получателя.

Верификация транзакции

Одна из задач биткоин узла – это проверка правильности входящих транзакций (данные не должны быть изменены, только предполагаемые получатели могут воспользоваться средствами и т.п.). Более исчерпывающий список можно найти в интернете, здесь мы укажем самые важные правила.

⦁ Все выходы, подтвержденные входами этой транзакции, находятся в UTXO-пуле. Неотправленные выходы могут быть подтверждены лишь один раз.

⦁ Подписи на каждом входе действительны. Это определяется выполнением последовательности скриптов. Подробности вы найдёте в следующей главе.

⦁ Нет UTXO, отправленных чаще, чем один раз за транзакцию. Обратите внимание на различия с первым пунктом.

⦁ Все значения выхода транзакции неотрицательны.

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

Базовая pay-to-PK-hash транзакция

Биткоин имеет свой собственный скриптовый язык. Он достаточно мощный, чтобы позволить разработчикам создавать сложные и настраиваемые виды транзакций. Существует около пяти стандартных видов переводов, которые поддерживаются классическими биткоин клиентами. Но есть и другие клиенты, которые работают с иными видами транзакций за определенную плату. Здесь мы просто рассмотрим механизм pay-to-PK-hash.

Для любой транзакции, чтобы она считалась действительной, пара скриптов scriptSig/scriptPubKey должна показать значение “true”. При отправлении транзакции включается scriptSig. Он собирает информацию от scriptPubKey и при его выполнении подтверждает выход транзакции. Оба скрипта находятся в одной и той же ячейке.

Так как адреса биткоинов на самом деле являются хешами, то отправитель не сможет узнать, какой ключ проверяется: открытый или закрытый. Поэтому получатель указывает оба ключа, а scriptPubKey будет дублировать и хешировать открытый ключ. Этот процесс позволяет скрипту убедиться, что ключ принадлежит предполагаемому получателю.

Во время выполнения операции вы увидите, что константы при встрече помещаются в стек. Система добавляет или удаляет элементы из стека по мере их обработки. Например, OP_HASH160 возьмёт верхний элемент из стека, и сделает это дважды, сначала с SHA-256, а затем с RIPEMD-160. Когда все элементы в нашем скрипте будут оценены, появится значение true при удачной операции или false в случае нахождения ошибок.

В целом, pay-to-PK-hash – довольно простой тип транзакции. Он гарантирует, что только пользователь с соответствующей парой открытого/закрытого ключей может получить и потратить биткоины. Когда все критерии из предыдущего абзаца выполнены, транзакция считается успешной и помещается в блок.

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

Данные, хранящиеся с использованием технологии блокчейн (blockchain), представляют собой непрерывную цепочку блоков, в каждый из которых записывается информация. Эта цепочка со временем обновляется и дополняется. Чтобы подтвердить истинность записанных блоков, в блокчейне используется функция хеширования (hashing).

Блокчейн - революционная технология хранения и обработки данных, обладающая одновременно несколькими свойствами:

  • распределенность, т. е. информация хранится на всех компьютерах, работающих с блокчейном;
  • ненужность двойных записей: система учета действует таким образом, что при создании транзакции о переводе определенного числа монет, автоматически формируется другая транзакция с количеством монет, которые отправитель формально высылает сам себе, а сумма этих транзакционных операций равна начальному числу монет;
  • устойчивость к подмене, блоки одновременно копируются столько раз, сколько пользователей участвует в блокчейне, соответственно попытка злоумышленников подменить один блок обречена на провал.

Чтобы хешировать данные, получаемые в процессе генерации биткоинов (bitcoin), используют алгоритм шифрования SHA-256, применяемый также в криптографии. Он состоит в том, что информация любого размера и вида кодируется в 256-битный ключ, состоящий из цифр и букв латинского алфавита.

Хеш функция уникальна тем, что с ее помощью кодируется как многотомная книга, так и одно слово, а размер полученного ключа будет одинаковым. При попытке внести изменения хотя бы в 1 символ исходного блока, полученный в результате hash ключ будет кардинально отличаться. Эта ситуация называется «эффект лавины» и служит для защиты от изменений. Также алгоритм SHA-256 гарантирует защиту от коллизий, т. е. вероятность генерации совпадающих хешей при неодинаковых исходных данных стремится к нулю.

Хеширование в майнинге


Вычислительный процесс генерации данных в блокчейне называют майнингом. Хеширование является неотъемлемой его частью. Каждый новый блок несет в себе следующую информацию: хеш предыдущего и хеш текущего блоков, список транзакций и другие системные значения. Технология понимает, на основании дешифровки хеша, какой блок является старым, а какой новым, и в соответствии с этим записывает их в список транзакций.

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


ВАЖНО! Чтобы узнать хеш конкретной транзакции, нужно воспользоваться специальными программными средствами или сайтами. Например, если вводить на сайте www.blockchain.info информацию о биткоин-транзакции, то на экране отобразятся все сведения о ней, в том числе и искомый хеш. Управление транзакциями осуществляют в личном кабинете, там же отслеживают отправителей и получателей биткоинов, заводят биткоин-кошелек, обменивают криптовалюту.

Использование хеширования в области блокчейна и при создании биткоинов помогает проверять истинность и неизменность полученных блоков, защищает их от вмешательства извне. Кроме шифрования SHA-256, в блокчейне применяются другие хорошие криптографические методы: X11, DaggerHashimoto, Scrypt.

Видео: криптографические хеш-функции

Видео: что называется хешированием?

Криптовалютная транзакция представляет собой запись в цепочке блоков (блокчейне), во время которой данные по сделке отправляются в сеть и получают подтверждение со стороны майнеров. Неподтвержденными операциями называются те, которые после инициирования не были добавлены в блок.

Неподтвержденная транзакция на платформе блокчейн – явление очень распространенное и чаще всего сталкиваются с ним владельцы Биткоина. Это напрямую связано с популярностью криптовалюты, а также проблемами с масштабируемостью.

В 2009-2011 году, когда как о валюте, так и о блокчейн-технологиях было известно лишь определённому кругу лиц, для передачи валюты хватало размера блока в 1 Мб. Но популярность росла, увеличивалось количество крипто-энтузиастов, а значит и транзакции между ними стали появляться чаще.

Уже в 2013-2014 годах проблемы с масштабируемостью стали заметны пользователям блокчейна. В 2017 году во время скачка цены валюты Биткоин с неподтвержденными транзакциями сталкивалось подавляющее большинство участников сети.

Таким образом, в основе задержек в проведении транзакций лежит низкая пропускная способность и общая загруженность .

Неподтвержденная транзакция и ее причины

После внесения данных о переводе средств, сделка ожидает подтверждения майнерами, которые заинтересованы в первоочередном внесении в блок информации о транзакциях с высокими комиссиями. В начале 2010-х годов комиссия устанавливалась автоматически, переводов было мало и все они вносились в блок моментально. С ростом популярности ситуация изменилась: конкуренция за место выросла, а фиксированной оплаты стало недостаточно. Размер комиссии стал определяться индивидуально.

Транзакции начали обрабатываться в зависимости от того, какой уровень вознаграждения предусмотрен плательщиком. Таким образом, основная причина того, что транзакция неподтверждённая – низкая комиссия за перевод.

Задержка происходит еще и потому, что для общей безопасности подтверждать переводы нужно несколько раз (обычно 2-6 раз), внося информацию в разные блоки.

Видео: неподтвержденная транзакция в блокчейн. Что делать?

Сервисы-помощники

Для расчета комиссии используются специальные сервисы, такие как Bitaps и Blocktrail. Тем не менее, многие опытные пользователи заявляют, что автоматический расчёт очень часто бывает неверным, занижая, а иногда и завышая уровень. Этому служит высокая волатильность криптовалюты.

Кошельки, через которые происходит оплата, также часто выступают в роли советников, помогая оценить загруженность системы и произвести подсчет минимального порога комиссионных начислений.

Важно: комиссия зависит от размера и занимаемого места в блоке, но не зависит от суммы операции.

Для быстрого получения точной информации о сделке существует сервис blockchain.info. Заполненная строка адреса транзакции даст возможность узнать ее статус, а также посмотреть плату за байт. Неподтвержденная операция будет светиться красным светом, также появиться соответствующая надпись.

Еще один полезный сервис – Bitcoinfees показывает количество неподтвержденных переводов и сортирует их по размеру комиссии.

Ускорение транзакций

Если транзакция застыла, ее можно ускорять. Для этого используются несколько способов:

  • Ускорители ViaBTC или Antpool.
  • Функция Opt-In Replace-by-Fee.
  • Child Pays for Parent.
  • Двойное расходование.

Стоит заметить, что отменять сделку пользователи не могут , поэтому используются ускорители, а иначе операция может подтверждаться дни и даже недели.

Ускорители ViaBTC и Antpool

Первый и самый простой способ протолкнуть операцию, которая начала зависать – ускорители, а по совместительству майнинг-пулы. Они помогают обратить внимание добытчиков на транзакции, находящиеся в нем и немного сдвинуть график проверки в свою пользу.

Важно: ViaBTC имеет одно преимущество над Antpool – возможность работать без регистрации, просто введя данные.

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

Opt-In Replace-by-Fee

Одним из лучших способов ускорить неподтвержденную транзакцию является ее повторное оформление, но уже с повышенной комиссией. Это стоит делать с нажатием кнопки Replace-by-Fee, которая присутствует у многих кошельков. Игнорирование этого пункта может привести к ошибке. Система воспримет операцию как попытку двойной траты, а рядом с номером транзакции будет гореть предупреждающий знак – красный треугольник.

Child Pays for Parent

Большинство способов ускорения работают лишь в том случае, если их используют отправители. Метод CPFP подходит для обеих сторон сделки. Для этого нужно лишь сделать настройку в опциях кошелька, а позже создать перевод с завышенной комиссией. Минус метода в том, что не все кошельки дают возможность использовать его.

Двойное расходование

Метод трудно применимый и больше подходит для опытных пользователей. Имеет небольшой недостаток: отмена старой операции не происходит, лишь перехват и изменение, поэтому в некоторых случаях кошелек может создавать повторный платеж.

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

Видео: ускорение транзакции в blockchain.info

Что будет со средствами, если операция не прошла?

Бывает такое, что нет транзакции в блокчейне или она не подтверждена. Еще чаще их интересует дальнейшая судьба криптовалютных средств, и то, не пропадет ли валюта с кошелька, зависнув в сети. На самом деле ответ прост: деньги никуда не денутся и будут переведены получателю через неопределенный отрезок времени, зависящий от майнеров и загруженности сети. Сама по себе операция не отменяется , деньги не вернуться, но будут высвечиваться на кошельке отправителя и могут ввести в заблуждение неопытных пользователей, считающих, что перевод был отменен. Подтверждение транзакции через недели может стать неприятным сюрпризом, поэтому, опытные криптоэнтузиасты советуют подталкивать перевод.

Заключение

Неподтвержденная транзакция – явление частое, но справиться с ним под силу каждому. Используйте методы «умной комиссии» и ускорители, а также делитесь в комментариях любимыми способами проталкивания биткоин-платежей. Быстрых транзакций!

Видео: зависшие и неподтвержденные траназакции