- Сколько времени требуется для подтверждения транзакции в сети Bitcoin?
- Как происходит перевод биткоинов и сколько идёт биткоин-транзакция
- Форки блокчейна
- Допустимое количество подтверждений
- Сколько времени занимает создание шести блоков
- Заключение
- Время подтверждения транзакции Bitcoin
- Общие понятия о скорости транзакции Bitcoin
- Какое время подтверждения транзакции Bitcoin?
- От чего зависит скорость транзакции Bitcoin?
- Можно ли увеличить скорость подтверждения Биткоин?
Сколько времени требуется для подтверждения транзакции в сети Bitcoin?
Исследователь из Стэнфордского университета доктор Джозеф Бонно объясняет различие между “подтверждёнными” и “неподтверждёнными” транзакциями Bitcoin.
В популярных описаниях Bitcoin и в пользовательских интерфейсах программных кошельков часто проводится различие между “подтверждёнными” и “неподтверждёнными” транзакциями.
В чём же разница?
Транзакция считается подтверждённой , когда она получает постоянное место в блокчейне Bitcoin. Блокчейн – это реестр всех транзакций в истории сети Bitcoin.
Информацию в него можно только добавлять, то есть, новые данные добавляются в конец реестра, но удалить их оттуда нельзя.
Этот реестр необходим для предотвращения двойного расходования средств, что является ключевой технической проблемой при разработке любой криптовалюты.
Как происходит перевод биткоинов и сколько идёт биткоин-транзакция
Не забывайте: если мы говорим о том, что Алиса “владеет” некоторым количеством биткоинов, это в действительности означает, что она знает один или несколько криптографических ключей, которые назначены как средство контроля этих монет в записанной реестр транзакции перевода этих монет Алисе.
Для того, чтобы перевести монеты другому лицу, Алиса будет использовать эти ключи для цифровой подписи заявления “Я хотел бы выкупить (потратить) эту транзакцию и отправить её стоимость на X, Y, Z…” где X, Y и Z являются новыми криптографическими адресами, представляющими ключи, известные другим лицам (или самой Алисе).
Теперь, предположим, Алиса подписывает на своем компьютере заявление о том, что хочет передать некоторое количество монет Бобу, но так и не отправляет это заявление Бобу.
В этом случае, естественно, монеты не будут переданы. Это примерно похоже на дерево, падающее в лесу, где никто ничего не слышит.
Тем не менее, отправить подписанное заявление только Бобу было бы недостаточно, потому что при этом Алиса может подписать вызывающую конфликт сделку, заявив, что она хочет передать монеты Кэрол, и отправить это заявление только Кэрол.
Если Боб и Кэрол примут эти заявления как указание на то, что они получили монеты от Алисы, то Алисе удалось бы потратить свои монеты дважды!
Именно здесь на помощь приходит идея глобального распределённого реестра. Если Алиса хочет передать монеты Бобу, она должна опубликовать свое заявление о переводе в блокчейне.
Майнеры, которые поддерживают блокчейн, включат эту транзакцию в цепочку только в том случае, если Алиса не передала монеты кому-либо другому, поэтому, когда Боб увидит транзакцию в блокчейне, он может быть уверен, что именно он является их новым владельцем.
Даже если Алиса позже попытается сделать заявление о том, что она перевела монеты Кэрол, это заявление не будет принято в блокчейн, так как перевод монет Бобу опубликован раньше.
Форки блокчейна
Таким образом, всё выглядит просто: транзакция получает статус “неподтверждённой” после её инициализации и криптографической подписи.
“Подтверждённой” же она становится после успешного включения в блокчейн.
К сожалению, блокчейн не обеспечивает абсолютного постоянства, при котором любые данные, включенные в блокчейн, гарантированно остаются в нём навсегда.
По техническим причинам блокчейн имеет более слабое свойство, которое можно назвать относительным постоянством, то есть, в конечном итоге все стороны приходят к согласию насчёт добавления в блокчейн новых данных с использованием определённого постоянно растущего префикса.
Иными словами, блокчейн представляет собой серию блоков в количестве n (в настоящее время почти 400 000), и в любой момент времени для последних нескольких блоков нет гарантии того, что они будут включены на постоянной основе.
Имея несколько потенциальных (часто противоречащих друг другу) блоков, которые претендуют на то, чтобы быть последними в цепочке, блокчейн может разветвляться (при этом образуется форк).
В конце концов один из этих блоков выиграет и будет добавлен в цепочку на постоянной основе, но не всегда сразу можно понять, какой это блок.
Когда действительный блок заменяется другим блоком, это называется реорганизацией блокчейна, а заменённый блок называется “осиротевшим блоком” (orphan block).
Учитывая это, у нас может возникнуть соблазн сказать, что транзакция “подтверждена“, сразу после её включения в блок, который не является самым последним блоком в блокчейне.
Тем не менее, иногда (хотя и редко) бывает так, что при реорганизации последние n блоков оказываются осиротевшими. Чем больше число n, тем менее вероятно, что такое произойдёт.
Для примера, один блок оказывается осиротевшим несколько раз в день, но только несколько десятков раз в истории число n было между 2 и 4, и всего один раз n больше, чем 4 (реорганизация 24-х блоков в марте 2013 года из-за технического сбоя).
Допустимое количество подтверждений
Если не считать технических сбоев, модель работы Биткоин подразумевает, что крупные реорганизации крайне маловероятны, но всё же возможны.
Поэтому мы не можем с уверенностью сказать, что транзакция “подтверждена“, так как всегда есть вероятность того, что транзакция будет включена в блокчейн, но после этого исчезнет из него в результате крупной реорганизации.
На практике сообщество приняло в качестве стандартного периода подтверждения шесть блоков.
То есть, как только транзакция оказывается в блоке, за которым следуют не менее шести новых блоков, эта транзакция считается “подтверждённой“.
Хотя это число было выбрано несколько произвольно, на практике оно является достаточно надёжным, поскольку единственным случаем, когда оно оставило бы пользователей уязвимыми для двойного расходования, был нетипичный форк в марте 2013 года.
При совершении очень больших транзакций владельцы монет могут захотеть дождаться получения большего количества подтверждений, и большинство программных кошельков сегодня показывает точное количество подтверждений, чтобы пользователи могли сами решить, нужно ли им ждать дальше.
Для относительно небольших транзакций (таких как покупка кофе) пользователи могут довольствоваться более коротким периодом подтверждения, например, в один или даже ноль блоков.
Даже при наличии только одного подтверждения (принятия транзакции сразу после включения в последний блок в цепочке) риск потери её при реорганизации крайне низок (1-2%), и даже в этом случае она, скорее всего, будет повторно включена после реорганизации.
Сколько времени занимает создание шести блоков
Предполагая, что Алисе достаточно стандартного значения в 6 блоков, как долго ей придётся ждать? Обычный ответ: “один час“, но он является не совсем точным.
Поскольку блоки вычисляются случайным процессом, невозможно точно сказать, как много времени потребуется для нахождения шести блоков и сколько по времени идёт транзакция Биткоин.
В среднем, поиск каждого блока занимает около 10 минут.
Среднее время создания блока может быть немного меньше или больше в зависимости от того, растёт или уменьшается суммарный хешрейт сети Bitcoin.
Эту деталь можно проигнорировать, и именно поэтому 6 подтверждений занимают в среднем около 1 часа.
Однако процесс создания блоков (или майнинга) является рандомным, и на каждый блок может уходить гораздо больше или меньше времени.
Заключение
Транзакция подтверждается, когда она получает постоянное место в блокчейне Bitcoin.
Однако абсолютного понятия “постоянное место” не существует, и сообщество использует достаточно безопасную политику присвоения сделкам статуса подтверждённых в тех случаях, когда они оказываются включёнными в блокчейн “с очень высокой вероятностью“.
Время, которое требуется для этого, может варьироваться – иногда на подтверждение могут уходить десятки минут, а иногда более двух часов, но в среднем оно занимает около часа.
Возможно вам также будет интересно прочитать статьи
Источник
Время подтверждения транзакции Bitcoin
- Общие понятия о скорости транзакции Bitcoin
- Какое время подтверждения транзакции Bitcoin
- От чего зависит скорость транзакции Bitcoin
- Можно ли увеличить скорость подтверждения Биткоин
Время транзакции Биткоин — показатель, который отражает скорость проведения сделки по переводу монет BTC с одного кошелька на другой. Подтверждение операции применяется, чтобы исключить повторный расход денег и дать время системе убедиться в валидности сделки. Сколько занимает перевод в криптовалютной сети Биткоин? От чего зависит этот параметр? Как проходит процесс подтверждения? Можно ли ускорить этот процесс? Эти и другие нюансы рассмотрим ниже.
Общие понятия о скорости транзакции Bitcoin
Сделка в криптовалютной сети Биткоин представляет собой передачу сведений в блокчейн и их запись в специальные блоки (элементы цепи). В состав блока входят тысячи операций, ожидающих подтверждения системы. На создание такого узла уходит около 10 минут, а его добычей занимаются майнеры.
Транзакции Биткоин открыты для участников криптосети и содержат следующие сведения:
- Общедоступный ключ.
- Объём перечисленных монет.
- Первоначальные данные.
Как отмечалось, сведения о проведённых операциях фиксируются в блоках, объединённых в единую цепь и формирующих историю сделок, совершённых с виртуальными деньгами. В состав каждого из узлов входит заголовок и список осуществлённых сделок в сети.
В заголовке имеются хэш-коды операций, личный хэш и этот же параметр, но для последнего элемента цепи. Первой в списке идёт транзакция с указанием размера премии за формирование нового блока. К слову, именно от размера комиссии зависит время транзакции Bitcoin.
Перед добавлением в цепочку блокчейн сделка проверяется на валидность, после чего окончательно добавляется в блок. Сам blockchain представляет собой распределённую базу, которая находится на миллионах разных ПК.
Алгоритм проведения транзакции Биткоин имеет следующий вид:
- Николай планирует перевести криптовалюту Анне.
Операции направляются в сеть, формируются в блоки с индивидуальным номером и хэшем прошлого элемента.
Блоки направляются участникам криптосети для подтверждения.
При отсутствии ошибок происходит фиксация нового элемента в существующей базе данных, а сам блок прибавляется к цепи.
Какое время подтверждения транзакции Bitcoin?
После получения монет человек не может использовать деньги по своему желанию. Сначала сделка идёт в криптовалютную сеть для исполнения и добавления в блок, что удостоверяет её валидность. Этот процесс называется подтверждением. Пополнение одно элемента цепи транзакцией равно одному подтверждению.
Возникает вопрос — сколько подтверждений требуется для Bitcoin-транзакции? Как правило, пользователь должен выждать около 60 минут, которые затрачиваются на формирование шести очередных блоков. Такое правило действует во многих приложениях и торговых точках, ведь создание 6 новых элементов считается исчерпывающим доказательством подлинности проведенной транзакции.
При этом человек, который организует сделку, вправе снизить количество проверок. Это рекомендуется делать при перечислении небольшой суммы Биткоинов, когда риск является допустимым. Если проверка транзакции Биткоина оказалась неуспешной, деньги возвращаются в хранилище стороны-отправителя.
Таким образом, время подтверждения транзакции (при идеальной ситуации) составляет 20 минут (при включении в два блока) и 60 минут (если операция добавляется в шесть элементов сети). Но с ростом нагрузки на сеть количество проведённых сделок превышает объём блока, что приводит к задержке переводов в криптовалютной сети. Время проведения небольших транзакций с минимальной комиссией может затягиваться на 5–6 часов и более.
Стоит отметить, что торговые точки, которые принимают Bitcoin в роли платёжного средства, вправе ставить индивидуальные ограничения на число блоков, требуемых для подтверждения сделки. Что касается параметра «6», он выбран для достижения максимальной надёжности. По теории злоумышленнику потребуется 10 процентов от общего хэшрейта сети, чтобы подделать операцию. Если подтверждение происходит при добавлении сделки в шесть блоков, риск минимален. При наличии более 10 % мощностей хакер может подделать транзакцию, но для реализации таких замыслов потребуются огромные затраты, что снижает риск атаки.
От чего зависит скорость транзакции Bitcoin?
Время подтверждения транзакции Биткоин зависит от ряда факторов:
- Загрузки криптовалютной сети. С ростом спроса на Bitcoin повышается и объём сделок, которые проводятся с применением виртуальной валюты. За последние годы число транзакций с BTC выросло почти в десять раз. В результате количество операций, которые должны включаться в блок, превышает размеры последнего. Как результат, в системе накапливается множество неподтверждённых сделок, а скорость транзакции Bitcoin снижается.
Размера комиссии. На фоне роста числа переводов повышается и конкуренция за включение операций в очередной блок. Когда у майнера появляется выбор между двумя сделками с разной комиссией, предпочтение отдаётся той, которая предполагает большую выплату премии. На 11 апреля 2018 года средний платёж составляет 0,84 доллара. Но это усредненный показатель. Чтобы ускорить проведение сделки и ждать меньше времени, рекомендуется ставить больший размер вознаграждения. В такой ситуации транзакции отдаётся приоритет.
Эксперты уверяют, что главная причина задержек при проведении транзакций, заключается в небольшом комиссионном платеже. Во многих бумажниках Биткоин имеется такое понятие, как рекомендуемое вознаграждение, которое выставляется автоматически. При этом человек, который проводит транзакцию, вправе увеличить или уменьшить этот показатель.
Важно понимать, что величина комиссии — параметр, который не зависит от размера проводимой сделки. Часто бывает, что перевод 50 Bitcoin обходится выгоднее, чем транзакция на сумму 0,1 Биткоин. Причина в том, что размер рекомендуемой премии зависит не от объёма перевода, а от его размера (измеряется в байтах). Объём сделки будет тем больше, чем выше число связанных операций. К примеру, Николай получил по 2 BTC от Кати, Насти и Светы, а после направляет эти их Станиславу. В такой транзакции принимает участие сразу 4 адреса, что повышает её размер.
Все названые причины, которые приводят к повышению времени подтверждения транзакции — косвенные. Главная проблема заключается в ограниченной мастшабируемости Биткоина, а именно в небольшом размере блока (1 Мб). К примеру, одна сделка в сети занимает около 500 байт. Это значит, что в один элемент цепи вмещается 2000 операций, а время его формирования составляет около 10 минут. На практике запросов на проведение транзакций больше, сеть не справляется с нагрузкой, и сделки подтверждаются дольше.
В среднем объём операций в сети составляет около 100 Мб. Получается, что только 1 из 100 сделок проводится в отведённые 10 минут. Чтобы обработать все транзакции, потребуется в 100 раз больше времени — почти 17 часов. Нельзя забывать о том, что для подтверждения сделки требуется выждать её включение в шесть блоков, поэтому полученное время умножается на 6.
Решение проблемы — улучшение параметра масштабируемости Биткоин. В 2017 году была внедрена технология SegWit, подготавливающая почву для увеличения размера блока до 2 и более мегабайт. Минус в том, что такие возможности используются далеко не во всех транзакциях.
Можно ли увеличить скорость подтверждения Биткоин?
Чтобы избежать потери времени и гарантировать быстрое проведение операции, можно принять дополнительные шаги — увеличить комиссию (установить её выше среднего значения), переводить более крупные суммы или применять специальные платформы (типа Coinbase). Но главное решение касается структуры криптовалюты. Если удастся увеличить размер блока до 4–8 Мб, проблемы с масштабированием пропадут.
Подробнее о том, как ускорить время подтверждения транзакции Биткоин:
Источник