Що таке схема Commit-Reveal у Блокчейні? (2025)

Початківець11/22/2023, 6:46:03 PM
Досліджуйте еволюцію схем Commit-Reveal у Блокчейні 2025 року, яка включає зменшення обчислювальних витрат, кросчейн-застосування, покращені протоколи безпеки, зростаючу корпоративну адаптацію та інноваційні інтеграції ШІ, які додатково зміцнюють конфіденційність і безпеку в децентралізованих транзакціях.

Оновлення 2025 року щодо схем коміт-розкриття

Схема Commit-Reveal продовжує розвиватися в 2025 році з кількома значними досягненнями, які підвищують її корисність та ефективність у застосуваннях блокчейн. Наступні розробки представляють передову технологію:

Розширені методи впровадження

Останні інновації зосереджені на зменшенні обчислювальних витрат традиційних схем Commit-Reveal. Оптимізовані алгоритми тепер дозволяють швидшу перевірку, при цьому зберігаючи цілісність безпеки. Ці покращення призвели до збільшення впровадження на різних платформах блокчейн, крім Ethereum, включаючи рішення другого рівня, які отримують вигоду від:

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

Крос-ланцюгові застосунки

Парадигма Commit-Reveal розширилася, щоб полегшити безпечні операції між блокчейнами, дозволяючи розкривати та перевіряти зобов'язання на одному блокчейні на іншому. Цей прорив у взаємодії дозволяє:

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

Покращення безпеки

Дослідження у 2025 році розглянули попередні вразливості в реалізаціях Commit-Reveal:

Прийняття підприємствами

Сектор підприємств виявляє підвищений інтерес до схем Commit-Reveal для бізнес-застосувань:

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

Інтеграція з системами ШІ

Можливо, найцікавішим розвитком є інтеграція схем Commit-Reveal з штучним інтелектом:

  • AI ринки прогнозування, де моделі зобов'язуються до прогнозів до того, як відбудуться події
  • Децентралізовані системи машинного навчання, які захищають дані для навчання через коміт-розкриття
  • Оракули, що забезпечують перевірну випадковість через спільні процеси коміту-відкриття між вузлами ШІ

Ці досягнення демонструють, як схема Commit-Reveal продовжує служити основним механізмом для блокчейн-додатків, що вимагають справедливості, прозорості та безпеки. Оскільки технологія розвивається, її реалізація стає більш ефективною та адаптивною, відкриваючи нові можливості для децентралізованих систем у різних галузях. Постійний розвиток цього протоколу підкреслює зобов'язання блокчейн-спільноти створювати надійні рішення для викликів конфіденційності та безпеки в розподілених середовищах.

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

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

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

Однією з яскравих рис блокчейну є його акцент на довірі та прозорості. Кожен у мережі має доступ до всіх транзакцій на блокчейні та може їх переглядати. Ця відкритість стримуєDishonesty та сприяє довірі серед громади. Ви, напевно, запитуєте, як він досягає такого рівня прозорості? Відповідь полягає в його унікальних механізмах консенсусу та криптографічних принципах, які ми детально розглянемо, коли будемо просуватися в цьому курсі.

Введення в схему Коміт-Відкриття

Тепер, коли ви отримали уявлення про те, що таке блокчейн, давайте додамо до нього особливий відтінок - схему Commit-Reveal. Це як магічне шоу, де маг (користувач) спочатку зобов'язується до певної дії, не розкриваючи її аудиторії (мережі), а потім, на пізнішому етапі, розкриває цю дію. У термінах блокчейну це двоетапний процес: ‘Фаза зобов'язання’ та ‘Фаза розкриття’.

У фазі коміту користувач подає хешовану версію своєї інформації до блокчейну. Ця хешована версія є ніби зашифрованою версією оригінальної інформації, яка приховує фактичний вміст. Чарівність хеш-функції полягає в тому, що це одностороння подорож; ви не можете розшифрувати хеш назад до його оригінальної форми, що дозволяє зберегти інформацію в секреті на деякий час. Потім настає фаза розкриття, коли користувач розкриває оригінальну інформацію, яка потім перевіряється мережею, знову хешуючи її та порівнюючи з початковим комітуваним хешем, якщо вони збігаються, во-ла! Мережа підтверджує розкриття, і чарівний трюк завершено.

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

