Как zk-SNARK улучшает работу Gate.io Доказательство резервов

Продвинутый10/12/2023, 4:19:14 PM
Будучи одним из пионеров в отрасли, внедривших доказательство резервов, Gate.io использует технологию zk-SNARK для улучшения доказательств резервов, обеспечивая пользователям превосходную безопасность активов и защиту конфиденциальности.

Имея более 13 миллионов пользователей, Gate.io в полной мере осознает важность безопасности средств и является пионером в отрасли в принятии эффективных мер. Gate.io была одной из самых ранних бирж, внедривших доказательство резервов (PoR), раскрыв свой PoR еще в мае 2020 года. Только после того, как в 2022 г. компания FTX незаконно присвоила средства пользователей, что привело к кризису ликвидности и последующему банкротству, доказательство резервов получило широкое признание как решение для обеспечения безопасности средств пользователей и повышения надежности платформы.

После инцидента с FTX компания Gate.io незамедлительно выпустила свое второе доказательство резервов. Вскоре после ее выхода основатель Ethereum Виталик Бутерин опубликовал статью под названием "Безопасная CEX: доказательство платежеспособности и не только", в которой обсуждалось, как биржи могут лучше продемонстрировать свою платежеспособность. В статье предлагается интегрировать передовые технологии, такие как zk-SNARK, поверх традиционных доказательств резервов для обеспечения более публичного, прозрачного и аутентичного PoR. Gate.io планирует использовать новую технологию, упомянутую в статье, для модернизации своего доказательства резервов, предлагая пользователям повышенную конфиденциальность и подлинную безопасность активов.

Что такое доказательство резервов?

Под доказательством резервов (Proof of Reserves, PoR) понимается проверка балансов, хранящихся на криптовалютных биржах или в других финансовых учреждениях, проверка соответствия суммы активов, зарегистрированной компанией, реально хранящимся активам. Если сумма активов в резервах превышает сумму активов, депонированных пользователями, т.е. коэффициент обеспеченности превышает 100%, это доказывает, что средства пользователей обеспечены реальными активами в соотношении 1:1.

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

Передача активов - демонстрация того, что биржа имеет достаточные активы

В 2011 году MtGox, крупнейшая на тот момент Биткойн-биржа, доказала, что она владеет определенными средствами, выполнив транзакцию, в результате которой 424 242 BTC были переведены на ранее объявленный адрес. Этот метод мог подтвердить только активы и не мог доказать обязательства по обмену.

Подтверждение обязательств

Обязательства биржи - это активы, депонированные ее пользователями. Самый простой способ доказать наличие у пользователей активов - это опубликовать список, содержащий счета и балансы пользователей. Каждый пользователь может получить доступ к этому списку и проверить правильность баланса на своем счете. Однако этот метод имеет очевидные недостатки:

  1. Нет никакой гарантии, что список, предоставленный биржей, является подлинным.

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

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

Как показано на рисунке, дерево Меркла представляет собой древовидную структуру данных. Данные на нижнем уровне называются "листовыми узлами", а средние можно назвать "промежуточными узлами". Два листовых узла могут подвергаться хешированию (обработке любого входного значения для получения определенного значения) для получения значения промежуточного узла. Затем два промежуточных узла хэшируются для получения уникального выходного значения для узла следующего уровня. После последовательных слоев обработки в конечном итоге получается корневой узел (Root) дерева Меркла. Это значение уникально, и любое изменение в листовом узле приведет к изменению в корневом узле.

Доказательство резерва в деревьях Меркла (Источник: Vitalik)

