(Ця стаття містить деякі матеріали, спочатку опубліковані в 2019 році в Блог IOV Labs RSK)
Безпека біткойна залежить від економічних стимулів для майнерів розширювати «найважчий ланцюжок», який є ланцюгом із найбільшою накопиченою складністю (зазвичай найдовшим). Наразі ці стимули забезпечуються блоковою винагородою, яка складається з блокової субсидії та комісії за транзакції. Але субсидія (зараз 6.25 BTC) значно вища, ніж середня комісія за транзакцію за блок (зараз 0.25 BTC). Субсидії на біткойни зменшуються вдвічі кожні 4 роки, і без обернено пропорційного підвищення курсу BTC основний стимул для майнінгу переміститься з субсидій на блокування на комісію за блокування транзакцій. Щоб зберегти поточний бюджет безпеки, вартість транзакції повинна збільшитися у 25 разів. Поки рано говорити, чи стане це колись проблемою для біткойна. Цілком можливо, що біткойн потребує soft-fork або hard-fork, щоб адаптуватися до нової ери низьких субсидій. У 2014 році я показав, як біткойн може стати нестабільним, коли представив (в основному теоретичний) ПЕРЕДНЯ АТАКА. Карлстен та ін. (2016) проаналізовані цю проблему глибоко, але вони не змогли знайти задовільного рішення. Це проблема не лише біткойна, але й кожної криптовалюти, чия емісія з часом зменшується.
Але зараз нам не потрібно турбуватися про біткойни. Біткойн-спільноті може знадобитися вирішити цю проблему через 10 або 20 років, а може, й ніколи. Час від часу питання є переоглянутий, з аналізами обох виділивши та мінімізація проблема. Але коли ми аналізуємо сайдчейни біткойнів, такі як RSK, проблема цілком реальна.
У 2019 році генеральний директор Blockstream Адам Бак згадував згладжування під час обговорення довгострокового бюджету безпеки біткойнів: «Інші довгострокові ідеї епохи низьких субсидій включають усереднення комісій за блоковими інтервалами для згладжування доходів від комісій».
https://twitter.com/adam3us/status/1097031151921713152
З 2016 року RSK реалізує саме цю ідею — згладжування комісійних доходів. Але перш ніж ми пояснимо, як RSK обробляє транзакції з високими комісіями, ми докладніше розповімо про три основні атаки розвороту блоків, які можуть бути викликані комісіями за транзакції: fee sniping , транзакції китів і атомізація майнінгу.
Якщо субсидія блоку низька, а комісія за транзакції в останньому видобутому блоці значно вища, ніж комісія, яку можна зібрати з транзакцій у мемпулі, короткострокові раціональні майнери стимулюються захоплювати транзакції з останнього видобутого блоку та добувати конкуруючий блок. блокувати, а не розширювати його. Це відхилення від Консенсусу Накамото, і це називається Плата за снайперську роботу. За визначенням, таке відхилення є атакою на протокол, а майнер вважається зловмисником. Щоб отримати готівку за захоплені комісії за транзакції, зловмисному майнеру також потрібно видобути один додатковий блок підтвердження швидше, ніж чесний ланцюг, щоб решта майнерів перейшли на його ланцюг. Тому комісійний снайпер не завжди вигідний, оскільки зловмисний майнер ризикує даремно витратити свій хешрейт, якщо його егоїстичний форк не випереджає чесний ланцюг. Рідкісне снайпінгування комісії може не бути проблемою, але якщо майнери змінять свій консенсусний код, щоб отримати вигоду від потенційних можливостей снайпінгу комісії за всі існуючі форки, тоді мережа може бути піддана більш небезпечним атакам.
Після того, як майнерські вузли виконають автоматичний снайперський аналіз, зловмисник може скористатися цією ситуацією, щоб виконати атаку подвійних витрат. Зловмисний майнер може витратити монети в чесному ланцюжку й отримати в обмін інший зовнішній актив, а потім розгалужити чесний ланцюжок за блок до першого. У шкідливому форку зловмисник вдвічі витрачає монети, але також вводить відмітну функцію (тобто унікальний UTXO), яка не повинна існувати в чесному форку. Одразу після цього зловмисник транслює a «китова» транзакція який використовує цю функцію (тобто споживає цей UTXO) і пропонує незвичайно високу комісію за транзакцію як приманку (або підкуп) майнерам, які використовують код снайперського контролю. Хоча термін «китова транзакція» можна розуміти як транзакцію, яка передає високу вартість, тут ми використовуємо визначення в документі, на який посилається, як транзакцію, за яку сплачуються високі комісії, незалежно від суми переданої вартості. У біткойнах транзакцію Whale і блоки зловмисного форка потрібно було б надсилати безпосередньо на вузли майнерів, оскільки ненайкращі форки не пересилаються повними вузлами в одноранговій мережі. Однак на багатьох платформах смарт-контрактів атака набагато легша, оскільки вони транслюють ненайкращі форки. Крім того, на платформах смарт-контрактів створення китової транзакції простіше: зловмисник може повторно використати nonce, який уже використовується в чесному ланцюжку, таким чином запобігаючи включенню китової транзакції в чесний ланцюжок. Крім того, транзакція whale може виконати контракт, який перевіряє, чи хеш попереднього блоку відповідає хешу блоку, який існує лише в егоїстичному форку (тобто з використанням коду операції BLOCKHASH), і дає хабар лише за егоїстичний форк.
Як тільки майнери виявляють китову транзакцію, вони можуть розглянути питання про розширення шкідливого форка, навіть якщо він відстає, якщо хабар достатньо високий, роблячи ставку на те, що він випередить довший чесний ланцюжок. Без смарт-контрактів найкращою стратегією атаки є одночасна трансляція серії китових транзакцій, підкуповуючи наступних майнерів, щоб вони продовжували розширювати шкідливий форк. У біткойнах транзакції можна зв’язувати CHECKLOCKLOCKVERIFY or CHECKSEQUENCEVERIFY. На платформах смарт-контрактів це можна зробити шляхом повторного використання нонсів або контрактних викликів. Навіть якщо це не автоматизовано, зловмисник може продовжувати генерувати китові транзакції на шкідливому форку, доки він не охопить чесний ланцюжок.
Під час атаки Whale Transaction ми вважали, що майнерам необхідно динамічно переключатися на складну стратегію майнінгу, щоб отримувати хабарі на основі ймовірностей виграшу форка. Ми можемо більш реалістично вважати, що майнери використовують простішу стратегію, яка не передбачає майбутніх хабарів, а лише егоїстичну гонорарну стратегію. Якщо це стратегія більшості майнерів, то можлива нова атака. Атака Miner Atomization — це загальномережева атака на відмову в обслуговуванні, яка намагається спонукати всіх майнерів одночасно працювати на егоїстичних форках, таким чином знижуючи швидкість і конвергенцію чесного ланцюжка. Атака починається з трансляції транзакції з дуже високими комісіями, подібно до атаки відсікання комісій або атаки китової транзакції. Ця транзакція не призначена для того, щоб допомогти подвійним витратам, але це приманка, яка спрямована на атомізацію мережі майнінгу. Покажемо атаку на прикладі. Припустимо, що транзакція T у блоці на висоті N сплачує комісію в 100 монет, але середня винагорода за блок становить лише 10 монет. Ми припускаємо, що всі вузли майнерів запрограмовані на дотримання цієї раціональної стратегії:
- Якщо T входить до будь-якого з останніх K блоків чесного ланцюга, візьміть транзакцію T і спробуйте видобути конкуруючий блок на висоті N, а потім продовжуйте майніти дочірні блоки цього егоїстичного форка, поки він не випередить чесний ланцюжок.
- Якщо чесний ланцюжок випереджає егоїстичну вилку більш ніж на K блоків, здайтеся.
Висока плата за зловмисну транзакцію атомізує майнінг на користь більшого пулу майнінгу, який має найвищі шанси видобути транзакцію T плюс достатню кількість додаткових корисливих блоків підтвердження, щоб майнери, що залишилися, відмовилися. Цікаво, що чим більш децентралізованою є мережа майнінгу, тим гірше збій, спричинений транзакцією T. Наприклад, для блокчейну з 10-хвилинним середнім інтервалом блокування, якби було 100 майнерів, кожен із яких мав би 1% від загального хешрейту, мережа зазнала б уповільнення у 100 разів протягом кількох блоків, поки вона нарешті не зійдеться. Мережа була б непридатною 2 дні!
RSK - це a чистий сайдчейн біткойн, тому йому довелося зіткнутися з проблемою забезпечення блокчейну бюджетом безпеки, який складається лише з комісії за транзакції з моменту його створення. Тому RSK повинен був бути готовий до аномально високих або низьких зборів. RSK був першим сайдчейном, готовим до виробництва, і він використовує видобуток злиттям для консенсусу. На даний момент понад 40% майнерів Bitcoin злиття шахт РСК.
Майнери RSK очікують економічної компенсації за роботу повних вузлів RSK. Більшість блокчейнів випускають нові монети за цю компенсацію. Деякі інші розподілені книги, такі як Ripple, не випускають монети для оплати виробникам блоків, але виробники блоків можуть субсидуватися ззовні. Ripple Labs, яка попередньо майнила XRP, має їх стільки, що вони можуть надати компенсацію в XRP для третіх сторін, які стають виробниками блоків. RSK, з іншого боку, стикається з найскладнішими умовами: він не має емісії монет (як у біткойнах) і не має премайну (як у XRP). RSK являє собою успішний приклад сайдчейну біткойнів, проблиск майбутнього консенсусу в дефляційних блокчейнах і те, як блокчейн без субсидій може бути стійким. Однак відсутність субсидії означає, що сайдчейн має бути ретельно розроблений проти атак, представлених тут. RSK реалізує кілька унікальних функцій для більшої безпеки від реорганізації блокчейну на основі транзакцій з високою комісією:
- Згладжування винагороди блоку (також називається згладжуванням винагороди).
- Блокувати розподіл винагороди
- Майнінг злиття з урахуванням розгалуження
У наступних розділах ми коротко представляємо кожну техніку.
Згладжування комісії — це консенсусне правило, яке розподіляє комісії за транзакції між майнерами більш рівноправним способом. Він виплачує кожному майнеру функцію винагороди за минулий блок. Функція може бути лінійною чи нелінійною, базуватися на невеликій кількості попередніх винагород за блок або на основі стану, який залежить від усіх попередніх блоків. Найпростіша конструкція полягає у використанні якогось фільтра низьких частот на накопичених зборах. RSK використовує функцію згладжування, яка є дуже простою ІМВ з α = 0.1. Якщо майнер RSK розв’язує блок на висоті N, майнер отримає компенсацію в розмірі 10% комісії за транзакцію блоку N і 10% усіх накопичених раніше неоплачених комісій майнеру. Іншими словами, існує «спільний» рахунок майнерів, де на кожному блоці майнер-переможець вносить комісію за транзакції та забирає 10% собі.
Згладжування винагород збільшує стимул розширювати блокчейн порівняно зі стимулом повторно видобувати минулий блок, щоб отримати сплачені комісії, оскільки майнер може отримати лише 10% комісії за китову транзакцію. Ми наведемо попередній приклад. Ми припускаємо, що середня винагорода за блок становить 10 монет, а блок містить хабар у 100 монет на висоті N. У RSK блок на висоті N заплатить винагороду в 19 монет, тоді як наступний блок заплатить 18.1 монети. Егоїстичному майнеру тепер потрібна в 10 разів більша потужність хешування, ніж будь-якому іншому майнеру, щоб атака була прибутковою.
Зараз ми показуємо інші додаткові захисні заходи.
RSK реалізує консенсусний протокол розподілу винагород під назвою DECOR. DECOR розподіляє винагороди за блоки рівномірно між однорідними блоками, якщо на заголовки цих блоків посилається чесний ланцюжок. DECOR зменшує стимули для атаки атомізації, оскільки переможець транзакції з високою комісією повинен поділити винагороду ще з 10 майнерами, які створили блоки-сестри. Це пов’язано з тим, що блок ланцюга блоків може мати до 10 посилань на блок-брат, а протокол DECOR розподіляє винагороду за блок між усіма ними. Щоб уникнути спільного використання, майнер повинен буде видобути ще 10 егоїстичних блоків, запобігаючи посиланням на дядьків, що значно знижує його шанси на успіх. Враховуючи розподіл винагороди разом із згладжуванням комісії, щоб спроба зламати мережу RSK була успішною, хабар має бути принаймні в 110 разів вищим за середню винагороду за блок.
Об’єднаний майнінг з урахуванням форків — це варіант об’єднаного майнінгу, який дозволяє користувачам відстежувати мережу основного ланцюга (наприклад, біткойн) на наявність шкідливих форків у мережі бічного ланцюга (наприклад, RSK). Щоб отримати прибуток від атаки китової транзакції, зловмисник повинен знайти жертву, щоб подвоїти витрати. Ймовірно, цією жертвою стане онлайн-біржа криптовалют. Криптобіржі чекають кількох сотень підтвердження блокування, перш ніж прийняти депозит, цього достатньо часу для Система RSK Armadillo щоб заздалегідь виявити зловмисний форк і попередити біржу. У разі снайперської атаки та атак атомізації майнерів шкідливі форки короткі, тому Armadillo можна використовувати лише як інструмент для діагностики ситуації та визначення пулів, які відхиляються від чесного протоколу, але він не може запобігти атаці.
Іншим додатковим захисним заходом, який RSK наразі не впроваджує, є обмеження транзакційної ціни на газ кратною мінімальній ціні на газ (тобто 10-кратний спред). Я запропонував порівнянний показник для біткойна в 2013. RSK може легко реалізувати це, оскільки кожен блок рекламує мінімальну прийнятну ціну на газ. Однак встановлення максимальної ціни на газ не вирішує повністю проблему, якщо мережа перебуває в стані, коли блоки не споживають весь ліміт газу, доступний у блоці. Висока комісія за транзакцію в T може бути результатом більшої кількості спожитого газу замість вищої ціни на газ (сплачена комісія є добутком цих двох сум).
Згладжування винагороди не є остаточним рішенням, оскільки для цього зловмисники можуть використовувати платформу смарт-контрактів хабар шахтарів робити що завгодно. Я представив теоретичний «Вічний вибір для атаки темної сторони» (або ECDSA :) ) у 2014, як спосіб показати, як шахтарів можна було підкупити, щоб вони відхилилися від чесної поведінки. Маккоррі ель ат. (2018) представив широку гаму теоретичних атак підкупу. Однак рівень розуміння та підготовки, необхідний для отримання хабарів за смарт-контрактами, є значним. Це значно ускладнює здійснення хабарницьких атак на основі смарт-контрактів. Майнер повинен знати про контракт на підкуп і розуміти, як з ним взаємодіяти. Однак цього типу атаки неможливо уникнути: якщо платформа може здійснити платіж поточному майнеру блоків, тоді вона також може виконати смарт-контракт, який оплачує той самий майнер. Це пояснюється тим, що мова програмування, яка описує консенсус протоколу, і мова, яка використовується смарт-контрактами, є «повними за Тьюрингом». Це цікава теоретична проблема.
Можна придумати хитрі трюки, щоб ускладнити виплату хабара, наприклад, примусити адреси майнерів бути спеціальними (тобто лише для одноразового використання), щоб контракт на хабар не міг платити майнеру. Однак повна платформа смарт-контрактів Turing не може запобігти платежу від сторони, яка готова платити іншій стороні, яка бажає отримати платіж. Ми завжди створюємо успішний підкупний смарт-контракт, який уникає захисту. Наприклад, зловмисний майнер може створити підтвердження з нульовим знанням, що підтверджує контроль над конкретною адресою майнера в контракті, не розкриваючи закритий ключ. Майнер надсилає цей доказ до контракту про підкуп разом із альтернативною адресою отримання хабара.
Недостатньо обмежити можливості мови смарт-контрактів блокчейну, чиї майнери будуть підкуплені, оскільки будь-яка інша повна платформа смарт-контрактів Тьюринга може використовуватися для виплати хабарів майнерам. Платформі потрібно лише запустити реле заголовка блоку (тобто btcrelay). Наприклад, RSK і Ethereum можуть використовуватися для виплати хабарів майнерам Bitcoin. Однак координувати атаку на блокчейн з мостом складніше.
Одним із потенційних засобів захисту від хабарницьких атак є використання варіанту консенсусного протоколу PoS, який вимагає, щоб більшість виробників блоків підписували блоки, а також вимагає від них мати гарантійний депозит (частку) у монетах протягом кількох місяців. Частка майнерів, які виробляють два суперечливі блоки або розширення суперечливих форків, буде конфіскована спільнотою, запущеною хардфорком. Хоча цей захист не усуває вразливість, він може збільшити вартість атаки, оскільки хабар має бути вищим за втрачену ставку. На даний момент увімкнути ставку майнера на біткойнах неможливо. Хоча RSK може прийняти консенсус щодо PoS, немає пропозицій щодо переходу на PoS або змішування PoW із PoS у RSK.
Ми представили кілька відомих атак консенсусу Накамото, які базуються на зловмисних транзакціях із сплатою аномально високих комісій. Деякі атаки дозволяють подвійні витрати, а інші спричиняють нестабільність мережі. Ці атаки особливо актуальні для всіх сайдчейнів Bitcoin, включаючи RSK. RSK реалізує згладжування винагород за блоки, розподіл винагороди за блоки та об’єднаний майнінг з урахуванням розгалуження як стримуючий фактор. У той час як згладжування винагород працює за явні комісії, загального випадку хабарів, виплачених за допомогою смарт-контрактів, уникнути неможливо. Захист від цих атак вимагає активного моніторингу мережі. Нарешті, необхідні подальші дослідження потенційних рішень для цих атак.
- 100
- 2016
- 2019
- рахунки
- активний
- Адам Назад
- Додатковий
- Перевага
- ВСІ
- стаття
- активи
- Автоматизований
- КРАЩЕ
- Ставки
- для
- Біткойн
- blockchain
- БТД
- ціна btc
- готівкові гроші
- Викликати
- викликаний
- Генеральний директор
- виклик
- шанси
- зміна
- Перевірки
- дитина
- код
- Монета
- Монети
- співтовариство
- Компенсація
- Консенсус
- споживати
- продовжувати
- контракт
- контрактів
- створення
- крипто
- криптообмін
- Криптовалюти
- криптовалюта
- Поточний
- Децентралізований
- оборони
- Відмова в обслуговуванні
- дизайн
- деталь
- Зривати
- Зрив
- розподілені книги
- Рано
- Економічний
- Ефіріума
- обмін
- Біржі
- Розширення
- Face
- особи
- особливість
- риси
- Інформація про оплату
- в кінці кінців
- Перший
- стежити
- вилка
- Повний
- функція
- майбутнє
- ГАЗ
- ge
- Загальне
- GM
- GP
- захоплення
- GV
- жорстка вилка
- мішанина
- хешування
- Хашрат
- тут
- Високий
- Як
- How To
- HTTPS
- ідея
- ідентифікувати
- У тому числі
- Augmenter
- IP
- IT
- ключ
- знання
- Labs
- мова
- рівень
- Довго
- основний
- Більшість
- вимір
- середа
- Мемпул
- шахтарі
- Mining
- гроші
- моніторинг
- місяців
- мережу
- вузли
- Пропозиції
- онлайн
- Інше
- Папір
- Платити
- оплата
- платежі
- пірінгових
- платформа
- Платформи
- басейн
- Басейни
- PoS
- Поу
- влада
- представити
- попередження
- price
- приватний
- Private Key
- Вироблений
- Виробники
- Product
- Прибуток
- Програмування
- доказ
- пропозиція
- захист
- Захисні
- дослідження
- REST
- revenue
- Нагороди
- Пульсація
- пульсація лабораторій
- прогін
- біг
- безпеку
- Серія
- установка
- Поділитись
- акції
- зсув
- Короткий
- сайдчейн
- простий
- невеликий
- розумний
- розумний контракт
- Спритні контракти
- So
- Рішення
- ВИРІШИТИ
- витрачати
- поширення
- частка
- Стейкінг
- стан
- Стратегія
- субсидії
- успіх
- успішний
- сталого
- перемикач
- треті сторони
- час
- угода
- Transactions
- турінг
- користувачі
- значення
- вразливість
- чекати
- Вікіпедія
- слова
- Work
- працює
- xrp
- років
- нуль