Эта статья знакомит с тем, что такое случайность, понимает ее типы и исследует вызовы, которые она представляет в экосистеме блокчейна и Web3.
Термин "случайность" относится к отсутствию закономерности или предсказуемости. Результат подбрасывания монеты, узор отпечатка пальца и форма снежинки считаются непредсказуемыми. Хотя непредсказуемые результаты обычны в природе, нельзя сказать то же самое о случайности, генерируемой компьютерами. Поскольку компьютеры являются детерминированными устройствами, может быть невозможно генерировать действительно случайные числа исключительно с помощью набора компьютерных алгоритмов.
Более того, хотя отдельные случайные события считаются непредсказуемыми, частота различных результатов при повторяющихся событиях может быть предсказуемой. Например, в то время как результат любого отдельного броска кубика непредсказуем, вероятность результатов при 100 бросках кубика может быть рассчитана с высокой уверенностью.
С увеличением экономических, социальных и культурных взаимодействий в Интернете за последние несколько десятилетий возрос спрос на имитацию непредсказуемости природного мира и создание цифровых систем, включающих непредсказуемые результаты. Примеры использования этой непредсказуемости включают в себя введение искусственной дефицитности, построение более надежных механизмов безопасности и облегчение процессов принятия нейтральных решений.
В этой статье мы разберем, что такое случайность, узнаем о типах случайности и исследуем вызовы, которые представляет случайность, когда речь идет облокчейныи экосистема Web3.
Для обхода этого ограничения генераторы случайных чисел (RNG) используют зерно - начальное значение (ввод) расчета, которое используется для генерации вывода. Зерно может быть сгенерировано на основе чего-то сложного для воспроизведения - данные, полученные из фотографии, время суток, движение мыши пользователя или лампы лава.
Однако, даже если процесс генерации случайных чисел трудно воспроизвести, это не означает, что его технически невозможно воспроизвести. Если комбинировать несколько сложных методов генерации начальных значений, результаты можно считать относительно надежными, даже если разумно предположить, что эти начальные значения со временем могут быть раскрыты. Но если при генерации различных начальных значений используется один и тот же математический метод, результаты не будут действительно случайными. Тогда вопрос возникает: какой вид случайности можно считать действительно случайным?
ГСПС - это набор алгоритмов, которые используют математические формулы для генерации случайной последовательности, имитирующей истинно случайные числа. Поскольку компьютеры являются различными системами, числа могут казаться случайными для человеческих наблюдателей, но они могут содержать различимые шаблоны, которые могут быть раскрыты через обширный статистический анализ.
TRNGs используют непредсказуемые физические источники, такие как космический шум, радиоактивное распадение изотопов или статика в воздушных волнах, для генерации случайных чисел на основе естественных явлений. Поскольку TRNGs «извлекают» случайность из физических явлений, считается, что они производят более сильную (более непредсказуемую) случайность, чем это делают компьютеры. Тем не менее, информация, используемая TRNGs, также может быть детерминированной. Если кто-то вставит себя между TRNG и явлением, которое он сканирует, они могут перехватить тот же сигнал и точно знать последовательность чисел.
Хотя TRNG могут создавать случайные последовательности с меньшей вероятностью быть выявленными как различимые узоры, они более затратны по сравнению с PRNG, что делает их непрактичными для общих случаев использования. PRNG также имеют еще одно ключевое преимущество по сравнению с TRNG — воспроизводимость. Наблюдатель может воспроизвести ту же последовательность чисел, если знает начальную точку последовательности, что делает верификацию процесса генерации случайных чисел возможной — полезный аспект для многихWeb3приложения, включающие случайность.
Распределенное согласие в основе ограничивается количеством сообщений, которые могут быть отправлены за определенный период времени (пропускная способность) и временем, необходимым для отправки сообщения по сети (задержка). В общедоступной блокчейн с тысячами распределенных участников, которым необходимо прийти к соглашению, каждый узел, нуждающийся в отправке сообщений всем остальным узлам, был бы непрактичным. Чтобы ограничить количество сообщений, которые необходимо отправить для достижения согласия, биткоин использует доказательство работы (PoW) в качестве источника случайности, определяющего, какой блок добавляется в блокчейн. Поскольку вычислительная головоломка, с которой конкурируют майнеры, чтобы успешно добавить блок в блокчейн, сложно решить, вероятность того, что несколько узлов решат головоломку одновременно, низкая, что ограничивает количество сообщений, необходимых для достижения согласия в сети.
Случайность также часто используется в системах Proof-of-Stake (PoS) для обеспечения справедливого и непредсказуемого распределения обязанностей валидатора. Если злоумышленник может повлиять на источник случайности, используемый в процессе выбора, он может увеличить свои шансы на выбор и подвергнуть опасности безопасность сети.
Из-за прозрачности блокчейнов все входы и выходы доступны участникам системы, что потенциально делает случайно сгенерированные последовательности предсказуемыми. Например, некоторые методы генерации случайных чисел on-chain, такие как хеширование блока, содержат уязвимости в безопасности, которые легко могут быть использованы. Если майнер/валидатор заинтересован в конкретном результате, определяемом случайным значением или последовательностью, производитель блока может повлиять на генерацию случайных последовательностей, не публикуя блоки, которые могут дать ему преимущество, фактически перебрасывая кости до появления выгодного для него результата.
С другой стороны, решения вне цепи для генерации случайных чисел непрозрачны, требуя от пользователей доверия к тому, что централизованный поставщик данных не будет манипулировать результатами в их пользу, и пользователь не сможет определить разницу между истинной или манипулированной случайностью. Обе эти решения становятся все более беспокоящими по мере увеличения объема ценности, обеспечиваемой решением для генерации случайных чисел.
Поскольку эти системы могут накапливать значительное количество реальной стоимости, эксплуатационные результаты от субоптимальных решений случайности могут привести к информационной асимметрии и несправедливому преимуществу для части участников. Эти сценарии часто могут создавать отрицательные обратные связи, приводящие к дисбалансу сил во взаимодействиях и приводящие к полному провалу экономической и игровой механики, разработанной для облегчения экономической деятельности и социальной координации.
Доступ к источнику случайности, который защищен от вмешательства, непредсказуем и может быть проверен всеми участниками, - это непростая задача. Тем не менее желание справедливости и прозрачности в индустрии Web3 открыло множество приложений и протоколов, которые выделяются по сравнению с их аналогами из Web2. Возможность получения доступа к справедливому и беспристрастному источнику случайности в проверяемо безопасном режиме открывает множество новых случаев использования в блокчейн-играх, NFT,децентрализованное управление, Web3 социальные медиа, сбор средств и благотворительность, социальные токены и за их пределами.

Chainlink VRF использует вычисления вне цепи и криптографию для создания неизменяемого источника случайности.
С момента запуска Chainlink VRF было выполнено более 6,5 миллиона запросов на справедливые и непредвзятые случайные числа и в настоящее время обеспечивается проверяемая случайность более чем 3 400 уникальным умные контрактычерез несколько блокчейн-сетей, включая Avalanche, BNB Chain, Ethereum и Polygon.
Chainlink VRF предоставляет ряд критически важных функций, которые делают его отраслевым стандартом, таких как:
Если вы разработчик и хотите быстро подключить свое приложение к Chainlink VRF, посетите документация разработчикаи присоединяйтесь к техническим обсуждениям в Discord. Если вы хотите назначить звонок, чтобы обсудить интеграцию более подробно, обратитесь здесь.





