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

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

От чего зависит скорость перевода и какова она в среднем

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

Так сколько же идет биткоин транзакция? Зависимость проста: чем больше пользователей взялись за обработку, тем быстрее она будет подтверждена. И чем большая комиссия назначена за перевод, тем большее количество пользователей захочет заниматься заявкой. Средняя скорость подтверждения транзакции – от 20 минут до часа.

Как ускорить процесс транзакции биткоина?

Самый простой способ ускорения транзакции – назначить комиссию выше средней рыночной. Для этого нужно открыть криптокошелек (например, Blockchain). Перейдя во вкладку “Транзакции”, нужно кликнуть на “Отправить”, и в выплывающем меню нажать на “Расширенные параметры”. После этого откроется меню, как на скриншоте.

Назначение комиссии за транзакцию при переводе криптовалюты из кошелька Blockchain

В этом меню пользователь, помимо суммы перевода, может выбрать величину назначаемой комиссии. Чтобы транзакция прошла быстро, но, с другой стороны, не переплатить лишнего, лучше отследить размер оптимальной комиссии на ресурсе вроде bitaps.com, и установть вознаграждение за свой перевод на 10-20% больше.

Когда заявка на транзакцию уже отправлена, остается только ждать исполнения. С этого момента отправитель никак не может повлиять на процесс – криптовалютные платежи невозможно перенаправить, приостановить или отменить. В случае некорректного проведения деньги просто вернутся на кошелек отправителя. Куда хуже, если заявка оформлена корректно, но никто не хочет ее обрабатывать (например, из-за заниженной комиссии). В этом случае деньги будут находиться в подвешенном состоянии вплоть до глобального обновления системы (такого, например, как при разделении Биткоина 1 августа 2017 года).

Чтобы узнать текущий статус перевода и количество подтверждений транзакции, нужно зайти на сайт blockchain.info . Последние транзакции будут отображаться прямо на главное странице, также список можно посмотреть через вкладку “Кошелек”. Выбрав из списка интересующую транзакцию, можно увидеть ее текущий статус и всю информацию, в том числе, количество подтверждений на данный момент.

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

Если вам необходимо осуществить быстрый перевод - не стоит жадничать, нужно сразу назначить комиссию в разы выше средней - и деньги поступят на счет получателя в течение нескольких минут. Комиссия назначается прямо в кошельке Blockchain при оформлении транзакции, а посмотреть среднее значение на данный момент можно в сервисе вроде bitaps.com. Если же для вас важнее экономия - установите небольшую комиссию и приготовьтесь к долгому ожиданию. Статус заявки вы всегда можете посмотреть в соответствующей вкладке кошелька.

20
Фев
2018

Как отследить транзакцию Биткоин и что делать, если нет подтверждения?

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

К сожалению, в будущем время ожидания будет ещё больше. Все попытки изменить это, привели лишь к появлению форков.

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

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

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

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

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

В блокчейне Биткоина транзакции записываются в новые блоки, а они создаются майнерами.

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

Майнеры – это те люди, которые предоставили вычислительные мощности для функционирования блокчейна.

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

Кто управляет операциями Биткоин?

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

Никто не заморозит средства или не отменит принятую операцию. А если не поступит подтверждение, монеты просто отправятся обратно. Всем, кто делает переводы в BTC нужно знать:

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

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

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

От чего зависит скорость транзакции Биткоин?

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

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

1. Сумма транзакции

Система так устроена, что чем больше сумма перевода, тем выше у неё приоритет.

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

2. Загруженность сети

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

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

3. Курс валюты

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

4. Размер комиссии

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

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

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

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

Можно ли отследить транзакцию Биткоин?

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

Данные открыты, но номера кошельков ни к кому не привязаны, поэтому в сети полная анонимность. Где отследить транзакции биткоин? Переходите на , там вы увидите форму поиска:

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

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

Как видите, сумма перевода чуть более 0.026 BTC, а комиссия установлена в размере 0.0018 BTC (почти 1000 рублей). Поэтому меньше 2х минут ушло на обработку.

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

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

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