Фаза коміту

Коли ми занурюємося в глибини схеми Commit-Reveal, наша перша зупинка — «Фаза коміту». У цій фазі користувачі «комітять» певне значення, але роблять це так, щоб фактичне значення залишалося в таємниці. Уявіть, що у вас є секретне число на умі, але замість того, щоб всім розповісти, що це за число, ви кладете його в замкнуту коробку і показуєте всім. Вони знають, що у вас є число, але не знають, яке саме. Ось про що йдеться в коміті в блокчейні!

Тепер, як ми можемо заховати нашу секретну цінність? У світі блокчейну ми використовуємо те, що називається хеш-функцією, щоб зробити це. Хеш-функція схожа на магічний блендер. Ви вводите свою секретну цінність, і вона видає перемішану версію, відому як хеш. Цей хеш унікальний; навіть невелика зміна в оригінальному значенні створює зовсім інший хеш. Краса цього полягає в тому, що це односторонній процес - як тільки значення зашифроване, немає простого способу дізнатися оригінальне значення з хешу. Отже, коли користувачі фіксують свою цінність, те, що вони насправді роблять, - це діляться хешем своєї цінності з усіма на блокчейні.

Фаза Розкриття

Після напруги, що наростала на етапі Коміту, настав час для великого розкриття! Етап Розкриття — це момент, коли комітовані значення нарешті стають відомими всім учасникам у блокчейні. Повертаючись до нашої аналогії з замкненим ящиком, це момент, коли ящик відкривається, і кожен може побачити, яке число ви приховали. У світі блокчейну розкриття є простим, але вкрай важливим процесом, який забезпечує прозорість і справедливість у різних застосуваннях.

Коли користувач розкриває свою зобов'язану вартість, мережа може легко перевірити її автентичність, хешуючи розкриту вартість та порівнюючи її з оригінальним хешем, поділеним під час Фази зобов'язання. Якщо хеші збігаються, це підтверджує, що користувач не змінив своє рішення в процесі. Цей простий, але потужний процес перевірки допомагає підтримувати довірливе середовище, де всі дотримуються правил. Це як мати арбітра в грі, який забезпечує дотримання всіх гравців узгодженим умовам.

Реалізація Commit-Reveal у Смарт Контрактах

Тепер, коли ми розкрили магію схеми Commit-Reveal, давайте подивимося, як вона оживає у світі блокчейну через смарт-контракти. Смарт-контракт схожий на традиційний контракт, але він цифровий та самовиконуваний. Уявіть собі неупереджений робот, який автоматично забезпечує, щоб усі сторони дотримувалися своїх угод, і ви зрозуміли ідею смарт-контракту. Це інструмент, який перетворює теоретичну ідею Commit-Reveal у практичну в цифровій сфері. Реалізація схеми Commit-Reveal через смарт-контракт подібна до хореографії танцю, де кожен крок слідує встановленому ритму. Давайте пройдемося цією хореографією крок за кроком.

Створення контракту

Розпочніть зі створення смарт-контракту на платформі блокчейн, такій як Ethereum. Цей контракт матиме правила залучення для схеми Commit-Reveal, закодовані в ньому.

Функція Commit

Розробіть функцію коміту в межах смарт-контракту. Ця функція дозволить користувачам подавати свої хешовані значення (фаза коміту) до контракту.

Зберігання зафіксованих значень

Якщо користувачі зобов'язуються своїми значеннями, смарт-контракт надійно зберігатиме ці хеші на блокчейні, чекаючи фази розкриття.

Функція розкриття

Наступним кроком у смарт-контракті створіть функцію розкриття. Коли настане час, ця функція дозволить користувачам розкрити їхні первісні значення.

Перевірка та Валідація

Після розкриття смарт-контракт перевірить розкриті значення, хешуючи їх і порівнюючи з початково зобов'язаними хешами. Якщо все співпадає, розкриття вважається дійсним.

Фіналізація

Як тільки всі розкриття зібрані та перевірені, смарт-контракт може автоматично виконати наступні кроки, будь то підрахунок голосів, визначення переможців аукціону або будь-яка інша специфічна для застосування дія.

Аудит та тестування

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

Приклад коду

