Что такое схема Коммит-Открытие в Блокчейн? (2025)

Новичок11/22/2023, 6:46:03 PM
Изучите эволюцию схем Commit-Reveal в блокчейне в 2025 году, в которой представлены сниженные вычислительные затраты, кросс-чейн приложения, улучшенные протоколы безопасности, растущее корпоративное принятие и инновационные интеграции ИИ, которые дополнительно усиливают конфиденциальность и безопасность в децентрализованных транзакциях.

Обновления 2025 года по схемам Коммит-Ревел

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

Методы продвинутой реализации

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

  • Сниженные газовые расходы для операций подтверждения-раскрытия
  • Краткие времена подтверждения между фазами подтверждения и раскрытия
  • Улучшенная защита конфиденциальности за счет усовершенствованных криптографических техник

Кросс-цепочные приложения

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

  • Безопасные передачи активов между различными блокчейн-сетями
  • Механизмы голосования между цепочками с повышенной конфиденциальностью
  • Мультицепочные аукционные системы с более широким доступом к рынку

Усиление безопасности

Исследования в 2025 году рассмотрели предыдущие уязвимости в реализациях Commit-Reveal:

Корпоративное принятие

Сектор предприятий проявляет повышенный интерес к схемам Коммит-Ревил для бизнес-приложений:

  • Системы управления цепочками поставок используют механизм commit-reveal для закрытых тендерных процессов.
  • Финансовые учреждения реализуют схему для частных расчетных систем
  • Медицинские организации используют commit-reveal для обмена конфиденциальными данными, сохраняя при этом конфиденциальность пациентов.

Интеграция с ИИ системами

Возможно, самым захватывающим событием является интеграция схем Commit-Reveal с искусственным интеллектом:

  • AI предсказательные рынки, где модели делают прогнозы до наступления событий
  • Децентрализованные системы машинного обучения, которые защищают обучающие данные с помощью коммит-раскрытия
  • Оракулы, которые предоставляют проверяемую случайность через совместные процессы раскрытия коммитов между узлами ИИ

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

Технология Блокчейн приносит инновационные подходы к достижению консенсуса, безопасности и конфиденциальности. Одним из таких новшеств является схема commit-reveal, криптографический протокол, который повышает конфиденциальность и безопасность для пользователей Блокчейн. По мере того как вы будете проходить этот курс, вы раскроете слои доверия, прозрачности и инноваций, которые схема Commit-Reveal приносит в децентрализованную цифровую сферу. Каждый модуль в этой статье тщательно разработан, чтобы предоставить всестороннее понимание схемы Commit-Reveal, ее реализации и ее воздействия на ландшафт Блокчейн.

Что такое Блокчейн?

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

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

Введение в схему Коммит-Раскрытие

Теперь, когда вы узнали о том, что такое блокчейн, давайте добавим к этому особый вкус - схему Коммит-Ревел. Это похоже на магическое шоу, где маг (пользователь) сначала совершает определенное действие, не раскрывая его аудитории (сети), а затем на более позднем этапе показывает это действие. В терминах блокчейна это двухступенчатый процесс: «Фаза Коммита» и «Фаза Ревела».

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

С помощью схемы Commit-Reveal блокчейн-сети могут достичь нового уровня вовлеченности в таких приложениях, как аукционы, голосовые системы и многое другое, что мы подробно рассмотрим в предстоящих модулях.

Фаза Коммита

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

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

Фаза раскрытия

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

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

Реализация Commit-Reveal в Умных Контрактах

Теперь, когда мы раскрыли магию схемы Commit-Reveal, давайте посмотрим, как она оживает в мире блокчейна через смарт-контракты. Смарт-контракт похож на традиционный контракт, но он цифровой и самовыполняющийся. Представьте себе беспристрастного робота, который автоматически обеспечивает выполнение соглашений всеми сторонами, и вы получите представление о смарт-контракте. Это инструмент, который превращает теоретическую идею Commit-Reveal в практическое применение в цифровой сфере. Реализация схемы Commit-Reveal через смарт-контракт подобна хореографии танца, где каждый шаг следует определённому ритму. Давайте пройдём через эту хореографию шаг за шагом.

Создание контракта

Начните с создания смарт-контракта на платформе Блокчейн, такой как Ethereum. Этот контракт будет содержать правила взаимодействия для схемы Commit-Reveal.

Функция Commit

