このゲスト投稿はPyrite(ruby.exchangコアチーム)によって書かれました。

Ruby.Exchangeの基本的な特徴の一つはジェムストーンの使用です。ジェムストーンは見た目とユーザーに提供する実用上の機能性の両方に関して多様であるNFTアートワークです。

ユーザープロファイル識別子として表示されるジェムストーンはランダム生成されたパラメーターを持っています。一方、許可されたリワードをユーザーに与えるジェムはシンプルなラッフルくじ方式を使って配布されます。それぞれの場合で乱数ジェネレーター(RNG)が必要です。

しかし、コンピューターシステムの決定論的な環境の範囲内において信頼できる乱数を生成するのは難しいのです。同時に、現実の経済的価値を体現するジェムストーンの割り当てをユーザーとネットワークバリデーターのどちらも操作できないようにすることが肝心です。

結論から言いますと、SKALEのBLS署名はこの問題に対する理想的なソリューションを提供します。

オンチェーンランダム性の問題

ランダム性はオンラインとオフライン両方の多くのアプリケーションにとって重要です。重要性が最も明らかなのは賭博の場合ですが、それ以外にも医療試験、暗号キー生成、統計的サンプリング、コンピューターシミュレーション、それにジェネレーティブアートにまで至る多様な領域においても重要です。

オフラインの世界では、十分な「質」のランダム性は単純なコイントスやサイコロ振りで得ることができます。デジタルの世界では、真のランダム性は見つけるのがずっと難しいのです。暗号ウォレットのためのプライベートキー生成では、数秒間マウスを動かすといった形でランダム性のソースを人間が提供する場合が多くあります。もちろん、乱数がリアルタイムで必要な場合はこのようなやり方は実用的ではありません。

テレビゲームは典型的には擬似乱数ジェネレーター(PRNG)を使います。これはほとんどの目的には十分ですが、真にランダムとは言えません。価値が関わるアプリケーションを扱う場合は、危ない橋を渡るわけにはいきません。

Ruby.ExchangeはジェムストーンNFTを生成し配布するのにRNGを必要とします。これは、攻撃者が影響を与えることができず、皆が信頼でき、完全な透明性のためにブロックチェーンに統合されているランダム性のソースを使う必要があります。

実際イーサリアムは各ブロックに含まれるデータのハッシュという形でランダム性のソースを持っています。これはほとんど全てのアプリケーションにとって十分なものでしょう。ただし、データを構築しその結果生じるハッシュを変えることができるうえ他の誰よりも先に結果を知ることができる単一のマイナーによって各ブロックが作られるという事実が無かったらの話ですが。言い換えれば、マイナーはランダム性に先回りできるのです。つまり、イーサリアム上でバーチャルなコインをトスしたら、それが着地する前にマイナーが結果を知るのを避けることすらできないということです。

イーサリアムベースのプロジェクトの多くは、証明可能な形でフェアなRNGであるチェーンリンクのVRF(検証可能ランダム関数)を使っていますが、これはSKALEではまだ使えません。

幸い、ネットワークが確保される方法に直で組み込まれた理想的なソリューションをSKALE自体が備えています。

BLS署名が最高

上の動画でStanがコメントしているように、協調的な形で多数のノードから乱数を生成することができ、それによって分散型で信頼できるランダム性のソースを提供できる数学的アルゴリズムが一つだけ知られています。

BLS(ボネ・リン・シャチャム)署名は、各署名者が最終的な署名の断片を提供する形でグループがメッセージ(文書でもブロックチェーン取引でも何でも)に署名することを可能にします。

潜在的な署名者からなる上位集合のいかなる部分集合が取引にサインしても同じ結果を生成することが可能です。SKALEは既にそのような閾値署名を使っており、そこでは単一のバリデーターだけが各ブロックの生成に責任があるのではなく、ブロックを認証するのに圧倒的多数のノード(例えば16のうち11)が必要とされます。

ノードからなる上位集合のいかなる部分集合も同じ署名を作成できます。

これが意味するのは、BLSブロック署名は信頼できるランダム性のソースであると考えられるということです。生成される乱数は各ブロックによって変わり(数秒ごとに)、悪者のマイナーが影響を与えたり事前に予測したりすることは不可能です。

実際、このランダム性のソースはシンプルなソリディティーコールを使ってアクセスすることができ、Rubyや他のアプリケーションが簡単に使うことができます。

乱数生成は数行のコードだけで分散型アプリに組み込むことができます。

信頼できるランダム性を持つNFT

SKALEによる閾値暗号化の使用が意味するのは、SKALEがコンセンサスを確立しブロックチェーンにブロックを追加する方法に組み込まれたランダム性のソースが存在するということです。

BLS署名は、SKALEチェーンに対するMEV攻撃を防ぐテクノロジーでもあります。したがって、イーサリアムメインネット上のDeFiアプリケーションを悩ますRubyにおける先回りの問題を回避することができるのです。この特徴も私たちが評価するところです。

SKALEネットワークのこのユニークな特性が意味するのは、NFTが生成される方法の中に証明可能な乱数を組み込むことのできる理想的な方法をRubyが持っているということです。その乱数を潜在的な攻撃者に知られないようにしてから攻撃者以外の皆に知らせる方法もです。

安全に、簡単に、そして無料で。

Pyrite(ruby.exchangeコアチーム)

より詳しい情報はこちら https://ruby.exchange/ & https://blog.ruby.exchange/