Погружение в технологию Zero-Knowledge и влияние Aleo на неё.

leonfish#1371
7 min readFeb 23, 2023

--

Введение
Zero-Knowledge-Proof
- (в переводе с англ языка) доказательство с нулевым разглашением информации — интерактивный криптографический протокол, позволяющий одной из взаимодействующих сторон («The verifier» — проверяющей) убедиться в достоверности какого-либо утверждения , не имея при этом никакой другой информации от второй стороны («The prover» — доказывающей). Причём последнее условие является необходимым, так как обычно доказать, что сторона обладает определёнными сведениями в большинстве случаев тривиально, если она имеет право просто раскрыть информацию. Вся сложность состоит в том, чтобы доказать, что у одной из сторон есть информация, не раскрывая её содержание.

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

1.Инициализация

2.Операция

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

Технология доказательства с нулевым разглашением должна соответствовать трём таким требованиям как:

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

2.Корректность: если утверждение неверно, то любой, даже «нечестный», Доказывающий не сможет убедить Проверяющего что какое-либо знание верно.

3.Нулевое разглашение: если утверждение верно, то любой, даже «нечестный», Проверяющий не узнает ничего кроме самого факта, что утверждение верно.

История
Есть известная история, в которой представлены фундаментальные идеи доказательств с нулевым разглашением, впервые опубликованная в 1990 году Жан-Жаком Кискватером и другими в их статье «Как объяснить детям протоколы с нулевым разглашением». Общепринятой практикой является обозначение двух сторон в доказательстве с нулевым разглашением как Пегги (доказывающая утверждение ) и Виктора (проверяющего утверждение ).

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

Они обозначают левый и правый пути от входа A и B. Сначала Виктор ждет снаружи пещеры, пока Пегги входит внутрь. Пегги выбирает либо путь A, либо путь B; Виктору не разрешено видеть, по какому пути она идет. Затем Виктор входит в пещеру и выкрикивает название пути, по которому он хочет, чтобы она вернулась, либо A, либо B, выбранный наугад. Если она действительно знает волшебное слово, то это легко: она открывает дверь, если нужно, и возвращается по нужному пути.

Однако предположим, что она не знала этого слова. Тогда она сможет вернуться по названному пути только в том случае, если Виктор назовет имя того же пути, по которому она вошла. Поскольку Виктор выберет A или B наугад, у нее будет 50% шанс угадать правильно. Если бы они повторили этот трюк много раз, скажем, 20 раз подряд, ее шансы успешно предвосхитить все просьбы Виктора стали бы очень малы (1 к 220, или примерно 1 к миллиону).

Таким образом, если Пегги неоднократно появляется на выходе с именами Виктора, он может сделать вывод, что весьма вероятно, что Пегги действительно знает секретное слово.

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

Aleo — это отдельный блокчейн с открытым исходным кодом, который будет служить платформой для частных и программируемых приложений.

ZK-SNARK

Aleo использует такой класс доказательств с нулевым разглашением, как ZK-SNARK.

Технология ZK-SNARK — это криптографическое доказательство, которое позволяет стороне доказать, что она владеет информацией, не раскрывая ее. ZK-SNARK — это аббревиатура от Zero-Knowledge Scinct Non-Interactive Argument of Knowledge. В частности, ZK-SNARK — это протокол доказательства с нулевым разглашением для подтверждения владения определенной информацией без раскрытия этой информации.

ZK-Snark или же краткий неинтерактивный аргумент знания с нулевым разглашением — это решение, в котором: Краткий означает, что размер доказательства должен быть достаточно маленьким, чтобы его можно было проверить за короткое время.

Доказательство ZK-SNARK уже используются в Zcash, платежной системе JP Morgan Chase, основанной на блокчейн, и в качестве способа безопасной аутентификации клиентов на серверах. Но в то время как ZK-SNARK добились значительных успехов, в становлении и адаптации, ZK-STARK (которой занимается проект Starknet) теперь рекламируются как новая и улучшенная версия протокола, устраняющая многие из предыдущих недостатков ZK-SNARK.