Разработайте функцию коммита в смарт-контракте. Эта функция позволит пользователям отправлять свои хэшированные значения (фаза коммита) в контракт.

Хранение зафиксированных значений

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

Функция раскрытия

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

Проверка и валидация

После раскрытия смарт-контракт проверит раскрытые значения, хэшируя их и сравнивая с первоначально зафиксированными хэшами. Если всё совпадает, раскрытие подтверждается.

Финализация

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

Аудит и тестирование

Перед развертыванием тщательно протестируйте смарт-контракт, чтобы убедиться, что он работает так, как задумано, и защищен от потенциальных уязвимостей. Через эти шаги смарт-контракт организует танец Commit-Reveal, обеспечивая справедливый и прозрачный процесс.

Пример кода

// SPDX-License-Identifier: MITpragma solidity ^0.8.0;contract CommitReveal {struct Commit {    bytes32 hash;    bool revealed;}mapping(address => Commit) public commits;mapping(address => uint256) public revealedValues;// Функция commit позволяет пользователям отправлять свои хэшированные значенияfunction commit(bytes32 _hash) public {    require(commits[msg.sender].hash == 0, "Уже зафиксировано");    commits[msg.sender].hash = _hash;}// Функция reveal позволяет пользователям раскрывать свои оригинальные значенияfunction reveal(uint256 _value, string memory _salt) public {    require(commits[msg.sender].revealed == false, "Уже раскрыто");    require(keccak256(abi.encodePacked(_value, _salt)) == commits[msg.sender].hash, "Хэши не совпадают");    commits[msg.sender].revealed = true;    revealedValues[msg.sender] = _value;}// Пример функции финализации, которая может подсчитывать голосаfunction tallyVotes() public view returns (uint256) {    uint256 totalVotes = 0;    for (address addr = address(0); addr < address(-1); addr++) {        if (commits[addr].revealed) {            totalVotes += revealedValues[addr];        }    }    return totalVotes;}// Функция для аудита состояния контракта (только пример, не практично для больших наборов данных)function audit() public view returns (mapping(address => uint256) memory) {    return revealedValues;} }

Объяснение:

  • Создание контракта: Контракт CommitReveal создан.
  • Функция Commit: Функция commit принимает хэшированное значение (_hash) и сохраняет его за адресом отправителя.
  • Хранение зафиксированных значений:Хэшированные значения хранятся в отображении, называемом commits.
  • Функция раскрытия: Функция раскрытия позволяет пользователям отправлять свое оригинальное значение (_value) и соль (_salt). Она проверяет, совпадает ли хеш этих значений с первоначально зафиксированным хешем.
  • Проверка и валидация: Это выполняется в функции раскрытия путем сравнения хешей.
  • Финализация: Функция tallyVotes является упрощенным примером того, как вы можете подсчитывать голоса. Она проходит по всем возможным адресам (непрактично для больших наборов данных) и суммирует раскрытые значения.
  • Аудит и тестирование:Функция аудита является очень простым примером того, как вы можете проверить состояние контракта.

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

Случаи использования схемы Коммит-Раскрытие в Блокчейне

Улучшение аукционных платформ

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

Создание справедливых систем голосования

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

Контракты с закрытыми ставками

В sealed-bid контрактах, участники торгов подают свои ставки, скрытые с использованием схемы Commit-Reveal. Этот процесс гарантирует, что ни один из участников торгов не знает о ставках других, способствуя честной конкуренции. После периода подачи ставок происходит фаза раскрытия, и контракт присуждается квалифицированному участнику с лучшим предложением.

Сценарии игр

Схема Commit-Reveal находит интересное применение в игровых сценариях, таких как цифровая версия Камень, Ножницы, Бумага. Игроки делают свои выборы, не раскрывая их, что обеспечивает честную игру. После того как оба игрока сделали свои выборы, следует фаза раскрытия, определяющая победителя на основе сделанных выборов.

Снижение проблем с фронт-раннингом

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

Архитектуры с низкой задержкой для подтверждения и раскрытия

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

Генерация случайных чисел

В средах Блокчейн генерация случайных чисел может быть сложной задачей из-за детерминированной природы Блокчейн-протоколов. Схема Commit-Reveal служит децентрализованной альтернативой для генерации случайных чисел в Блокчейн Ethereum. Например, Randao, реализация Commit-Reveal RNG, использует публичные данные и мотивирует участие в генерации случайных чисел.

Заключение

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

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