// 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.
  • Функція розкриття: Функція reveal дозволяє користувачам подавати своє початкове значення (_value) та сіль (_salt). Вона перевіряє, чи збігається хеш цих значень із спочатку зафіксованим хешем.
  • Перевірка та валідація: Це робиться в функції розкриття шляхом порівняння хешів.
  • Фіналізація: Функція tallyVotes є спрощеним прикладом того, як ви можете підрахувати голоси. Вона перебирає всі можливі адреси (непрактично для великих наборів даних) та підсумовує відкриті значення.
  • Аудит і тестування:Функція аудиту є дуже простим прикладом того, як ви можете перевірити стан контракту.

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

Використання схеми Коміт-Розкриття в Блокчейні

Покращення аукціонних платформ

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

Створення справедливих виборчих систем

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

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

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

Сценарії ігор

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

Зменшення проблем з фронт-ранінгом

У середовищах Блокчейн, фронт-ранінг є проблемою, коли зловмисники можуть отримати вигоду з знання про очікуючі транзакції. Схема Commit-Reveal допомагає пом'якшити такі проблеми, спочатку приховуючи деталі транзакцій. До моменту, коли настає фаза розкриття, вже занадто пізно для зловмисників діяти на основі цієї інформації, таким чином зберігаючи цілісність транзакцій.

Архітектури з низькою затримкою коміту та розкриття

Нові архітектури, такі як F3B еволюціонували, щоб зменшити накладні витрати пов'язані з традиційними схемами Commit-Reveal. F3B мінімізує запис даних у Блокчейн, пропонуючи архітектуру Commit-and-Reveal з низькою затримкою. Цей розвиток є знаковим, оскільки він означає безперервну оптимізацію та інновації в схемах Commit-Reveal, роблячи їх більш ефективними для реальних застосувань.

Генерація випадкових чисел

У середовищах блокчейну генерація випадкових чисел може бути викликом через детерміністичну природу протоколів блокчейну. Схема Commit-Reveal слугує децентралізованою альтернативою для генерації випадкових чисел на блокчейні Ethereum. Наприклад, Randao, реалізація Commit-Reveal RNG, використовує публічні дані та стимулює участь у генерації випадкових чисел.

Висновок

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

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

Що таке схема Commit-Reveal у Блокчейні? (2025)

Початківець11/22/2023, 6:46:03 PM
Досліджуйте еволюцію схем Commit-Reveal у Блокчейні 2025 року, яка включає зменшення обчислювальних витрат, кросчейн-застосування, покращені протоколи безпеки, зростаючу корпоративну адаптацію та інноваційні інтеграції ШІ, які додатково зміцнюють конфіденційність і безпеку в децентралізованих транзакціях.

Оновлення 2025 року щодо схем коміт-розкриття

Схема Commit-Reveal продовжує розвиватися в 2025 році з кількома значними досягненнями, які підвищують її корисність та ефективність у застосуваннях блокчейн. Наступні розробки представляють передову технологію:

Розширені методи впровадження

Останні інновації зосереджені на зменшенні обчислювальних витрат традиційних схем Commit-Reveal. Оптимізовані алгоритми тепер дозволяють швидшу перевірку, при цьому зберігаючи цілісність безпеки. Ці покращення призвели до збільшення впровадження на різних платформах блокчейн, крім Ethereum, включаючи рішення другого рівня, які отримують вигоду від:

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

Крос-ланцюгові застосунки

Парадигма Commit-Reveal розширилася, щоб полегшити безпечні операції між блокчейнами, дозволяючи розкривати та перевіряти зобов'язання на одному блокчейні на іншому. Цей прорив у взаємодії дозволяє:

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

Покращення безпеки

Дослідження у 2025 році розглянули попередні вразливості в реалізаціях Commit-Reveal:

Прийняття підприємствами

Сектор підприємств виявляє підвищений інтерес до схем Commit-Reveal для бізнес-застосувань:

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

Інтеграція з системами ШІ

Можливо, найцікавішим розвитком є інтеграція схем Commit-Reveal з штучним інтелектом:

  • AI ринки прогнозування, де моделі зобов'язуються до прогнозів до того, як відбудуться події
  • Децентралізовані системи машинного навчання, які захищають дані для навчання через коміт-розкриття
  • Оракули, що забезпечують перевірну випадковість через спільні процеси коміту-відкриття між вузлами ШІ

