Почему не существует случайности в компьютерах и блокчейне? 🤔

Почему не существует случайности в компьютерах и блокчейне? 🤔

Всем привет! 👋 На связи Денис Добровольский, я Head of PMO в MetaLamp. Не так давно решил навестить ребят в офисе и услышал интересный разговор, касающийся отсутствия настоящего рандома в компьютере и блокчейне. Решил копнуть эту тему глубже и поделиться с вами! 📚

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

Компьютеры и предсказуемость 🤖

Компьютеры — это детерминированные машины, которые всегда следуют строго заданным инструкциям. Например, если запустить одну и ту же программу с одними и теми же данными, она выдаст одинаковый результат. Поэтому они используют псевдослучайные числа (PRNG), которые зависят от стартового значения (seed). Узнав этот seed, можно предсказать всю "случайную" последовательность. 🔄

Псевдослучайные числа создаются по сложным математическим алгоритмам, но они не являются истинно случайными, а только имитируют случайность. Алгоритмы PRNG часто используют различные переменные, такие как текущее время, чтобы попытаться создать непредсказуемость. Однако, если известны все начальные условия, последовательность чисел легко воспроизвести. Это делает их недостаточно надёжными для использования в тех случаях, где нужна высокая степень случайности и безопасности. 🔐

Почему это проблема для блокчейна? ⛓

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

  • Приватные ключи 🔑: Генерируются случайным образом. Недостаток энтропии может привести к компрометации ключей и утрате средств. Без достаточной случайности злоумышленник может предсказать или подобрать приватный ключ, что делает кошельки уязвимыми для атак. Приватные ключи — это основа всей криптографической безопасности в блокчейне, и их предсказуемость означает полный компромисс системы.
  • Алгоритмы консенсуса ⚖: Случайность необходима для выбора валидаторов, чтобы избежать манипуляций. Если процесс выбора предсказуем, злоумышленники могут повлиять на выбор и получить контроль над сетью. Это особенно важно в системах с большим количеством валидаторов, где честный и случайный выбор играет решающую роль в обеспечении безопасности всей сети. Предсказуемость процесса выбора делает возможным захват управления сетью, что противоречит самой концепции децентрализации.
  • Майнинг ⛏: Майнеры ищут подходящее значение nonce для генерации хеша, удовлетворяющего определённым условиям. Хеш-функции являются непредсказуемыми, что обеспечивает безопасность сети. Если бы результаты хеш-функций были предсказуемы, это позволило бы майнерам обманывать систему и манипулировать генерацией блоков, получая несправедливое преимущество перед другими участниками сети. Именно непредсказуемость хеширования делает майнинг честным процессом.

Как решают проблему случайности в блокчейне? 💡

Чтобы избежать уязвимостей, используются криптографически стойкие генераторы псевдослучайных чисел (CSPRNG). Эти генераторы сложно предсказать, поскольку они основаны на физических процессах и собирают энтропию из различных источников, таких как движения мыши, сетевой трафик и другие непредсказуемые события. Такие генераторы обеспечивают гораздо более высокий уровень безопасности по сравнению с обычными PRNG.

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

Креативные решения 🧠

Некоторые компании применяют необычные подходы для генерации истинной случайности:

  • Cloudflare использует стену с лавовыми лампами. Камеры фиксируют хаотичное движение лавы, и эти данные преобразуются в случайные числа с высокой энтропией. Это обеспечивает дополнительный уровень безопасности для их криптографических операций. Хаотичное движение лавы не может быть смоделировано или воспроизведено, что делает этот метод особенно эффективным для генерации случайных чисел. Лава движется непредсказуемо из-за множества факторов, таких как температура, гравитация и внешние вибрации, что создает неисчерпаемый источник энтропии. Использование таких физических источников случайности гарантирует высокий уровень безопасности.
  • Квантовые генераторы случайных чисел (QRNG) 🌌 становятся популярными, так как квантовые процессы по своей природе непредсказуемы и идеально подходят для применения в блокчейне. Они используют свойства квантовой механики для генерации истинно случайных чисел. Квантовая физика известна своей неопределённостью, и квантовые генераторы используют это свойство для создания по-настоящему случайных значений, которые не могут быть предсказаны или воспроизведены.
Почему не существует случайности в компьютерах и блокчейне? 🤔

Есть и другие интересные подходы, например:

  • Атмосферный шум 🌩: Использование данных о природных изменениях, таких как грозовые разряды и атмосферные явления, позволяет создавать по-настоящему случайные значения.
  • Генерация на основе космической радиации 🚀: Космическая радиация является непредсказуемой и может служить источником энтропии для создания случайных чисел.
  • Тепловой шум в микросхемах 🌡: Флуктуации напряжения в электронике, вызванные тепловыми процессами, также могут быть использованы для генерации случайных чисел.
  • Шум Шоттки ⚡: Возникает, когда электроны проходят через барьер в полупроводнике. Этот процесс хаотичен и его трудно предсказать, что делает его хорошим источником случайности.
  • Шум окружающей среды через веб-камеры 📹: В некоторых системах используется видеозахват случайных движений в окружающей среде, что добавляет ещё один уровень непредсказуемости.

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

Значение настоящей случайности для безопасности блокчейна 🔐

Настоящая случайность необходима для:

  • Защиты приватных ключей 🔑: Обеспечивает, что ключи невозможно предсказать или подобрать. Это особенно важно в блокчейне, где компрометация ключа ведёт к полной потере средств.
  • Честности алгоритмов консенсуса ⚖: Предотвращает возможность предсказания или влияния на выбор валидаторов. Это критично для обеспечения децентрализации и справедливости сети, так как валидаторы должны избираться случайным образом.
  • Безопасности майнинга ⛏: Гарантирует, что результаты хеширования непредсказуемы и майнеры не могут обмануть систему. Непредсказуемость хеширования делает сеть устойчивой к манипуляциям и атакам, таким как двойное расходование.

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

Фан-факты, бонусом 🎁:

  • Теоретически, можно случайно подобрать seed-фразу с крупным балансом на кошельке, но вероятность этого крайне мала. Всего возможных комбинаций для 12-словной seed фразы 5.444 × 10^39, то расчеты показывают: (5.444 × 10^39) / (4.32 × 10^10) = 1.26 × 10^29 дней. Для примера, возраст Вселенной составляет примерно 13.8 миллиардов лет, или 5 × 10^9 дней. Это показывает, насколько невероятен подбор нужной seed-фразы.
  • Random.org 🌐 использует атмосферный шум для генерации случайных чисел, что обеспечивает их честность и непредсказуемость. Это один из примеров использования природных процессов для получения истинной случайности. Благодаря использованию реальных физических явлений, Random.org может обеспечивать высокую степень доверия к своим результатам, что делает его популярным инструментом для проведения лотерей и розыгрышей.
Почему не существует случайности в компьютерах и блокчейне? 🤔

Итогом 📜

Истинная случайность критически важна для безопасности в блокчейне и криптографии.

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

Применение этих решений в блокчейне и криптографии гарантирует высокий уровень безопасности и устойчивость к возможным атакам.

В будущем, предполагаю, что развитие технологий случайности в блокчейне будет направлено на внедрение новых подходов и усиление защиты от угроз, связанных с квантовыми вычислениями и возрастанием сложности атак (защита от квантовых компьютеров в блокчейне уже тестируется. Но это тема другого поста). 🔮

44
22
Начать дискуссию