Нещодавно (кінець жовтня 2023 року) біткойн-спільнота виявила, що Lightning Network може мати серйозні недоліки, дозволяючи користувачам створювати метод атаки для крадіжки грошей, який називається «Циклічна атака заміни блискавки».
Я прочитав його принцип, і китайську назву можна перекласти як «Lightning Network Cyclic Replacement Transaction Attack».
Принцип його атаки полягає в наступному.
Спочатку поясніть, як працює Lightning Network:
Аліса і Боб відкривають платіжний канал, тобто спільно відкривають 2-2 адреси підпису, кожен з них тримає приватний ключ.
Аліса і Боб поповнюють 0,5BTC і 0,6BTC на цю 2-2 адреси підпису відповідно (сума може бути обрана довільно, я просто приклад), обидва з яких відбуваються в основному ланцюжку біткойнів, і майнери повинні підтвердити. Таким чином, початковий стан цього платіжного каналу полягає в тому, що 0,5BTC належить ALICE, 0,6BTC належить BOB, ми записуємо (ALICE: 0,5BTC; bob:0.6btc)。
Таким чином, у цій 2-2 адресі підпису Аліса та Боб можуть платити один одному, наприклад, Аліса може заплатити BOB 0,1BTC, так що стан каналу стану стає 0,4BTC належить Алісі, 0,7BTC належить BOB, (ALICE: 0,4BTC; bob:0.7btc)。 І такі транзакції не обов'язково повинні бути упаковані в основний ланцюжок біткоіни, а тільки відбуваються між Алісою і Бобом, що називається платіжним каналом.
Довільні перекази між Алісою та Бобом не потрібно розраховувати в основний ланцюг, що заощаджує багато комісій майнерів і може бути отримано в режимі реального часу, усуваючи необхідність 10 хвилин підтвердження блоку.
Але якщо ви можете передавати транзакції тільки між двома людьми, це марно.
Між Бобом і Керол також відкривається платіжний канал, і початковий стан полягає в тому, що Боб має 1.0BTC, carol0BTC, який записується як (BOB: 1.0BTC; Carol:0BTC)。
У цей час ви бачите, що між Алісою та Бобом існує канал оплати, а також є платіжний канал між Бобом та Керол.
Потім Аліса може заплатити біткойни Керол через Боба.
Процес оплати виглядає наступним чином: Аліса платить Керол 0,1BTC, і наступні зміни статусу відбуваються в двох вищезазначених платіжних каналах
Зміна статусу між Алісою та Бобом (Аліса: 0.3BTC; BOB: 0.8BTC)
Зміна стану між BOB і CAROL становить (BOB: 0,9BTC; CAROL: 0,1BTC)
Це завершує транзакцію переказу 0,1BTC від Аліси до Керол.
Коли все більше і більше сторін відкривають платіжний канал і реалізують взаємозв'язок, утворюється платіжна мережа, яку ми називаємо Lightning Network.
Звичайно, детальне технічне пояснення занадто складне, і наведене вище є найбільш лаконічним поясненням.
Нижче описаний загальний процес атаки циклічної заміни транзакцій Lightning Network, і я не розумію детальних технічних деталей, і ці коди операцій, контракти та функції трохи складні.
Нападниками є Аліса і Керол, які змовляються напасти на Боба, а Боб є жертвою.
Аліса платить Керол 0,3 BTC.
Канали початкового стану виглядають наступним чином (ALICE: 0.3BTC; BOB: 0.8BTC) і (BOB: 0.9BTC; CAROL: 0.1BTC)
Канал стану між Алісою та Бобом має бути змінений на (Alice:0; bob:1.1btc)
Канал стану між BOB і CAROL повинен бути змінений на (BOB: 0,6BTC; CAROL: 0,4BTC)
Аліса та Керол вирішили об'єднатися, щоб обдурити 0,3BTC Боба
Керол не стверджувала, що підтвердила, що отримала 0,3BTC від Аліси, тобто Керол не надсилає інформацію про квитанцію Lightning Network до BOB. В результаті Боб не зміг законно претендувати на 0,3 BTC Аліси в мережі Lightning Network.
У певний час Аліса пожартувала і безпосередньо ініціює клірингову транзакцію TX1 в основному ланцюжку біткоіни, стверджуючи, що у нього все ще є 0,3BTC, в той час як у Боба тільки 0,8BTC в його державному каналі.
В угоді tx1 0,3BTC було відправлено на власну адресу Аліси (єдиний підпис), тому Аліса намагалася вкрасти 0,3BTC, які їй не належали.
Оскільки Боб не отримав квитанцію Керол, Боб не може довести (Аліса; bob) у цьому стані канал повинен бути змінений на (alice:0btc; bob:1.1btc)
Як тільки TX1 буде упаковано в ланцюжок, тобто Аліса вкраде 0,3BTC, Керол негайно забере 0,3 BTC у мережі Lightning Network і надішле квитанцію BOB.
Таким чином, Аліса насправді не відправила 0,3BTC на BOB, але Керол насправді отримала 0,3BTC від BOB. Таким чином, Боб був вкрадений 0,3BTC Алісою та Керол у партнерстві.
Зверніть увагу, що коли Аліса ініціює транзакцію крадіжки монети TX1 в основному ланцюжку, у Боба є контрзаходи, тобто ініціювання транзакції в основний ланцюг TX2 доводить, що Аліса обманює, але оскільки Боб не отримав квитанцію Керол про квитанцію, транзакція TX2 все ще досить клопітка, але теоретично це можна зробити.
Після того, як Аліса побачить TX2, вона знову використає метод вищої комісії майнера, щоб скинути TX1, щоб спонукати майнерів упакувати TX1 і відхилити TX2, що називається «заміною».
В даний час розробники кажуть, що змова між Алісою і Керол дійсно може ускладнити легітимізацію BOB's TX2 на майнерах основного ланцюга Bitcoin, і щоб більш чітко довести, що TX2 є законним, протокол потрібно модифікувати, і це софтфорк для основного ланцюга, що складно.
Вище наведено загальний процес атаки транзакції циклічної заміни Lightning Network, конкретний технічний принцип занадто складний, я не розумію, я просто припускаю, що технічні подробиці, розміщені розробником, які я бачу в інтернеті, правильні.
Метод атаки полягає в тому, щоб затиснути один із двох, і біржа є природною, і всі користувачі відкрили платіжний канал, тому біржа постраждає.
Зрештою, я відчуваю, що в цьому немає нічого страшного, багів у програмному забезпеченні немає, знайдеться спосіб це виправити.
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
Швидке розуміння атак циклу транзакцій заміни Lightning Network
Нещодавно (кінець жовтня 2023 року) біткойн-спільнота виявила, що Lightning Network може мати серйозні недоліки, дозволяючи користувачам створювати метод атаки для крадіжки грошей, який називається «Циклічна атака заміни блискавки».
Я прочитав його принцип, і китайську назву можна перекласти як «Lightning Network Cyclic Replacement Transaction Attack».
Принцип його атаки полягає в наступному.
Спочатку поясніть, як працює Lightning Network:
Аліса і Боб поповнюють 0,5BTC і 0,6BTC на цю 2-2 адреси підпису відповідно (сума може бути обрана довільно, я просто приклад), обидва з яких відбуваються в основному ланцюжку біткойнів, і майнери повинні підтвердити. Таким чином, початковий стан цього платіжного каналу полягає в тому, що 0,5BTC належить ALICE, 0,6BTC належить BOB, ми записуємо (ALICE: 0,5BTC; bob:0.6btc)。
Таким чином, у цій 2-2 адресі підпису Аліса та Боб можуть платити один одному, наприклад, Аліса може заплатити BOB 0,1BTC, так що стан каналу стану стає 0,4BTC належить Алісі, 0,7BTC належить BOB, (ALICE: 0,4BTC; bob:0.7btc)。 І такі транзакції не обов'язково повинні бути упаковані в основний ланцюжок біткоіни, а тільки відбуваються між Алісою і Бобом, що називається платіжним каналом.
Довільні перекази між Алісою та Бобом не потрібно розраховувати в основний ланцюг, що заощаджує багато комісій майнерів і може бути отримано в режимі реального часу, усуваючи необхідність 10 хвилин підтвердження блоку.
Але якщо ви можете передавати транзакції тільки між двома людьми, це марно.
Між Бобом і Керол також відкривається платіжний канал, і початковий стан полягає в тому, що Боб має 1.0BTC, carol0BTC, який записується як (BOB: 1.0BTC; Carol:0BTC)。
У цей час ви бачите, що між Алісою та Бобом існує канал оплати, а також є платіжний канал між Бобом та Керол.
Потім Аліса може заплатити біткойни Керол через Боба.
Процес оплати виглядає наступним чином: Аліса платить Керол 0,1BTC, і наступні зміни статусу відбуваються в двох вищезазначених платіжних каналах
Зміна статусу між Алісою та Бобом (Аліса: 0.3BTC; BOB: 0.8BTC)
Зміна стану між BOB і CAROL становить (BOB: 0,9BTC; CAROL: 0,1BTC)
Це завершує транзакцію переказу 0,1BTC від Аліси до Керол.
Звичайно, детальне технічне пояснення занадто складне, і наведене вище є найбільш лаконічним поясненням.
Нижче описаний загальний процес атаки циклічної заміни транзакцій Lightning Network, і я не розумію детальних технічних деталей, і ці коди операцій, контракти та функції трохи складні.
Аліса платить Керол 0,3 BTC.
Канали початкового стану виглядають наступним чином (ALICE: 0.3BTC; BOB: 0.8BTC) і (BOB: 0.9BTC; CAROL: 0.1BTC)
Канал стану між Алісою та Бобом має бути змінений на (Alice:0; bob:1.1btc)
Канал стану між BOB і CAROL повинен бути змінений на (BOB: 0,6BTC; CAROL: 0,4BTC)
Аліса та Керол вирішили об'єднатися, щоб обдурити 0,3BTC Боба
Керол не стверджувала, що підтвердила, що отримала 0,3BTC від Аліси, тобто Керол не надсилає інформацію про квитанцію Lightning Network до BOB. В результаті Боб не зміг законно претендувати на 0,3 BTC Аліси в мережі Lightning Network.
У певний час Аліса пожартувала і безпосередньо ініціює клірингову транзакцію TX1 в основному ланцюжку біткоіни, стверджуючи, що у нього все ще є 0,3BTC, в той час як у Боба тільки 0,8BTC в його державному каналі.
В угоді tx1 0,3BTC було відправлено на власну адресу Аліси (єдиний підпис), тому Аліса намагалася вкрасти 0,3BTC, які їй не належали.
Оскільки Боб не отримав квитанцію Керол, Боб не може довести (Аліса; bob) у цьому стані канал повинен бути змінений на (alice:0btc; bob:1.1btc)
Як тільки TX1 буде упаковано в ланцюжок, тобто Аліса вкраде 0,3BTC, Керол негайно забере 0,3 BTC у мережі Lightning Network і надішле квитанцію BOB.
Таким чином, Аліса насправді не відправила 0,3BTC на BOB, але Керол насправді отримала 0,3BTC від BOB. Таким чином, Боб був вкрадений 0,3BTC Алісою та Керол у партнерстві.
Зверніть увагу, що коли Аліса ініціює транзакцію крадіжки монети TX1 в основному ланцюжку, у Боба є контрзаходи, тобто ініціювання транзакції в основний ланцюг TX2 доводить, що Аліса обманює, але оскільки Боб не отримав квитанцію Керол про квитанцію, транзакція TX2 все ще досить клопітка, але теоретично це можна зробити.
Після того, як Аліса побачить TX2, вона знову використає метод вищої комісії майнера, щоб скинути TX1, щоб спонукати майнерів упакувати TX1 і відхилити TX2, що називається «заміною».
Вище наведено загальний процес атаки транзакції циклічної заміни Lightning Network, конкретний технічний принцип занадто складний, я не розумію, я просто припускаю, що технічні подробиці, розміщені розробником, які я бачу в інтернеті, правильні.
Метод атаки полягає в тому, щоб затиснути один із двох, і біржа є природною, і всі користувачі відкрили платіжний канал, тому біржа постраждає.
Зрештою, я відчуваю, що в цьому немає нічого страшного, багів у програмному забезпеченні немає, знайдеться спосіб це виправити.