Ці досягнення демонструють, як схема Commit-Reveal продовжує служити основним механізмом для блокчейн-додатків, що вимагають справедливості, прозорості та безпеки. Оскільки технологія розвивається, її реалізація стає більш ефективною та адаптивною, відкриваючи нові можливості для децентралізованих систем у різних галузях. Постійний розвиток цього протоколу підкреслює зобов'язання блокчейн-спільноти створювати надійні рішення для викликів конфіденційності та безпеки в розподілених середовищах.

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

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

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

Однією з яскравих рис блокчейну є його акцент на довірі та прозорості. Кожен у мережі має доступ до всіх транзакцій на блокчейні та може їх переглядати. Ця відкритість стримуєDishonesty та сприяє довірі серед громади. Ви, напевно, запитуєте, як він досягає такого рівня прозорості? Відповідь полягає в його унікальних механізмах консенсусу та криптографічних принципах, які ми детально розглянемо, коли будемо просуватися в цьому курсі.

Введення в схему Коміт-Відкриття

Тепер, коли ви отримали уявлення про те, що таке блокчейн, давайте додамо до нього особливий відтінок - схему Commit-Reveal. Це як магічне шоу, де маг (користувач) спочатку зобов'язується до певної дії, не розкриваючи її аудиторії (мережі), а потім, на пізнішому етапі, розкриває цю дію. У термінах блокчейну це двоетапний процес: ‘Фаза зобов'язання’ та ‘Фаза розкриття’.

У фазі коміту користувач подає хешовану версію своєї інформації до блокчейну. Ця хешована версія є ніби зашифрованою версією оригінальної інформації, яка приховує фактичний вміст. Чарівність хеш-функції полягає в тому, що це одностороння подорож; ви не можете розшифрувати хеш назад до його оригінальної форми, що дозволяє зберегти інформацію в секреті на деякий час. Потім настає фаза розкриття, коли користувач розкриває оригінальну інформацію, яка потім перевіряється мережею, знову хешуючи її та порівнюючи з початковим комітуваним хешем, якщо вони збігаються, во-ла! Мережа підтверджує розкриття, і чарівний трюк завершено.

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

Фаза коміту

Коли ми занурюємося в глибини схеми Commit-Reveal, наша перша зупинка — «Фаза коміту». У цій фазі користувачі «комітять» певне значення, але роблять це так, щоб фактичне значення залишалося в таємниці. Уявіть, що у вас є секретне число на умі, але замість того, щоб всім розповісти, що це за число, ви кладете його в замкнуту коробку і показуєте всім. Вони знають, що у вас є число, але не знають, яке саме. Ось про що йдеться в коміті в блокчейні!

Тепер, як ми можемо заховати нашу секретну цінність? У світі блокчейну ми використовуємо те, що називається хеш-функцією, щоб зробити це. Хеш-функція схожа на магічний блендер. Ви вводите свою секретну цінність, і вона видає перемішану версію, відому як хеш. Цей хеш унікальний; навіть невелика зміна в оригінальному значенні створює зовсім інший хеш. Краса цього полягає в тому, що це односторонній процес - як тільки значення зашифроване, немає простого способу дізнатися оригінальне значення з хешу. Отже, коли користувачі фіксують свою цінність, те, що вони насправді роблять, - це діляться хешем своєї цінності з усіма на блокчейні.

Фаза Розкриття

Після напруги, що наростала на етапі Коміту, настав час для великого розкриття! Етап Розкриття — це момент, коли комітовані значення нарешті стають відомими всім учасникам у блокчейні. Повертаючись до нашої аналогії з замкненим ящиком, це момент, коли ящик відкривається, і кожен може побачити, яке число ви приховали. У світі блокчейну розкриття є простим, але вкрай важливим процесом, який забезпечує прозорість і справедливість у різних застосуваннях.

Коли користувач розкриває свою зобов'язану вартість, мережа може легко перевірити її автентичність, хешуючи розкриту вартість та порівнюючи її з оригінальним хешем, поділеним під час Фази зобов'язання. Якщо хеші збігаються, це підтверджує, що користувач не змінив своє рішення в процесі. Цей простий, але потужний процес перевірки допомагає підтримувати довірливе середовище, де всі дотримуються правил. Це як мати арбітра в грі, який забезпечує дотримання всіх гравців узгодженим умовам.