Что такое схема Коммит-Открытие в Блокчейн? (2025)

Новичок11/22/2023, 6:46:03 PM
Изучите эволюцию схем Commit-Reveal в блокчейне в 2025 году, в которой представлены сниженные вычислительные затраты, кросс-чейн приложения, улучшенные протоколы безопасности, растущее корпоративное принятие и инновационные интеграции ИИ, которые дополнительно усиливают конфиденциальность и безопасность в децентрализованных транзакциях.

Обновления 2025 года по схемам Коммит-Ревел

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

Методы продвинутой реализации

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

  • Сниженные газовые расходы для операций подтверждения-раскрытия
  • Краткие времена подтверждения между фазами подтверждения и раскрытия
  • Улучшенная защита конфиденциальности за счет усовершенствованных криптографических техник

Кросс-цепочные приложения

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

  • Безопасные передачи активов между различными блокчейн-сетями
  • Механизмы голосования между цепочками с повышенной конфиденциальностью
  • Мультицепочные аукционные системы с более широким доступом к рынку

Усиление безопасности

Исследования в 2025 году рассмотрели предыдущие уязвимости в реализациях Commit-Reveal:

Корпоративное принятие

Сектор предприятий проявляет повышенный интерес к схемам Коммит-Ревил для бизнес-приложений:

  • Системы управления цепочками поставок используют механизм commit-reveal для закрытых тендерных процессов.
  • Финансовые учреждения реализуют схему для частных расчетных систем
  • Медицинские организации используют commit-reveal для обмена конфиденциальными данными, сохраняя при этом конфиденциальность пациентов.

Интеграция с ИИ системами

Возможно, самым захватывающим событием является интеграция схем Commit-Reveal с искусственным интеллектом:

  • AI предсказательные рынки, где модели делают прогнозы до наступления событий
  • Децентрализованные системы машинного обучения, которые защищают обучающие данные с помощью коммит-раскрытия
  • Оракулы, которые предоставляют проверяемую случайность через совместные процессы раскрытия коммитов между узлами ИИ

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

Технология Блокчейн приносит инновационные подходы к достижению консенсуса, безопасности и конфиденциальности. Одним из таких новшеств является схема commit-reveal, криптографический протокол, который повышает конфиденциальность и безопасность для пользователей Блокчейн. По мере того как вы будете проходить этот курс, вы раскроете слои доверия, прозрачности и инноваций, которые схема Commit-Reveal приносит в децентрализованную цифровую сферу. Каждый модуль в этой статье тщательно разработан, чтобы предоставить всестороннее понимание схемы Commit-Reveal, ее реализации и ее воздействия на ландшафт Блокчейн.

Что такое Блокчейн?

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

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

Введение в схему Коммит-Раскрытие

Теперь, когда вы узнали о том, что такое блокчейн, давайте добавим к этому особый вкус - схему Коммит-Ревел. Это похоже на магическое шоу, где маг (пользователь) сначала совершает определенное действие, не раскрывая его аудитории (сети), а затем на более позднем этапе показывает это действие. В терминах блокчейна это двухступенчатый процесс: «Фаза Коммита» и «Фаза Ревела».

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

С помощью схемы Commit-Reveal блокчейн-сети могут достичь нового уровня вовлеченности в таких приложениях, как аукционы, голосовые системы и многое другое, что мы подробно рассмотрим в предстоящих модулях.

Фаза Коммита

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

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

Фаза раскрытия

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

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

Реализация Commit-Reveal в Умных Контрактах

Теперь, когда мы раскрыли магию схемы Commit-Reveal, давайте посмотрим, как она оживает в мире блокчейна через смарт-контракты. Смарт-контракт похож на традиционный контракт, но он цифровой и самовыполняющийся. Представьте себе беспристрастного робота, который автоматически обеспечивает выполнение соглашений всеми сторонами, и вы получите представление о смарт-контракте. Это инструмент, который превращает теоретическую идею Commit-Reveal в практическое применение в цифровой сфере. Реализация схемы Commit-Reveal через смарт-контракт подобна хореографии танца, где каждый шаг следует определённому ритму. Давайте пройдём через эту хореографию шаг за шагом.

Создание контракта

Начните с создания смарт-контракта на платформе Блокчейн, такой как Ethereum. Этот контракт будет содержать правила взаимодействия для схемы Commit-Reveal.

Функция Commit