В этом методе общая сумма активов, хранящихся на бирже от имени ее пользователей, определяется путем накопления значений слой за слоем. Однако даже после вставки как учетной записи пользователя, так и данных о балансе непосредственно в листовые узлы, остается незначительный риск утечки информации. Если взять в качестве примера иллюстрацию, то пользователь, отмеченный зеленым цветом (Charlie), может получить доступ к частичной информации Дэвида, а также к балансам Алисы и Боба с левой стороны. Соответственно, в листовых узлах произошли технические усовершенствования:

  1. Как показано на рисунке, идентификатор учетной записи пользователя хешируется вместе с определенным значением.

  2. Балансы пользователей рассредоточены. Например, 10ETH Чарли можно разделить на две суммы 5ETH и поместить их в два разных листовых узла.

  3. Идентификатор пользователя и баланс хэшируются отдельно, а затем полученные значения хэшируются еще раз. Доказательство резервного фонда Gate.io использует этот метод.

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

Как правило, отрицательные балансы инициируются злонамеренными биржами. Например, если биржа неправомерно присвоила 500ETH, то, согласно стандартным расчетам, активы, которыми фактически владеет биржа, могут быть меньше требуемого обеспечения, возможно, даже меньше 100%, что свидетельствует о неправомерном присвоении. Однако биржа может создать счет, подобный счету Генри с балансом -500ETH в приведенной иллюстрации, чтобы общая стоимость активов дерева Меркла была равна или меньше стоимости активов, которыми располагает биржа после незаконного присвоения, создавая тем самым иллюзию того, что уровень обеспечения превышает 100%.

Влияние счетов с отрицательной стоимостью на иллюстрацию Деревьев Меркла (Источник: Vitalik)

Для решения этой проблемы такие биржи, как Gate.io, начали использовать технологию доказательства нулевого знания zk-SNARK для улучшения своих доказательств резервов.

Что такое доказательства с нулевым знанием и zk-SNARK?

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

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

zk-SNARK означает лаконичную, неинтерактивную технику доказательства с нулевым знанием. Он подвергается "начальной доверенной настройке" для создания общей эталонной строки (Common Reference String, CRS), к которой все проверяющие могут получить прямой доступ. Это аналогично системе оценок на экзаменах, где zk-SNARK напрямую загружает правильные ответы. Затем экзаменуемые могут проверить свои ответы (отправив свое решение вопроса в внутреннюю систему, которая немедленно выдает правильный или неправильный результат), что делает этот процесс высокоэффективным.

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

Как Gate.io использует zk-SNARKs для улучшения резервных доказательств

Gate.io интегрирует технологию zk-SNARK с деревьями Меркла для создания более прозрачных, защищенных от посторонних глаз и устойчивых к взлому резервных доказательств.

Процесс внедрения

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

  2. Снимок баланса пользователя
    В определенный момент времени делается снимок баланса пользователей на платформе. Фактическое состояние счета рассчитывается с использованием таких данных, как невыполненные заказы, суммы заимствований, причитающиеся проценты и нереализованные прибыли/убытки.

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

  4. Пакетная обработка активов пользователей
    Чистые активы биржи подтверждаются как сумма чистых активов каждого пользователя. Затем, на основе чистых активов пользователей, строится дерево Меркла.
    (Основная причина пакетной обработки заключается в том, что Gate.io насчитывает 13 миллионов пользователей. Одновременная обработка всех пользовательских данных предъявила бы экстремальные требования к аппаратному и программному обеспечению. Пакетная обработка более экономична по времени и затратам без ущерба для безопасности или конфиденциальности данных).

  5. Реализация ограничений цепи
    ① До того, как чистые активы пользователя будут вставлены в дерево Меркла, узел, соответствующий идентификатору этого пользователя, пуст.
    ② На основании списка активов пользователя и цены каждого актива рассчитайте общую сумму активов/пассивов пользователя. Общая сумма активов всегда должна превышать общую сумму обязательств.
    ③ Добавьте активы/пассивы пользователя к активам/пассивам биржи.
    ④ Используя идентификатор пользователя, общую сумму активов/пассивов и список активов, вычислите хэш статуса пользователя. Вставьте статус пользователя в дерево Меркла, чтобы получить новый корень Меркла.
    ⑤ Перед созданием операции для одного пользователя хэш-значение корня дерева должно совпадать с хэш-значением корневого узла после создания операции для последующего пользователя.
    (Ограничение ① предотвращает неправдивые данные узла, ② предотвращает счета с отрицательными значениями, а ⑤ гарантирует, что данные пользователя остаются неизменными до и после операций).

  6. Генерация резервного доказательства
    Используя схему zk-SNARK, определите количество пользовательских активов, а затем выдайте отчет о резервном доказательстве.

