Насколько угроза атаки циклической замены угрожает работе Lightning Network?
Happycoin.club — Lightning Network в сети биткоина — это решение масштабирования второго уровня, направленное на решение проблем масштабируемости блокчейна биткоина. Он обеспечивает мгновенные и недорогие транзакции с биткоинами, делая их более эффективными и доступными для пользователей. По сравнению с переводами в сети биткоина, транзакции в сети Lightning являются частными, происходят вне сети, а в блокчейн BTC записывается только общий результат.
Одним из главных преимуществ Lightning Network является её скорость и доступность. Решение позволяет пользователям отправлять и получать небольшие платежи через сеть биткоина простым и экономичным способом. Создавая сеть платёжных каналов между пользователями, сеть Lightning позволяет осуществлять транзакции без трансляции каждой из них в блокчейн. Это снижает перегрузку блокчейна биткоина и повышает его масштабируемость.
Однако следует отметить, что сеть Lightning ещё находится в разработке и сталкивается с определёнными рисками в безопасности и рисками централизации. В октябре этого года в сети Lightning была обнаружена уязвимость под названием «атака циклической замены», которая задействует механизм замены транзакций и может привести к потере средств в канале сети Lightning. Появление этого метода атаки вызвало обеспокоенность по поводу безопасности сети Lightning Network и побудило к дальнейшим исследованиям и усовершенствованиям её протоколов.
Механизм Lightning Network Сеть биткоина Lightning Network использует механизм Multisig (мультиподпись) для обеспечения безопасности платёжных каналов. Участникам необходимо заблокировать средства и установить каналы оплаты. В результате они могут совершать быстрые и недорогие платежи внутри канала без необходимости каждый раз отправлять транзакции в блокчейн биткоина. Платёжный канал — это всего лишь отношения между участниками за пределами блокчейна биткоина, которые достигаются путём подписания серии транзакций внутри канала.
С точки зрения конкретного процесса, при открытии платёжного канала участникам необходимо создать сценарий мультиподписи, который требует, чтобы каждая сторона канала предоставила свой публичный ключ, указав при этом необходимое количество подписей. Таким образом определяется сценарий, который содержит несколько открытых ключей и логику проверки подписи. При генерации адреса с мультиподписью этот скрипт будет преобразован в биткоин-адрес, образуя инфраструктуру платёжного канала.
Как показано на рисунке 1, Боб и Алиса сначала создают биткоин-адрес с мультиподписью 2 из 2 в качестве совместного фонда. Внутри канала они могут проводить неограниченное количество оффчейн-транзакций. Обе стороны могут согласовывать и подписывать новые транзакции-обязательства для обновления состояния канала, не передавая эти обновления всей сети биткоина.
Когда они решат закрыть канал, окончательная расчётная транзакция в сети распределит средства в соответствии с последним согласованным решением. Эта расчётная транзакция требует совместных подписей Боба и Алисы, что гарантирует распределение средств согласованным образом. Таким образом, сеть Lightning повышает эффективность транзакций биткоина, снижает затраты, сохраняя при этом свои децентрализованные характеристики.
Рисунок 1: Схема канала состояний
Механизм HTLC Сеть биткоина Lightning также использует платёжные каналы на основе хешированных контрактов временной блокировки (HTLC) для реализации маршрутизируемой системы платёжных каналов с несколькими переходами. При реализации HTLC требуется сложный сценарий транзакции, определённый на языке сценариев, чтобы соответствовать условию хеширования и условию блокировки по времени. Этот скрипт будет использоваться для инициализации при открытии платёжного канала и запускаться во время оплаты. Таким образом, сеть Lightning Network в сети биткоина обеспечивает эффективность и безопасность межсетевых платежей.
HTLC (Hashed Timelock Contract) — это хешированный контракт Timelock, который является одним из важных компонентов для реализации межсетевых транзакций в блокчейне. HTLC имеет два общих применения: межсетевые атомарные свопы и каналы платежей в сети Lightning. HTLC может блокировать передачу и устанавливать условия разблокировки, например, предоставление определённой информации в течение определённого времени. Это гарантирует, что средства могут быть выведены получателем только при выполнении условий.
Технически HTLC — это дополнительный выход в транзакции обязательства с уникальным выходным сценарием. Это сценарий скрипта, содержащий такие операции, как OP_HASH160, OP_EQUALVERIFY и т. д., используемые для блокировки средств, так что только предоставление значения прообраза R может их разблокировать. Этот сценарий имеет два возможных пути. Первый путь (определённый в OP IF) отправляет средства Бобу, если Боб может предоставить R. Второй путь заключается в принудительном использовании временной блокировки с использованием nLockTime в платёжной транзакции, что позволяет вернуть средства Алисе после истечения срока блокировки. OP_IF OP_HASH160 OP_EQUALVERIFY 2 OP_CHECKMULTISIG OP_ELSE 2 OP_CHECKMULTISIG OP_ENDIF Пример маршрутизации В сети Lightning Алиса хочет заплатить Эрику 1 биткоин, но между Алисой и Эриком нет прямого канала оплаты. Таким образом, Алиса направляет платёж через промежуточные ноды в сети платёжных каналов (Боб, Кэрол, Диана), чтобы создать безопасный путь платежа, позволяющий ей не напрямую заплатить 1 биткоин Эрику. В маршрутизации платежей используются HTLC, только путём предоставления правильного «секрета» в течение определённого периода времени средства могут быть разблокированы, что обеспечивает безопасность платежей.
В этом примере на шаге 1 Эрик генерирует секрет R (решение) и вычисляет хеш-значение H (головоломка), а затем передаёт хеш-значение H Алисе.
Шаги 2–5: Алиса, Боб, Кэрол, Диана и Эрик создают HTLC попарно, требуя предоставления R (решения) в течение определённого периода времени для получения заблокированных средств от вышестоящей стороны.
Шаги 6–9: Эрик предоставляет Диане R (решение) для получения 1 BTC. Затем Диана получает BTC от Кэрол с помощью R, и R передаётся обратно таким образом до тех пор, пока не будут получены 1,003 BTC Алисы (0,003 BTC из которых плата за обслуживание промежуточных узлов).
В этом примере, если на шаге 6 Эрик не предоставил R (решение) в течение фиксированного времени, по истечении этого времени средства, заблокированные на шагах 2–5, будут напрямую разблокированы и возвращены.
Рисунок 2: Пример маршрутизации Атака циклической замены Механизм замены транзакций биткоина предполагает, что когда транзакция помечается как заменяемая, тогда она может быть заменена другой в сети с более высокой комиссией, прежде чем она будет записана в блок. Если за транзакцию выплачивается более высокая комиссия и более высокая ставка комиссии, она может заменить ожидающие неподтверждённые транзакции, которые напрямую с ней конфликтуют.
После получения заменяющей транзакции ноды удалят исходную транзакцию с более низкой ставкой комиссии из мемпула и сохранят только замещающую транзакцию. Механизм замены транзакции позволяет корректировать комиссию за транзакцию или другие параметры до её подтверждения. Но этот механизм также можно использовать для реализации атак типа «отказ в обслуживании» транзакций, таких как повторная замена критической транзакции, приводящая к сбою её подтверждения. Таким образом, механизм замены транзакций обеспечивает удобство корректировки транзакций, но также создаёт риски злоупотреблений.
Согласно письму разработчика Bitcoin Core Антуана Риара, атака циклической замены в основном затрагивает платёжные каналы в сети Bitcoin Lightning. Злоумышленник транслирует транзакцию HTLC-прообраза с более высокой абсолютной комиссией и ставкой комиссии, чтобы заменить транзакцию тайм-аута HTLC честной ноды.
Во время замены злоумышленник может добавить дополнительные входы или выходы, чтобы обеспечить успешное принятие транзакции замены сетью. Этот метод атаки может привести к двойной трате средств в платёжных каналах, то есть после того, как честная нода транслирует транзакцию HTLC-timeout, злоумышленник успешно получает средства путём замены. Для иллюстрации мы можем привести простой пример, аналогичный предыдущему, предполагая, что путь упрощен до только Алисы, Боба и Эрика, а Алиса и Эрик вступают в сговор, чтобы украсть BTC Боба.
Шаг 1: Алиса намеревается заплатить Эрику 1 BTC через Боба. АлисаБоб и БобЭрик каждый создают HTLC. Эрику необходимо предоставить Бобу R (решение) перед блоком 1020 (предположим, текущая высота равна 1000), в противном случае Боб сможет получить заблокированный 1 BTC. Бобу необходимо ответить Алисе до блока 1080, иначе Алиса сможет получить свой 1 BTC.
Шаг 2: Эрик не предоставил Бобу R (решение) до блока 1020. Боб передаст транзакцию, содержащую тайм-аут HTLC. Средства в этой транзакции будут возвращены Бобу.
Шаг 3: Эрик отслеживает транзакцию HTLC-тайм-аута Боба и заменяет её транзакцией HTLC-прообраза с более высокой комиссией. Затем Эрик инициирует ещё одну транзакцию, чтобы удалить предыдущий прообраз HTLC из мемпула.
Шаг 4: Узел Боба будет ретранслировать транзакцию тайм-аута HTLC до блока 1080. Эрик может инициировать замену каждый раз. До блока 1080 транзакция Алисы, другой стороны канала, подтверждается, и Алиса получает заблокированные BTC.
Шаг 5: Эрик получает подтверждение своего HTLC-прообраза, поэтому 1 BTC, заблокированный Бобом, передаётся Эрику. Таким образом, 1 BTC Боба был передан Эрику, при этом он также не получил причитающиеся BTC от Алисы.
Краткое содержание По состоянию на ноябрь 2023 года сеть Lightning Network насчитывала более 16 000 нод Lightning и 5 000 BTC. И хотя случаи атак циклической замены не были подтверждены, риск их проведения подчёркивает необходимость постоянных исследований и улучшений безопасности в сети Lightning. Антуан Риар также предложил несколько мер, позволяющих избежать или смягчить атаки с циклической заменой, такие как мониторинг локального мемпула и ретранслируемых транзакций, создание оверлейных сетей между майнерами и нодами Lightning, а также активное воспроизведение транзакций тайм-аута HTLC для увеличения затрат злоумышленников. В то же время он объявил о прекращении участия в Lightning Network и работах по её внедрению, включая координацию решений по уязвимостям безопасности на уровне протокола.
По мере масштабирования Lightning Network потенциальная угроза атак с циклической заменой может стать препятствием на пути её развития, вынуждая сообщество уделять больше внимания исследованиям и улучшениям в области безопасности. Однако именно благодаря серьёзному подходу и улучшению безопасности мы можем стать свидетелями того, как Lightning Network постепенно устраняет потенциальные риски в будущем, создавая более здоровую и надёжную экосистему.
О CoinEx CoinEx, основанная в 2017 году, представляет собой глобальную криптовалютную биржу, призванную упростить торговлю. Платформа предоставляет ряд услуг, включая спотовую и маржинальную торговлю, фьючерсы, свопы, автоматизированный маркет-мейкинг (AMM) и услуги финансового управления для более чем 5 миллионов пользователей в более чем 200 странах и регионах. С момента своего создания CoinEx твёрдо придерживается принципа обслуживания «пользователь на первом месте». С искренним намерением создать справедливую, уважительную и безопасную среду криптовалютной торговли, CoinEx позволяет пользователям легко получить доступ к миру криптовалюты, предлагая простые в использовании продукты и услуги.
Рекомендации https://cypherpunks-core.github.io/bitcoinbook/
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-October/022032.html
https://lightning.network/lightning-network-paper.pdf
https://github.com/ariard/mempool-research/blob/2023-10-replacement-paper/replacement-cycling.pdf
Читайте оригинальную статью на сайте Happycoin.club
Насколько угроза атаки циклической замены угрожает работе Lightning Network?