За Межами ZK: Вичерпний Посібник з Питань Конфіденційності в Web3 (Частина 1)

Серія з трьох частин про конфіденційність у Web3, досліджуючи можливості безпечних обчислень і прояснюючи помилкові уявлення про все, від ZKP до TEE!

Блокчейни завжди мали проблему конфіденційності за своєю суттю. Повна відсутність конфіденційності даних в ланцюжку суттєво обмежує можливості блокчейнів і проблеми, які вони можуть вирішувати. Проте лише нещодавно блокчейни стали достатньо корисними (і достатньо використовуваними), щоб ця притаманна їм слабкість була визнана більш широкою спільнотою.

Однак, в той час як все більше людей розуміють, що таке блокчейн і які проблеми він може вирішити, існує менше ясності щодо того, як правильно визначити його проблему конфіденційності — і, що більш важливо, які рішення існують. Ця прогалина призводить до поширених помилкових уявлень і міфів, коли люди часто приписують певним рішенням більшу силу, ніж це є на практиці. Як один з простих прикладів, технологія “ZK” (zero-knowledge) в першу чергу корисна для масштабування, а не для забезпечення конфіденційності, і це, безумовно, не срібна куля. Але ви не дізнаєтесь цього, читаючи крипто-твіттер або більшість аналітичних статей.

У Secret Network ми зосереджуємося на практичних підходах до досягнення конфіденційності у виробництві. Ми не просто намагаємося вирішити “транзакційну конфіденційність” — набагато простішу проблему приватного відправлення цінності з точки А в точку Б. У нас є набагато ширше і набагато більш значуще бачення: дозволити будь-кому створювати узагальнюючі і компоновані децентралізовані додатки з програмованою конфіденційністю. Ми також пишаємося тим, що є першопрохідцями: Secret Network — це вже перший блокчейн L1, який впровадив смарт-контракти, що зберігають конфіденційність, в мейннеті — цієї віхи ми досягли майже 2 роки тому.

Оскільки для нашої місії дуже важливо, щоб люди не тільки розуміли, що ми створюємо, але й чому ми це робимо, я виділив час для написання поглибленої серії з трьох частин про конфіденційність Web3. До кінця цих постів ви будете краще розуміти сильні і слабкі сторони різних технологій конфіденційності, поточний ландшафт рішень, і чому ми в Secret вибрали наш особливий прагматичний і практичний підхід до конфіденційності. З огляду на це, мета цієї статті — бути освітньою, а не спеціально просувати Secret, саме тому я зробив все можливе, щоб представити різні рішення якомога об’єктивніше.

Читачі, які добре обізнані, можуть помітити деякі спрощення та узагальнення. Вони були необхідні для того, щоб вмістити цей вичерпний огляд у коротку серію публікацій. Ми будемо раді вашим відгукам і завжди можемо покращити цей матеріал!

Якщо вам сподобався цей матеріал і ви поділяєте нашу місію по створенню центру конфіденційності для всього Web3, ми запрошуємо вас допомогти нам побудувати екосистему Secret.

Ось структура цієї серії:

Частина 1 (цей пост): Ми визначимо загальну проблему безпечних обчислень, її зв’язок з Web3, і чому конфіденційність є відсутньою ланкою.

Частина 2: Ми дамо всебічний огляд всіх доступних рішень, особливо їх компромісів, і пояснимо, як і чому ми зупинилися на поточній архітектурі Secret Network.

Частина 3: Ми розвінчаємо поширені міфи про рішення для забезпечення конфіденційності, в тому числі про те, які гарантії конфіденційності дають (і чого не дають) докази з нульовим рівнем знання.

Давайте зануримось! 🏊🏻♂️

Погляньте на наш аналіз рішень для захисту персональних даних!

Безпечні Обчислення

Давайте почнемо з визначення проблеми безпечних обчислень, яка охоплює багатокористувацьку обчислювальну проблему. Як ми покажемо в цій статті, налаштування безпечних обчислень на практиці є налаштуванням для кожного блокчейну (і не блокчейну!), без забезпечення конфіденційності.

Уявіть собі ідеалізований світ, де існує єдиний, всемогутній сервер, якому довіряють, а всі інші — клієнти, які використовують цей сервер (надсилають йому вхідні дані та отримують вихідні). Якщо такий сервер існує і є доступним для всіх, і йому дійсно можна довіряти, ми можемо використовувати його для будь-якої цифрової послуги, яку тільки можемо собі уявити. Цей сервер поглинув би весь Інтернет: він містив би цифрову інфраструктуру наших урядів, нашу банківську систему, усі веб-сайти, соціальні мережі, пошукові системи, додатки тощо.

