Learn
January 15

Почему многие сервисы требуют несколько подтверждений транзакции?

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

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

В сфере цифровых валют такое возможно. Поскольку цифровые деньги — это просто данные, необходимо запретить людям копировать и отправлять/расходовать одни и те же единицы в разных местах. Для этого применяются алгоритмы консенсуса (Proof-of-work, Proof of Stake и др.).

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

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

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

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

⬅️ Ранее: "Что такое криптовалюта?"

Далее: "Разбираемся в понятиях: Coin vs Token" ➡️