1. ランダムなnonce kを選択し、 2. R = kGを計算 3. e = H(P || R || m) を計算 4. s = k + exを計算 5. (R, s)がSchnorr署名 https://www.wpsoftware.net/andrew/blog/cat-and-schnorr-tricks-i.html 【Schnorrトリック】 P = R = G に固定する、つまりx = k = 1 生成されるSchnorr署名はs = 1 + e (G, 1 + e) sの値が署名対象のメッセージダイジェストに 1を加算した値になる このSchnorr署名の検証をパスするためには、 トランザクションが指定された形式( m)になっている必要がある つまり、コベナンツが可能になる!
<s> Schnorr署名のデータの一部となる Txをハッシュしたデータ sが提供された際のスタックの動作 s G s G s G s G s s G G s Gs Gs s G <G> OP_2DUP OP_SWAP OP_CAT OP_SWAP OP_CHECKSIG s G = P→公開鍵 Gs = (R, s)→ Schnorr署名 Schnorrトリックによる署名検証