Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Secure On-chain Randomness By Oasis Is A Great Way To Answer The Blockchain Need For RNG

2025年09月23日に「Dev.to」が公開したITニュース「Secure On-chain Randomness By Oasis Is A Great Way To Answer The Blockchain Need For RNG」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

ブロックチェーンは透明性ゆえに、安全な乱数生成が難しい課題だった。Oasisは機密性の高いEVMランタイム「Sapphire」とVRF技術でこれを解決。ブロックやトランザクションごとに予測不可能な乱数を安全に生成し、開発者が簡単に利用できるようにした。dAppsやセキュリティが強化される。

ITニュース解説

ブロックチェーン技術には、データの透明性が高く、一度記録された情報を改ざんすることが極めて困難であるといった多くの利点がある。しかし、コンピュータは指示された通りに正確に動作する「決定論的」な機械であるため、予測不可能な「乱数」をブロックチェーン上で直接生成することは非常に難しいという課題があった。それでも、乱数生成は、ゲームの抽選、暗号資産の取引、新しいブロックチェーンアプリケーション(dApps)の開発など、多岐にわたる場面で不可欠な要素となっている。公正で偏りのない、そして予測不能な結果を生み出すためには、信頼できる乱数生成器(RNG)が必須となるのだ。Oasisはこの課題に対し、開発者が乱数を自身のアプリケーションに簡単に組み込めるような、独自の解決策を提示している。

コンピュータが乱数を生成すると言っても、それは人間が考えるような「真のランダム」ではない。コンピュータは、特定のアルゴリズムと初期値(シード値)に基づいて数列を生成する「擬似乱数」を生み出す。このシード値が分かってしまえば、生成される乱数のパターンはすべて予測できてしまうため、真のランダムとは言えない。一方、真の乱数とは、サイコロの出目や空気中の粒子の動きといった、予測不可能な物理現象を利用して生成されるもので、これを「非決定論的乱数」と呼ぶ。ブロックチェーンの特性上、すべてのノードが同じ結果に到達し、合意形成を行う必要があるため、この決定論的な性質がブロックチェーン上での乱数生成をより一層複雑にしている。

ブロックチェーン上で乱数が必要とされる理由はいくつかある。一つは、dAppsやWeb3のアプリケーションにおいて、結果の公平性を保証するためだ。例えば、オンラインゲームでのアイテムの出現率や、参加者への報酬の抽選など、予測可能な乱数では不正行為が容易になってしまう。また、ブロックチェーンの中核をなす暗号操作においても乱数は不可欠だ。トランザクションを安全にするためのユニークな鍵の生成、データの暗号化、ユーザーの認証など、あらゆる場面で予測不可能な数値が求められる。安全なブロックチェーン上の乱数がなければ、鍵が逆算されたり、結果が操作されたりといったセキュリティ上の脆弱性が生まれる可能性があり、システム全体が危険に晒されてしまう。Oasisは、この困難な課題に対して、Verifiable Random Function(VRF)という検証可能な乱数生成機能と、他の暗号技術を組み合わせることで解決策を提供している。

Oasisの乱数生成システムは、彼らが提供する機密性EVMランタイム「Sapphire」を中心に設計されている。Sapphireは、スマートコントラクトの開発者が乱数を簡単に利用できるよう、「randomBytes」というシンプルな機能を通じて、ブロックチェーン上の乱数生成の複雑な部分を抽象化している。これにより、開発者は詳細な技術的知識がなくても、信頼性の高い乱数をアプリケーションに統合できる。

この乱数生成の仕組みは二段階で構成されている。まず、各ブロックの生成時に「ルートRNG」と呼ばれる、そのブロックの乱数の基盤となる値が生成される。Sapphireは、このプロセスで秘密鍵を管理する「キーマネージャーランタイム」と連携する。キーマネージャーは、一時的にだけ使われる「エフェメラルキー」を生成し、これはトランザクションの暗号化と乱数生成の両方に利用される。セキュリティを最大限に高めるため、これらのキーはどこにも永続的に保存されることはなく、一定の期間(エポック)が経過すると新しいキーに更新され、古いキーは安全に消去される。これにより、たとえシステムの一部が将来的に攻撃されたとしても、過去のキーが漏洩するリスクが軽減される。

このエフェメラルキーから得られる秘密のエントロピー(乱数の種となる情報)は、信頼実行環境(TEE)という、外部から隔離された安全な領域で動作するSapphireインスタンスのみが利用できる。これにより、乱数生成の過程で使われる情報が外部に漏洩することは絶対にない。この秘密のエントロピーは、さらに高度な暗号アルゴリズム(SHA-3由来のTupleHash、KMAC256、cSHAKEなど)によって処理され、各ブロックで一意かつ安全な「ルートVRFキー」へと変換される。このルートVRFキーが、そのブロック内で生成されるすべての乱数の基礎となり、一貫性とセキュリティを保証する。

次に、このルートRNGだけでは不十分なため、「ドメイン分離」という技術を用いて、各トランザクションごとに独自の乱数を生成する。もしルートRNGだけだと、同じブロック内のすべてのトランザクションが同じ乱数を受け取ってしまう可能性があるからだ。そこでSapphireは、Merlinトランスクリプトという技術を利用し、ルートRNGに各トランザクションに固有の情報を組み合わせて、個別の乱数を初期化する。つまり、トランザクションごとに異なるデータを使って乱数を「カスタマイズ」する仕組みだ。このカスタマイズのプロセスは、Sapphireを構築する際に使われているRust Runtime SDKという開発キットの中で実装されている。キーマネージャーから提供される秘密のエントロピーと、このドメイン分離の仕組みが連携することで、開発者はrandomBytesというシンプルな機能を通じて、プライベートで、偏りがなく、予測不可能な乱数を手軽に利用できるのである。

例えば、アプリケーションで32バイトのランダムな値を生成したい場合、シンプルな関数を呼び出すだけでこの値を取得できる。これは、オンラインカジノゲームの抽選や、カードゲームのシャッフルなど、公正な乱数が求められる様々な場面で利用可能だ。また、この乱数をセキュリティの高い署名鍵ペアを生成するためのシード値(元になる情報)として利用することも可能で、これはより複雑な暗号技術を必要とするアプリケーションのセキュリティ基盤を強化するために役立つ。

このようにOasisは、ブロックチェーンが抱える乱数生成の困難な課題に対し、高度な暗号技術と安全な実行環境を組み合わせることで、開発者が簡単に、そして安心して利用できる乱数サービスを提供している。これにより、ブロックチェーン技術の可能性がさらに広がり、より公正で安全な分散型アプリケーションの開発が進むことが期待される。

関連コンテンツ

関連IT用語

関連ITニュース