Зависла транзакция Биткоин, что делать?

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

  1. Opt-In Replace-by-fee.

Первая называется Opt-In RBF и работает через функцию «Двойная трата», от которой в блокчейне установлена защита. Суть её в том, что вы направляете аналогичный перевод, но с большей комиссией.

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

Данная функция присутствует в кошельках Electrum и GreenAddress (может быть есть и в других). При создании новой транзакции нужно лишь поставить специальную галочку.

  1. Child Pays for Parent.

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

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

Если у вас поддерживается функция, то отправляйте полученную сумму самому себе и указывайте повышенную комиссию. В этом случае, майнер объединит транзакции и за счет высокой комиссии быстрее примет её в новый блок.

Не переживайте, если ваши Bitcoin зависли. С технической стороны, они всё ещё находятся на вашем кошельке и никуда не пропадут. Списываются монеты только после того, как появляется запись в блоке (т.е. BTC отображается на счете получателя).

Какую комиссию ставить при переводе Биткоинов?

Кто успел обжечься и ждал по несколько дней подтверждения, больше не выставляет минимальную комиссию. Но как её правильно выбрать, чтобы не переплачивать?

При использовании некоторых кошельков, комиссия динамическая и рассчитывается при заполнении формы для перевода:

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

На главной странице показан размер комиссии для приоритетной, ускоренной и обычной транзакции:

В данный момент для самого быстрого перевода Биткоинов нужно заплатить по 65 Сатоши за каждый байт. В кошельке Блокчейн можно указать свой размер комиссии за каждый байт (как и во многих других кошельках):

Только учтите, что ваша транзакция может быть и 500 байт, а при таком раскладе объем комиссии составит уже 30 000 Satoshi (по актуальному курсу, около 2.5$).

Как ускорить транзакцию Биткоин?

Необходимость отследить транзакцию биткоинBlockchain появляется, только если проходит слишком много времени до подтверждения. Никто не следит за операциями, когда они исполняются мгновенно.

Что ещё предпринять, кроме увеличения комиссии, чтобы быстрее получить подтверждение?

  • старайтесь переводить большие суммы;
  • проводите операции в дневное время (с 12:00 до 19:00 по МСК);
  • используйте мультиподпись (доступна в некоторых сервисах, позволяет повысить приоритет транзакции без большой комиссии);
  • проводите транзакции с открытыми данными отправителя и получателя;
  • используйте системы, где внутренние переводы выполняются моментально (без участия в блокчейне Bitcoin).

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

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

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

Буду благодарен, если поделитесь этой статьей в социальных сетях:
Многие наверняка уже столкнулись с проблемой зависших битков (при отправке и получении).
В большинстве случаев, виною этому спам сети и выставление малой платы майнерам (далее комиссия).
Перед отправкой битков, я бы посоветовал вам смотреть на состояние сети и выставлять комиссию, которую рекомендуют данные сервисы:
https://btc.com/stats/unconfirmed-tx

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

Берем свой th(id) транзакции:
Пример:

И вбиваем id cюда:


Примечание!

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

Вы можете получить, такое сообщение:

Submissions are beyond limit. Please try later.

Нажмите, чтобы раскрыть...

Вам нужно вбивать до тех пор, пока не получите статус: Успешно.

После этого, ваша транзу подхватят и вовлекут в блок для обработки.

Что делать, если ваша биткоин транзакция не подтверждается ("зависла")?

Сначала можно просто подождать. Если прошло уже несколько часов (или даже суток) и ждать надоело, то есть несколько вариантов:

  1. Cделать даблспенд . Особенности: может сделать только отправитель.
  2. Использовать CPFP . Особенности: может сделать получатель и обычно отправитель.
  3. Использовать replace-by-fee . Особенности: может только отправитель и если заранее позаботился; не все кошельки могут.
  4. Использовать "ускоритель" от viabtc . Особенности: может получатель и отправитель, но сервис часто перегружен и есть ограничения на транзакцию.
Как сделать даблспенд (двойную трату)?

Действуем по следующему алгоритму (алгоритм описан для кошелька Bitcoin Core; для других кошельков действия аналогичны, но команды будут другими):

