Двойное расходование
Двойная трата — это риск того, что одну и ту же единицу цифровой валюты можно потратить более одного раза. Поскольку цифровую информацию можно копировать, недобросовестный пользователь может попытаться одновременно отправить одни и те же монеты двум разным получателям. Это одна из ключевых проблем, которую должна решить любая система цифровых денег.
С наличными такого не происходит: передав банкноту, вы больше не владеете ею. Цифровые деньги, однако, представляют собой всего лишь данные. Без надежного способа отслеживать право собственности сеть
блокчейна можно обманом заставить принять две противоречащие друг другу транзакции.
Bitcoin стала первой системой, которая решила эту проблему децентрализованным способом, без использования центрального органа, такого как банк.
В блокчейне
транзакции проверяются распределенной сетью и записываются в общий публичный реестр. Когда транзакция транслируется в сеть, ее участники проверяют, действительно ли отправитель контролирует монеты и не потратил ли их ранее. После проверки транзакция включается в блок, который добавляется в цепочку.
Такие сети, как Bitcoin, используют механизм консенсуса под названием
Proof-of-Work (PoW) для согласования единой упорядоченной истории транзакций. Если появляются две противоречащие друг другу транзакции, окончательно включить в цепочку можно только одну из них. Чем больше блоков добавлено поверх транзакции, то есть чем больше у нее подтверждений, тем сложнее ее отменить, поэтому вероятность успешной двойной траты со временем снижается.
Злоумышленник может попытаться осуществить двойную трату несколькими способами, однако каждый из них, как правило, сложно и дорого реализовать в хорошо защищенной сети:
На практике один из наиболее эффективных способов снизить риск двойной траты для получателей — дождаться достаточного количества подтверждений, прежде чем считать платеж окончательным.