Для более подробного объяснения процесса расчета резервов и применения кода нажмите здесь.

Результативность

На машине с 32 ядрами и 128 ГБ оперативной памяти вычисление доказательств активов для 10 млн. пользователей занимает 15 дней. Вычисления резервного доказательства могут быть распараллелены; так, при использовании 10 машин это займет всего 1,5 дня.

Заключение

Внедрение zk-SNARKs - это значительное обновление для Gate.io. Доказательства резервирования и существенный шаг в защите пользовательских активов. Эта превосходная защита безопасности и конфиденциальности повышает доверие пользователей и устанавливает новый стандарт для криптовалютной индустрии. Являясь лидером отрасли, Gate.io теперь открыто публикует свой код, надеясь способствовать более прозрачному и безопасному развитию отрасли. В будущем Gate.io продолжит свой дух инноваций, исследуя и становясь первопроходцем в более безопасном, всеобъемлющем криптографическом будущем с защитой частной жизни вместе со своими пользователями.

Ссылки

Автор: Wayne
Переводчик: Piper
Рецензент(ы): Edward、KOWEI、Elisa、Ashley He、Joyce
* Информация не предназначена и не является финансовым советом или любой другой рекомендацией любого рода, предложенной или одобренной Gate.io.
* Эта статья не может быть опубликована, передана или скопирована без ссылки на Gate.io. Нарушение является нарушением Закона об авторском праве и может повлечь за собой судебное разбирательство.

Как zk-SNARK улучшает работу Gate.io Доказательство резервов

Продвинутый10/12/2023, 4:19:14 PM
Будучи одним из пионеров в отрасли, внедривших доказательство резервов, Gate.io использует технологию zk-SNARK для улучшения доказательств резервов, обеспечивая пользователям превосходную безопасность активов и защиту конфиденциальности.

Имея более 13 миллионов пользователей, Gate.io в полной мере осознает важность безопасности средств и является пионером в отрасли в принятии эффективных мер. Gate.io была одной из самых ранних бирж, внедривших доказательство резервов (PoR), раскрыв свой PoR еще в мае 2020 года. Только после того, как в 2022 г. компания FTX незаконно присвоила средства пользователей, что привело к кризису ликвидности и последующему банкротству, доказательство резервов получило широкое признание как решение для обеспечения безопасности средств пользователей и повышения надежности платформы.

После инцидента с FTX компания Gate.io незамедлительно выпустила свое второе доказательство резервов. Вскоре после ее выхода основатель Ethereum Виталик Бутерин опубликовал статью под названием "Безопасная CEX: доказательство платежеспособности и не только", в которой обсуждалось, как биржи могут лучше продемонстрировать свою платежеспособность. В статье предлагается интегрировать передовые технологии, такие как zk-SNARK, поверх традиционных доказательств резервов для обеспечения более публичного, прозрачного и аутентичного PoR. Gate.io планирует использовать новую технологию, упомянутую в статье, для модернизации своего доказательства резервов, предлагая пользователям повышенную конфиденциальность и подлинную безопасность активов.

Что такое доказательство резервов?

Под доказательством резервов (Proof of Reserves, PoR) понимается проверка балансов, хранящихся на криптовалютных биржах или в других финансовых учреждениях, проверка соответствия суммы активов, зарегистрированной компанией, реально хранящимся активам. Если сумма активов в резервах превышает сумму активов, депонированных пользователями, т.е. коэффициент обеспеченности превышает 100%, это доказывает, что средства пользователей обеспечены реальными активами в соотношении 1:1.

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