SpoilerTarget">Спойлер: алгоритм

1) Убеждаемся, что она ждёт подтверждения. Для этого копируем id вашей транзакции, вставляем в строку поиска сервиса blockchain.info (а также bitaps.com, blocktrail.com/BTC или аналогичного). Далее ищем глазами строку "неподтвержденная транзакция" ("unconfirmed transaction"). Нашли? Значит, транзакция ждет подтверждения.
Примечание. На "Приблизительное время подтверждения" ("Estimated Confirmation Time") на странице с вашей транзакцией blockchain.info не смотрим -- там неизвестно что.

2) Теперь закрываем кошелек и запускаем его из командной строки с параметром -zapwallettxes и ждем пока он откроется. Когда кошелек запустится, все неподтвержденные транзакции из него исчезнут (но они ещё есть в сети!). Для bitcoin core 0.14 потребуется перед запуском ещё переименовать или перенести файл mempool.dat (мемпул в этой версии сохраняется в файл и старая транзакция остается там).
Примечание. Почему не с параметром -salvagewallet? -zapwallettxes не затронет имена ваших ключей, а -salvagewallet удалит их. Кроме того, bitcoin core иногда падает при запуске с -salvagewallet и тогда ваш wallet.dat будет поврежден. Правда, рядом с ним заранее будет создана копия.

3) Теперь можно создавать новую транзакцию, не забыв поставить адекватную комиссию. Но! Поскольку ваша старая транзакция ещё осталась в сети, она может когда-нибудь неожиданно подтвердиться. Если вас это не устраивает, то у новой транзакции хотя бы один из входов должен будет совпадать с одним из входов старой. Для этого смотрим на странице вашей транзакции на сайте blocktrail.com/BTC или аналоге графу "inputs", запонинаем точный размер входа в битках. После этого при создании транзакции в кошельке нажимаем на кнопку "inputs...", находим в списке такое же точно число в битках и выбираем его (если их несколько, то выбирайте с тем же адресом получения и временем). После этого выбираем ещё какие-нибудь входы, чтобы общая сумма была больше суммы транзакции с будущей комиссией; лучше выбирать с запасом. Далее заполняем все поля как обычно, (не забываем про комиссию!) и отправляем.


Как использовать CPFP? Как быть, если я не отправитель, а получатель транзакции?

Такой способ есть и он подходит для получателей; для отправителя он также подойдёт, если у вашей транзакции была "сдача" (обычно она есть). Этот способ немного дороже и сколько пулов его поддерживают - неизвестно (по состоянию на начало 2017 года как минимум два пула его поддерживают). Можно попробовать задействовать механизм CPFP (child pays for parent). Для этого вы должны потратить один из выходов проблемной транзакции с комиссией, которой хватит на обе транзакции сразу - новую и старую. То есть просто создаёте транзакцию с одним входом (это должен быть один из выходов проблемной, например - сдача) и пересылаете биткоины себе же. Комиссию ставите такую, чтобы её хватило на обе сразу: для этого суммируете их размеры, умножаете на число из пункта "Как выбрать адекватную комиссию?", делите на размер новой в килобайтах и вписываете в графу "custom transaction fee" при отправке транзакции. Подробнее для кошелька Bitcoin Core под спойлером:

SpoilerTarget">Спойлер

Пусть для примера вы получатель и должны получить 0.08500148 btc. Для того, чтобы воспользоваться CPFP, в Bitcoin Core нажимаем "Настройки" -> "Параметры" -> "Бумажник" ("Settings" -> "Options" -> "Wallet") ; ставим галочки у "включить управление входами" ("Enable coin control features") и "тратить неподтвержденную сдачу" ("Spend unconfirmed change"), если они не стоят (потом можно будет их убрать); теперь закрываем окно настроек и нажимаем "Отправить" ("Send"), там нажимаем кнопку "Входы..." ("Inputs...") и ставим галочку у суммы 0.08500148; потом "Ок", получателем ставите свой адрес; количество ставите 0.08500148 и галочку "вычесть комиссию из суммы" ("subtract fee from amount"); комиссию ставите "выборочно" ("custom"), "за килобайт" ("per kilobyte") и пишете с рассчетом на 2 транзакции по формуле ((размер старой транзакции)/(размер новой транзакции) + 1)*(адекватная комиссия за килобайт и лучше побольше). Отправляете.

