Как ZeroSync поможет снизить затраты на проверку Биткоин-узлов

Как ZeroSync поможет снизить затраты на проверку Биткоин-узлов

Используя доказательства с нулевым разглашением, ZeroSync радикально сократит вычислительные затраты на загрузку Биткоин-клиента.

Доказательства с нулевым разглашением (ZKP) – это тема, которая обсуждается в индустрии уже более десяти лет. Даже сам Сатоши Накамото знал о нем как о примитиве, который можно было использовать, и идея его применения к Биткоину обсуждалась еще в 2010 году.

На мой взгляд, доказательства с нулевым разглашением всегда были одной из потенциальных «долгосрочных» функций Биткоина, которые никогда не имели надежной, конкретной реализации, но могли в конечном итоге раскрыться и создать огромную ценность и полезность для работы. Разве не очевидно, что криптографическое доказательство того, что какое-то утверждение верно или что вы обладаете некоторой информацией, не раскрывая ее, очень ценно? Особенно, в случае очень сложных вещей, используя относительно небольшие доказательства?

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

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

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

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

Знакомство с ZeroSync

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

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

ZeroSync работает над итеративным построением трех доказательств, которые обеспечат полную проверку исторической цепочки блоков, не требуя от пользователя ее фактической загрузки и обработки. Самое замечательное в этом то, что для достижения этой цели не требуется абсолютно никаких консенсусных изменений в протоколе Биткоина. Все происходит просто на уровне приложения, т. е. в программном обеспечении, которое вы запускаете. Оно по-прежнему проверяет и реализует те же правила консенсуса, что и обычный Биткоин-узел. По завершении разработки любой может просто выбрать использование такого узла ZeroSync и убедиться, что загружаемый им набор UTXO действителен. Или вы можете просто продолжать использовать Bitcoin Core и полностью проверять все обычным способом.

Доказательства заголовка блока

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

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

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

Проверка содержимого блока

Второе доказательство ориентировано на фактическую достоверность содержимого блока, однако, как и функция Assume Valid («считать достоверным») в Bitcoin Core, оно не доказывает достоверность данных свидетеля. Оно проверит лимит размера транзакции, правила инфляции монет и т. д., но не предоставит доказательства правильности подписей, хеш-блокировок и других данных свидетеля. Это доказательство, однако, будет включать Utreexo, чтобы интегрировать набор UTXO на каждой высоте блока в общий протокол ZKP для цепочки.

Первое доказательство просто покажет вам, что заголовки блоков действительны, но ничего не говорит о количестве монет или наборе UTXO. Это второе доказательство позволит доставить набор UTXO пользователю с ZKP, подтверждая, что все заголовки блоков, ведущие к этому набору UTXO, действительны, а также включая обязательство по каждому набору UTXO и всем изменениям в нем, доказывающее, что каждый переход от одного к другому также допустим. Это позволило бы полностью синхронизироваться с Assume Valid в Bitcoin Core по умолчанию только с UTXO, установленным на этой высоте блока, и крошечным доказательством, – и все это используя ту же модель доверия, что и для загрузки всего этого, и проверяя полные блоки напрямую.

Проверка каждой части данных свидетеля

Наконец, окончательное доказательство будет включать ZKP для заголовков блоков и построено на основе ZKP для Assume Valid, чтобы включить доказательство достоверности каждой части свидетельских данных в исторической цепочке. После этого этапа, с технической точки зрения, узел, использующий окончательную систему проверки ZeroSync, фактически сможет загружаться с одним доказательством и набором UTXO с более надежной моделью проверки, чем Bitcoin Core по умолчанию.

Обычно Bitcoin Core использует высоту блока Assume Valid по умолчанию, чтобы пропустить проверку свидетеля для любого блока перед ним (хотя пользователь может переопределить это с помощью assertvalid=0 и проверить свидетелей для каждого блока), но узел ZeroSync будет иметь доказательство правильности для данных-свидетелей каждого блока.

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

Снижение вычислительных затрат Биткоина

Если его дорожная карта будет успешной, этот проект может оказать огромное влияние на снижение вычислительных затрат для пользователей Биткоина, необходимых для запуска полностью проверяющего Биткоин-клиента. Учитывая, что размер блокчейна в настоящее время составляет почти 500 ГБ, существует очень ограничительная стоимость, которая не позволяет большому количеству пользователей запускать проверяющий клиент. Для его загрузки требуется доступная пропускная способность, а во многих частях мира пропускная способность по-прежнему непомерно дорогая. Также необходимо иметь устройство, достаточно мощное для обработки этих данных, тогда как во многих частях мира у людей нет ничего, кроме смартфона.

ZeroSync может снизить эту стоимость до нескольких гигабайт для набора UTXO, а доказательство с нулевым разглашением настолько маленькое, что может поместиться на дискете емкостью 1,44 МБ. И для этого не требуется никаких изменений в консенсусе или проведение форков.

Теперь, чтобы подвести итог, я хочу сделать довольно дерзкое замечание: ZeroSync создан с использованием языка Cairo, разработанного Starkware, полного по Тьюрингу языка, который можно использовать для создания систем с нулевым разглашением для произвольных вычислений. Starkware – компания, разрабатывающая ZKP для экосистемы Ethereum, в частности, роллапы с нулевым разглашением в качестве решения второго уровня. ZeroSync, создающий клиент синхронизации для Биткоина, осуществляющий проверку с помощью доказательств с нулевым разглашением, может оказаться первым случаем, когда реальная материальная разработка альткоина действительно произведет ценное улучшение для экосистемы Биткоина.

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

Это гостевой пост Шиноби, преподавателя-самоучки в Биткоин-сфере и ориентированного на технологии ведущего Биткоин-подкастов. Высказанные мнения являются его собственными и не обязательно отражают точку зрения BTC Inc. или Bitcoin Magazine.

Биткоин или недвижимость: лучшее средство сбережения во время войны Биткоин или недвижимость: лучшее средство сбережения во время войны Анализ различных ценностных предложений Биткоина и недвижимости во времена геополитической нестабильности. Леон Ванкум 18 февраля 2024
Вопросы от ноукоинеров: зов бычьего рынка Вопросы от ноукоинеров: зов бычьего рынка Как ноукоинеры решают, приобретать ли им биткоин? Как им это сделать? Как им взаимодействовать с Биткоином? На каждом этапе этого пути есть множество вариантов выбора. Сантьяго Варела 17 февраля 2024
Сэндвич «Рубен» и активация CTV Сэндвич «Рубен» и активация CTV Вы видели эти сэндвичи вместо фото профиля? Они являются социальным сигналом в попытке достичь консенсуса относительно активации изменений в Биткоине. George 203 11 февраля 2024