Передача активов - демонстрация того, что биржа имеет достаточные активы

В 2011 году MtGox, крупнейшая на тот момент Биткойн-биржа, доказала, что она владеет определенными средствами, выполнив транзакцию, в результате которой 424 242 BTC были переведены на ранее объявленный адрес. Этот метод мог подтвердить только активы и не мог доказать обязательства по обмену.

Подтверждение обязательств

Обязательства биржи - это активы, депонированные ее пользователями. Самый простой способ доказать наличие у пользователей активов - это опубликовать список, содержащий счета и балансы пользователей. Каждый пользователь может получить доступ к этому списку и проверить правильность баланса на своем счете. Однако этот метод имеет очевидные недостатки:

  1. Нет никакой гарантии, что список, предоставленный биржей, является подлинным.

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

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

Как показано на рисунке, дерево Меркла представляет собой древовидную структуру данных. Данные на нижнем уровне называются "листовыми узлами", а средние можно назвать "промежуточными узлами". Два листовых узла могут подвергаться хешированию (обработке любого входного значения для получения определенного значения) для получения значения промежуточного узла. Затем два промежуточных узла хэшируются для получения уникального выходного значения для узла следующего уровня. После последовательных слоев обработки в конечном итоге получается корневой узел (Root) дерева Меркла. Это значение уникально, и любое изменение в листовом узле приведет к изменению в корневом узле.

Доказательство резерва в деревьях Меркла (Источник: Vitalik)

В этом методе общая сумма активов, хранящихся на бирже от имени ее пользователей, определяется путем накопления значений слой за слоем. Однако даже после вставки как учетной записи пользователя, так и данных о балансе непосредственно в листовые узлы, остается незначительный риск утечки информации. Если взять в качестве примера иллюстрацию, то пользователь, отмеченный зеленым цветом (Charlie), может получить доступ к частичной информации Дэвида, а также к балансам Алисы и Боба с левой стороны. Соответственно, в листовых узлах произошли технические усовершенствования:

  1. Как показано на рисунке, идентификатор учетной записи пользователя хешируется вместе с определенным значением.

  2. Балансы пользователей рассредоточены. Например, 10ETH Чарли можно разделить на две суммы 5ETH и поместить их в два разных листовых узла.

  3. Идентификатор пользователя и баланс хэшируются отдельно, а затем полученные значения хэшируются еще раз. Доказательство резервного фонда Gate.io использует этот метод.

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

Как правило, отрицательные балансы инициируются злонамеренными биржами. Например, если биржа неправомерно присвоила 500ETH, то, согласно стандартным расчетам, активы, которыми фактически владеет биржа, могут быть меньше требуемого обеспечения, возможно, даже меньше 100%, что свидетельствует о неправомерном присвоении. Однако биржа может создать счет, подобный счету Генри с балансом -500ETH в приведенной иллюстрации, чтобы общая стоимость активов дерева Меркла была равна или меньше стоимости активов, которыми располагает биржа после незаконного присвоения, создавая тем самым иллюзию того, что уровень обеспечения превышает 100%.

Влияние счетов с отрицательной стоимостью на иллюстрацию Деревьев Меркла (Источник: Vitalik)

Для решения этой проблемы такие биржи, как Gate.io, начали использовать технологию доказательства нулевого знания zk-SNARK для улучшения своих доказательств резервов.

Что такое доказательства с нулевым знанием и zk-SNARK?

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

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

zk-SNARK означает лаконичную, неинтерактивную технику доказательства с нулевым знанием. Он подвергается "начальной доверенной настройке" для создания общей эталонной строки (Common Reference String, CRS), к которой все проверяющие могут получить прямой доступ. Это аналогично системе оценок на экзаменах, где zk-SNARK напрямую загружает правильные ответы. Затем экзаменуемые могут проверить свои ответы (отправив свое решение вопроса в внутреннюю систему, которая немедленно выдает правильный или неправильный результат), что делает этот процесс высокоэффективным.

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