Навіть теоретично ця думка може викликати занепокоєння, оскільки, як відомо, не існує такої організації, якій ми могли б довірити “володіння” цим сервером, а разом з ним і всією всесвітньою павутиною. Проте, корисно уявити собі таку ідеальну версію реальності і спробувати побудувати технічні рішення, які намагаються її імітувати. Очевидно, що якщо ми зможемо побудувати такі рішення (наприклад, з використанням блокчейнів, криптографії), які досягають цього ідеалу, то нам не потрібно буде покладатися виключно на соціальну довіру — необхідність сліпо довіряти організаціям, урядам і т.д., щоб вони робили правильні речі.

Отже, повернемося до нашої поки що ідеальної схеми і припустимо, що такий сервер, якому довіряють, дійсно існує. Коли ми говоримо, що “довіряємо” цьому серверу, яким чином ми йому довіряємо? Ну, зрозуміло, що ми хочемо, щоб він захищав всі наші дані, і ми хочемо бути впевненими, що він надає нам корисні послуги (наприклад, не втручається в наші дані і не повертає нам неправильні результати на наші запити).

Іншими словами, ми — клієнти — хочемо бути впевненими, що можемо захистити конфіденційність наших вхідних даних (включаючи запобігання витоку наших даних іншим клієнтам), а також забезпечити коректність результатів, які ми отримуємо від такого сервера. Зауважте, що іноді важливо, щоб сервер також гарантував, що інші клієнти не зіпсують обчислення (наприклад, надавши невірні дані).

Довірений сервер надає цифрові послуги від імені користувачів.

Ця структура, яка намагається в багатоклієнтському середовищі досягти як конфіденційності, так і коректності, відома як фреймворк безпечних обчислень у цифровому світі, або як альтернатива — модель безпечних багатосторонніх обчислень (MPC). Рішення проблеми безпечних обчислень намагаються використовувати інструменти криптографії і розподілених систем для імітації такого всемогутнього довіреного сервера, не припускаючи його існування.

Одне зауваження щодо термінології, яку ми будемо використовувати: і безпечні обчислення, і MPC часто використовуються як взаємозамінні, але оскільки іноді вони відносяться до проблеми, а іноді, як ви побачите пізніше, вони відносяться до конкретного набору рішень, ми будемо продовжувати розглядати проблему як “безпечні обчислення”, і використовувати MPC для розгляду конкретного класу рішень.

Щоб зрозуміти, чому ця структура є корисною, зверніть увагу, що будь-яка операція в цифровому світі може бути по суті зведена до цієї ідеальної парадигми. Наведемо кілька конкретних прикладів:

  1. Веб-пошук: Кожен клієнт може поділитися своїм пошуковим терміном, сервер отримує всі пов’язані веб-сторінки і повертає їх клієнту.
  2. Райдшерінг: Клієнтами тут є як пасажири, так і водії — вони діляться даними про своє місцезнаходження з сервером, який підбирає найближчих пасажирів і водіїв (при цьому результат отримує як пасажир, так і водій).
  3. Голосування: Кожен клієнт віддає свій голос. Сервер підраховує всі голоси і публікує результати всім користувачам. Цей приклад ми також бачимо знову і знову реалізованим в смарт-контрактах для управління токен-спільнотами, де користувачі можуть голосувати пропорційно до кількості токенів, якими вони володіють.
  4. Переказ токенів криптовалюти: Сервер зберігає баланси двох клієнтів, назвемо їх Аліса і Боб, які бажають здійснити транзакцію. Припустимо, Аліса бажає перевести X токенів Бобу. Сервер обчислює це, і в більшості блокчейнів повідомляє всім клієнтам (не тільки Алісі і Бобу!) їх нові баланси.

У решті цієї серії публікацій нашою метою буде продовжувати вирішення проблеми як коректності, так і конфіденційності. Розв’язання обох задач у загальному випадку (а саме — для всіх можливих обчислень/застосувань) виявляється дуже складним. Зауважимо, що існують й інші властивості, що представляють інтерес, але в багатьох випадках вони є похідними від цих двох. Для простоти ми здебільшого ігноруємо в цій серії все, що виходить за межі коректності та конфіденційності.

