Как убить Equifax

Grigorij First
Keep Network Russia
8 min readAug 28, 2020

--

Или «Автономная конфиденциальность данных». 5 эпизод в серии «Конфиденциальность в блокчейне».

Мы обсудили два разных подхода к конфиденциальности данных в смарт-контрактах — доказательства с нулевым разглашением, включая zk-SNARK, и частные блокчейны.

zk-SNARKs позволяют смарт-контрактам осуществление конфиденциальности данных пользователям, требуя при этом доказывать, что их вычисления действительны в соответствии с правилами контракта. С другой стороны, частные блокчейны меняют правила игры, обеспечивая конфиденциальность данных приложений, теряя при этом преимущества публичного блокчейна.

zk-SNARK — мощный инструмент для создания конфиденциальных систем на общедоступных блокчейнах, но этого недостаточно для многих организаций, чтобы отказаться от частных реестров. Это потому, что во многих бизнес-решениях пользователь и доступ к данным не соотносятся друг с другом.

Поговорим об одном таком случае.

Убийство Equifax

Недавно в Equifax произошел ужасный инцидент, связанный с безопасностью, в результате которого была раскрыта личная информация 143 миллионов человек, включая данные социального страхования, водительские права и номера кредитных карт.

На самом деле это не совсем справедливо. Поскольку бизнес Equifax не полагается на доверие потребителей, они еще не пострадали, хотя 143 миллиона пострадавших определенно пострадают. Масштабы атаки трудно преуменьшить, и многие задаются вопросом, можно ли доверять таким большим, бескорыстным корпорациям, как Equifax, такую значительную часть нашей личной информации.

Проблема, которую вскрыл взлом Equifax, является структурной для нашей экономики. Когда потребитель обращается за ссудой или открывает новую кредитную карту, потенциальный кредитор хочет убедиться, что потребитель кредитоспособен. Поскольку существует много кредиторов, они не могут спросить любого другого кредитора, пропустил ли потребитель платеж. Фактически, эти другие кредиторы являются их конкурентами и не заинтересованы в помощи в оценке риска.

Для решения этой проблемы агентства по предоставлению потребительских кредитов — наиболее известными из которых являются Equifax, Experian и TransUnion — собирают информацию от прошлых кредиторов, арендодателей, коммунальных предприятий и других сторон для составления кредитного отчета потребителя. Кредиторы могут оплатить этот отчет, чтобы решить, следует ли продлевать ссуду, и даже заплатить за доступ к высокопоставленным лицам, которым они могут рекламировать свои услуги.

К сожалению, в этой системе стимулы кредитных агентств ориентированы почти исключительно на их клиентов — кредиторов. У них нет сильного стимула защищать личную информацию потребителей.

Пошаговое руководство по замене кредитного агентства

Проблема с кредитным агентством кажется подходящей для блокчейна. Существуют конкурирующие стороны: кредитор против потребителя, кредитор против кредитора и потребитель против хакера. Кредиторам нужна информация о потребителях, но они не хотят помогать конкурентам оценивать риски. Потребители хотят получить кредит, но не хотят, чтобы их личная информация попала в чужие руки.

В подобных ситуациях блокчейны могут выступать в роли арбитров. Но без делегированных вычислений конфиденциальность потребителей отходит на второй план.

Представьте на мгновение, что у нас есть необходимая технология конфиденциальности. Контракты могут передавать доступ к личным данным и запрашивать вычисления с этими данными. С помощью этого нового инструмента мы можем создать автономное кредитное агентство.

1. Личность

Нам нужна возможность подтвердить свои личные данные потребителем. Такая система, как Civic, означает, что потребители могут хранить личную информацию на своих мобильных устройствах. Верификаторы личности запрашивают доступ к этой информации, которую потребители предоставляют через мобильное приложение. Затем верификаторы утверждают, что мобильное устройство и связанный с ним открытый ключ действительно принадлежат человеку, личность которого подтверждает потребитель.

В этой системе большее количество проверяющих означает лучшую безопасность. Энергетическая компания может подтвердить, что вы проживаете по адресу, на основании выставления счетов и истории аккаунта. Управление социального обеспечения, Государственный департамент или местное управление по делам транспорта могут подтвердить другие факты о вашей личности на основании проверки удостоверений личности. Хотя любой верификатор может быть взломан, вряд ли возможно взломать их все.