Как Gate.io использует zk-SNARKs для улучшения резервных доказательств

Gate.io интегрирует технологию zk-SNARK с деревьями Меркла для создания более прозрачных, защищенных от посторонних глаз и устойчивых к взлому резервных доказательств.

Процесс внедрения

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

  2. Снимок баланса пользователя
    В определенный момент времени делается снимок баланса пользователей на платформе. Фактическое состояние счета рассчитывается с использованием таких данных, как невыполненные заказы, суммы заимствований, причитающиеся проценты и нереализованные прибыли/убытки.

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

  4. Пакетная обработка активов пользователей
    Чистые активы биржи подтверждаются как сумма чистых активов каждого пользователя. Затем, на основе чистых активов пользователей, строится дерево Меркла.
    (Основная причина пакетной обработки заключается в том, что Gate.io насчитывает 13 миллионов пользователей. Одновременная обработка всех пользовательских данных предъявила бы экстремальные требования к аппаратному и программному обеспечению. Пакетная обработка более экономична по времени и затратам без ущерба для безопасности или конфиденциальности данных).

  5. Реализация ограничений цепи
    ① До того, как чистые активы пользователя будут вставлены в дерево Меркла, узел, соответствующий идентификатору этого пользователя, пуст.
    ② На основании списка активов пользователя и цены каждого актива рассчитайте общую сумму активов/пассивов пользователя. Общая сумма активов всегда должна превышать общую сумму обязательств.
    ③ Добавьте активы/пассивы пользователя к активам/пассивам биржи.
    ④ Используя идентификатор пользователя, общую сумму активов/пассивов и список активов, вычислите хэш статуса пользователя. Вставьте статус пользователя в дерево Меркла, чтобы получить новый корень Меркла.
    ⑤ Перед созданием операции для одного пользователя хэш-значение корня дерева должно совпадать с хэш-значением корневого узла после создания операции для последующего пользователя.
    (Ограничение ① предотвращает неправдивые данные узла, ② предотвращает счета с отрицательными значениями, а ⑤ гарантирует, что данные пользователя остаются неизменными до и после операций).

  6. Генерация резервного доказательства
    Используя схему zk-SNARK, определите количество пользовательских активов, а затем выдайте отчет о резервном доказательстве.

Для более подробного объяснения процесса расчета резервов и применения кода нажмите здесь.

Результативность

На машине с 32 ядрами и 128 ГБ оперативной памяти вычисление доказательств активов для 10 млн. пользователей занимает 15 дней. Вычисления резервного доказательства могут быть распараллелены; так, при использовании 10 машин это займет всего 1,5 дня.

Заключение

Внедрение zk-SNARKs - это значительное обновление для Gate.io. Доказательства резервирования и существенный шаг в защите пользовательских активов. Эта превосходная защита безопасности и конфиденциальности повышает доверие пользователей и устанавливает новый стандарт для криптовалютной индустрии. Являясь лидером отрасли, Gate.io теперь открыто публикует свой код, надеясь способствовать более прозрачному и безопасному развитию отрасли. В будущем Gate.io продолжит свой дух инноваций, исследуя и становясь первопроходцем в более безопасном, всеобъемлющем криптографическом будущем с защитой частной жизни вместе со своими пользователями.

Ссылки

Автор: Wayne
Переводчик: Piper
Рецензент(ы): Edward、KOWEI、Elisa、Ashley He、Joyce
* Информация не предназначена и не является финансовым советом или любой другой рекомендацией любого рода, предложенной или одобренной Gate.io.
* Эта статья не может быть опубликована, передана или скопирована без ссылки на Gate.io. Нарушение является нарушением Закона об авторском праве и может повлечь за собой судебное разбирательство.
Начните торговать сейчас
Зарегистрируйтесь сейчас и получите ваучер на
$100
!