Всё. Теперь ждёте. Те пулы, которые "понимают" эту схему, с радостью возьмут обе транзакции сразу. Возможно, это будет не быстро, если таких пулов мало.


Как отменить транзакцию? Может ли транзакция отмениться сама?

Если транзакция подтвердилась (включена в блок), отмениться или быть отменена она не может. Чтобы отменить неподтвержденную транзакцию, необходимо создать конкурирующую с ней транзакцию и добиться её включения в блок - смотрите пункт (2) ответа на вопрос "Что делать, если отправленная вами биткоин транзакция не подтверждается ("зависла")?". В любом случае, гарантии успеха тут нет.

Сама неподтвержденная транзакция отмениться не может - может лишь поменяться отображение в вашем кошельке. Далее смотрите ответ на вопрос "Моя транзакция висела неподтвержденной несколько дней, а затем пропала и деньги вернулись обратно. Теперь все хорошо и я могу просто отправить деньги ещё раз?".

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

Нет! Ваша старая транзакция ещё есть в сети и может неожиданно подтврдиться. Чтобы этого избежать, смотрите пункт (2) ответа на вопрос "Что делать, если отправленная вами биткоин транзакция не подтверждается ("зависла")?" (под спойлером). Если вы вообще передумали делать тот перевод, то можно будет сделать перевод себе самому.

Как обезопаситься от зависания транзакций?

  1. Выставлять адекватную комиссию.
  2. Включить в кошельке механизм replace-by-fee и помечать все транзакции как replaceable, если ваш кошелёк его поддерживает (вроде бы electrum поддерживает). Это позволит при возникновении проблемы легко повысить комиссию.

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)). Естественно, новые возможности появляются не сразу и не во всех кошельках, что заставляет пользователей следить за ситуацией, быть может, более внимательно, чем хотелось бы. Можно посоветовать, в частности, перевод относительно свежей заметки «Что делать, если «зависла» транзакция в сети Биткоина?»

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

Еще один вопрос касается уже не технологии, а права. Коль скоро транзакция может происходить достаточно долго, а волатильность биткоина немаленькая, то нужны правила, поскольку привычные «три банковских дня» перестают соответствовать нашим представлениям о справедливости. В примере, на котором мы рассматривали зависший платеж, средства были зачтены по курсу на момент создания транзакции. Но с момента транзакции курс биткоина вырос в полтора раза! Ок, мой заждавшийся перевода приятель был рад и этому. Но вряд ли такие риски приемлемы для массовых платежей. С трудом представляю себе и обратную ситуацию, когда пришедшая на третий день транзакция потеряла заметную часть стоимости. Возможно, ситуацию бы поправила страховка биткоин-платежей? Но и о таких услугах я не слышал.

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

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

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

Биткоинов как таковых нет, есть только записи о биткоин транзакциях

Во-первых, биткоинов, как таковых, не существует. Забавно, но это факт. Их нет даже на жестком диске. Мы говорим, что у кого-то есть биткоины, но если взглянуть на конкретный биткоин адрес, на нем не будут храниться цифровые монеты в том виде, как хранятся, например, доллары, фунты или рубли на банковских счетах. Вы не сможете указать на какой-то физический объект или даже электронный файл и сказать «это биткоин».

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

Так как что же представляет из себя транзакция?

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

  • Вход (Input) — запись о том, с какого адреса биткоины пришли Маше (допустим, она получила их от подруги Оли);
  • Сумма (Amount) — количество биткоинов, которые Маша пересылает Васе;
  • Выход (Output) — биткоин-адрес Васи.

Как происходит пересылка биткоинов?

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

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

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

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

Ответ прост. Транзакции подтверждают майнеры, которые при этом заняты . Иногда приходиться ждать, пока они закончат майнинг. Алгоритмом, заложенным в Биткоин, предусмотрено, что для майнинга каждого блока нужно примерно десять минут. Однако если вы оплачиваете через процессинговые компании, такие как BitPay, Coinbase или похожие вам не нужно не чего ждать. У них встроен механизм моментального подтверждения сделки после перевода биткоинов.