Технология ZK-SNARK состоит из трех различных алгоритмов:

  • Генератор ключей: Генератор ключей задает параметр для генерации пары ключей. Здесь доверенный источник может сгенерировать пару закрытых или открытых ключей, а затем уничтожить закрытую часть. После этого, используя открытую часть, генерируется другая пара ключей. Здесь один используется для PROVER (доказывающий), другой — для VERIFIER (проверяющий).
  • Prover: PROVER (доказывающий) должен взять ключ доказательства и открытые данные, чтобы доказать свои знания. Здесь он будет свидетелем в частном порядке, а затем удовлетворит контекст, чтобы доказать свою точку зрения.
  • Verifier: VERIFIER (проверяющий) понадобится ключ верификации, чтобы убедиться в истинности или ложности утверждения. Он должен принять публичные данные и доказательство, чтобы оценить, верно оно или нет.

Примеры использования технологии Zero-Knowledge

Приватные переводы средств

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

Приватная аутентификация личности

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

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

КУС (Know Your Customer) (в переводе с англ) “Знай своего клиента “, можно проверить ваши данные не раскрывая ничего лишнего.

AML — Anti Money Laundering — это система включающая в себя меры по борьбе с отмыванием средств. Можно проверить “чистоту“ получения ваших средств без раскрытия других данных.

Какие инструменты есть в Aleo для разработки частных приложений?

Aleo предлагает ведущую в отрасли инфраструктуру и инструменты для написания приложений с нулевым знанием.

Leo . Чтобы писать частные приложения на Aleo было интуитивно и легко, команда Aleo разработала язык программирования под названием Leo. Leo выглядит и работает как традиционный язык программирования. Однако под капотом Лео гораздо сложнее. Leo абстрагирует низкоуровневые криптографические концепции и упрощает интеграцию частных приложений в ваш стек.
Leo представляет высокоуровневый синтаксис, который позволяет легко писать и интуитивно понятно выражать логику с нулевым знанием. На язык Leo повлияли традиционные языки программирования, такие как JavaScript, Scala и Rust, с упором на удобочитаемость и простоту использования. Под капотом Leo преобразует высокоуровневый код разработчика в схемы с нулевым разглашением.

Вы можете протестировать язык Leo здесь https://play.leo-lang.org/

Фото взято с сайта https://play.leo-lang.org/

Aleo Studio . Чтобы ускорить цикл разработки, команда Aleo создали Aleo Studio, первую IDE для написания приложений с нулевым разглашением. Aleo Studio — это интерактивная среда разработки для написания приложений с нулевым разглашением на Leo. Aleo Studio предназначена для разработчиков, чтобы упростить цикл разработки и упростить публикацию вашего проекта Leo в виде пакета в экосистеме.
Вы можете установить Aleo Studio себе на компьютер и попробовать создать действительно приватное приложение.

Фото взято с сайта https://www.aleo.studio/

Aleo Package Manager . Чтобы упростить объединение и совместное использование вашей работы, команда Aleo создала менеджер пакетов для Leo. Aleo Package Manager — первый менеджер пакетов для сетей с нулевым разглашением. Он включает в себя функции совместной работы, такие как команды и организации, которые упрощают работу с друзьями и коллегами над частными приложениями. Кроме того, Aleo Package Manager интегрирован с Aleo Studio, что позволяет легко импортировать и публиковать новые пакеты, не выходя из редактора.

Фото взято с сайта https://aleo.pm/

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

Более подробно со snarkOS вы можете ознакомиться посетив гитхаб https://github.com/AleoHQ/snarkOS

Фото взять с сайта https://github.com/AleoHQ/snarkOS

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

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

Website| Twitter| Discord| Github| Twitter Aleo Community| Youtube|Blog|
Community Blog

--

--

leonfish#1371

Ищу интересные крипто проекты и пишу о них.