В мире цифровых денег существует фундаментальный риск, угрожающий целостности всей системы: возможность двойного расходования одной и той же денежной единицы. Представьте себе, что Алиса получает 10 цифровых единиц и может просто скопировать и вставить их — вдруг у нее будет 100 единиц. Или еще критичнее: она отправляет свои 10 единиц одновременно Бобу и Каролу. Без надежных механизмов безопасности такая денежная система была бы обречена на провал, так как получатели никогда не смогли бы проверить, не были ли полученные средства уже потрачены где-то еще.
Это явление известно как «двойные траты» – мошенническая практика, которая подрывает доверие к цифровым платежным системам. Следовательно, центральный вопрос заключается в следующем: как можно разработать системы, которые эффективно предотвращают такие двойные расходы?
Исторический путь: Централизованные решения и их границы
Прежде чем появились децентрализованные технологии, путь к предотвращению двойного расходования был четко обозначен: доверие к центральной институции. Криптограф Дэвид Чаум разработал в начале 1980-х годов революционную систему под названием eCash, основанную на его белой книге о слепых подписях, опубликованной в 1982 году.
В модели Чаума банк выступает в роли посредника. Предположим, Дэн хочет обменять 100 долларов на цифровые деньги. Банк создает пять цифровых «банкнот» по 20 долларов каждая. Чтобы сохранить анонимность, Дэн добавляет слепой фактор к каждой банкноте, прежде чем передать их в банк. Банк подтверждает своей подписью, что каждая банкнота может быть обменяна на 20 долларов.
Когда Дэн позже заплатил за еду в ресторане Эрин 40 долларов, он раскрыл два из цифровых банкнот. Эрин может сразу же обменять их в банке – еще до того, как Дэн, возможно, потратит их где-то еще. Банк подтверждает подписи и зачисляет 40 долларов на счет Эрин. Использованные банкноты тем самым безвозвратно “сожжены”.
Однако слабое место этой системы очевидно: банк остается центральной уязвимостью. Стоимость купюры полностью зависит от того, готова ли банк обменять ее. Клиенты зависимы от банка и должны полагаться на его добрую волю – именно эту проблему должны были решить децентрализованные криптовалюты.
Революционный ответ: Блокчейн и децентрализованные сети
Биткойн стал парадигмальным сдвигом. Главной инновацией биткойн-белой книги Сатоши Накамото не было явно заявлено решение проблемы двойных расходов, но она представила именно это: блокчейн.
Блокчейн по своей сути является распределенной базой данных с уникальными характеристиками. Узлы сети исполняют специализированное программное обеспечение, которое позволяет им поддерживать синхронность своей копии базы данных. Таким образом, сеть может проверять полный историю транзакций вплоть до генезис-блока. Поскольку эта база данных является общедоступной, мошеннические действия, такие как попытки двойного расходования, становятся сразу видимыми и могут быть предотвращены.
Процесс работает следующим образом: когда пользователь отправляет транзакцию, она не добавляется немедленно в блокчейн. Сначала она должна быть включена майнерами в блок. Поэтому получатель должен считать транзакцию действительной только после того, как ее блок будет присоединен. С каждой добавленной подтвержденной блокировкой вычислительные затраты на изменение или переписывание исходного блока экспоненциально возрастают – концепция, тесно связанная с защитой от атак на 51%.
Практический сценарий в мире Биткойн
Вернемся к нашему примеру: Дэн посещает ресторан Эрины и замечает наклейку на окне: «Мы принимаем Bitcoin». Он снова делает заказ, и счет составляет 0,005 BTC. Эрина дает ему публичный адрес, на который он отправляет сумму.
В транзакции, по сути, содержится цифровая подписанная запись, которая гласит: 0,005 BTC, которые находились в распоряжении Дэна, теперь принадлежат Эрин. Каждый может проверить по подписе Дэна, что он действительно владел этими монетами и, следовательно, имел право их перевести.
Однако транзакция становится действительной только после подтверждения блока, содержащего ее. Неподтвержденная транзакция похожа на 40 долларов в eCash, прежде чем они будут обменены в банке: Дэн может потратить те же средства в другом месте второй раз. Поэтому рекомендуется, чтобы Эрин подождала как минимум 6 подтверждений блока (примерно час), прежде чем принимать платеж Дэна.
Три лица двойного расходования: векторы атак на Bitcoin
Хотя Биткойн был разработан с большими усилиями для предотвращения атак двойных расходов, все же существуют специализированные методы атак, особенно против пользователей, которые принимают неподтвержденные транзакции:
51%-атаки: Один участник или организация контролируют более 50% хэшрейта сети и могут исключать транзакции или изменять их порядок. В случае с Биткойном это практически невозможно, но уже происходило в других сетях.
Атаки конкуренции (Race-Attacks): Две конкурирующие транзакции отправляются подряд с одинаковыми средствами – только одна может быть подтверждена. Мошенник пытается убедиться, что подтверждается только транзакция, которая идет ему на пользу, в то время как платеж третьей стороне отменяется.
Атаки Финни: Майнер принимает платеж в локально сгенерированном блоке, но еще не отправляет его в сеть. Параллельно он использует те же монеты в другой транзакции и только потом распространяет свой подготовленный блок, в результате чего первая транзакция становится недействительной.
Все три метода предполагают, что получатель принимает неподтвержденные транзакции. Торговец, который ждет подтверждений блока, значительно снижает этот риск.
Почему низкие значения транзакций являются слабым местом
Для продаж меньшей стоимости торговцы часто не хотят ждать, пока транзакции будут включены в блок. Оживленный фастфуд-ресторан не может позволить себе ждать подтверждения сети на каждую продажу. Однако если он принимает «Мгновенные платежи», он становится уязвимым для злоумышленников: клиент может заказать бургер, заплатить 0,0001 BTC и немедленно отправить те же средства с более высокой комиссией на свой собственный адрес. С более высокой комиссией вторая транзакция будет подтверждена первой, а первая станет недействительной - мошенник получит свой бургер бесплатно.
Вывод: Технологическое решение для старой проблемы
Двойное расходование описывает манипуляцию цифровыми валютными системами через многократное использование одних и тех же денежных средств. В то время как традиционные централизованные решения, такие как слепые подписи, долгое время были единственным вариантом, Биткойн с помощью Proof of Work и технологии блокчейн революционизировал эту сферу. Эта децентрализованная архитектура заложила основу для безопасных цифровых платежей без центрального доверительного органа — и вдохновила тысячи криптовалютных проектов по всему миру.
Урок ясен: кто принимает неподтвержденные транзакции, тот также принимает риск двойного расходования. Подтверждения блоков не являются необязательными – они являются основой безопасности в децентрализованных сетях.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Проблема двойного расходования: почему безопасные цифровые денежные транзакции представляют собой трудность
Основная проблема цифровых валют
В мире цифровых денег существует фундаментальный риск, угрожающий целостности всей системы: возможность двойного расходования одной и той же денежной единицы. Представьте себе, что Алиса получает 10 цифровых единиц и может просто скопировать и вставить их — вдруг у нее будет 100 единиц. Или еще критичнее: она отправляет свои 10 единиц одновременно Бобу и Каролу. Без надежных механизмов безопасности такая денежная система была бы обречена на провал, так как получатели никогда не смогли бы проверить, не были ли полученные средства уже потрачены где-то еще.
Это явление известно как «двойные траты» – мошенническая практика, которая подрывает доверие к цифровым платежным системам. Следовательно, центральный вопрос заключается в следующем: как можно разработать системы, которые эффективно предотвращают такие двойные расходы?
Исторический путь: Централизованные решения и их границы
Прежде чем появились децентрализованные технологии, путь к предотвращению двойного расходования был четко обозначен: доверие к центральной институции. Криптограф Дэвид Чаум разработал в начале 1980-х годов революционную систему под названием eCash, основанную на его белой книге о слепых подписях, опубликованной в 1982 году.
В модели Чаума банк выступает в роли посредника. Предположим, Дэн хочет обменять 100 долларов на цифровые деньги. Банк создает пять цифровых «банкнот» по 20 долларов каждая. Чтобы сохранить анонимность, Дэн добавляет слепой фактор к каждой банкноте, прежде чем передать их в банк. Банк подтверждает своей подписью, что каждая банкнота может быть обменяна на 20 долларов.
Когда Дэн позже заплатил за еду в ресторане Эрин 40 долларов, он раскрыл два из цифровых банкнот. Эрин может сразу же обменять их в банке – еще до того, как Дэн, возможно, потратит их где-то еще. Банк подтверждает подписи и зачисляет 40 долларов на счет Эрин. Использованные банкноты тем самым безвозвратно “сожжены”.
Однако слабое место этой системы очевидно: банк остается центральной уязвимостью. Стоимость купюры полностью зависит от того, готова ли банк обменять ее. Клиенты зависимы от банка и должны полагаться на его добрую волю – именно эту проблему должны были решить децентрализованные криптовалюты.
Революционный ответ: Блокчейн и децентрализованные сети
Биткойн стал парадигмальным сдвигом. Главной инновацией биткойн-белой книги Сатоши Накамото не было явно заявлено решение проблемы двойных расходов, но она представила именно это: блокчейн.
Блокчейн по своей сути является распределенной базой данных с уникальными характеристиками. Узлы сети исполняют специализированное программное обеспечение, которое позволяет им поддерживать синхронность своей копии базы данных. Таким образом, сеть может проверять полный историю транзакций вплоть до генезис-блока. Поскольку эта база данных является общедоступной, мошеннические действия, такие как попытки двойного расходования, становятся сразу видимыми и могут быть предотвращены.
Процесс работает следующим образом: когда пользователь отправляет транзакцию, она не добавляется немедленно в блокчейн. Сначала она должна быть включена майнерами в блок. Поэтому получатель должен считать транзакцию действительной только после того, как ее блок будет присоединен. С каждой добавленной подтвержденной блокировкой вычислительные затраты на изменение или переписывание исходного блока экспоненциально возрастают – концепция, тесно связанная с защитой от атак на 51%.
Практический сценарий в мире Биткойн
Вернемся к нашему примеру: Дэн посещает ресторан Эрины и замечает наклейку на окне: «Мы принимаем Bitcoin». Он снова делает заказ, и счет составляет 0,005 BTC. Эрина дает ему публичный адрес, на который он отправляет сумму.
В транзакции, по сути, содержится цифровая подписанная запись, которая гласит: 0,005 BTC, которые находились в распоряжении Дэна, теперь принадлежат Эрин. Каждый может проверить по подписе Дэна, что он действительно владел этими монетами и, следовательно, имел право их перевести.
Однако транзакция становится действительной только после подтверждения блока, содержащего ее. Неподтвержденная транзакция похожа на 40 долларов в eCash, прежде чем они будут обменены в банке: Дэн может потратить те же средства в другом месте второй раз. Поэтому рекомендуется, чтобы Эрин подождала как минимум 6 подтверждений блока (примерно час), прежде чем принимать платеж Дэна.
Три лица двойного расходования: векторы атак на Bitcoin
Хотя Биткойн был разработан с большими усилиями для предотвращения атак двойных расходов, все же существуют специализированные методы атак, особенно против пользователей, которые принимают неподтвержденные транзакции:
51%-атаки: Один участник или организация контролируют более 50% хэшрейта сети и могут исключать транзакции или изменять их порядок. В случае с Биткойном это практически невозможно, но уже происходило в других сетях.
Атаки конкуренции (Race-Attacks): Две конкурирующие транзакции отправляются подряд с одинаковыми средствами – только одна может быть подтверждена. Мошенник пытается убедиться, что подтверждается только транзакция, которая идет ему на пользу, в то время как платеж третьей стороне отменяется.
Атаки Финни: Майнер принимает платеж в локально сгенерированном блоке, но еще не отправляет его в сеть. Параллельно он использует те же монеты в другой транзакции и только потом распространяет свой подготовленный блок, в результате чего первая транзакция становится недействительной.
Все три метода предполагают, что получатель принимает неподтвержденные транзакции. Торговец, который ждет подтверждений блока, значительно снижает этот риск.
Почему низкие значения транзакций являются слабым местом
Для продаж меньшей стоимости торговцы часто не хотят ждать, пока транзакции будут включены в блок. Оживленный фастфуд-ресторан не может позволить себе ждать подтверждения сети на каждую продажу. Однако если он принимает «Мгновенные платежи», он становится уязвимым для злоумышленников: клиент может заказать бургер, заплатить 0,0001 BTC и немедленно отправить те же средства с более высокой комиссией на свой собственный адрес. С более высокой комиссией вторая транзакция будет подтверждена первой, а первая станет недействительной - мошенник получит свой бургер бесплатно.
Вывод: Технологическое решение для старой проблемы
Двойное расходование описывает манипуляцию цифровыми валютными системами через многократное использование одних и тех же денежных средств. В то время как традиционные централизованные решения, такие как слепые подписи, долгое время были единственным вариантом, Биткойн с помощью Proof of Work и технологии блокчейн революционизировал эту сферу. Эта децентрализованная архитектура заложила основу для безопасных цифровых платежей без центрального доверительного органа — и вдохновила тысячи криптовалютных проектов по всему миру.
Урок ясен: кто принимает неподтвержденные транзакции, тот также принимает риск двойного расходования. Подтверждения блоков не являются необязательными – они являются основой безопасности в децентрализованных сетях.