А что, если сумма на входе и выходе транзакции разная?

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

Рассмотрим такую ситуацию. У нас есть Маша, которая, как мы писали выше отправляла биткоины Васе. Теперь представьте, что у Маши день рождения и ее друзья решили отправить ей в качестве подарка цифровые монеты. Итак, Света отправила подруге два биткоина, Дима — три и Юля — еще один, причем каждый со своего биткоин адреса, ну и, естественно, в разное время дня. Так вот баланс биткоин-адреса Маши теперь увеличился на 6 биткоинов, однако это не означает, что транзакции от ее друзей были объединены в одну. Они так и будут привязаны к адресу Маши как отдельные, каждая от другого адреса, транзакции.

Теперь, если Маша захочет снова отправить Васе пару биткоинов, например 4, то ее кошелек будет пытаться использовать записи транзакций с различными суммами, которые сложатся в нужное количество биткоинов, которые она шлет Васе. То есть, в соответствии с нашим примером с днем рождения Маши, на Васю могут быть подвязаны транзакции от Димы (три биткоина) и Юли (один биткоин).

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

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

Нужно ли платить комиссию за транзакции?

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

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

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

Могу ли я получить чек или документ, подтверждающий перевод биткоинов?

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

Что если я хочу отправить часть биткоина?

Вполне. Биткоины — делимые единицы, вплоть до стомиллионных. Например 1 сатоши это 0,00000001 биткоина.

Хотите больше новостей?



Эта статья также доступна на следующих языках: Тайский

  • Next

    Огромное Вам СПАСИБО за очень полезную информацию в статье. Очень понятно все изложено. Чувствуется, что проделана большая работа по анализу работы магазина eBay

    • Спасибо вам и другим постоянным читателям моего блога. Без вас у меня не было бы достаточной мотивации, чтобы посвящать много времени ведению этого сайта. У меня мозги так устроены: люблю копнуть вглубь, систематизировать разрозненные данные, пробовать то, что раньше до меня никто не делал, либо не смотрел под таким углом зрения. Жаль, что только нашим соотечественникам из-за кризиса в России отнюдь не до шоппинга на eBay. Покупают на Алиэкспрессе из Китая, так как там в разы дешевле товары (часто в ущерб качеству). Но онлайн-аукционы eBay, Amazon, ETSY легко дадут китайцам фору по ассортименту брендовых вещей, винтажных вещей, ручной работы и разных этнических товаров.

      • Next

        В ваших статьях ценно именно ваше личное отношение и анализ темы. Вы этот блог не бросайте, я сюда часто заглядываю. Нас таких много должно быть. Мне на эл. почту пришло недавно предложение о том, что научат торговать на Амазоне и eBay. И я вспомнила про ваши подробные статьи об этих торг. площ. Перечитала все заново и сделала вывод, что курсы- это лохотрон. Сама на eBay еще ничего не покупала. Я не из России , а из Казахстана (г. Алматы). Но нам тоже лишних трат пока не надо. Желаю вам удачи и берегите себя в азиатских краях.

  • Еще приятно, что попытки eBay по руссификации интерфейса для пользователей из России и стран СНГ, начали приносить плоды. Ведь подавляющая часть граждан стран бывшего СССР не сильна познаниями иностранных языков. Английский язык знают не более 5% населения. Среди молодежи — побольше. Поэтому хотя бы интерфейс на русском языке — это большая помощь для онлайн-шоппинга на этой торговой площадке. Ебей не пошел по пути китайского собрата Алиэкспресс, где совершается машинный (очень корявый и непонятный, местами вызывающий смех) перевод описания товаров. Надеюсь, что на более продвинутом этапе развития искусственного интеллекта станет реальностью качественный машинный перевод с любого языка на любой за считанные доли секунды. Пока имеем вот что (профиль одного из продавцов на ебей с русским интерфейсом, но англоязычным описанием):
    https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png