おはようございます。
web3リサーチャーのmitsuiです。
毎週土日の昼には基礎単語解説記事をお届けします。各記事をサクッと読めるような文量にして、改めて振り返れる、また勉強できるような記事を目指していきます。
本日は「乱数」です。
ぜひ最後までご覧ください!
「ランダムに選びます。」抽選やゲーム、宝くじなど、私たちは日常的に「ランダム」という言葉を使っています。しかしコンピューターの世界では、本当にランダムな数字を作ることは意外なほど難しいのです。
そしてこの問題は、ブロックチェーンにとっても重要です。バリデーターの選出、NFTのミント、オンチェーンゲームなど、多くの場面で「公平なランダム性」が求められるからです。乱数の問題を理解すると、web3が抱える技術的な課題の一つが見えてきます。
乱数とは何か
乱数とは、次にどんな値が出るか予測できない数字の列のことです。サイコロを振ったとき、次に何の目が出るかは誰にもわかりません。くじ引きの結果も、抽選の当選番号も、事前に知ることはできません。この「予測不可能性」こそが、乱数の本質です。
日常生活では、乱数は「公平さ」を担保するために使われています。宝くじの抽選が公平であるためには、当選番号が誰にも予測できず、誰にも操作できない必要があります。スポーツのドラフト抽選や裁判員の選出にも、同じ原理が働いています。
ここで重要なのは、「ランダムに見える」ことと「本当にランダムである」ことは違うということです。人間が適当に数字を並べても、そこには無意識のパターンや偏りが生まれます。真の乱数とは、いかなる方法を用いても次の値を予測できない状態を意味します。
コンピューターは本当にランダムを作れるのか
実は、コンピューターは本来「ランダム」が苦手です。コンピューターは決定的な機械であり、同じ入力を与えれば、常に同じ出力を返します。プログラムは命令の通りに正確に動くことが設計思想の根幹にあるため、「予測できない振る舞い」は本質的に矛盾しています。




