SMPC-гаманці

Криптовалюти вже давно вийшли з категорії «річі для обраних» і стають все більш звичними і буденними. А це означає, що все більше людей, які не мають серйозної технічної освіти, починають ними цікавитися. Ось тільки їх знань і досвіду недостатньо для того, щоб забезпечити високий рівень безпеки звичайних криптогаманців, так що зловмисникам стає дедалі простіше отримувати доступ до чужих активів. На щастя, у даної проблеми є кілька ефективних варіантів вирішення, один з яких - SMPC-гаманці.

Що це таке?

Якщо коротко, то SMPC-гаманці - це криптографічні гаманці, що використовують для забезпечення безпеки так звані «безпечні багатосторонні обчислення» (MPC) і розподіл секрету Шаміра. За рахунок цього з'являється можливість не тільки розбити код доступу на кілька частин, а й працювати з цими частинами, не побоюючись випадково розголосити їх зміст.

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

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

Розподіл секрету Шаміра частково вирішує цю проблему. Якщо приватний ключ розбити на будь-яку кількість частин і зробити так, щоб для його відтворення необхідно було зібрати певну кількість фрагментів. В такому випадку втрата одного фрагмента нічого не змінює, а одноосібно забезпечити собі доступ до інформації не можна. Зміст даного розподілу - вирахування «функції» (приватного ключа), грунтуючись на достатній кількості відомих точок цієї функції (фрагментів ключа). В контексті криптогаманців це працює як в вигляді розподілу фрагментів між різними людьми, так і між різними пристроями. Щось типу багатофакторної ідентифікації, тільки безпечніше, оскільки перехоплення одного фрагмента інформації нічого не дасть зловмиснику.

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

Як працює MPC?

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

Є якийсь колектив співробітників з різною зарплатою. І їм захотілося з'ясувати, скільки ж в середньому отримують на їх роботі. Однак повідомляти свої дані відкрито - не хочеться. Що робити? Можна вибрати довіренну сторонню особу і нехай кожен повідомить йому свої дані. Однак де гарантія, що «кастодіан» виконає свою роботу сумлінно? Тому потрібно зробити так.

Перший учасник додає до своєї зарплати абсолютно довільне число. Цей результат передає другому. Той приплюсовує свою реальну зарплату і передає далі. Після того, як останній учасник впорається з обчисленнями, він віддає записи першому, той віднімає додане довільне число і ділить результат на кількість учасників.

Приблизно так і працюють безпечні багатосторонні обчислення. Це дозволяє задовольнити три основні вимоги до безпеки:

Але яке відношення все це має до криптогаманців? Найбезпосередніше.

Прикладне значення

Розподіл Шаміра дозволяє розбити приватний ключ на потрібну кількість частин. Безпечні багатосторонні обчислення дозволяють закодувати кожну частину так, щоб працювати з нею міг тільки початковий алгоритм кодування. Якщо якийсь подібний фрагмент перехоплять - зловмисник не зможе ним скористатися. А якщо до початкового кодування додати ще й прив'язку за часом, то марними виявляться і всі фрагменти приватного ключа перехоплені раніше.

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

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

Висновки

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