Як ми докладніше розглянемо пізніше, блокчейн сьогодні (і Web3 в цілому) вирішує тільки половину проблеми безпечних обчислень. Блокчейн забезпечує коректність, але не забезпечує ніякої конфіденційності. Якщо ви знайомі з програмою Secret, то знаєте, що саме тут ми вступаємо в гру — наша мета полягає в тому, щоб забезпечити максимальну конфіденційність для Web3, вирішивши іншу половину проблеми безпечних обчислень.

Web2 vs Web3

До недавнього часу всі технічні рішення проблеми безпечних обчислень були лише теоретичними, і єдиним вибором на практиці було просто сліпо довіряти одному суб’єкту — так само, як в ідеальній, нереалістичній моделі, яку ми описали вище. Саме так, по суті, працює Web2: клієнти взаємодіють з сервером певної компанії (наприклад, Google) і в процесі дозволяють цій компанії зберігати і використовувати свої дані так, як вона вважає за потрібне, і все це в обмін на отримання певного сервісу, якому клієнти також вірять, що він буде виконаний правильно.

Такі методи призвели до незліченних витоків даних, занепокоєння щодо конфіденційності та, врешті-решт, до регулювання та нових законів (наприклад, GDPR), які спрямовані на кращий захист даних користувачів з соціальної точки зору. Однак регулювання — це лише частина головоломки. Нам також потрібні технологічні інновації.

Винахід Біткоїна та блокчейну, а пізніше Ефіріуму, спирався на ідеї, які існували протягом десятиліть в академічній літературі, але були першими спробами в дикій природі усунути цю довіру до одного суб’єкта. Блокчейн смарт-контрактів — це, по суті, сукупність багатьох комп’ютерів, яким індивідуально не довіряють, але колективно їм можна довіряти (з урахуванням деяких припущень про максимальну змову) для правильного обчислення будь-якої функціональності. Причина, чому це надзвичайно потужне рішення, полягає в тому, що воно є універсальним — його можна використовувати для всього. На практиці залишається відкритим питання, наскільки ми зможемо масштабувати блокчейн, щоб він дійсно міг замінити централізовані рішення, але якщо ми дійсно зможемо — хіба не було б чудово побудувати кращу мережу, використовуючи їх? Це основна ідея Web3.

Як ми вже згадували раніше, блокчейни набули величезної популярності завдяки своїй здатності вирішувати питання коректності, що є половиною проблеми, яку ми визначили для безпечних обчислень. По суті, це означає, що все, що обчислюється на блокчейні, можна вважати правильним, і що ніхто (клієнт або сервер) не втручався в нього.

Тому не дивно, що на сьогоднішній день блокчейн виявився найбільш пристосованим до ринку продуктів і послуг у фінансовій сфері, де довіра є дефіцитом. Наприклад, хоча ми можемо довіряти Google в тому, що він поверне нам правильні результати пошуку на наш запит (стимули вирівняні), чи довіримо ми йому управління глобальною валютою і бухгалтерською книгою? Напевно, ні.

Гаразд — ми з’ясували, що де-факто властивість, яку вирішують блокчейни, — це правильність, наступне питання: а як щодо конфіденційності? Виявляється, блокчейн за своєю конструкцією не забезпечує ніякої приватності взагалі. У цьому сенсі вони строго гірші, ніж модель Web2:

Намагаючись покращити модель Web2 для коректності, Web3 усунув конфіденційність.

Не вдаючись у технічні подробиці, основна інтуїція щодо того, чому блокчейн є марним, коли мова йде про конфіденційність, пов’язана з тим, як він працює. У двох словах, блокчейн гарантує правильність, дозволяючи багатьом серверам виконувати обчислення разом і перевіряти, що всі вони приходять до одного і того ж висновку. Оскільки в бездозвільних блокчейнах будь-хто може запустити сервер, з цього відразу ж випливає, що будь-хто в світі може бачити дані всіх, тоді як в Web2 ці дані може бачити тільки один суб’єкт (що вже досить погано).

А тепер перейдемо до суті справи. Виявляється, вирішувати питання приватності після того, як ви вирішили питання коректності, дуже складно!

Рішення про конфіденційність — це складно

