В физическом мире легко добиться случайности, потому что природа сама по себе случайна. Но в цифровом мире все немного по-другому, и для получения желаемого результата обычно требуется некоторая форма случайности, вызванной человеком.
Генератор случайных чисел (ГСЧ) - это такое программное или аппаратное обеспечение, которое используется в вычислениях для генерации случайных чисел. Этот инструмент направлен на достижение справедливости в приложениях, основная функциональность которых основана на генерации случайных чисел. Несколько примеров включают игры и лотереи.
Блокчейны, в частности, имеют уникальные отношения с этим типом технологий, поскольку блокчейн построен на идее справедливого распределения возможностей в децентрализованной структуре. От процветающих децентрализованных приложений (DApps) на Ethereum до сетевых слепых ящиков NFT, которые становятся популярными с каждым днем, RNG являются обязательными для получения непредвзятых случайных входных данных, которые повышают доверие и удобство для пользователей.
Проблема создания ненадежной случайности
Однако создание искусственных случайных, безопасных и надежных чисел, применимых к ситуациям, требующим уникальной и ненадежной случайности в децентрализованных сетях, легче сказать, чем сделать.
Хотя существует несколько методов создания случайности как в физическом мире, так и в киберпространстве, качество достигнутой случайности в основном подразделяется на два типа: истинно случайные исходы и псевдослучайные исходы.
Действительно случайные числа (TRN) используют физические процессы реального мира. Эти генераторы случайных чисел часто основаны на микроскопических событиях, которые генерируют случайные импульсные сигналы низкого уровня. Это делает использование TRN в блокчейнах непрактичным, поскольку сложно развернуть эти микроскопические события в коде децентрализованной сети.
С другой стороны, псевдослучайные числа (PRN) генерируются с использованием математических алгоритмов, таких как код аутентификации хэш-сообщения с открытым ключом (HMAC), а также пороговая подпись.
В целом идеальный генератор случайных чисел на децентрализованной платформе должен обладать следующими фундаментальными свойствами:
Случайная уникальность
Выходные данные ГСЧ должны быть непредсказуемыми, уникальными и независимыми для каждого выхода. В противном случае злоумышленники могут тщательно выбрать случайные числа и использовать систему. Проще говоря, это означает, что после производства «выпуска A» производство следующего «выпуска B» должно зависеть только от вероятности его появления (B), а не от предыдущих выпусков (A) или будущих (C, D, Э ..). В децентрализованной структуре этот уровень уникальности должен применяться ко всему набору узлов, генерирующих случайные числа, а не только к части узлов в сети.
Неинтерактивные
В блокчейне возможно децентрализованное генерирование случайных чисел. Однако накладные расходы на связь станут ограничением или «единственной точкой отказа» для всей системы. Алгоритм ГСЧ должен исключить вывод «функции лазейки», которая обеспечивает обнаружение секретов при правильном вводе. В целом, неинтерактивные ГСЧ обеспечивают нулевую возможность экспорта, таким образом обеспечивая безопасную одностороннюю связь для каждого узла ГСЧ.
Доступность
Постоянная доступность базовых сервисов ГСЧ важна для децентрализованных сетей. Однако время безотказной работы текущих узлов децентрализованной системы непредсказуемо. Следовательно, алгоритм ГСЧ должен обеспечивать доступность на основе непредсказуемых узлов. Например, такие методы, как пороговая подпись или мультиподпись, лучше работают в децентрализованных системах, где в любой момент времени доступно более половины требуемых узлов. Эта доля колеблется от 50% до 90%. Если у вас есть система, в которой доступно менее половины узлов, важно создать больше альтернативных путей, если некоторые узлы недоступны. Например, если требуется 5 подписей, следует также использовать 3 резервные копии. Однако любой метод обеспечения отказоустойчивости будет зависеть от доступности узлов ГСЧ в сети.
Threshold BLS Signature: жизнеспособное ли это решение?
Пороговая подпись BLS (Boneh Lyn Shacham) - это схема криптографической цифровой подписи, которая меняет правила игры для любой децентрализованной сети. Эта схема цифровой подписи может генерировать случайность, не полагаясь на генераторы TRN, плюс она выгодно отличается от других алгоритмов, таких как популярный ECDSA.
Пороговые подписи BLS считаются более быстрыми и масштабируемыми, поэтому разработчики Ethereum 2.0 переходят на стандарт BLS12-381 в качестве основной схемы подписи сети. Применение стандарта пороговой подписи BLS позволит приложениям на основе BLS работать в Ethereum.
Более того, пороговая версия подписей BLS устойчива к децентрализованным системам, позволяя максимум половине групповых узлов в децентрализованной сети нести ответственность за генерацию случайности. Это обеспечивает достаточное количество участвующих узлов, что обеспечивает постоянную доступность узлов ГСЧ, а также безопасность сети.
Возможные существующие решения
Одна из лучших существующих реализаций пороговой подписи BLS - это архитектура ARPA RNG. Он не только позволяет любому запускать вычислительный узел ГСЧ в децентрализованной сети, но и делает все возможное, чтобы гарантировать проверяемые вычисления даже в условиях злонамеренного большинства в сети. Протоколы должны соответствовать всем трем необходимым характеристикам надежного, динамического и децентрализованного генератора случайных чисел, поскольку он способен со временем обучаться для улучшения результатов.
Источник