Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DahLIAS: Discrete Logarithm-Based Interactive A...

DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures

GBECの解説動画の資料です。
https://goblockchain.network/2025/10/dahlias/

Avatar for shigeyuki azuchi

shigeyuki azuchi

October 09, 2025
Tweet

More Decks by shigeyuki azuchi

Other Decks in Technology

Transcript

  1. 1 DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures 
 https://eprint.iacr.org/2025/692.pdf 


    単一のSchnorr署名と同じサイズの集約署名を可能にするスキーム
 
 • 集約署名
 複数の署名者が、それぞれ異なるメッセージに署名し、
 その署名を集約するスキーム
 
 ※ MuSigやFROSTなど同じメッセージに対する署名(マルチシグ)の 
 集約とはまた別
 
 • 既存のスキーム
 n個の署名があった場合、約半分のサイズ(n/2)への集約が可能 
 ◦ ASchnorr
 ◦ IASchnorr
 ◦ SASchnorr
 https://goblockchain.network/2022/11/half-aggregation/
 
 サイズメリットが大きいが、既存のスキームが非対話型なのに対し、
 DahLIASは対話型のスキームになる

  2. 2 DahLIASの署名プロセス
 • 各署名者iは秘密鍵x i と対応する公開鍵P i = x i

    Gを持つ
 • 署名者iが署名するメッセージを m i とする
 
 【Sign】
  各署名者iは、署名に使用するnonceにコミットする。 
 1. 2つのシークレットnonce k 1,i , k 2, i を選択
 2. 対応する公開nonce R 1,i = k 1,i G, R 2,i = k 2,i Gを計算
 3. (R 1,i , R 2,i )をコーディネーターに送信 
 
 【Coord】
  全署名者の公開鍵 P i と署名対象のm i 、公開ナンス(R 1,i , R 2,i )を受け取ったコーディネーターは、 
 1. R 1 = Σ R 1,i とR 2 = Σ R 2,i を計算
 2. セッションコンテキスト ctx = (R 1 , R 2 , (P 1 , m 1 , R 2,1 ), … (P n , m n , R 2,n ))を定義
 3. b = H non (ctx) を計算
 4. R = R 1 + bR 2 を計算
 5. ctxを全署名者に送信する 

  3. 3 DahLIASの署名プロセス
 
 【Sign'】
  2回めのラウンドでは、各署名者は部分署名を生成する 
 1. コーディネーターから受け取った ctx =

    (R 1 , R 2 , (P 1 , m 1 , R 2,1 ), … (P n , m n , R 2,n ))をパース
 2. 1回めのラウンドで生成した自分の R 2,i が1つだけ存在するかチェック 
 3. 見つかった2のインデクスを jとして、P j , m j が自分の公開鍵、メッセージかチェック 
 4. ctxの公開鍵とメッセージのペアから L = ((P 1 , m 1 ), … (P n , m n ))を定義
 5. b = H non (ctx) を計算
 6. R = R 1 + bR 2 を計算
 7. c i = H sig (L, R, P i , m i )を計算
 8. 部分署名s i = k 1,i + bk 2,i + c i x i を計算し、コーディネーターに送信 
 
 【Coord’】
  全署名者から部分署名を受け取ったら、 
 1. s = Σs i を計算
 2. 署名σ =(R, s) を完成させる

  4. 4 DahLIASの検証プロセス
 
 公開鍵とメッセージのリスト L = ((P 1 , m

    1 ), … (P n , m n ))と署名σ =(R, s) を受け取った検証者は 
 
 sG = R + Σ H sig (L, R, P i , m i )P i 
 
 が成立するか検証する 
 
 sG = Σs i G = Σ(k 1,i + bk 2,i + c i x i )G = R 1 + bR 2 + Σc i P i = R + Σc i P i
 
 
 【単一のSchnorr署名の検証】 
  
  sG = R + H sig (R, P, m)P