Перш ніж ми дослідимо простір розв’язків (це частина 2!), важливо інтуїтивно зрозуміти, чому розв’язувати задачі на конфіденційність важко, і чому це, мабуть, важче, ніж на коректність. З цього моменту і далі ми почнемо ставати трохи більш технічними, але намагатимемося тримати це на досить високому рівні, щоб кожен міг зрозуміти.

Для коректності блокчейн надав чудове рішення: ми дозволяємо багатьом серверам повторно запустити обчислення, і вони можуть перевірити один одного і переконатися, що ніхто не обманює. Є й інші рішення для доведення правильності, але в кінцевому підсумку всі вони повертаються до ідеї, що хтось інший може перевірити вашу роботу.

Проте, у випадку з конфіденційністю ми вимагаємо чогось абсолютно протилежного — ми вимагаємо від сервера (або декількох серверів) обчислювати дані, які вони не можуть бачити. Якщо вони бачать дані, вони можуть їх витоку, а це вимагає довіри, яку ми не хочемо мати. На практиці існує декілька криптографічних рішень цієї проблеми, які ми незабаром розглянемо — але, як і все інше в житті, вони пов’язані з компромісами, деякі з яких залишаються дуже серйозними.

Що ще важливіше, витік даних є тихою формою атаки на безпеку: за визначенням, ми або інші не можемо знати, що дані були виточені. Навіть якщо ми знайдемо наші конфіденційні дані, завантажені десь в іншому місці в Інтернеті, може бути неможливо точно визначити, де стався витік і хто його здійснив. Це дуже відрізняється від коректності, де “гучні” атаки (тобто ви повинні активно порушувати протокол і інші можуть це спостерігати) дозволяють легше ідентифікувати зловмисників.

Ця проблема “тихих” і “гучних” атак, мабуть, найбільше впливає на те, чому так важко створювати рішення, що зберігають конфіденційність, тому що ми не можемо стимулювати проти такого типу поведінки.

Тепер, коли ми починаємо розуміти проблему конфіденційності в Web3, настав час глибше розібратися в тому, які рішення доступні, які компроміси існують, і як Secret вирішує цю дуже важливу проблему за допомогою унікальної архітектури, яка зберігає конфіденційність, є програмованою і прагматичною.

Дякуємо, що прочитали першу частину цієї серії статей про конфіденційність Web3! У частині 2 будуть розглянуті окремі технології, а також їх поточні сильні та слабкі сторони:

  • Повністю або частково гомоморфне шифрування (HE/FHE)
  • Довірені середовища виконання (TEE)
  • Безпечні багатосторонні обчислення (MPC)
  • Докази з нульовим знанням (ZKP)

Ми глибоко замислювалися над цими питаннями протягом останніх років, і Secret Network пишається тим, що продовжує очолювати рух до безпечних обчислень у просторі блокчейну. Якщо ці ідеї вас зацікавили — і якщо ви переконані в їх важливості — будь ласка, приєднуйтесь до нас у створенні рішень і технологій, які можуть допомогти нам захистити децентралізований веб і масштабувати Web3!

Якщо ви розробник додатків, перегляньте наші ресурси тут. (Secret використовує Rust!)

Якщо ви захоплені забезпеченням захисту конфіденційності даних користувачів Web3, який вони потребують і на який вони заслуговують, подумайте про те, щоб стати Секретним Агентом! Наша місія полягає в тому, щоб переконатися, що децентралізована мережа, яку ми будуємо, дійсно розширює можливості — і є доступною для всіх. Є багато способів допомогти розширенню екосистеми Секретних агентів і глобальної доступності технологій конфіденційності в Web3 — від інформування та освіти до міжнародного зростання і університетських зв’язків.

Ознайомтеся з програмою Secret Agents і приєднуйтесь до однієї з кращих і найбільш відданих спільнот у всьому блокчейн-просторі!

Тільки вперед до приватності!

Гай Зіскінд — засновник Secret Network, генеральний директор SCRT Labs, колишній науковий співробітник Массачусетського технологічного інституту, автор одних з найбільш цитованих статей про конфіденційність блокчейну (в тому числі “Децентралізація конфіденційності”, написаної в 2015 році).

Для обговорення Secret Network та Secret Apps відвідайте наші канали спільноти:

Website | Forum | Twitter | Discord | Telegram

--

--

Secret Network Ukrainian
IGC Secret Network Translated Archives part 4

Платформа конфіденційності даних для Web3 — щодо створення та використання блокчейн-додатків, які не вимагають дозволу та зберігають конфіденційність.