効率的なマルチシグ: 鍵の集約、便利です。お試しの100個の鍵によるECDSA-Schnorr署名マルチシグであっても瞬時に生成です。そこで、マルチシグの集約をサポートするためOP_CHECKSIGADDは不要で、この集約で常に署名するOP_CHECKSIGAGGを新規で投入します。

100個の鍵によるマルチシグ。非線形性のECDSAでは100個の公開鍵と署名が必要になるため、そのサイズは約10KBになります。サイズが大きくなるのに加え、OP_CHECKSIG同等の処理が100回必要となるため、検証側の負担が大きくなります。これが集約なら検証は1回で済む、という強みがあります。

このとき、トランザクション生成時のみの検証ならそれでも何とかなるのですが、その検証はブロックチェーンの同期の際にも発生します。つまり、同期の度にその100回の検証を行う必要があるため、非効率的となります。それゆえに実際はOP_CHECKMULTISIGとしてメモリプールに受け入れ可能な標準トランザクションで扱われるマルチシグの上限は多くて3までとか、5までとかに設定されています。

また、SORA-QAIで用意したSchnorr署名は公開鍵Y座標の制約がないため、ECDSAと完全な互換性があります。つまり、ECDSAで使った鍵をそのままSchnorr署名にも回すことができます。別にSchnorr署名用の鍵を生成したり、公開鍵Y座標に注意しながら使う必要性がありません。ECDSAと同じ感覚で集約できます。ちなみにnonceは乱数です。nonceやリカバリーポイント(R)などは、直接的ではないとはいえ署名に影響を及ぼし、検証後にブロックチェーンに書き込まれます。このようなハッカーに推論されるような値は、ブロックチェーンに残さないという方針です。

また、Schnorr署名を個別にADDしてマルチシグにする訳ではないため、OP_CHECKSIGADDは不要となりました。その代わりに集約を検証するOP_CHECKSIGAGGを新規で投入します。