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

Проблема двойного расходования

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

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

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

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

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

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

Созданные блоки немедленно добавляются в блокчейн и затем передаются всем нодам. Ноды обмениваются информацией через сетевой протокол и обеспечивают целостность всей системы. Но как все эти элементы помогают справиться с проблемой двойного расходования? Мы объясним это на примере.

Что представляет из себя двойное расходование?

Скажем, у вас есть 1 BTC для покупки машины. Вы нашли подходящего дилера, который принимает оплату биткоинами. Вы все обсудили с продавцом и перечислили ему деньги. Однако оказалось, что тот же самый биткоин был использован для покупки товаров или услуг хакером, который взломал ваш аккаунт и получил доступ к вашему кошельку. Хакер провел эту транзакцию практически в то же время, что и вы. Что теперь будет?

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

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

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

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

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

Основные виды атак двойного расходования

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

  • Атака 51%. Хакер захватывает контроль над 51% хешрейта (вычислительной мощности сети биткоин).
  • Атака Финни. Майнер обрабатывает блок, но не отправляет его в сеть, а совершает другую транзакцию, что в итоге приводит к недействительности платежа.
  • Атака типа “гонки”. Хакер использует один и тот же коин в двух транзакциях, только одна из которых проверяется и подтверждается, а вторая становится недействительной.

Решение проблемы двойного расходования

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

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