Форум
Монеты: 11 603 Биржи: 1201
Рыночная капитализация: $2 793 550 161 361,01
Объём за 24 ч: $120 645 187 970,27
ETH Газ: 34 Gwei
Быстро
37 Gwei
Стандарт
34 Gwei
Медленно
34 Gwei

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

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

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

Пример двойной траты

Представьте: человек приходит в кафе и покупает чашку кофе за $5. Его деньги поступают в кассу и потратить эти средства дважды уже невозможно. Криптовалюты не передаются физическим образом, они фактически остаются в кошельке покупателя до той поры, пока транзакция не будет проверена валидаторами сети, выполнена и записана в блокчейн. Это означает, что повторную оплату (двойную трату) можно осуществить во временной промежуток между отправкой виртуальных средств средств и фактом подтверждения операции.

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

Решение проблемы — блокчейн

Концепция блокчейна решает проблему Double-spending. Для этого используется специальный алгоритм подтверждения финансовых транзакций. Распределенная книга в хронологическом порядке хранит упорядоченные записи о всех финансовых операциях и переводах с временными отметками. В блокчейн-сети Биткоин блоки генерируются раз в 10 минут и содержат в себе сведения о многочисленных транзакциях. Они постоянно обновляются, а копии хранятся на всех узлах сети одновременно.

Алгоритм консенсуса Proof-of-Work (PoW) позволяет избежать необходимости централизованного контроля и доверия участников. Вместо этого, валидацию (проверку) выполняет децентрализованная группа майнеров. Блокчейн гарантирует доказательство того, что любой пользователь, тратящий BTC, действительно владеет этими монетами.

Пример

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

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

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

Типы атаки

В мире криптовалют существуют разные типы хакерских атак на сеть.

Гоночная атака (Race attack)

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

Атака Финни (Finney attack)

В этом случае хакер должен быть и майнером. Злоумышленник отправляет монеты со своего кошелька на кошелек A, а затем сам пытается найти блок с данной транзакцией и решить математическую головоломку. После этого он совершает еще одну транзакцию на такую же сумму, отправляя ее на кошелек продавца B. Если второй получатель сочтет, что товар оплачен, при этом не видя подтверждения, злоумышленник выберет блок с первой транзакцией (на кошелек А) и подтвердит ее. Перевод, отправленный на кошелек C, остается неподтвержденным — второй продавец будет обманут.

Атака Vector76 (Vector76 attack)

Представляет собой комбинированную атаку, которая включает в себя два предыдущих метода обмана. Vector76 основана на преднамеренном разветвлении блоков. Как правило, ее длительность не превышает 10 минут

Атака грубой силы (Brute force attack)

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

Атака 51%

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

Выводы

Для достоверности факта оплаты важно дождаться нескольких подтверждений сети. Это гарантирует безопасность и защиту от двойных расходов. Чем больше блоков добавлено, тем надежнее транзакция.

Обычно 0 подтверждений означают, что транзакция еще не включена ни в один блок. Она не подтверждена.

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

Опытные юзеры рекомендует дождаться от 6 до 12 подтверждений. При таких раскладах хакеру потребовался бы значительный объем мощностей, чтобы оформить double-spending. Это слишком энергозатратно и дорого. Данный аккуратный подход гарантирует валидность перевода.

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

Игорь Ко-Ши
Игорь Ко-Ши Исследую криптовалюты с 2016 года.
Комментариев пока нет
Поделитесь своими знаниями с другими пользователями!
Открыть свой блог
Получайте главные новости из мира криптовалюты прямо на почту