Прив'язка криптографічних ключів до профілів з тих пір є проблемою впровадження технології. Виклик полягає в забезпеченні та підтримці загальнодоступного та послідовного відображення ідентичностей та відкритих ключів (до яких ці ідентичності мають особистий ключ). Без такого відображення повідомлення, призначені для збереження в секреті, можуть піти не так — іноді з трагічними наслідками. Цей самий виклик існує в web3.
Наразі існує три можливі рішення. Двома класичними підходами є каталог з відкритим ключем і шифрування на основі ідентифікаційних даних. По-третє, шифрування на основі реєстрації, яке до недавнього часу було суто теоретичним. Ці три підходи пропонують різні компроміси між анонімністю, інтерактивністю та ефективністю, що спочатку може здатися зрозумілим, але налаштування блокчейну вносить нові можливості та обмеження. Отже, мета цієї публікації полягає в тому, щоб дослідити цей простір дизайну та порівняти ці підходи при розгортанні на блокчейні. Коли користувачам потрібна прозорість та анонімність ончейн, практична схема RBE є явним переможцем — подолання сильного припущення про довіру шифрування на основі ідентифікаційних даних, але за це доведеться заплатити.
Класичним підходом до зв'язування криптографічних ключів з профілями є інфраструктура відкритих ключів (PKI), в основі якої лежить каталог відкритих ключів. Цей підхід вимагає, щоб потенційний відправник взаємодіяв з довіреною третьою стороною (супроводжуючим каталогу або центром сертифікації) для надсилання повідомлень. Крім того, у налаштуваннях web2 підтримка цього каталогу може бути дорогою, виснажливою та помилковий, і користувачі підлягають ризику зловживання від ім'я видачі сертифікатів.
Криптографи запропонували альтернативи, щоб обійти проблеми з PKI. У 1984 році,Аді Шамір запропонувавшифрування на основі ідентифікації (IBE), в якому ідентифікатор сторони - номер телефону, електронна пошта, доменне ім'я ENS - виступає у вигляді відкритого ключа. Це усуває потребу у веденні каталогу відкритих ключів, але при цьому вводить довіру до третьої сторони (генератора ключів). Ден Бонех та Метью Франклін надали перша практична конструкція IBEin 2001, but IBE has not received widespread adoption except in closed ecosystems such as corporate or установки уряду, можливо, через сильну довіру. (Як ми побачимо нижче, це припущення може бути частково зменшене за допомогою спирання на довірений кворум сторін, який блокчейн легко може сприяти.)
Третя опція, шифрування на основі реєстрації (RBE), булапропонованийу 2018 році. RBE зберігає ту саму загальну архітектуру, що й IBE, але замінює надійний генератор ключів прозорим «куратором ключів», який виконує обчислення тільки на публічних даних (конкретно, він накопичує публічні ключі в своєрідний вид публічно доступного «дайджесту»). Прозорість цього куратора ключів робить блокчейн-середовище - де роль куратора може виконувати розумний контракт - природнім варіантом для RBE. RBE залишався теоретичним до 2022 року, коли мої співавтори і я представили перша практично ефективна конструкція RBE.
Цей дизайн-простір складний, і порівняння цих схем потребує врахування багатьох вимірів. Щоб спростити речі, я зроблю дві припущення:
На кінці я розгляну, як кожна з цих додаткових моментів може вплинути на наші три потенційні рішення.
Опис: Будь-хто може додати запис (id, pk) до ланцюгової таблиці (довідник) за допомогою виклику розумного договору, якщо ID ще не був заявлений.
Децентралізована PKI являє собою, по суті, розумний контракт, який підтримує каталог ідентифікаторів та відповідних публічних ключів. Наприклад, Реєстр Ethereum Name Service (ENS) Підтримує прив'язку доменних імен («ідентичностей») та відповідних метаданих, включно з адресами, які вони вирішують (з транзакцій яких може бути отримано відкритий ключ). Децентралізований PKI забезпечив би ще простішу функціональність: список, який підтримується контрактом, зберігав би лише публічний ключ, що відповідає кожному ідентифікатору.
Для реєстрації користувач генерує пару ключів (або використовує раніше згенеровану пару ключів) та надсилає його ідентифікатор та публічний ключ контракту (можливо, разом з деяким платежем). Контракт перевіряє, чи не був той самий ідентифікатор вже використаний, і, якщо ні, додає ідентифікатор та публічний ключ до каталогу. На цьому етапі будь-хто може зашифрувати повідомлення для зареєстрованого користувача, звернувшись до контракту за публічним ключем, що відповідає ідентифікатору. (Якщо відправник вже раніше зашифрував щось для цього користувача, йому не потрібно знову звертатися до контракту.) За допомогою публічного ключа відправник може зашифрувати своє повідомлення, як зазвичай, і надіслати шифротекст одержувачу, який може використати відповідний секретний ключ для відновлення повідомлення.
Давайте розглянемо властивості цього методу.
На негативній стороні грифелю:
З позитивних моментів:
Коли можна використовувати каталог з відкритим ключем? Децентралізований каталог відкритих ключів простий у налаштуванні та управлінні, тому це хороший базовий вибір. Однак, якщо витрати на зберігання або конфіденційність викликають занепокоєння, один з інших варіантів, наведених нижче, може бути кращим вибором.
Опис: Ідентифікатор користувача - це його публічний ключ. Для видачі ключів і зберігання головного секрету (пастки) на протязі життєвого циклу системи потрібна довірена третя сторона або сторони.
У IBE користувач не генерує власну пару ключів, а замість цього реєструється у довіреного генератора ключів. Генератор ключів має "мастер" пару ключів (msk, mpk на малюнку). Заданий ідентифікатор користувача генератор ключів використовує майстер-секретний ключ msk та ідентифікатор для обчислення секретного ключа для користувача. Цей секретний ключ має бути сповіщений користувачеві через захищений канал (який може бути встановлений з,протокол обміну ключами.
IBE оптимізує досвід відправника: він завантажує mpk генератора ключів один раз, після чого може шифрувати повідомлення до будь-якого ІД, використовуючи сам ІД. Дешифрування також просте: зареєстрований користувач може використовувати секретний ключ, виданий йому генератором ключів, для розшифрування шифротексту.
Майстер-секретний ключ генератора ключів є більш стійким, ніж«токсичні відходи», що виникають під час церемоній надійної настройки відкритих ключіввикористовується для деяких SNARKs. Генератор ключів потребує його для видачі будь-яких нових секретних ключів, тому генератор ключів не може стерти його після налаштування, як це роблять учасники церемоній SNARK. Це також небезпечна інформація. Будь-хто з msk може розшифрувати всі повідомлення, відправлені будь-якому користувачеві в системі. Це означає, що існує постійний ризик витоку з катастрофічними наслідками.
Навіть якщо msk зберігається в безпеці, кожен користувач, який реєструється в системі, повинен довіряти генератору ключів, щоб він не читав його повідомлення, оскільки генератор ключів може зберегти копію секретного ключа користувача або повторно обчислити його з msk у будь-який час. Можливо, генератор ключів навіть видасть користувачеві помилковий або «обмежений» секретний ключ, який розшифровує всі повідомлення, крім деяких заборонених, як визначено генератором ключів.
Натомість ця довіра може бути розподілена між кворумом генераторів ключів, так що користувач повинен довіряти лише пороговій кількості з них. У цьому випадку невелика кількість шкідливих генераторів ключів не може відновити секретні ключі або обчислити пошкоджені ключі, і зловмиснику доведеться зламати кілька систем, щоб викрасти повний головний секрет.
Якщо користувачі погоджуються з цим довірчим припущенням, (порогове) IBE надає багато переваг:
Але!
Коли можна використовувати (пороговий) IBE? Якщо доступна довірена третя сторона або сторони, і користувачі готові їм довіряти, IBE пропонує набагато компактніший (і, отже, дешевший) варіант порівняно з реєстром ключів у мережі.
У своєму розумінні, подібно до ІБЕ, ідентичність користувача служить їхнім відкритим ключем, але довірена третя сторона / кворум замінена прозорим накопичувачем (званим "куратором ключів").
У цьому розділі я розповім про ефективну побудову RBE від моя стаття, оскільки, на відміну від (наскільки мені відомо) лише інша практична конструкція, в даний час його можна розгорнути на блокчейні (на відміну від гратового) замість на основі решітки. Коли я кажу “RBE”, я маю на увазі саме цю конструкцію, хоча деякі твердження можуть бути правдивими для RBE взагалі.
У RBE користувач генерує власну пару ключів і обчислює деякі «значення оновлення» (a на малюнку), отримані з секретного ключа та загального еталонного рядка (CRS). Хоча наявність CRS означає, що налаштування не є повністю ненадійним, CRS є потужності-тауконструкція, яка може бутиобчислений колективно в ланцюжкуі залишається безпечним, доки існувала хоча б одна чесна внесок.
Смарт-контракт налаштовується на очікувану кількість користувачів N, згрупованих у сегменти. Коли користувач реєструється в системі, він надсилає смарт-контракту свій ID, публічний ключ і значення оновлення. Смарт-контракт підтримує набір публічних параметрів pp (відмінних від CRS), які можна розглядати як стислий «дайджест» публічних ключів усіх сторін, зареєстрованих у системі. Отримавши запит на реєстрацію, він виконує перевірку значень оновлення та множить відкритий ключ у відповідний сегмент pp.
Зареєстрованим користувачам також потрібно зберігати деяку «допоміжну інформацію» локально, яку вони використовують для розшифровки і яка додається щоразу, коли новий користувач реєструється у своєму тому самому сегменті. Вони можуть оновлювати це самостійно, відстежуючи блокчейн на наявність реєстрацій у своєму сегменті, або смарт-контракт може допомогти, підтримуючи список значень оновлень, отриманих від останніх реєстрацій (скажімо, протягом останнього тижня), які користувачі можуть періодично отримувати (принаймні раз на тиждень).
Відправники в цій системі завантажують CRS один раз і час від часу завантажують найновішу версію публічних параметрів. Що стосується публічних параметрів, все, що має значення з точки зору відправника, це те, що вони включають публічний ключ призначеного отримувача; вони не обов'язково повинні бути найновішою версією. Потім відправник може використовувати CRS та публічні параметри разом з ідентифікатором отримувача, щоб зашифрувати повідомлення отримувачеві.
При отриманні повідомлення користувач перевіряє свою локально збережену додаткову інформацію на наявність значення, що проходить певну перевірку. (Якщо він не знаходить нічого, це означає, що йому потрібно отримати оновлення з контракту.) Використовуючи це значення та його секретний ключ, користувач може дешифрувати шифротекст.
Зрозуміло, що ця схема складніша, ніж дві інші. Але він вимагає менше ончейн-сховища, ніж каталог з відкритим ключем, уникаючи при цьому сильного припущення про довіру IBE.
З розширеннями:
Коли можна використовувати RBE? RBE використовує менше ончейн-сховища, ніж ончейн-реєстр, одночасно уникаючи сильних припущень про довіру, яких вимагає IBE. У порівнянні з реєстром, RBE також пропонує відправнику сильніші гарантії конфіденційності. Однак, оскільки RBE лише нещодавно став життєздатним варіантом для управління ключами, ми ще не впевнені, які сценарії найбільше виграють від цієї комбінації властивостей. Будь ласка дайте мені знатиякщо у вас є якісь ідеї.
Я оцінив витрати (на 30 липня 2024 року) на розгортання кожного з цих трьох підходів on-chain в цей блокнот Colab. Результати для потужності системи ~900 тис. користувачів (кількість унікальні доменні імена, зареєстровані в ENS на момент написання цього) показані в таблиці нижче.
У PKI немає вартості налаштування та низької вартості реєстрації на кожного користувача, тоді як у IBE є невелика вартість налаштування та практично безкоштовна реєстрація на кожного користувача. У RBE вища вартість налаштування та несподівано висока вартість реєстрації, незважаючи на низький обсяг зберігання на ланцюжку.
Більшість вартості реєстрації (з урахуванням обчислень на L2) походить з того факту, що сторони мають оновлювати частину загальних параметрів у постійному сховищі, що призводить до високої вартості реєстрації.
Хоча RBE дорожче за альтернативи, цей аналіз показує, що його можна впровадити на головну мережу Ethereum сьогодні - без потенційно ризикованих довірчих припущень PKI або IBE. І це до оптимізацій, таких як розгортання кількох менших (і, отже, дешевших) екземплярів або використання даних у формі блобів. Оскільки RBE має переваги перед каталогом публічних ключів та IBE у формі більш сильної анонімності та зменшених довірчих припущень, воно може бути привабливим для тих, хто цінує приватність та недовірчі налаштування.
Noemi Glaeser є кандидатом наук у галузі комп'ютерних наук в Університеті штату Меріленд та Інституті безпеки та конфіденційності Макса Планка, а також був стажером-дослідником у a16z crypto влітку 23 року. Вона є стипендіатом NSF Graduate Research Fellowship, а раніше була стажером-дослідником у NTT Research.
У випадку каталогу відкритих ключів обробка оновлень ключів та відкликань є простою: для відкликання ключа сторона просить контракт видалити його з каталогу. Для оновлення ключа запис (id, pk) перезаписується новим ключем на (id, pk’).
Для відкликання в IBE Боне і Франклін запропонували, щоб користувачі періодично оновлювали свої ключі (наприклад, щотижня), а відправники включали поточний часовий період у рядок ідентифікації при шифруванні (наприклад, «Боб <поточний тиждень>»). Через невзаємодіючу природу шифрування відправники не мають способу знати, коли користувач відкликає свій ключ, тому деякі оновлення періоду є необхідними. Болдирева, Гойял та Кумар дали. більш ефективний механізм анулюванняна основі“Розмитий” IBEяке потребує двох ключів для розшифрування: «ідентифікаційного» ключа та додаткового ключа «часу». Таким чином, потрібно регулярно оновлювати лише ключ часу. Ключі часу користувачів накопичуються в бінарному дереві, і користувач може використовувати будь-який вузол по шляху (в базовому випадку потрібен лише кореневий вузол, який публікується генератором ключів). Відкликання ключа досягається шляхом припинення публікації оновлень для певного користувача (видалення вузлів по шляху цього користувача з дерева), в такому випадку розмір оновлення збільшується, але ніколи не перевищує логарифмічного відносно кількості користувачів.
Наша ефективна конструкція RBE не враховувала оновлення та анулювання,подальша роботанадає компілятор, який може «оновити» нашу схему, щоб додати ці функціональності.
Використання рішення для доступності даних (DAS) для переміщення ончейн-сховища поза мережею вплине лише на обчислення каталогу з відкритим ключем і RBE, зменшуючи обидва до однакового обсягу ончейн-сховища. RBE збереже перевагу в тому, що він є більш приватним для відправника, оскільки він все одно уникає витоку особистості одержувача через шаблони доступу. IBE вже мав мінімальне ончейн-сховище і не отримав би вигоди від DAS.
Прив'язка криптографічних ключів до профілів з тих пір є проблемою впровадження технології. Виклик полягає в забезпеченні та підтримці загальнодоступного та послідовного відображення ідентичностей та відкритих ключів (до яких ці ідентичності мають особистий ключ). Без такого відображення повідомлення, призначені для збереження в секреті, можуть піти не так — іноді з трагічними наслідками. Цей самий виклик існує в web3.
Наразі існує три можливі рішення. Двома класичними підходами є каталог з відкритим ключем і шифрування на основі ідентифікаційних даних. По-третє, шифрування на основі реєстрації, яке до недавнього часу було суто теоретичним. Ці три підходи пропонують різні компроміси між анонімністю, інтерактивністю та ефективністю, що спочатку може здатися зрозумілим, але налаштування блокчейну вносить нові можливості та обмеження. Отже, мета цієї публікації полягає в тому, щоб дослідити цей простір дизайну та порівняти ці підходи при розгортанні на блокчейні. Коли користувачам потрібна прозорість та анонімність ончейн, практична схема RBE є явним переможцем — подолання сильного припущення про довіру шифрування на основі ідентифікаційних даних, але за це доведеться заплатити.
Класичним підходом до зв'язування криптографічних ключів з профілями є інфраструктура відкритих ключів (PKI), в основі якої лежить каталог відкритих ключів. Цей підхід вимагає, щоб потенційний відправник взаємодіяв з довіреною третьою стороною (супроводжуючим каталогу або центром сертифікації) для надсилання повідомлень. Крім того, у налаштуваннях web2 підтримка цього каталогу може бути дорогою, виснажливою та помилковий, і користувачі підлягають ризику зловживання від ім'я видачі сертифікатів.
Криптографи запропонували альтернативи, щоб обійти проблеми з PKI. У 1984 році,Аді Шамір запропонувавшифрування на основі ідентифікації (IBE), в якому ідентифікатор сторони - номер телефону, електронна пошта, доменне ім'я ENS - виступає у вигляді відкритого ключа. Це усуває потребу у веденні каталогу відкритих ключів, але при цьому вводить довіру до третьої сторони (генератора ключів). Ден Бонех та Метью Франклін надали перша практична конструкція IBEin 2001, but IBE has not received widespread adoption except in closed ecosystems such as corporate or установки уряду, можливо, через сильну довіру. (Як ми побачимо нижче, це припущення може бути частково зменшене за допомогою спирання на довірений кворум сторін, який блокчейн легко може сприяти.)
Третя опція, шифрування на основі реєстрації (RBE), булапропонованийу 2018 році. RBE зберігає ту саму загальну архітектуру, що й IBE, але замінює надійний генератор ключів прозорим «куратором ключів», який виконує обчислення тільки на публічних даних (конкретно, він накопичує публічні ключі в своєрідний вид публічно доступного «дайджесту»). Прозорість цього куратора ключів робить блокчейн-середовище - де роль куратора може виконувати розумний контракт - природнім варіантом для RBE. RBE залишався теоретичним до 2022 року, коли мої співавтори і я представили перша практично ефективна конструкція RBE.
Цей дизайн-простір складний, і порівняння цих схем потребує врахування багатьох вимірів. Щоб спростити речі, я зроблю дві припущення:
На кінці я розгляну, як кожна з цих додаткових моментів може вплинути на наші три потенційні рішення.
Опис: Будь-хто може додати запис (id, pk) до ланцюгової таблиці (довідник) за допомогою виклику розумного договору, якщо ID ще не був заявлений.
Децентралізована PKI являє собою, по суті, розумний контракт, який підтримує каталог ідентифікаторів та відповідних публічних ключів. Наприклад, Реєстр Ethereum Name Service (ENS) Підтримує прив'язку доменних імен («ідентичностей») та відповідних метаданих, включно з адресами, які вони вирішують (з транзакцій яких може бути отримано відкритий ключ). Децентралізований PKI забезпечив би ще простішу функціональність: список, який підтримується контрактом, зберігав би лише публічний ключ, що відповідає кожному ідентифікатору.
Для реєстрації користувач генерує пару ключів (або використовує раніше згенеровану пару ключів) та надсилає його ідентифікатор та публічний ключ контракту (можливо, разом з деяким платежем). Контракт перевіряє, чи не був той самий ідентифікатор вже використаний, і, якщо ні, додає ідентифікатор та публічний ключ до каталогу. На цьому етапі будь-хто може зашифрувати повідомлення для зареєстрованого користувача, звернувшись до контракту за публічним ключем, що відповідає ідентифікатору. (Якщо відправник вже раніше зашифрував щось для цього користувача, йому не потрібно знову звертатися до контракту.) За допомогою публічного ключа відправник може зашифрувати своє повідомлення, як зазвичай, і надіслати шифротекст одержувачу, який може використати відповідний секретний ключ для відновлення повідомлення.
Давайте розглянемо властивості цього методу.
На негативній стороні грифелю:
З позитивних моментів:
Коли можна використовувати каталог з відкритим ключем? Децентралізований каталог відкритих ключів простий у налаштуванні та управлінні, тому це хороший базовий вибір. Однак, якщо витрати на зберігання або конфіденційність викликають занепокоєння, один з інших варіантів, наведених нижче, може бути кращим вибором.
Опис: Ідентифікатор користувача - це його публічний ключ. Для видачі ключів і зберігання головного секрету (пастки) на протязі життєвого циклу системи потрібна довірена третя сторона або сторони.
У IBE користувач не генерує власну пару ключів, а замість цього реєструється у довіреного генератора ключів. Генератор ключів має "мастер" пару ключів (msk, mpk на малюнку). Заданий ідентифікатор користувача генератор ключів використовує майстер-секретний ключ msk та ідентифікатор для обчислення секретного ключа для користувача. Цей секретний ключ має бути сповіщений користувачеві через захищений канал (який може бути встановлений з,протокол обміну ключами.
IBE оптимізує досвід відправника: він завантажує mpk генератора ключів один раз, після чого може шифрувати повідомлення до будь-якого ІД, використовуючи сам ІД. Дешифрування також просте: зареєстрований користувач може використовувати секретний ключ, виданий йому генератором ключів, для розшифрування шифротексту.
Майстер-секретний ключ генератора ключів є більш стійким, ніж«токсичні відходи», що виникають під час церемоній надійної настройки відкритих ключіввикористовується для деяких SNARKs. Генератор ключів потребує його для видачі будь-яких нових секретних ключів, тому генератор ключів не може стерти його після налаштування, як це роблять учасники церемоній SNARK. Це також небезпечна інформація. Будь-хто з msk може розшифрувати всі повідомлення, відправлені будь-якому користувачеві в системі. Це означає, що існує постійний ризик витоку з катастрофічними наслідками.
Навіть якщо msk зберігається в безпеці, кожен користувач, який реєструється в системі, повинен довіряти генератору ключів, щоб він не читав його повідомлення, оскільки генератор ключів може зберегти копію секретного ключа користувача або повторно обчислити його з msk у будь-який час. Можливо, генератор ключів навіть видасть користувачеві помилковий або «обмежений» секретний ключ, який розшифровує всі повідомлення, крім деяких заборонених, як визначено генератором ключів.
Натомість ця довіра може бути розподілена між кворумом генераторів ключів, так що користувач повинен довіряти лише пороговій кількості з них. У цьому випадку невелика кількість шкідливих генераторів ключів не може відновити секретні ключі або обчислити пошкоджені ключі, і зловмиснику доведеться зламати кілька систем, щоб викрасти повний головний секрет.
Якщо користувачі погоджуються з цим довірчим припущенням, (порогове) IBE надає багато переваг:
Але!
Коли можна використовувати (пороговий) IBE? Якщо доступна довірена третя сторона або сторони, і користувачі готові їм довіряти, IBE пропонує набагато компактніший (і, отже, дешевший) варіант порівняно з реєстром ключів у мережі.
У своєму розумінні, подібно до ІБЕ, ідентичність користувача служить їхнім відкритим ключем, але довірена третя сторона / кворум замінена прозорим накопичувачем (званим "куратором ключів").
У цьому розділі я розповім про ефективну побудову RBE від моя стаття, оскільки, на відміну від (наскільки мені відомо) лише інша практична конструкція, в даний час його можна розгорнути на блокчейні (на відміну від гратового) замість на основі решітки. Коли я кажу “RBE”, я маю на увазі саме цю конструкцію, хоча деякі твердження можуть бути правдивими для RBE взагалі.
У RBE користувач генерує власну пару ключів і обчислює деякі «значення оновлення» (a на малюнку), отримані з секретного ключа та загального еталонного рядка (CRS). Хоча наявність CRS означає, що налаштування не є повністю ненадійним, CRS є потужності-тауконструкція, яка може бутиобчислений колективно в ланцюжкуі залишається безпечним, доки існувала хоча б одна чесна внесок.
Смарт-контракт налаштовується на очікувану кількість користувачів N, згрупованих у сегменти. Коли користувач реєструється в системі, він надсилає смарт-контракту свій ID, публічний ключ і значення оновлення. Смарт-контракт підтримує набір публічних параметрів pp (відмінних від CRS), які можна розглядати як стислий «дайджест» публічних ключів усіх сторін, зареєстрованих у системі. Отримавши запит на реєстрацію, він виконує перевірку значень оновлення та множить відкритий ключ у відповідний сегмент pp.
Зареєстрованим користувачам також потрібно зберігати деяку «допоміжну інформацію» локально, яку вони використовують для розшифровки і яка додається щоразу, коли новий користувач реєструється у своєму тому самому сегменті. Вони можуть оновлювати це самостійно, відстежуючи блокчейн на наявність реєстрацій у своєму сегменті, або смарт-контракт може допомогти, підтримуючи список значень оновлень, отриманих від останніх реєстрацій (скажімо, протягом останнього тижня), які користувачі можуть періодично отримувати (принаймні раз на тиждень).
Відправники в цій системі завантажують CRS один раз і час від часу завантажують найновішу версію публічних параметрів. Що стосується публічних параметрів, все, що має значення з точки зору відправника, це те, що вони включають публічний ключ призначеного отримувача; вони не обов'язково повинні бути найновішою версією. Потім відправник може використовувати CRS та публічні параметри разом з ідентифікатором отримувача, щоб зашифрувати повідомлення отримувачеві.
При отриманні повідомлення користувач перевіряє свою локально збережену додаткову інформацію на наявність значення, що проходить певну перевірку. (Якщо він не знаходить нічого, це означає, що йому потрібно отримати оновлення з контракту.) Використовуючи це значення та його секретний ключ, користувач може дешифрувати шифротекст.
Зрозуміло, що ця схема складніша, ніж дві інші. Але він вимагає менше ончейн-сховища, ніж каталог з відкритим ключем, уникаючи при цьому сильного припущення про довіру IBE.
З розширеннями:
Коли можна використовувати RBE? RBE використовує менше ончейн-сховища, ніж ончейн-реєстр, одночасно уникаючи сильних припущень про довіру, яких вимагає IBE. У порівнянні з реєстром, RBE також пропонує відправнику сильніші гарантії конфіденційності. Однак, оскільки RBE лише нещодавно став життєздатним варіантом для управління ключами, ми ще не впевнені, які сценарії найбільше виграють від цієї комбінації властивостей. Будь ласка дайте мені знатиякщо у вас є якісь ідеї.
Я оцінив витрати (на 30 липня 2024 року) на розгортання кожного з цих трьох підходів on-chain в цей блокнот Colab. Результати для потужності системи ~900 тис. користувачів (кількість унікальні доменні імена, зареєстровані в ENS на момент написання цього) показані в таблиці нижче.
У PKI немає вартості налаштування та низької вартості реєстрації на кожного користувача, тоді як у IBE є невелика вартість налаштування та практично безкоштовна реєстрація на кожного користувача. У RBE вища вартість налаштування та несподівано висока вартість реєстрації, незважаючи на низький обсяг зберігання на ланцюжку.
Більшість вартості реєстрації (з урахуванням обчислень на L2) походить з того факту, що сторони мають оновлювати частину загальних параметрів у постійному сховищі, що призводить до високої вартості реєстрації.
Хоча RBE дорожче за альтернативи, цей аналіз показує, що його можна впровадити на головну мережу Ethereum сьогодні - без потенційно ризикованих довірчих припущень PKI або IBE. І це до оптимізацій, таких як розгортання кількох менших (і, отже, дешевших) екземплярів або використання даних у формі блобів. Оскільки RBE має переваги перед каталогом публічних ключів та IBE у формі більш сильної анонімності та зменшених довірчих припущень, воно може бути привабливим для тих, хто цінує приватність та недовірчі налаштування.
Noemi Glaeser є кандидатом наук у галузі комп'ютерних наук в Університеті штату Меріленд та Інституті безпеки та конфіденційності Макса Планка, а також був стажером-дослідником у a16z crypto влітку 23 року. Вона є стипендіатом NSF Graduate Research Fellowship, а раніше була стажером-дослідником у NTT Research.
У випадку каталогу відкритих ключів обробка оновлень ключів та відкликань є простою: для відкликання ключа сторона просить контракт видалити його з каталогу. Для оновлення ключа запис (id, pk) перезаписується новим ключем на (id, pk’).
Для відкликання в IBE Боне і Франклін запропонували, щоб користувачі періодично оновлювали свої ключі (наприклад, щотижня), а відправники включали поточний часовий період у рядок ідентифікації при шифруванні (наприклад, «Боб <поточний тиждень>»). Через невзаємодіючу природу шифрування відправники не мають способу знати, коли користувач відкликає свій ключ, тому деякі оновлення періоду є необхідними. Болдирева, Гойял та Кумар дали. більш ефективний механізм анулюванняна основі“Розмитий” IBEяке потребує двох ключів для розшифрування: «ідентифікаційного» ключа та додаткового ключа «часу». Таким чином, потрібно регулярно оновлювати лише ключ часу. Ключі часу користувачів накопичуються в бінарному дереві, і користувач може використовувати будь-який вузол по шляху (в базовому випадку потрібен лише кореневий вузол, який публікується генератором ключів). Відкликання ключа досягається шляхом припинення публікації оновлень для певного користувача (видалення вузлів по шляху цього користувача з дерева), в такому випадку розмір оновлення збільшується, але ніколи не перевищує логарифмічного відносно кількості користувачів.
Наша ефективна конструкція RBE не враховувала оновлення та анулювання,подальша роботанадає компілятор, який може «оновити» нашу схему, щоб додати ці функціональності.
Використання рішення для доступності даних (DAS) для переміщення ончейн-сховища поза мережею вплине лише на обчислення каталогу з відкритим ключем і RBE, зменшуючи обидва до однакового обсягу ончейн-сховища. RBE збереже перевагу в тому, що він є більш приватним для відправника, оскільки він все одно уникає витоку особистості одержувача через шаблони доступу. IBE вже мав мінімальне ончейн-сховище і не отримав би вигоди від DAS.