2. Кредитная история

Теперь, когда у нас есть надежная система идентификации, мы можем заняться кредитной историей. Кредиторы могут подтверждать факты о своем взаимодействии с потребителем. Эти утверждения могут быть, а могут и не быть правдой — даже у кредитора с самыми лучшими намерениями может возникнуть путаница, — но они стараются изо всех сил.

3. Разрешение споров

Потребители могут оспаривать утверждения. Подвергаемое сомнению утверждение, передается в арбитраж. Кредиторы должны обосновать свои требования. Для потребителей большинство споров будут простыми — если кредитор не может обосновать свое требование или он никак не реагирует, утверждение считается отклоненным.

Факт потребительского кредита не должен быть публичными. Кредиторы соглашаются на то, чтобы факт был записан в блокчейне и шифруют запись с помощью открытого ключа потребителя.

Поздравляем, мы представили себе элементы децентрализованной кредитной системы. Но как кредиторы могут использовать эту систему для оценки рисков?

4. Замена кредитных отчетов

Кредитор рассматривает заявку на получение кредита. У них есть открытый ключ заемщика, а также записи, связывающие их открытый ключ и их реальную личность.

Кредитор хочет проанализировать историю заемщика, используя свою собственную функцию оценки рисков, чтобы решить, следует ли подтверждать ссуду. Но заемщик не хочет раскрывать кредитору всю свою кредитную историю — они не только могут потерять ее из-за взлома, но и в целом все детали не являются их чертовым делом.

Делегируя вычисление другой стороне, кредитор может быть уверен, что данные были правильно оценены, оценивая заемщика для получения кредита, и заемщик может получить свой кредит, только раскрывая свою кредитную историю стороне, не предоставляющей кредит.

Теперь мы нашли суть всей этой схемы. Мы готовы сломить её и заменить агентства потребительского кредитования более справедливой и надежной альтернативой. Нам просто нужно найти способ, позволяющий кредитору и заемщику делегировать вычисления, не подвергая кредитную историю заемщика посторонним наблюдателям, а также не передавая функцию оценки кредитора конкурентам кредитодателя.

Многосторонние вычисления

Безопасные многосторонние вычисления (sMPC) — это класс криптографических методов, которые позволяют не доверяющим друг другу сторонам работать вместе для безопасного вычисления выходных данных функции.

sMPC был первоначально разработан Эндрю Яо для решения того, что он назвал проблемой миллионеров.

Проблема звучит так. Два миллионера болтают и задаются вопросом, у кого из них больше богатства, как это обычно делают миллионеры. Ни один из них не раскрывает свое финансовое положение, но они оба хотят иметь право называться самыми богатыми.

Вместо того чтобы сравнивать часы или считать ламбы, Эндрю Яо предложил новое решение. Первый миллионер вводит сведения о своем богатстве в качестве одного из входных данных в логическую схему, затем шифрует результат, создавая так называемую искаженную схему. Второй миллионер вкладывает свое богатство в искаженную схему. Результат может быть расшифрован первым миллионером, доказав, какой миллионер является самым богатым — никакого видимого признака богатства не требуется.

Это открытие привело Яо к открытию совершенно новой области криптографии. По мере того, как эта область развивалась и начала приносить практические результаты, были найдены новые, более эффективные протоколы MPC.

Обмен секретами

Протокол искаженных схем Яо основан на логическом цикле. Логический цикл — это серия логических шлюзов, аналогичных низкоуровневым устоям современных вычислений. К сожалению, логические циклы не так выразительны, как общие функции, и не допускают петель или условной логики.

Было обнаружено, что новые протоколы MPC также подходят для арифметических схем. Вместо того чтобы строиться из логических элементов, арифметические схемы построены на операциях сложения и умножения. Каждая арифметическая схема имеет соответствующую логическую схему, и наоборот, но арифметические схемы намного лучше подходят для функций, которые включают в себя много возведений в степень, как и многие популярные криптографические протоколы.

Вот простая схема sMPC, основанная на том, как Шамир делиться секретом. Рассматриваемый секрет, S, делиться на 5 частей, чтобы каждая часть была точкой в двухмерной системе координат, каждая часть передаётся другому человеку. Вместе эти 5 точек однозначно описывают многочлен 5-й степени, представляющий наш секрет. В литературе сторона, разделяющая секрет, называется доверенным посредником, а секретные части — долями.

