В начале пути изучения работы криптовалют и блокчейн сетей, многие из нас не понимают, как именно работают сети, почему биткоин транзакции долго подтверждаются и как появляются подтверждения сети. О некоторых технических деталях и о приблизительном расчёте времени подтверждения транзакции вы можете прочитать в другой нашей статье. Сейчас же мы хотим рассказать об этом более простым языком на примере понятном всем — движении поездов.
Краткая модель примера:
- пассажиры — транзакции
- поезда — новые блоки, появляющиеся в сети
- станция — мемпул сети
- цена за билет — комиссия в сети
- контроллёры и машинисты — майнеры
- количество поездов, которые покинули станцию после посадки пассажира вместе с поездом пассажира — количество подтверждений транзакции
Любая блокчейн сеть должна поддерживаться майнерами, они добывают новые блоки. Представим, что блоки — это поезда, которые приходят на станцию приблизительно каждые 10 минут. Но интервал времени между поездами всегда разный и никто не знает, когда будет новый поезд. Бывает, что поезда ходят каждые 2 минуты, а бывает, что и больше часа нет новых поездов-блоков.
Когда вы хотите или вам хотят перевести криптовалюту, создаётся новая транзакция. Представим транзакцию, как пассажира, который хочет попасть в поезд. Пока пассажир-транзакция стоит на станции, он находится в мемпуле сети, то есть ещё не является частью блокчейна.
За билет для пассажира-транзакции можно заплатить любую стоимость, даже нулевую, но контроллёры-майнеры сажают в первую очередь тех, чья цена за единицу веса будет выше. И все видят, кто какую цену установил. Комиссия за транзакцию — это цена за посадку в поезд-блок и она устанавливается до посадки в поезд. Изменить установленную цену можно только заменив самого пассажира-транзакцию.
Поезд-блок ограничен в весе пассажиров-транзакций, которые он может принять. Каждый новый поезд приходит с разным количеством вагонов и может принять разное количество пассажиров. Для биткоина в среднем 2500 пассажиров-транзакций могут влезть в приходящий новый поезд-блок. Если количество пассажиров велико, а новые поезда не приходят, образуются большие очереди. В такую ситуацию может попасть каждый из пользователей сети.
После того, как пассажир-транзакция покинула станцию-мемпул, попав в блок-поезд, она имеет своё первое подтверждение сети.
После первого подтверждения транзакции, получивший её пользователь сразу же может распоряжаться полученными средствами, если это не запрещено на уровне протокола конкретной сети блокчейна. Биржи и обменники могут завышать необходимое количество подтверждений для своей безопасности.
Каждое новое подтверждение будет появляться только с новыми поездами-блоками, которые будут забирать новых пассажиров-транзакций со станции. То есть если вам необходимо 5 подтверждений сети, необходимо дождаться ещё 4 новых блока после того, в который попала искомая транзакция.
Представим, что в определённый момент времени станция-мемпул довольно пустая и цена за посадку была выбрана высокая, чтобы попасть в первый же поезд-блок. Но проходит час, а нового поезда-блока так и нет. Количество пассажиров-транзакций уже сильно выросло и новые приходящие ставят цену-комиссию уже намного выше исходной, чтобы так же попасть в первый поезд. В итоге пассажир-транзакция может попасть в поезд-блок только спустя несколько часов, и отправитель или получатель будет сильно недоволен такому исходу событий.
Иногда транзакцию можно заменить, но это зависит от возможностей криптовалютного кошелька и располагаемых средств