Разработайте функцию коммита в смарт-контракте. Эта функция позволит пользователям отправлять свои хэшированные значения (фаза коммита) в контракт.

Хранение зафиксированных значений

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

Функция раскрытия

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

Проверка и валидация

После раскрытия смарт-контракт проверит раскрытые значения, хэшируя их и сравнивая с первоначально зафиксированными хэшами. Если всё совпадает, раскрытие подтверждается.

Финализация

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

Аудит и тестирование

Перед развертыванием тщательно протестируйте смарт-контракт, чтобы убедиться, что он работает так, как задумано, и защищен от потенциальных уязвимостей. Через эти шаги смарт-контракт организует танец Commit-Reveal, обеспечивая справедливый и прозрачный процесс.

Пример кода

// SPDX-License-Identifier: MITpragma solidity ^0.8.0;contract CommitReveal {struct Commit {    bytes32 hash;    bool revealed;}mapping(address => Commit) public commits;mapping(address => uint256) public revealedValues;// Функция commit позволяет пользователям отправлять свои хэшированные значенияfunction commit(bytes32 _hash) public {    require(commits[msg.sender].hash == 0, "Уже зафиксировано");    commits[msg.sender].hash = _hash;}// Функция reveal позволяет пользователям раскрывать свои оригинальные значенияfunction reveal(uint256 _value, string memory _salt) public {    require(commits[msg.sender].revealed == false, "Уже раскрыто");    require(keccak256(abi.encodePacked(_value, _salt)) == commits[msg.sender].hash, "Хэши не совпадают");    commits[msg.sender].revealed = true;    revealedValues[msg.sender] = _value;}// Пример функции финализации, которая может подсчитывать голосаfunction tallyVotes() public view returns (uint256) {    uint256 totalVotes = 0;    for (address addr = address(0); addr < address(-1); addr++) {        if (commits[addr].revealed) {            totalVotes += revealedValues[addr];        }    }    return totalVotes;}// Функция для аудита состояния контракта (только пример, не практично для больших наборов данных)function audit() public view returns (mapping(address => uint256) memory) {    return revealedValues;} }

Объяснение:

  • Создание контракта: Контракт CommitReveal создан.
  • Функция Commit: Функция commit принимает хэшированное значение (_hash) и сохраняет его за адресом отправителя.
  • Хранение зафиксированных значений:Хэшированные значения хранятся в отображении, называемом commits.
  • Функция раскрытия: Функция раскрытия позволяет пользователям отправлять свое оригинальное значение (_value) и соль (_salt). Она проверяет, совпадает ли хеш этих значений с первоначально зафиксированным хешем.
  • Проверка и валидация: Это выполняется в функции раскрытия путем сравнения хешей.
  • Финализация: Функция tallyVotes является упрощенным примером того, как вы можете подсчитывать голоса. Она проходит по всем возможным адресам (непрактично для больших наборов данных) и суммирует раскрытые значения.
  • Аудит и тестирование:Функция аудита является очень простым примером того, как вы можете проверить состояние контракта.

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

Случаи использования схемы Коммит-Раскрытие в Блокчейне

Улучшение аукционных платформ

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

Создание справедливых систем голосования

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

Контракты с закрытыми ставками

В sealed-bid контрактах, участники торгов подают свои ставки, скрытые с использованием схемы Commit-Reveal. Этот процесс гарантирует, что ни один из участников торгов не знает о ставках других, способствуя честной конкуренции. После периода подачи ставок происходит фаза раскрытия, и контракт присуждается квалифицированному участнику с лучшим предложением.

Сценарии игр

Схема Commit-Reveal находит интересное применение в игровых сценариях, таких как цифровая версия Камень, Ножницы, Бумага. Игроки делают свои выборы, не раскрывая их, что обеспечивает честную игру. После того как оба игрока сделали свои выборы, следует фаза раскрытия, определяющая победителя на основе сделанных выборов.

Снижение проблем с фронт-раннингом

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

Архитектуры с низкой задержкой для подтверждения и раскрытия

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

Генерация случайных чисел

В средах Блокчейн генерация случайных чисел может быть сложной задачей из-за детерминированной природы Блокчейн-протоколов. Схема Commit-Reveal служит децентрализованной альтернативой для генерации случайных чисел в Блокчейн Ethereum. Например, Randao, реализация Commit-Reveal RNG, использует публичные данные и мотивирует участие в генерации случайных чисел.

Заключение

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

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