Максимально вилучувана вартість (MEV) — це прибуток, який можна отримати шляхом зміни порядку, виключення або включення транзакцій у блоці. Це явище широко розповсюджене у більшості блокчейнів та вже давно є предметом активних обговорень і досліджень у галузі.
Звертаємо увагу: ця стаття розрахована на читачів, які вже мають базові знання про MEV. Тим, кому необхідно, радимо спочатку ознайомитися з нашим роз’ясненням MEV.
Оскільки проблема MEV залишається актуальною, багато дослідників ставлять питання: чи можна її вирішити криптографічними методами? Один із таких підходів — це зашифровані мемпули, де користувачі надсилають зашифровані транзакції, що залишаються прихованими до формування їх послідовності. Це змушує консенсусний протокол "всліпу" визначати порядок транзакцій, що теоретично унеможливлює використання MEV під час впорядкування.
Однак із як технічної, так і практичної точки зору зашифровані мемпули не дають універсального розв’язання проблеми MEV. Далі викладено основні труднощі реалізації та можливі принципи побудови таких мемпулів.
Існує багато концепцій зашифрованих мемпулів, проте типова схема роботи виглядає так:
Ключове питання — етап 3, тобто розшифрування: хто розкриває дані і що робити, якщо розшифрування не відбудеться? Просте рішення — надати це право самим користувачам (тоді шифрування, по суті, не потрібне, достатньо приховати зобов’язання). Втім, такий підхід вразливий до спекулятивного MEV.
У разі спекулятивного MEV атакувальник намагається вгадати, що певна зашифрована транзакція містить можливість для вилучення MEV. Він шифрує власні транзакції з надією, що вони опиняться у вигідній позиції стосовно цільової (наприклад, перед чи після неї). Якщо порядок остаточний — він розшифровує та отримує прибуток, якщо ні — утримується від розшифрування, і така транзакція не потрапляє до ланцюга.
Можна уявити механізм покарання за невиконане розшифрування, але впровадити його складно: покарання повинно бути рівним для всіх зашифрованих транзакцій (оскільки вони невідрізнені між собою) і достатньо суттєвим, щоб стримувати навіть найбільш вигідний спекулятивний MEV. Таке рішення передбачає блокування значних обсягів коштів з обов’язковою анонімністю (щоб не розкривати походження транзакцій). Однак це створить додаткові ризики для добросовісних користувачів у разі мережевих збоїв або помилок, які унеможливлюють розшифрування.
Більшість пропозицій передбачають таке шифрування транзакцій, щоб їх розшифрування було гарантовано можливим у майбутньому, навіть якщо автор відсутній у мережі чи не співпрацює. Далі — детальніше про відповідні підходи:
TEEs: транзакції шифруються на ключ, що зберігається у середовищі довіреного виконання (TEE). У простих реалізаціях TEE лише розкриває транзакції після певного часу (потрібен механізм часу всередині TEE). Складніші підходи використовують TEE і для впорядкування транзакцій у блоці за визначеними критеріями, наприклад, часом надходження чи розміром комісій. Серед переваг TEEs порівняно з іншими шифрованими мемпулами — можливість працювати з «нешифрованими» транзакціями, що знижує спам за рахунок відсіювання транзакцій, які не виконаються. Такий підхід, однак, передбачає повну довіру до апаратного забезпечення.
Секрет-шерінг і порогове шифрування: за цього підходу транзакції шифруються під ключ, розподілений між членами комітету (зазвичай валідаторами). Для розшифрування потрібна кваліфікована більшість (наприклад, дві третини комітету).
Найпростіший варіант — використовувати спільний ключ у кожному раунді (наприклад, для кожного блоку чи епохи в Ethereum), який після впорядкування транзакцій у фіналізованому блоці комітет спільно відтворює та публікує. Для цього підходу достатньо базового секрет-шерінгу. Однак це розкриває весь пул транзакцій, включаючи ті, що не увійшли до блоку, й вимагає нової генерації ключів для кожного раунду.
Для кращої конфіденційності застосовують розкриття лише фактично включених транзакцій. Це досягається пороговим розшифруванням, коли той самий ключ використовується для кількох блоків, а комітет розшифровує тільки ті транзакції, що реально потрапили до фіналізованого блоку. Головна проблема — істотно більший обсяг роботи для комітету: обсяг лінійний щодо кількості транзакцій, хоча сучаснідослідження пропонують оптимізовані пакетні протоколи.
Порогове розшифрування переносить довіру від обладнання до комітету. Вважається, що для консенсусу вже потрібно довіряти чесній більшості валідаторів, отже, аналогічне припущення доречно й для комітету розшифрування. Втім, ці припущення різні: у разі збою консенсусу (наприклад, форку) проблема очевидна для всіх, а дострокове розшифрування комітетом не залишає слідів і не піддається покаранню. Практично це означає, що довіра до неофіційного комітету — значно більший ризик.
Time-lock- і delay encryption: альтернативою є відкладене шифрування. Користувачі шифрують під публічний ключ, секрет якого заховано у криптографічній головоломці з часовим лімітом. Відкрити таку головоломку можна тільки після певного обсягу послідовних обчислень, і після цього секретний ключ доступний усім. Це гарантує, що до фіналізації транзакції розкрити неможливо. Найдосконаліше таку схему можна реалізувати через delay encryption, хоча можлива й делегація до комітету — але тоді переваги над пороговим шифруванням мінімальні.
У будь-якому разі існують суттєві практичні труднощі. По-перше, важко точно контролювати момент розшифрування, оскільки затримка визначається характеристиками обчислень. По-друге, потрібні суб’єкти з доступом до високопродуктивного обладнання для вирішення головоломок. Хоча виконати цю роль може будь-хто, питання мотивації залишається відкритим. Нарешті, такі протоколи передбачають розшифрування всіх транзакцій, навіть тих, що не були фіналізовані у блоці. Порогові або witness encryption-схеми можуть розкривати лише транзакції, що реально включені.
Witness encryption — сучасний перспективний криптографічний інструмент, що базується на NP-відношеннях: інформацію можуть декодувати лише ті, хто має "свідчення" виконання певної умови (наприклад, розгадування судоку чи знаходження preimage хеша). Для зашифрованих мемпулів умовою може бути фіналізація блоку.
На практиці це універсалізує й порогові, і delay-підходи. Проте реальних впроваджень немає, а навіть якщо вони з’являться, економічна доцільність порівняно з комітетськими моделями для мереж із proof-of-stake сумнівна. Якщо witness encryption дозволяє розкривати дані лише після фіналізації, то й комітет може "імітувати" фіналізацію у приватному ланцюгу для розшифрування, тож порогові рішення будуть простішими і нічим не поступатимуться за безпекою.
Натомість у proof-of-work-протоколах witness encryption має вагому перевагу: навіть повністю зловмисний комітет не здатен "приватно" намайнити ланцюг для симуляції фіналізації.
Забезпечити конфіденційність у блокчейні дуже складно. Попри поширеність шифрування для захисту приватних повідомлень (TLS, Signal тощо), у сфері web3 воно поки є екзотикою. Наш багаторічний досвід впровадження шифрування вказує: жодна технологія не гарантує повної захищеності.
Серед ризиків — доступ сторонніх до відкритого коду транзакції. Зазвичай шифрування відбувається на стороні гаманця, а не кінцевого користувача, тому постачальник гаманця потенційно може скористатись цією інформацією для вилучення MEV або продати її далі. Рівень захищеності шифрування не вищий за рівень довіри до всіх учасників, які мають доступ до ключа.
Головна вразливість — це метадані, тобто усі супутні технічні характеристики зашифрованої транзакції, які не шифруються. Навіть часткова інформація про метадані (наприклад, розмір чи час відправки) дозволяє скріперам робити висновки про тип і вміст транзакції, що стимулює спекулятивний MEV. Достатньо знати, що певна транзакція — це, наприклад, велика покупка на конкретній DEX.
Основні типи метаданих:
Розмір транзакції: Шифрування не приховує обсяг даних — це відомий та ефективний напрямок атак. Класичний приклад: навіть із зашифрованим трафіком можна виявити, який відеоролик переглядає користувач Netflix — саме за розміром пакетів. Аналогічно, у мемпулах розмір може розкривати тип операції.
Час надсилання: Шифрування не приховує час надходження транзакції (ще один відомий вектор атаки). Відправник може діяти за певним розкладом, наприклад для маркет-мейкінгу чи арбітражу, або синхронізувати операції з зовнішніми подіями. Скріпер відстежить час, а секвенсер може отримати перевагу, відкидаючи "занадто пізні" транзакції.
IP-адреса відправника: Через моніторинг peer-to-peer-мережі можна ідентифікувати джерело транзакції та зв’язати кілька операцій, навіть якщо дані шифровані. Це дозволяє на основі аналізу історії використовувати дані вже розшифрованих транзакцій.
Комбінування метаданих дозволяє досвідченим скріперам значно підвищити точність своїх припущень.
Теоретично всі ці фактори можна спробувати приховати, але це супроводжується суттєвими технічними втратами. Падінг до стандартного розміру сповільнює мережу й витрачає ресурси. Затримки надсилання для приховування часу підвищують латентність. Використання Tor ускладнює роботу, а анонімізація даних — окрема складна задача.
Найважче приховати інформацію про комісію. Якщо ці дані шифруються, це ускладнює боротьбу зі спамом:
Поділіться
Контент