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

Самые главные криптоновости в Телеграм-канале CryptoMoon, присоединяйтесь!👇

Cryptomoon Telegram


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

Введение 

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

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

Разработчики представили несколько методов устранения этих ограничений, включая технологии, которые отдают приоритет конфиденциальности пользователей, такие как доказательство с нулевым разглашением (ZKP), zk-SNARK, цифровые валюты, ориентированные на анонимность, такие как Monero и Zcash, а также сложные методы шифрования, такие как гомоморфное шифрование (HE). ).

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

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

Итак, начнем!

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

Чтобы предотвратить подобные ситуации, мы выбираем решения, ориентированные на конфиденциальность, такие как доказательства с нулевым разглашением (ZKP). Давайте узнаем, как они работают!

Доказательства с нулевым разглашением и zk-SNARK

Что такое доказательства с нулевым разглашением?

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

Давайте поймем это более интуитивно, взяв пример из реальной жизни:

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

В этом сценарии вы выступаете в роли сторонника, а Карл выступает в роли проверяющего. Вы просите Карла расположить оба шара сзади, позволяя ему случайным образом выбрать один шар и узнать, были ли шары обменены (поменялись местами). Этот процесс можно повторять итеративно. С вероятностью 50% эта процедура в конечном итоге должна убедить Карла («полнота») в том, что шары действительно имеют разные цвета.

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

Пример кода:

# Простая симуляция ZKP
из hashlib import sha256

# Предположим, что проверяющий знает «секретный» пароль >
secret_password = «blockchain_rocks»
hash_of_secret = sha256(secret_password.encode).hexdigest

# Доказывающая хочет доказать знание, не раскрывая секретный_пароль.
def prove_knowledge(guessed_password):
    return sha256(guessed_password.encode).hexdigest == hash_of_secret

# Верификатор подтверждает знания проверяющего путем сопоставления хэшей
print(prove_knowledge(“blockchain_rocks”))  # Возвращает True без
раскрытие «секретного_пароля»

zk-SNARKs: краткие неинтерактивные аргументы знания с нулевым разглашением

Проще говоря, zk-SNARKs относится к типу доказательства, называемому Краткие неинтерактивные аргументы знания с нулевым разглашением. Это означает, что кто-то (доказывающий) может продемонстрировать достоверность или право собственности на что-либо без необходимости напрямую взаимодействовать с другим человеком (проверяющим). Это особенно полезно в ситуациях, когда нет возможности прямого общения, например, при онлайн-транзакциях без взаимодействия в реальном времени.

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

Слышали ли вы о том, что zk-SNARK на самом деле используются в Zcash, криптовалюте, известной своими безопасными частными транзакциями, называемыми «защищенными транзакциями»?

Упражнение: создание zk-SNARK с помощью libsnark

Рассмотрите возможность использования библиотеки libsnark для создания и подтверждения простого zk-SNARK. Альтернативно вы можете найти примеры построения доказательства zk-SNARK в их документации.

Теперь вопрос: как работает этот неинтерактивный ZKP? 

  • Настройка: zk-SNARK требует единовременной настройки криптографических ключей, используемых для построения доказательств.
  • Генерация доказательств: Доказывающий использует личную информацию для создания краткого доказательства, которое можно проверить публично.
  • Проверка: Верификаторы могут подтвердить, что проверяющий обладает определенными знаниями, не зная подробностей.

Монеты конфиденциальности 

Монеты конфиденциальности — это криптовалюты, специально разработанные для обеспечения приоритета конфиденциальности и сокрытия личности пользователя.

Монеро

Monero (XMR) — это тип цифровой валюты, обеспечивающий повышенную конфиденциальность. Он работает на основе уникальной системы блокчейна, которая скрывает информацию о транзакциях, что чрезвычайно затрудняет для третьих лиц определение того, кто переводит или получает Monero, отправляемую сумму или любые остатки на счетах. Это обеспечивает анонимность пользователя и гарантирует, что каждая единица Monero сохранит свою ценность, независимо от ее истории.

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

Как Monero обеспечивает конфиденциальность транзакций?

Monero использует особые методы для обеспечения конфиденциальности транзакций. Давайте рассмотрим эти методы:

Кольцевые подписи: объединяет подпись транзакции пользователя с другими, чтобы скрыть истинное происхождение.

Пример кода:

импортировать случайный
# Список открытых ключей для участников
participants = [«Алиса», «Боб», «Чарли», » Dave”]

# Выберите случайного участника в качестве «отправителя»
sender = random.choice(participants)

# Смешение подписи отправителя с другими
mixed_signatures = random.sample(participants, len(participants))

print(“Группа кольцевых подписей:”, Mixed_signatures)
print(“Отправитель (скрытый):”, отправитель)

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

Ring Confidential Transactions (RingCT): скрывает значение транзакции, чтобы не дать внешним объектам подключить транзакции.

  • Читайте также:
  •   Упрощенное масштабирование блокчейна: руководство по эффективным решениям уровня 1 и уровня 2
  •   ,

Zcash 

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

Защищенная транзакция: Экранированные транзакции в Zcash представляют собой частные транзакции, в которых используется криптографический метод, называемый zk-SNARKs (краткие неинтерактивные аргументы знания с нулевым разглашением) сохранить полную конфиденциальность деталей транзакции.

Следовательно, Zcash облегчает как открытые, так и частные транзакции, используя то, что мы называем T-адресами (аналогично стандартным адресам Биткойна для прозрачных транзакций) и Z-адресами (которые скрывают детали транзакций для безопасных, защищенных транзакций).

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

Настройка

# Установите клиент Zcash
sudo apt-get update && sudo apt-get install zcash
# Создайте защищенный адрес
zcash-cli z_getnewaddress
# Отправить на защищенный адрес
zcash-cli z_sendmany

Гомоморфное шифрование и его роль в блокчейне 

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

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

Существует два основных типа методов гомоморфного шифрования:

  • Частично гомоморфное шифрование (PHE):  Частичное HE позволяет выполнять только определенные операции с данными, например сложение и умножение.
  • Полностью гомоморфное шифрование (FHE): FHE поддерживает произвольные операции с зашифрованными данными. Но это ресурсозатратно

Пример кода:

из импорта печати EncryptionParameters, SEALContext, IntegerEncoder
# Установить параметры шифрования
parms = EncryptionParameters(scheme_type.BFV)< br/>parms.set_poly_modulus_grade(1024)
parms.set_coeff_modulus(coeff_modulus_128(1024))

# Пример зашифрованное сложение
encrypted_sum = add_encrypted_values(enc1, enc2)
print(“Зашифрованная сумма:”, Encrypted_sum)

Заключение

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

Продолжайте учиться и удачного программирования!!

Смотрите также

2024-11-02 03:38