Теперь мы разделили наш секрет, чтобы его нельзя было восстановить без сговора всех 5 человек. Как мы можем вычислить арифметическую функцию в этом сценарии?

Оказывается, сложить просто. Поскольку каждая доля является линейным полиномом, каждая сторона может выполнять добавление локально.

Однако умножение немного сложнее. Первый шаг умножения может быть выполнен локально, как и сложение. Результирующий многочлен является квадратичным, что предотвращает сложение в будущем. Чтобы исправить это, стороны выполняют раунд связи, разделяя результаты своего локального умножения между сторонами, уменьшая порядок полинома.

Теперь, когда у нас есть сложение и умножение, мы можем отразить большую часть вычислений.

Для более строгого подхода к sMPC с совместным использованием секрета с помощью арифметических схем ознакомьтесь с книгой Виталика “Secret Sharing DAOs: The Other Crypto 2.0”.

Вредоносные стороны

Протоколы sMPC, основанные на совместном использовании секретов, предлагают огромное улучшение производительности по сравнению с другими искаженными схемами. Однако, хотя они не позволяют вычислительным сторонам узнать секрет, над которым они работают, они не предотвращают отправку злоумышленником ложных данных, разрушающих вычисления.

К счастью, это идеальный вариант использования доказательств с нулевым разглашением! Современные протоколы sMPC могут требовать, чтобы каждая сторона включала доказательство своих вычислений с нулевым разглашением, что делает протокол безопасным даже против злоумышленников.

Многосторонние вычисления и блокчейн

Хотя протоколы sMPC на основе совместного использования секретов могут поддерживать целостность данных с нулевым разглашением доказательств, они по-прежнему страдают от атак с удержанием данных. Злоумышленник может удержать свою долю в окончательном вычислении функции, несправедливо получить доступ к выходным данным вычисления или полностью прервать вычисление.

Однако за последние 8 лет у нас появился инструмент для обеспечения справедливости — блокчейн. Требуя от каждой стороны внесения залога в начале вычислений, мы можем наказать злоумышленников за атаки с удержанием данных.

Многосторонние вычисления — это недостающий ключ к автономной конфиденциальности в блокчейне. И, как оказалось, блокчейн устраняет основную проблему, сдерживающую многосторонние вычисления от более широкого использования.

Я считаю, что объединение этих технологий может положить конец компромиссам в отношении конфиденциальности общедоступных блокчейнов, разблокировать совершенно новые потребительские приложения и предоставить предприятию альтернативу частным реестрам. Блокчейны с поддержкой конфиденциальности могут стать концом для таких компаний, как Equifax, которые злоупотребляют информацией о потребителях и получают ренту со всей нашей экономики.

Помня об этих целях, я счастлив поделиться последним этапом нашего пути в Fold.

Представляем сеть Keep

Мэт с радостью анонсирует сеть Keep, результат усилий команды по внедрению частных вычислений в публичные смарт-контракты.

Выполняя работу в Fold, команда создавала децентрализованный обмен подарочными картами. По мере того, как они копались в пространстве, они были разочарованы статус-кво конфиденциальности. Простые сценарии, такие как отправка частной информации между пользователями, были просты, но в реальном мире требуются сложные схемы условного депонирования, маркет-мейкеры и другие автономные компоненты, которые требовали хранения частной информации. Было ясно, что они не могут продолжать взламывать публичный блокчейн, и им нужно было решать проблему конфиденциальности напрямую.

Когда команда поняла масштабы того, что создавала, они поняли, что не могут ограничить свои амбиции подарочными картами. Команда создает инструменты, чтобы изменить современную экономику.

Если вы заинтересованы в продолжении пути, следите за новостями в блоге, где продолжится изучение темы, связанной с конфиденциальностью, ознакомьтесь с техническим описанием или присоединитесь в Slack.

Мэтт Луонго выражает благодарность Лауре Валлендал, Корбину Пону, Антонио Салазару Кардозо и Брайтону Уильямсу за рецензирование ранних черновиков этого поста, а также Джеймсу Пирлессу за обнаружение ошибок при копировании.

--

--