Защита непредсказуемого: технология случайных чисел в играх Web3

Защита непредсказуемого: технология случайных чисел в играх Web3

17 января 2024 г.

Каждый игрок хочет превзойти шансы. Но на самом деле мало кто это делает. Вы когда-нибудь задумывались, как можно обыграть игровые автоматы в казино? Или как выиграть в играх Web3, основанных на удаче? В этой статье мы исследуем роль случайности в Web3, можно ли обойти генераторы случайных чисел (ГСЧ) и как взломать ГСЧ.

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

Где случайность играет роль в Web3

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

Эти случайные встречи часто определяют полезный опыт игроков после победы над противниками.

Лотерея является типичным примером случайности, требующей однозначно прозрачного и проверяемого случайного процесса, особенно в экосистеме Web3, где справедливость и открытость имеют первостепенное значение. В противном случае розыгрыш лотереи потенциально может быть выгоден только определенным группам или игрокам.

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

Хотя случайность играет очень важную роль в играх Web3 и автономном мире, очень важно различать генераторы псевдослучайных чисел (PRNG), которые используют алгоритмы, которые могут создавать предсказуемые шаблоны, и генераторы истинных случайных чисел (TRNG), которые используют физические процессы. для более высокой безопасности. Большинство уязвимостей ГСЧ в Web3 возникают из-за детерминированной природы ГСЧ.

Почему возможно предсказание случайных чисел

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

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

How RNG Works

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

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

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

Использование уязвимостей RNG: теоретические методы

Нахождение исходной точки посредством проверки гипотез

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

Анализ состояний и обратный инжиниринг

Помимо идентификации начального числа, решающее значение имеет понимание переходов состояний в алгоритме RNG. Анализируя, как меняется состояние с каждым генерируемым числом, можно перепроектировать алгоритм ГСЧ. Этот метод включает в себя сложные математические и вычислительные методы, включая алгоритмический анализ и, возможно, криптографический обратный инжиниринг, в зависимости от сложности ГСЧ.

Использование машинного обучения для распознавания образов

Машинное обучение, разновидность искусственного интеллекта (ИИ), превосходно справляется с расшифровкой сложных закономерностей в больших наборах данных. Эта возможность выходит за рамки простого распознавания образов, позволяя алгоритму обучаться и адаптироваться без явного программирования. Ярким примером этого является AlphaGo от Google. Эта система искусственного интеллекта, обученная настольной игре Го, освоила игру, изучая огромное количество игровых данных, и в конечном итоге превзошла чемпионов мира, предугадывая их ходы.

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

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

Photo by Miguel Á. Padriñán: https://www.pexels.com/photo/dominoes-585293/

Криптографический анализ

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

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

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

Проверяемо случайные и защищенные от несанкционированного доступа ГСЧ

Процесс начинается, когда контракт адаптера Randcast получает запрос случайности от игры DApp или Web3. Затем он инициирует задачу BLS-TSS (схема пороговой подписи Боне-Линна-Шахема), отправляя внутрисетевое событие в сеть ARPA, которая состоит из нескольких узлов, способных выполнять эти задачи.

Сеть подтверждает это событие и завершает задачу, впоследствии возвращая подпись в качестве случайного начального числа в контракт адаптера Randcast. Затем это начальное число преобразуется в желаемый тип случайности — будь то бросок кубика, перетасованный массив или любую другую форму — и используется в последующей игровой логике DApp или Web3.

Чем отличается Randcast

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

Важнейшим аспектом дизайна Randcast является его устойчивость к несанкционированному вмешательству. Традиционная генерация случайных чисел с одной сущностью создает риск манипуляций. Randcast решает эту проблему, используя коллективные возможности сети ARPA. Благодаря задачам сигнатуры BLS Threshold он гарантирует, что ни один отдельный узел не сможет повлиять на окончательный результат случайности. Этот децентрализованный подход не только повышает безопасность, но также поддерживает целостность и беспристрастность генерируемых случайных данных, что делает Randcast незаменимым инструментом в арсенале разработчиков Web3.

Справочные ссылки


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE