News

Доказова чесність проти сертифікованого генератора

Сертифікований генератор просить повірити аудиту. Доказова чесність видає квитанцію на кожну партію, яку можна перевірити самому. У чому різниця.

fairnessprovably fairexplainer

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

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

Що насправді сертифікує сертифікований генератор?

Сертифікаційна лабораторія бере генератор, проганяє його вихід через набори статистичних тестів і полює на зміщення: числа, що приходять надто часто, повторювані візерунки, послідовності, що дрейфують. Якщо мільйони зразків невідрізнимі від випадковості, лабораторія підписує сертифікат. Ця робота справжня й потребує майстерності. Вона встановлює, що генератор, у тому вигляді, у якому його тестували, того дня видавав надійну випадковість.

Зверни увагу, чого сертифікат не бачить. Його видали в лабораторії, а твої кубики кидають на сервері.

  • Чи той це код, що розгорнутий, через місяці й безліч оновлень.
  • Проводка між генератором і твоєю грою: код, що перетворює сире випадкове число на твої 6 і 4.
  • Будь-який окремий кидок у будь-якому окремому матчі. Сертифікація говорить про генератор узагалі й ніколи про твою партію у вівторок увечері.

Тож сертифікація несе тиху другу умову: повір, що з моменту тесту нічого не змінилося, і повір, що сертифікований шлях це той самий шлях, яким пішла твоя гра. Більшість студій її дотримується. Річ у тім, що перевірити це ти не можеш. Модель це огляд машини в одну мить, а потім віра в розгортання в усі наступні.

Що означає доказова чесність?

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

Зобов'язання. До першого ходу сервер породжує таємне зерно й публікує його відбиток SHA-256. Відбиток нічого не повідомляє про майбутні кидки, але пришпилює зерно на місці. Зміни потім хоч один біт зерна, і відбиток перестане збігатися.

Кидок. Під час гри кожен кидок виводиться із зерна через HMAC-SHA256, по одному обчисленню на кидок. Кубики були вирішені тієї миті, коли конверт запечатали. Приємніше число не можна підсунути посеред партії, не зламавши вже опублікованого зобов'язання.

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

Довіра переїжджає від компанії до арифметики. Тобі більше не потрібно вірити, що аудит був ретельним, а розгортання сумлінним. Тобі потрібно, щоб устояв SHA-256, а це те саме припущення, на яке решта інтернету спирається щодня.

Сертифікат каже, що монета була чесною того дня, коли ми дивилися. Квитанція каже, що чесним був твій кидок, і показує розрахунок.

То чи важлива ще сертифікація?

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

Дві моделі відповідають на різні питання. Аудит питає: чи добра сама випадковість? Квитанція питає: а моя партія її справді отримала? Система лише з першим живе на вічній вірі в розгортання. Система лише з другим могла б сумлінно доставляти погані кубики й це доводити. Найміцніші системи зачиняють обидві двері.

Чому важливий публічний верифікатор?

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

Найміцніші рішення публікують три речі. Зобов'язання, до партії. Зерно, після неї. І незалежний, публічний спосіб перерахувати кидки, що працює поза застосунком. Саме тому верифікатор Orion живе в браузері на orion.arthea.ai/verify: без облікового запису, без встановлення, і наше слово в перевірці не бере участі.