【DEPCON】【第2部後半】Ethereumにおける乱数とその未来
DEPCON 2025 · 30 Jul 2025 · 23:57
Banri discusses randomness in Ethereum and its future in the second part of DEPCON.
Speakers
Topics
From DEPCON 2025, hosted by Nyx Foundation.
Transcript
はい。え、こんにちは。 こんにちは。 こんにちは。 えっと、ダニアリサーチというとこで、え、テックヘッドしてるバン里と申します。あ、そっか。 あ、下、下した。した。 はい。えっと、僕の方からは、えっと、 もう少し具体的なというか、えっと、最近 、あの、イサリアムにイサリサーチに投稿 したアイデアがあったので、それについて 共有させていただきたいと思います。 はい。えっと、で、ま、
アンプレディクタブルランダオっていう やつタイトルで、えっと、ビタっていう チームメイトと一緒に、えっと、投稿書き ました。これが、えっと、先月ズーベル リンっていうドイツのイベント、ベリンで のイベントがあって、ま、そこでそこ行く 途中フライトで思いついて、えっと、ま、 現地もその研究者が結構いらっしゃる感じ で、あの、ビタリックとかともちょっと 議論したりして、えっと、最終買えるまで にこれ書き切ろうっていう形で、えっと、 投稿したものです。 はい。で、えっと、ま、ランダオっていう 仕組みが、あの、今のイサレムにあるので
、それの、え、今のランダオがどうなっ てるかっていうとこと、え、僕らがどの ような提案をしたかで、最後に少しあの、 より将来的なイーサムのが乱数とかその 辺りどのように考えてるかを共有したいと 思います。 はい。 で、えっと、 そもそもというか、えっと、イーサリアム のプロポーザーアテスターっていう役割に ついての話なんですが、イーサリアムは、 えっと、バリデーターが大体100万台 全体であって、それを、えっと、 スロットという間違えた。エポックという
32スロットの単位で、えっと、役割が 割り振られます。なんで自分が1 バリデーターの目線だと、えっと、1回の 6分ぐらいのエポックあたりにスロット6 番目でアテステーションするんだなみたい な感じで、え、6分に1回 アテステーションの仕事をするという形に なってて、で、その なんだ、1スロットあたりプロポーザーっ ていうすごい特権を持った人がブロック 構築する権利を得られるという形になって ます。 なんで意外とあのこの辺やこしいんです けどこういう仕組みになってるっていう ことでこの誰がプロポーザーになるかで
アテスターが自分がどのスロットの アテスターになるかっていうのを司さどる というかそれを決定するのがランダウって いう仕組みの値になってます。 で、ランダオは、えっと、安全に疑似乱数 を作る仕組みっていうことで、今話したの がこの上のコンセンサスレイヤーの ブロック構築とか、え、アテステーション 提出委員会を選ぶ時に使うていう話で、 えっと、アプリケーションの方でも例えば ゲームのガチャとか、え、そういうのにも 使える
ようになってます。ただ、ま、下は実際 そんなに現状では使われてないものには なってるんですが、一応こういう、え、 安全に疑似ランスを作れる仕組みになって ます。 で、え、そもそも乱数生成っていうのは すごい難しいっていう話で、え、 ま、普通にソフトウェアで完全なランスを 作るっていうのもかなり難しいし、加えて イサリアムは分散システムなんで、ま、 さっきもちょっと話し合った決定論的に 決まるみたいなとこ。みんなが、みんなが 各自サイコロ振ったら答えが違っちゃって
、そのガチャの結果も変わっちゃうんで、 みんな同じサイコロの結果みたいなのが得 られないといけないていう難しさがあり ます。 で、今のランダムはざっくりこういう感じ になってて、えっと、ま、すごいシンプル です。えっと、 Eがこれが32スロット分なんですけど、 それの、えっと、ミックス値という値を 更新していくことで、最終的なミックス値 を次の次のエポックのプロポーザー アテスターの割フ振りに使います。じゃあ 、ミックス値はどう更新されていくかと
言うと、え、 各スロットに割り当てられたプロポーザー が、え、そのエポッ番号に対して自分の 秘密を使って署名します。BLS署名で 署名します。その署名の値をリビールと 言って、このリビールと前のミックス値を Xは、ま、足し算みたいな感じすることで ミックス値を構成するっていう感じで、各 スロット30に割り当てられた プロポーザーが署名のリビール値を作って 、またミックス値をアップデートする。で 、またアップデートするっていう感じで、
最後のミックス値、いろんなプロポーザー が紡いできたミックス値の更新を次の次の で使うという風になってます。 で、ただ、えっと、ここで1つ問題なのが 攻撃者、ま、悪いことを考えてるような人 が、えっと、ま、連続系スロットって書い てますけど、この後ろの方のスロットで 連続でプロポーザーっていう特権を得て しまった場合に、えっと、ま、例えばこの スロット2930が全部あの大手 ステーキングプロバイダーみたいなのが
たまたまプロポーザーに選ばれたとして、 えっとこの未来を自分らの都合のいいよう に書き換えるみたいなことができて技術的 にできてしまいます。っていうのも、えっ と、さっきミックス値を更新するっていう 前提で話しましたけど、プロポーザーは、 えっと、ブロックをプロポーズしないと いうこともできるんで、プロポーズしない 場合はミックス値更新されずにそのまま前 の値を引き継ぎます。なんで極端に言うと 29も30も31もプロポーズしない場合 はミックス値20828のミックス値を 更新しない更新しない更新しないでこれが e+2で使われるということでこの
後ろKスロット選ばれたら今みたいにこの スロットでプロポーズするかしないかこの スロットでプロポーズするかしないかする かしないかであの2かける稽 分の未来を計算して自分に都合のいい ミックス値をその次の次のエポックで俺 たちがたくさんまたプロポーザーに選ば れるような未来を選ぶみたいなことができ てしまいます。 で、ま、今のが1番シンプルな攻撃で、 えっと、すごい最近の論文で、ま、 チェーンをちょっとつぎ換えるみたいな 攻撃を起こして、連続じゃなくても攻撃 できちゃうっていうのも報告されてます。
じゃ、ここでアイデアとして、えっと、ま 、そんなプロポーザーがこの根本的にと いうかジャストアイアとしては プロポーザーの署名値を使って更新してる んだったら、じゃあ、ま、そんな プロポーザーが操作できないような値を このリビールの計算に使えばいいんじゃ ないかっていう単純な発想があると思い ます。 なんでここで一旦考えたのは アテステーションをリビール値の生成源と するアイデア。アテステーションっていう のは、えっと、どの遅延が正当化みたいな のを投票ですけど、これはアテスターって
いう役割の人が出すのでプロポーザーでは ないから、 ま、プロポーザーはあのいじれないという ことでこれで 結構いいかもねとなるんですが、 えっと、 これもよく考えてみると、その 攻撃者ってその大手の ステーキングプロバイダーとかを想定する んで、ま、もちろんバリデーター、大量の バリデーターになってるからアテスター側 にも攻撃者がいると想像するのは普通で、 もしそっちに攻撃者がいた場合にその
このアテステーション なんか10番目のアテステーションを出数 出さない。11番目のバリデタの アテスタス出さないみたいな感じで、えっ と、攻撃者側がアテスターにいるだけで かなり操れちゃう。リビールの値を いろんな値計算できちゃうっていう点で 結局それは根本的に解決できてないという か攻撃が可能になってしまってます。 じゃあ、えっと、この攻撃者プロポーザー がこのアテスターに選ばれたとしても操作 できないような値を作ることができたら、 っていうアイデアで考えたのが僕らの
アンプレディクタブルランダオです。 で、これは、えっと、ま、本当図はほぼ 一緒の形してて、何が違うかと言うと、 えっと、アテステーションじゃなくて シークレットシェアっていう、えっと、ま 、部分的な秘密みたいなものを使って、 えっと、 この式1署名っていう技術を使います。 それを、えっと、スロット番号に対して シークレット車を使って 部分、部分部分署名みたいなの作って、 それを集めることでリビール値を作ると、 この方式にすると、
えっと、あ、そっか。えっと、今の話で、 今説明した部分は2番目のところですね。 で、えっと、 このコミッティっていうのも、えっと、 新たに今のアテステーションの委員会とは 別で設ける必要が、え、後で説明するん ですけどあって、そこで、えっと、 ホシルのILコミッティっていうのを活用 する。 ま、大きく3つのアイデアのうちの上2つ を説明します。 で、1つ目のホシールのILコミティ活用 ニロ不能性っていうとこなんですけど、 ポシルっていうのが、えっと、今Eサレム
の提案されてるEIP7732 だったかなの提案になってて、結構ま、次 の次のアップグレードで入るかもしれない 目玉の1つみたいになってて、結構 コミュニティでは、えっと、議論されてる ものになってます。で、ここではそのこの 詳細を説明しないんですけど、 インクルジョンリストっていうもののため のコミッティっていう役割が新しく増えて 、で、ここの人たちは16人しかいません 。で、えっと、僕らの式一位署名っていう 形でやろうとすると、そのパフォーマンス の観点で今のアテスターのコミティでは 結構難しいていうことで、えっと、この
ILコミッティに 保シルの提案のILコミッティの仕事を 増やすことで、え、敷位1署名を提出 するっていう仕事を増やすことで出現 できるんじゃないかっていう風に考えまし た。 ま、もちろん僕らがそのランダオ専用の コミッティみたいなのを作るっていう提案 もできるんですけど、ま、もちろん複雑に なるのはなるべく避けたいし、あの、こう いう今ある提案にアラインすることでより あのプロトコルをシンプルに保って、あの 、実装の難易度も下げることができると。 え、もう1つのアイデアがその式位1署名
っていうものを使って操作不可能にすると いう話です。で、これはえっと 今のイサレムのアテステーションの署名 っていうのは集約署名っていう形になって て、えっと、 ま、すごいざっくり言うと、あの、単純に 足し算、あの、当て、署名の値を足し算し て、あの、合計を取るみたいな処理になっ てます。でもそれだと、あの、これとこれ を足す時、足さない時みたいな感じで いろんな組み合わせが計算できてしまうん ですけど、この式1署名だと、えっと、 1位の値、唯一無理の値を生成することが
できます。えっと、より厳密に言うと、 えっと、 n、n人のうちのt人が署名さえすれば出 てくる値は1位であるっていう形にする ことができます。これは裏側の数学的には えっとラグランジ保管っていうのが使われ ててえっと ますごいな何て言うんだろう通る1次元多 他式は1つに決まるみたいな感じでt点を 通るt-1次他式は1位に決まるっていう 性質があの裏側で使われているおかげで えっとBLS署名の敷一位置署名版を使っ
て値の唯一性を作ることができます。で、 しかも今のBLS署名を敷位1置署名に 拡張させることも自然に可能になってるの で式署名の中でもBLS式署名がいいと 考えました。 で、えっと、これによって、あの、 プロポーザーのさっき操作可能性みたいな 話をしたと思うんですけど、それを2の 形状っていう指数関数的なものから先形な k+1っていうのに、えっと、できた話を ちょっとします。えっと、まび3スロット が攻撃者に乗っ取られた場合を考えると
このスロット30になった時点で プロポーザーはあのプロポーズするしない するしないを全部計算して8通り全部未来 が分かっちゃうんですけど僕らの アンプレディクタブルランダだとこのまだ 敷位署名が集まってないんで未来が計算 できるのが直近 スロット30のとこだけとま3132でも 0だった時だけ計算できるからこの時点で 2通りしか計算できなくて時間が進んだ後 もまた未来があの上は変わんないですね。 上はもう事前に8通り計算して好きなのを
選べるけど下だとまたあの不確定なところ が残ってただま1個ニューっていうのが1 つ増えるんでちょっと+1増えて最終的に k=3だったら 既存のランダでは8通り僕らの提案では4 通りっていう風になってまこれKが小さい からあんまりすごよく見えないですけど、 例えばすごいごくたまたまK=10みたい な感じになっちゃうと上は1000通り ぐらいあるのに対して僕らはその11通り に抑えることができるっていう予測可能 未来パターン数を劇的に下げることに成功
したっていう提案です。 で、そうですね、ま、ただ、あの、 もちろん新しい実装コストとかもかかるし 、あの、今の説明を省いたんですけど、V 、え、敷位置署名を実現するための セットアップみたいなのも必要になってき たりで、えっと、現実的にあの、この提案 が通るかって言うと、ま、もちろん分から ないとこが多いんですけど、じゃ、今実際 にイーサリアムが、えっと、未来のランス についてどう考えてるかっていうのを最後 に書き足して話します。 えっと、ビームチェンっていう構想があっ
て、え、これはジャスティンドレイクって いう有名な人が、あのイーサリアムの コンセンサをスナークか対量子化するって いう暗号部分を大きくアップデートすると いう構想を話してて、 で、そこであ、この図の1番右下のとこに ストロングランダムネスっていう風に書い てで、一応スケジュールの中に入ってます 。 で、そのVDFっていうのが、 あの、単純に計算するには一定時間かかる けど、検証は高速になるっていう暗号的な 関数を使うことで、え、ビームチェーンで
はランダムネスを実現しようとしてい るっていうのがあって、えっと、 ま、ただ実際イサリムが使おうとしてる ミンルートっていうVDFはなんか脆弱性 が報告されてたりするんで、実際 実際どうなのみたいなのをジャス インドリークが質問してみたら答えてくれ て、ま、一応脆弱性は理論的なものだけど 実用的にはパラメーター変えたりして対処 できるもの 回答で民ルートが最有力だそうです。 で、えっと、ちょっと話は変わるんです けど、ビームチェーンの構想では、あの、
大量子署名としてXMSっていうのが1番 最有力候補になっていて、えっと、 これはあの直近の論文では エンコーディング手法をより効率的にする ことで、このXMSをよりあの実際に Eサムまで動かせるレベルの冷天に実現 しようという論文があります。 はい。 で、えっと、最後に、あの、ま、僕らの アンプレディクタブルランダをは、えっと 、
ま、このフォシルのILコミティとBLS 敷地署名っていうので予測可能性を指数 関数から先形に改善することができたって いう提案なんですけど、ま、こっからあの やりたいなと、え、考えてるのは、ま、 すごい直近ですけど、今少し説明した XMSこれをあの、ま、実際に今実装もし てて形式検証でよりセキュリティを高めて いったり 、ま、少しこうしたら改善できるんじゃ ないかっていう仮説もあるので、その辺を 通じて貢献していきたいと考えてます。 はい、以上です。ありがとうございます。 はい、ありがとうございます。質問が1
件、え、攻撃者がコミティの 2/3を超えると値が1 位でなくなるのはなぜですか? あ、ありがとうございます。えっと、 2/3を超えると1 位でなくなるっていうわけではないです。すいません。 もし護弊がある表現だったら申し訳ないん ですけどというよりは、え、2/3を 超えると、あ、ま、1位じゃなくなるで あってるか、あの攻撃者があの80%もし コミティのうちの80%を握ったとして、 えっと、そしたらあの攻撃敷率署名自体を あの出す、出した後の計算結果が分かって
しまう。で、ただ分かりはするけど結局 それが1位ではあるっていうのが、え、 正しい答えだと思います。なので、そう ですね、予測可能性みたいなところが少し 上がってしまうというだけです。 ありがとうございます。 会場の方から質問いらっしゃいますか? ああ 、発表ありがとうございました。 あの、えっと、インクルジョンリストのバリターみたいなところで、あの、 16人、16人、16 人のところがあったと思うんですけど、これ 16人 こう直感的にはあの、イーサリアムのセキュリティのためには少なすぎるように思えるんですけれど、 その人数で十分なのはなぜなんでしょう?
そうです。そこがすごい、ま、もちろん僕 らもデザインスペースと残しして残しては いるんですけど、えっと、 え、この提案した時点では僕らはその、ま 、よりフォルに実装、より実装に含まれる 方を優先した的な考えもあって、あの、 そこを、えっと、含めてたんですけど、 あの、今では少し考えが変わってて、えっ えっと、えー、 あの、結局これDKGなんでロテする必要 があると思うんですね、コミティを。で、 そのローテーションって、あの、基本的に はこういうEサレムの処理って1ポックに
1回しか、 あの、1エポックに1回っていう頻度で しかそういう更新ができないっていう制約 、ま、それ未満いないっていう風に考えて たんですけど、実際あのシンクコミッティ は結構なんぼだっけな、何百エポックに1 回ロテしてるみたいな話があるので、そう いうことがをやってもいいんだっていうの に気づいてから は、あの、より自分らのコミティを、え、もう少し大きい数で設け、え、長い頻度で老手するっていう形が 1番いいと考えてます。 ありがとうございます。 はい、ありがとうございます。他に質問ある方いらっしゃいますか?はい、じゃあ大丈夫そうですかね?はい、じゃありがとうございました。 Yeah.