Реалізація Commit-Reveal у Смарт Контрактах

Тепер, коли ми розкрили магію схеми Commit-Reveal, давайте подивимося, як вона оживає у світі блокчейну через смарт-контракти. Смарт-контракт схожий на традиційний контракт, але він цифровий та самовиконуваний. Уявіть собі неупереджений робот, який автоматично забезпечує, щоб усі сторони дотримувалися своїх угод, і ви зрозуміли ідею смарт-контракту. Це інструмент, який перетворює теоретичну ідею Commit-Reveal у практичну в цифровій сфері. Реалізація схеми Commit-Reveal через смарт-контракт подібна до хореографії танцю, де кожен крок слідує встановленому ритму. Давайте пройдемося цією хореографією крок за кроком.

Створення контракту

Розпочніть зі створення смарт-контракту на платформі блокчейн, такій як Ethereum. Цей контракт матиме правила залучення для схеми Commit-Reveal, закодовані в ньому.

Функція Commit

Розробіть функцію коміту в межах смарт-контракту. Ця функція дозволить користувачам подавати свої хешовані значення (фаза коміту) до контракту.

Зберігання зафіксованих значень

Якщо користувачі зобов'язуються своїми значеннями, смарт-контракт надійно зберігатиме ці хеші на блокчейні, чекаючи фази розкриття.

Функція розкриття

Наступним кроком у смарт-контракті створіть функцію розкриття. Коли настане час, ця функція дозволить користувачам розкрити їхні первісні значення.

Перевірка та Валідація

Після розкриття смарт-контракт перевірить розкриті значення, хешуючи їх і порівнюючи з початково зобов'язаними хешами. Якщо все співпадає, розкриття вважається дійсним.

Фіналізація

Як тільки всі розкриття зібрані та перевірені, смарт-контракт може автоматично виконати наступні кроки, будь то підрахунок голосів, визначення переможців аукціону або будь-яка інша специфічна для застосування дія.

Аудит та тестування

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

Приклад коду

// 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.
  • Функція розкриття: Функція reveal дозволяє користувачам подавати своє початкове значення (_value) та сіль (_salt). Вона перевіряє, чи збігається хеш цих значень із спочатку зафіксованим хешем.
  • Перевірка та валідація: Це робиться в функції розкриття шляхом порівняння хешів.
  • Фіналізація: Функція tallyVotes є спрощеним прикладом того, як ви можете підрахувати голоси. Вона перебирає всі можливі адреси (непрактично для великих наборів даних) та підсумовує відкриті значення.
  • Аудит і тестування:Функція аудиту є дуже простим прикладом того, як ви можете перевірити стан контракту.

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

Використання схеми Коміт-Розкриття в Блокчейні

Покращення аукціонних платформ

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

Створення справедливих виборчих систем

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

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

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

Сценарії ігор

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

Зменшення проблем з фронт-ранінгом

У середовищах Блокчейн, фронт-ранінг є проблемою, коли зловмисники можуть отримати вигоду з знання про очікуючі транзакції. Схема Commit-Reveal допомагає пом'якшити такі проблеми, спочатку приховуючи деталі транзакцій. До моменту, коли настає фаза розкриття, вже занадто пізно для зловмисників діяти на основі цієї інформації, таким чином зберігаючи цілісність транзакцій.

Архітектури з низькою затримкою коміту та розкриття

Нові архітектури, такі як F3B еволюціонували, щоб зменшити накладні витрати пов'язані з традиційними схемами Commit-Reveal. F3B мінімізує запис даних у Блокчейн, пропонуючи архітектуру Commit-and-Reveal з низькою затримкою. Цей розвиток є знаковим, оскільки він означає безперервну оптимізацію та інновації в схемах Commit-Reveal, роблячи їх більш ефективними для реальних застосувань.

Генерація випадкових чисел

У середовищах блокчейну генерація випадкових чисел може бути викликом через детерміністичну природу протоколів блокчейну. Схема Commit-Reveal слугує децентралізованою альтернативою для генерації випадкових чисел на блокчейні Ethereum. Наприклад, Randao, реалізація Commit-Reveal RNG, використовує публічні дані та стимулює участь у генерації випадкових чисел.

Висновок

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

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