Начало работы с Aleo на ETHDenver
Алекс Пруден, главный операционный директор Aleo, выступил на ETHDenver2022 с презентацией “Начало работы с Aleo: Создание с помощью Leo приложений, основанных на Нулевом Разглашении, а также специальное объявление о конкурсе Aleo — ZPrize!”
Посмотреть оригинальное видео вы можете по ссылке: https://www.youtube.com/watch?v=vtDSDszs3Fs
Мой Диксорд: useless_dorozhkina#1394
В конце приведена небольшая справка с определениями некоторых терминов!
У нас небольшая проблема с показом слайдов, но для того, чтобы не просто сидеть и ждать все мое время выступления, я, пожалуй, начну. И мы разберемся со всем. Так что у нас будет немного другой формат, не тот, к которому я готовился. Но посмотрим, что с этим сможет сделать техническая команда, и я извиняюсь за эти неудобства!
Меня зовут Алекс, я главный исполнительный директор проекта под названием Aleo. Aleo — это платформа для приватных приложений, которая основывается на криптографии с Нулевым Разглашением*.
На самом деле, я очень рад, что мое выступление следующее после оратора, который много говорил об Извлекаемой Стоимости Майнера* и фронтраннинге*. Последняя проблема, в особенности, будет требовать технологий с поддержкой конфиденциальности, и ее могло бы решить Доказательство с Нулевым Разглашением. На самом деле, это один из способов применений, который мы видим для нашей новой платформы.
Если говорить немного подробнее, Aleo — это блокчейн уровня 1*, но в дополнение к этому у этой платформы имеется целый стек*, который мы разработали. Базовый уровень — это то, что мы называем snarkOS*, который сам по себе является блокчейном. Этот блокчейн является сетью, основанной на Доказательстве Выполненной Работы, и, что интересно, на ней майнерам самим приходится вычислять Доказательства с Нулевым Разглашением, и это часть их процесса майнинга. Мы создали ее таким образом, чтобы, будем надеяться, поощрять ускорение Доказательства с Нулевым Разглашением. Также как мы видели развитие майнинга Биткоина, где, ну знаете, Сатоши майнил Биткоин на своем центральном процессоре 10 лет назад, а теперь имеются целые ASIC-фермы*, верно? Вы получили продвижение на уровне алгоритма, на уровне программного обеспечения и на уровне оборудования.
Так что мы пытаемся сделать нечто подобное на нашем уровне 1, потому что, в конце концов, эта новая технология очень захватывает, но, к сожалению, ей еще есть куда развиваться в ускорении. Поэтому, надеюсь, мы сможем стимулировать его через наш алгоритм консенсуса*.
Это что-то вроде базового уровня блокчейна. В отличие от других блокчейнов, особенно Ethereum и EthereumScan, у Aleo нет модели выполнения на сети. Мы используем модель выполнения вне сети, которая называется snarkVM*. И, на самом деле, это немного похоже на то, как работают ZK-rollup*, где вы генерируете Доказательство с Нулевым Разглашением вне сети относительно определенного вычисления и предоставляете результат на сеть, чтобы кто угодно мог его верифицировать. У этого есть несколько преимуществ: первое из них — это приватность, у которой я упомянул пару минут назад. Как предыдущий докладчик очень убедительно указал, у того факта, что майнеры могут видеть все, что вы делаете на каждом этапе процесса выполнения вашей транзакции, есть как плюсы, так и минусы. В нашей модели, вы единственный, кто видит входные значения для вашего вычисления, и из него вы предоставляете Доказательство с возможным результатом, который могут проверить другие люди. И это, по сути, и есть то, как вы взаимодействуете с программами. В такой модели майнер смотрит на транзакцию или на Доказательство и не видит ничего, что они могли бы использовать, кроме разве что комиссии и транзакции. Так что нет никакой Извлекаемой Майнерами Ценности.
Это очень похоже на то, как работает Zcash*, хорошая эвристика — это думать об Aleo, как если бы Ethereum и Zcash соединились и родили ребенка. Потому что у Zcash очень похожая модель, в которой вы предоставляете Доказательство как транзакцию, и затем майнеры могут верифицировать.
Последняя вещь, которую я затрону здесь, другое преимущество этого — эффективность. Пересчитывать каждую транзакцию, каждое переходное состояние за все время для каждой транзакции очень дорого, верно? Это то, почему существует газ, почему существует множество особенностей, почему, вероятно, если транзакция немного медленная, так это из-за этого требования. Поэтому в системе, где только одна сторона доказывает, а все остальные верифицируют, вы можете получить гораздо более высокую эффективность.
А то, о чем я собирался сегодня рассказывать, но, скорее всего, не смогу из-за технических неполадок, это Язык Программирования Leo. Мы создали наш собственный язык программирования и компилятор*, чтобы упростить для разработчиков написание приложений, основанных на Доказательствах с Нулевым Разглашением. Поднимите руки те из присутствующих, у которых есть степень магистра или доктора наук в криптографии. Я так и думал! По-моему, это самая захватывающая появляющаяся технология и, пожалуй, самая недооцененная существующая сегодня технология. И в реальности она недоступна почти каждому из разработчиков в экосистеме, поэтому то, что мы пытаемся сделать в Aleo особенно с помощью Leo — это сделать что-то, чтобы вложить эту силу в ваши руки! Чтобы сделать для вас возможным использовать эту технологию, и чтобы при этом необязательно было получать докторскую степень в криптографии.
На данный момент то, как работает язык очень похоже на Rust, есть элементы, схожие и с Java, так что он будет казаться очень знакомым любому, кто программировал в экосистеме блокчейна.
К тому же, у нас есть компилятор, который берет программы, компилирует их до формата низкоуровневого доказательства, который называется R1CS. И одна важная вещь об этом компиляторе, которую я хочу упомянуть, это то, что мы проделали огромную работу, чтобы официально верифицировать его. И я не думаю, что в последние пару десятилетий существовал какой-либо язык программирования, который был официально верифицирован, если я правильно помню. мы думаем, что это очень важно, потому что, мне не нужно говорить никому из этой публики, что баги случаются. И это достаточно плохо, когда они внесены возможными программистами, или пропущены аудиторами, но они также могут случиться и на стадии вычисления, когда программы становятся скомпилированными. И это почти самый худший тип багов, потому что никто не знает, что они есть, пока не наткнется на них. И даже хуже в этом контексте, когда вы говорите о приватных программах либо в контексте уровня 2*, либо в ZK-Rollup, либо на платформе Leo, у вас может быть баг, и возможно вы даже никогда не узнаете, что он существует или что был эксплуатирован*. На самом деле, несколько лет назад был баг в Zcash, может, кто-то из вас помнит. Это была ошибка бесконечного минта, и кто-то возможно заминтил бесконечное количество токенов Zcash. И я говорю “возможно”, потому что, на самом деле, мы понятия не имеем, если баг был когда-либо эксплуатирован. И, очевидно, это плохо, когда вы говорите о системах, которые в теории созданы, чтобы переносить много ценного.
В любом случае, мы построили этот формально верифицированный компилятор, понимаете, я не могу остановиться, я не могу помочь если ты написал баг, но компилятор математически будет не способен отклониться от первоначально задуманной разработчиком программы.
Итак, это Leo, и поверх Leo у нас есть, по сути, материал об опыте разработчика. И все до сих пор было замечательно. Я работаю в сфере примерно 7 лет, и это просто невероятно видеть, как разрабатывалась, в частности, экосистема Ethereum. Но я помню прежние дни, когда пытались написать программы на Solidity, и многие вещи не существовали тогда, и люди со временем разрабатывали их. Отличные открытия, например, такие маленькие вещи, как Truffle*, Ganache*. Вещи, которые упрощают вам написание, развертывание, тестирование вашего приложения. И мы пытаемся построить все это авансом, чтобы сделать язык очень удобным для пользователя и/или разработчика.
Вот и все! И последняя вещь, которой я уделю время… Я думаю, у нас есть немного времени на вопросы, но… Да, последняя вещь, о которой я поговорю — это некоторые способы применения, так как я уже затрагивал их. Напомню, один из них, который, по-моему, является очень важным, это наша цель бороться с проблемой Извлекаемой Стоимости Майнера и фронтраннингом. Я думаю, в некоторых случаях, все не так плохо, допустим, в сделках с низкой стоимостью. Но, если, например, вы пытаетесь провести внебиржевую сделку на сети, все становится гораздо сложнее. И, мы считаем, что вы сможете это сделать на такой платформе, как Aleo, то есть иметь внебиржевую ликвидность на сети. Это решает проблему Извлекаемой Стоимости Майнера, а также разработка на подобной архитектуре делает еще кое-что. Она делает соответствие нормативным требованиям проще! Я думаю, это немного противоречит интуиции, когда многие люди думают о технологиях, усиливающих приватность. Криптография с Нулевым Разглашением особенно интересна, потому что она позволяет вам доказать факт без необходимости подтверждать, почему он действителен. Занимаясь этим, вы можете создать, например, регулируемый стейблкоин, который бы говорил: “Хэй! Совершать с этим стейблкоином сделки могут только те люди, кто не внесен в черные списки каких-либо государств”. Конечно, тогда бы вам бы пришлось справиться с частью идентифицирования, я не буду брать это в расчет. Смысл в том, что вы можете закодировать логику, прямо как вы кодируете логику в программах на Solidity. Но в нашем случае эта логика полностью приватна, поэтому мне не нужно волноваться о том, с кем я совершаю сделку, или скорее регулятору не нужно знать, кто с кем совершает сделку, но он может быть уверен, что в ней не участвует человек, с которым не хотелось бы совершать сделок по той или иной причине. И это не только хорошо с точки зрения соответствия нормативным требованиям, это также и гораздо дешевле! Вот почему множество банков по всему миру, например ЕУ, исследуют эту технологию, чтобы использовать по причинам соответствия. Потому что при том, как работает соответствие сейчас, существуют целые департаменты людей, чья работа — это просматривать транзакции и выбирать: “Вот эта выглядит подозрительно. Вот эта выглядит подозрительно. А эта — нормально.” Так что это возможная мера экономии огромных средств.
Другое приложение, которое меня очень захватывает, это гейминг. Как много людей здесь играло в “Dark Forest”? О боже. Вам всем нужно бросить все, что вы сейчас делаете, и идти посмотреть игру. Я думаю, сейчас идет новый раунд. Итак, “Dark Forest”, на самом деле, — это игра на Ethereum, это игра со спрятанной информацией, стратегия в космическом стиле. Но она очень крутая по одной очень конкретной причине. В ней Доказательство с Нулевым Разглашением используется, чтобы замаскировать или спрятать позиции отдельных игроков. Если вы думаете об игре на такой платформе, как Ethereum, где все по умолчанию публично, то это как игра в шахматы. Знаете как в шахматах, я могу видеть твои фигуры, ты можешь видеть мои фигуры, и мы просто их двигаем, мы знаем одинаковую информацию. Но существует много-много очень интересных игр, основанных на концепции спрятанной информации. И из-за прозрачности очень сложно создать подобную игру на базовом уровне такой платформы, как Ethereum, верно? Но, используя что-то вроде Leo, вы можете создать приложение, похожее на “Dark Forest”, или на, если кто-то когда-нибудь играл, “Werewolf”. Это, кстати, потрясающая игра. Или “Among Us”. Или даже простой пример — морской бой. Вы могли бы создать нечто подобное на Aleo. Мы считаем, что эта категория не была исследована, и мы очень заинтересованы в ней.
И последнее, о чем я поговорю, это личность. Многие блокчейны, многие приложения сегодня направленны на децентрализацию личности. Это очень сложная проблема, но мы живем в мире, в котором все больше распространяются цифровые устройства. Так что решение этой проблемы становится все более важным. Неважно, какой способ применения, неважно, как она решится, будь то стандарты W3C* или Суверенной Идентичности* — все они требуют приватность в той или иной степени. Потому что, представим, что вы прислали мне что-то на мой кошелек Ethereum. Вы не только знаете, что у меня на нем, вы также можете видеть все, что я делал за все время, верно? Если вы примените это к личности, то это как, если бы я показывал вам свое водительское удостоверение, а вы могли бы узнать все мои финансовые сделки. Поэтому личность — это еще одно применение, в котором мы очень заинтересованы.
Я закончу немного раньше, но я хотел бы сказать вам еще об одной вещи, о новой инициативе. Несколько вещей об Aleo: мы запустим Майннет в третьем квартале, мы только сегодня завершили наш Стимулируемый Тестнет. Мы воодушевлены тем, что у нас отличные спонсоры, на второй серии финансирования, возглавляемой Core Capital и SoftBank, мы собрали 200 миллионов. Так что мы очень вдохновлены вынести эту технологию в мир в третьем квартале.
Но позвольте рассказать вам об одной вещи, над которой мы работаем. На самом деле, не только над Aleo, но мы пытаемся организовать это в масштабах индустрии. Это сотрудничество для ускорения криптографии с Нулевым Разглашением. Как я уже упомянул, эти алгоритмы и эта технология очень волнительны, но они находятся на стадии раннего развития. И, по-моему, создавать экономический стимул, чтобы ускорять этот процесс, станет очень важным. В конце концов, будет важно реализовать это на практике. Я немного староват, наверное, старше многих людей здесь, но я помню в Интернете раньше не все по умолчанию было https. И одна из причин, по которой все стало https по умолчанию, это то, что компания Intel и другие компании, которые производят чипы, начали в оборудовании вкладываться в криптографические инструкции. И из-за этого все стало как минимум в 100 раз быстрее, произошло улучшение на порядки в этом основном алгоритме. Мы хотим сделать нечто подобное с криптографией с Нулевым Разглашением! Мы хотим сделать эти необходимые алгоритмы, которые позволят доказывающим и проверяющим создавать магию проверяемых вычислений. И это очень захватывающий ранний домен. Мы организуем мероприятие под названием ZPrize, мы проведем его совместно с Ethereum Foundation и другими. Мы расскажем немного больше на следующей неделе. Но, в общем, идея в том, чтобы провести соревнование вроде X Prize* или DARPA Grand Challenge*, если вы знаете о таком. Я уже упомянул, что мы собрали много денег, мы выделим 10 миллионов долларов из этих денег на то, чтобы стимулировать команды на участие и создать оптимизированных доказывающих и проверяющих, чтобы сделать эту технологию реальной для всех! Единственное требование для нас это то, что все исходные коды становятся открытыми*. И как человек, который работает в Aleo два года, и еще больше в сфере, я думаю, что одна из самых захватывающих вещей в этой индустрии, в этой экосистеме — это то, что все основывается на сообществе, на открытом программном обеспечении, на сотрудничестве для того, чтобы построить нечто, что не могли создать раньше! Посмотрите, эта конференция — это отличный пример. Все собрались вместе вокруг экосистемы Ethereum, которая зародилась в метафорическом гараже как проект с открытым программным обеспечением. Я надеюсь, через 5 или 10 лет будет огромное число новых проектов, связанных и несвязанных с Aleo, которые смогут использовать эту технологию, которая зародится в результате соревнования ZPrize! И она сделает возможным появление абсолютно новых приложений, которых еще никто не видел и о которых мы даже мечтать не могли!
-Алекс, на самом деле, у нас осталось еще две минуты, если хочешь, можешь быстро ответить на какой-нибудь вопрос.
-Вы рассказали интереснейшие вещи! Не могли бы вы рассказать немного о семантике программирования Aleo? Что может быть сделано приватным, а что публичным? Например, если кто-то хочет создать децентрализованную биржу, будет ли обменный курс являться публичным, или он может быть и частным и публичным в зависимости от программиста?
Да, это отличный вопрос! Как у программиста, у вас есть гибкости в выборе того, что сделать приватным, а что — публичным. И вы можете сделать это с помощью концепции, которые некоторые называют Ключ Просмотра*. По сути то, как работает Aleo, если немного углубиться в подробности для того, чтобы ответить на этот вопрос, в Aleo есть несколько Доказательств с Нулевым Разглашением, которые завернуты почти как слои в луке. И вы можете использовать этот Ключ Просмотра, чтобы опубликовать его как часть транзакции. Тогда люди смогут взять этот Ключ, эффективно декодировать часть транзакции и использовать это, чтобы выяснить, на какой стадии находится программа, или как ваши переходы между шагами повлияли на эту стадию. И с помощью этого у вас и появляются такие многопользовательские приложения, как децентрализованные биржи. То есть у вас есть гибкость в том, чтобы выбрать что сделать публичным, а что — нет. Конечно, если вы хотите сделать все публичным, вы легко можете просто опубликовать Ключ Просмотра для всего, также как у Ethereum. Но тем не менее, вы можете выбирать, чем хотите поделиться. То есть все приватно по умолчанию, а не публично по умолчанию. И, если у вас есть больше вопросов о деталях, я думаю, что у меня уже кончилось время выступления, но я могу ответить вам лично.
Доказательство с Нулевым Разглашением — интерактивный криптографический протокол, позволяющий одной из взаимодействующих сторон («The verifier» — проверяющей) убедиться в достоверности какого-либо утверждения (обычно математического), не имея при этом никакой другой информации от второй стороны («The prover» — доказывающей).
Извлекаемая Стоимость Майнера — показатель прибыли, которую майнер (или валидатор, секвенсор и др.) может получить за счет своей способности включать, исключать или изменять порядок транзакций по своему усмотрению в создаваемых ими блоках.
Фронтраннинг — происходит тогда, когда один участник, зная о сделке другого участника, получает прибыль за счет выполнения своей транзакции перед ним. В среде DEX такие атаки доступны всем, то есть майнерам, арбитражникам, трейдерам. Майнерам даже проще проводить такие атаки за счет того, что они могут выбрать последовательность транзакций в блоке.
Блокчейн уровня 1 — относится к базовым сетям, таким как Bitcoin, BNB Chain или Ethereum, и их базовым инфраструктурам.
Стек — абстрактный тип данных, представляющий собой список элементов, организованных по принципу LIFO (англ. last in — first out, «последним пришёл — первым вышел»).
snarkOS — децентрализованная операционная система Aleo для создания приватных приложений.
ASIC — интегральная схема, специализированная для решения конкретной задачи. Такие интегральные схемы применяются в конкретном устройстве и выполняют строго ограниченные функции, характерные только для данного устройства; вследствие этого выполнение функций происходит более эффективно.
Алгоритм консенсуса — это механизм, который проверяет верность тех или иных правил, то есть он проверяет, что транзакция верна и протокол соблюден.
snarkVM — виртуальная машина для Исполнений с Нулевым Разглашением.
ZK-rollup — Zero Knowledge Rollup. Объединяют сотни транзакций вне цепочки и генерируют криптографическое Доказательство с Нулевым Разглашением.
Zcash — криптовалюта с открытым исходным кодом, разработанная компанией Zerocoin Electric Coin Company, обеспечивающая конфиденциальность и выборочную прозрачность транзакций. Платежи Zcash публикуются в общедоступной цепочке блоков, но отправитель, получатель и сумма транзакции остаются тайными.
Компилятор — программа, переводящая текст, написанный на языке программирования, в набор машинных кодов.
Уровень 2 — это сторонняя надстройка над уровнем 1, которая увеличивает число нодов и, следовательно, пропускную способность системы. В настоящее время внедряется множество решений второго уровня. Эти решения используют смарт-контракты для автоматизации транзакций.
Эксплойт (от англ. exploit — эксплуатировать) — компьютерная программа, фрагмент программного кода или последовательность команд, использующие уязвимости в программном обеспечении и применяемые для проведения атаки на вычислительную систему. Целью атаки может быть как захват контроля над системой, так и нарушение её функционирования.
Truffle — это среда разработки мирового класса, предоставляющая платформу тестирования и портфель активов для «Blockchain» используя «Máquina Virtual Ethereum (Виртуальную Машину Ethereum — EVM)», чтобы облегчить жизнь разработчикам.
Ganache — является блокчейном личным из Ethereum для создания и тестирования разработки, например Dapps и смарт-контрактов. Он доступен как настольное приложение, так и инструмент командной строки (ранее известный как ТестРПЦ). Ganache доступен для Windows, Mac и Linux.
W3C — Консорциум Всемирной паутины — организация, разрабатывающая и внедряющая технологические стандарты для Всемирной паутины.
Суверенная идентичность (Self-Sovereign Identity, SSI) — это набор сведений о личности, которыми она может управлять, делиться с любыми частными лицами или публичными институтами, и отзывать к ним доступ в любое время по своему желанию.
X Prize — премиальный фонд поддержки революционных инноваций, направленных на улучшение жизни всего человечества. Премии присуждаются в четырех категориях: энергетика и окружающая среда, освоение окружающего пространства, образование и развитие, биология и медицина.
DARPA Grand Challenge — соревнования автомобилей-роботов, финансируемые правительством США. Целью этих соревнований является создание полностью автономных транспортных средств.
Открытое программное обеспечение — это программное обеспечение с открытым исходным кодом. Исходный код создаваемых программ открыт, то есть доступен для просмотра и изменения. Это позволяет использовать уже созданный код для создания новых версий программ, для исправления ошибок и, возможно, помочь в доработке открытой программы.
Ключ Просмотра — один из двух наборов приватных и публичных криптографических ключей, которые есть у каждого счёта. При этом приватный ключ просмотра необходим для просмотра всех транзакций, связанных со счётом.