Трилемма конфиденциальности блокчейна: часть первая
*Русскоязычный перевод оригинальной статьи от 20 января 2022 года
Вдохновленные трилеммой масштабируемости Виталика Бутерина, мы предлагаем трилемму конфиденциальности для того, чтобы помочь понять конфиденциальность в контексте блокчейна.
В этом сообщении в блоге мы объясним, почему трилемма конфиденциальности делает конфиденциальность (в том числе и конфиденциальность данных) такой сложной для блокчейна. Затем мы объясним, почему Obscuro оптимизирует все три аспекта.
Трилемма конфиденциальности
Наш тезис заключается в том, что без революционных технологий, таких как гомоморфное шифрование (или что-то большее), большинство решений могут решать только две задачи из этих трёх: конфиденциальность, программируемость и децентрализация.
Конфиденциальность здесь определяется как возможность скрывать транзакции от всех участников, включая любые ноды или майнеры.
Программируемость — это способность быть задействовать полноту по Тьюрингу и решать все варианты её использования.
Децентрализация — это степень, в которой вы можете выйти за пределы одной организации, контролирующей критически важный аспект решения, не оставляя ни одной единой точки отказа. Например, централизованные агрегаторы или секвенсоры.
Прежде чем мы сможем приступить к изложению тезиса, нам нужно совершить небольшое путешествие, чтобы лучше понять технологию, доступную нам сегодня. Об этом будет рассказано в первой части этой серии. Во второй части мы углубимся в тему «Почему».
Конституция США вступила в силу в 1789 году, а вместе с ней и право на неприкосновенность частной жизни в ее Первой, Третьей, Четвертой и Пятой поправках.
В 1948 году Джордж Оруэлл пишет роман-антиутопию «1984», в котором жители Океании не имеют права на уединение. Общественные и частные пространства заполнены камерами и микрофонами.
31 октября 2008 года Сатоши Накамото публикует Вайтпейпер Биткоин , а вместе с ним, в разделе 10, статью о конфиденциальности:
Традиционная банковская модель обеспечивает определенный уровень конфиденциальности, ограничивая доступ к информации вовлеченными сторонами и имеет доверенное третье лицо. Необходимость объявлять обо всех транзакциях публично исключает этот метод, но конфиденциальность все же можно поддерживать, прерывая поток информации в другом месте: сохраняя анонимность открытых ключей. Общественность может видеть, что кто-то отправляет определённую сумму кому-то другому, но без информации, связывающей транзакцию с отправителем, подтверждающим её лицом и получаетлем.
Теперь, когда кто-то думает о конфиденциальности в блокчейне, у него может возникнуть мысль: разве блокчейн не всегда был частным? Нет, это всегда было анонимно.
С самого начала Биткоин позволял вам владеть токенами и тратить их с помощью пары криптографических ключей, которые вы контролируете. Эти ключи не были связаны с вами каким-либо очевидным образом. Таким образом, мы все могли видеть, какое количество и когда тратится, но не кто тратит.
Итак, давайте задумаемся об этом на мгновение. Когда Сатоши Накомото изобрёл технологию блокчейна, он не мог себе представить, что мы перейдем от Биткоина, прозрачного реестра всех транзакций, в котором сохранялась анонимность, к миру, где централизованные биржи и различные OTC образуют большинство точек входа в мир блокчейна. Он также не мог предсказать появление полных блокчейнов Тьюринга, таких как Ethereum , построенных на его основе.
Сейчас существует множество компаний, которые могут быстро определить, кто вы, анализируя график транзакций в любой общедоступной цепочке блоков. Существует множество компаний, которые могут разбирать ваши профессии, разрабатывать модели, которые вы используете, и опережать вас. Даже такие действия, как оплата кофе или игра на компьютере/телефоне, видны всем.
Пользователи общедоступных блокчейнов без прав доступа больше не являются анонимными, и все, что они делают, не является конфиденциальным.
На сегодняшний день существует несколько подходов к повышению анонимности и улучшению конфиденциальности. Однако, прежде чем мы сможем оценить, как используются эти подходы, нам сначала нужно понять разницу между UTXO и моделью учетной записи.
UTXO, вывод неизрасходованных транзакций, впервые был представлен через биткойн. Модель «Учетная запись» (также известная как «Баланс») используется Ethereum и широко распространена за пределами блокчейна.
UTXO(Unspent Transaction Output) —
нерастраченный выход транзакции, конечная точка путешествия каждого сатоши, передаваемого в транзакциях.
В UTXO каждая транзакция состоит из входов и выходов. Каждый из этих входов представляет некоторое подмножество существующего состояния мира, а каждый выход представляет состояние, в которое вы хотите перейти. Например, если вы являетесь владельцем одного биткоина и хотите отправить его Бобу или Бибу, существующее состояние мира — это вы владеете биткоином, а будущее состояние — Бобу или Бибу принадлежит этот биткоин. Транзакция будет представлять собой акт удаления («расхода») первого состояния и замены его вторым. Все «неизрасходованные» транзакции — это то, что отслеживает каждый узел в сети и отражает текущее состояние мира.
В приведенном выше примере представление UTXO показывает, что Алиса владеет десятью биткоинами. Она хочет отправить Бобу пять биткоинов, поэтому начинает транзакцию со своими десятью биткоинами в качестве вводных данных и создает два новых состояния в качестве выходных данных. Один сценарий — с Бобом в качестве нового владельца пяти биткоинов, а второй представляет ее владение пятью биткоинами, или, другими словами, ее «сдачу» от транзакции.
Если затем Алиса попытается отправить еще десять биткоинов Бобу, единственным вводом, который она может использовать, будет текущее состояние «израсходовано», представляющее ее первоначальные десять токенов. Если она попытается потратить их, сеть отклонит транзакцию как двойную трату.
Вы можете найти хорошую аналогию, пытаясь понять мысли Сатоши во время изобретения Биткоина. Сатоши Накамото пытался воссоздать свойства физических денег, но в цифровой форме. Итак, вы можете думать о модели UTXO как о бумажных заметках. Каждая банкнота отслеживает свою собственную сумму и текущего владельца (состояние), и, складывая все бумажные банкноты в вашем кошельке, вы знаете, сколько у вас есть денег. Эти купюры в вашем кошельке «неизрасходованные». После того как вы потратите одну из этих заметок, её состояние будет обновлено, чтобы отразить новое право собственности, и вы не сможете потратить её снова.
Будем надеяться, что сформируется ментальная модель, в которой с UTXO порядок событий является явным и основополагающим для протокола, что позволяет сети работать без глобального порядка транзакций и, что особенно важно, действительность любой данной транзакции зависит только от самой этой транзакции. и те, от кого это зависит.
Модель учётной записи
Модель учётной записи отслеживает баланс каждой учётной записи как глобальное состояние. Аналогией модели учётной записи может быть банковский счет. Банк отслеживает, сколько денег у каждого клиента. Всякий раз, когда вы тратите деньги с помощью карты, банк проверяет наличие на вашем счёте достаточной суммы денег, таким образом он одобряет транзакцию и обновляет информацию
Оглядываясь назад на диаграмму, для того, чтобы сделать перевод токена на Ethereum, сеть в целом (каждый участник сети действует как банк!) проверяет глобальное состояние счета. Это гарантирует, что сумма, которую вы переводите, меньше общей суммы, выделенной вам, а затем каждый участник обновляет свои записи.
Модель учётной записи также означает, что Ethereum может делать только одну вещь за раз. Вы должны проверять транзакции одну за другой, потому что вы не знаете, пока первая из транзакций не исполнится, какие части глобального состояния она могла изменить.
UTXO хорошо подходит для передачи токенов из-за строгого соблюдения прогрессии состояний. Модель учётной записи, находящаяся выше по лестнице абстракции, дает нам DeFi и всё остальное, требующее функциональности, подобной учётной записи.
Подходы к конфиденциальности и анонимности
Начиная с Monero, в криптопространстве произошёл взрыв решений: от тех, которые решают проблемы сохранения анонимности лучше, чем Биткойн и Ethereum, до специализированной конфиденциальности.
Круговые подписи
Круговые подписи, ставшие популярными благодаря Monero, позволяют отправителям Monero оставаться скрытыми от наблюдателей, комбинируя свою подпись с группой «ложных» выходов из набора предыдущих транзакций. Для наблюдателя транзакция выглядит как серия выходных данных с подписями, каждая из которых с равной вероятностью могут быть действительными. По сути, этот подход встраивает в протокол механизм-приманку, что делает анализ невероятно трудным. Подробнее о круговых подписях в Monero можно прочитать здесь.
Доказательство с нулевым разглашение
Доказательство с нулевым разглашением или протокол с нулевым разглашением (ZKP) — это набор криптографических протоколов, с помощью которых одна сторона (доказывающая) может доказать другой стороне (верификатору), что данное утверждение верно, не передавая никакой информации, кроме факта что утверждение действительно верно. Суть доказательства в том, что, хоть и невозможно доказать, что кто-то обладает знанием определенной информации, просто раскрывая её, задача состоит в том, чтобы доказать такое владение, не раскрывая ни самой информации, ни какой-либо дополнительной информации.
Z-Cash , Manta Network и Railgun являются примерами блокчейн-проектов, использующих ZKP для специализированной конфиденциальности.
Надёжные среды выполнения транзакции
Trusted Execution Environments, или, сокращённо TEE — это безопасные области в процессорах компьютеров, где гарантируется конфиденциальность и целостность кода. Всё выполнение изолировано от других частей компьютера, что делает невозможным доступ к его содержимому даже для оператора компьютера. Это технология, которая защищает многие из ваших устройств.
Они позволяют безопасно обрабатывать зашифрованные данные как локально, так и удалённо, с дополнительными гарантиями того, какие именно вычисления выполняются с данными, поэтому их владелец всегда контролирует ситуацию.
Некоторые из наиболее популярных реализаций включают Intel SGX и ARM TrustZone. Были случаи, когда исследователям удавалось заставить TEE передавать данные. Тем не менее, они никогда сознательно не использовались вне лабораторных условий и немедленно исправляются производителями.
TEE используются в жизни для DRM и для хранения конфиденциальных данных, таких как биометрические данные. Служба обмена сообщениями Signal использует TEE для сохранения контактов в секрете.
TEE также проникли в пространство блокчейна и используются такими проектами, как Avalanche , Chainlink , Oasis Network , Secret Network и Obscuro .
Гомоморфное шифрование
Гомоморфное шифрование позволяет анализировать или манипулировать зашифрованными данными, не раскрывая данные никому, включая тех, кто занимается обработкой. Только участники с соответствующими ключами могут получить доступ к незашифрованным данным (своим собственным) после завершения обработки.
Однако, по-прежнему существует проблема: откуда вы знаете, что система, выполняющая гомоморфные операции, выполнила те транзакции, о которых вы её просили? Откуда вы знаете, что она не вычла два числа, а сложил их? Вы знаете, что они не могут ВИДЕТЬ необработанные данные. Но знаете ли вы, что они сделали расчеты, которые, как они утверждали, сделали?
Комбинация гомоморфного шифрования и ZKP может стать святым Граалем для многих и потенциально обеспечить функциональные возможности TEE, предоставляемые сегодня без аппаратного обеспечения.
Имея эту основу, во второй части я проясню некоторую путаницу, связанную с ZKP, их применением в накопительных пакетах и почему ZKP не могут решить эту трилемму.
Узнать больше
Если вы хотите узнать больше об Obscuro , ознакомьтесь с нашим litepaper или прочтите наш технический документ . Общайтесь с сообществом в Discord и следите за нами в Twitter . Вы также можете подписаться следить за нашими анонсами в Telegram.