top of page

Taproot完全対応の実現:インターネットコンピュータにおけるKey-Tweaking

  • 執筆者の写真: ICP Japan
    ICP Japan
  • 5月6日
  • 読了時間: 3分

更新日:7月8日

インターネットコンピュータ(ICP)は、クロスチェーン互換性の向上を進めており、「Deuteriumマイルストーン」によって、BIP340で標準化されたSchnorr署名を含む**しきい値付きSchnorr署名(Threshold Schnorr Signatures)**がカニスターで生成可能になりました。

この実装により、Pay-To-Taproot(P2TR)アドレスの作成やTaprootトランザクションの発行が可能になっています。本記事では、ICP上でのTaprootサポートの進展、初期の制限、そしてkey-tweakingの導入によってどのようにBitcoinメタプロトコルとの統合が強化されたかを解説します。

P2TRアドレスとは?


BIP341で定義されたP2TRアドレスは、以下2つの経路での支払いに対応しています:
  • キー経路(Key Path)アドレスに含まれる公開鍵によって検証可能なSchnorr署名があれば、トランザクションが有効とされます。
  • スクリプト経路(Script Path)Bitcoinのスクリプト言語を使って条件を満たすことで支払える経路。スクリプトはMerkleツリーで秘匿化され、支払い時までその内容や数は非公開のままです。
特に、両方の経路に対応したアドレスでは、キー経路での支払いがスクリプト経路の存在そのものを隠蔽するため、プライバシー向上にも寄与します。これにより、例えばマルチシグの存在すら外部からは見えなくなるのです。

ICPにおけるP2TRの初期制限


Deuteriumリリース時点では、ICP上のP2TRアドレス作成に以下の制限がありました:

  1. スクリプトなしのP2TR(Key Path専用):Merkleツリーを含まないアドレスで、Key Pathのみ有効。ICPではこの形式はサポート済みでした。
  2. Key Pathが使えないP2TR(Script Path専用):Merkleツリーの葉に含まれる公開鍵を用いるスクリプトのみで支払える形式。ただし、ICPでは内部の公開鍵を使った署名に未対応だったため、この形式ではKey Path支払いができませんでした。
このため、開発者は事前に支払い方法を決めなければならず、柔軟性に欠けていたのです。

Threshold SchnorrにおけるKey-Tweakingとは?


P2TRアドレスのKey Path支払いでは、アドレスに使う公開鍵は以下のようにアドレス作成時に“ツイーク(tweak)”されます:

  1. 内部公開鍵とMerkleルートからハッシュ値(additive tweak)を生成
  2. このtweakを秘密鍵と公開鍵の両方に加算
  3. そのツイーク済み秘密鍵で署名し、ツイーク済み公開鍵で検証されるようにします
Threshold Schnorrでは秘密鍵が各ノードに分散されているため、各ノードで個別にツイークを適用する必要があるという複雑さがありました。

ICPの拡張:Key-Tweakingの正式サポート


今回のアップデートにより、Schnorr署名APIにKey-Tweakingが対応し、より汎用的なP2TRアドレス(Key Path + Script Pathの両方)を作成可能になりました。

主なメリット:

  • Taprootの標準仕様に準拠
  • Dapp開発者にとって実装がシンプルに
  • Bitcoinベースのスマートコントラクトの柔軟性向上

sign_with_schnorr API にaux(補助情報)フィールドが追加され、Merkleルート情報を含む署名リクエストが可能になりました。

今後このauxフィールドは他のBIPやユースケースにも活用される予定です。

活用シナリオと対応メタプロトコル


この新機能により、ICP上のカニスターが以下のBitcoinメタプロトコルと互換を持ちます:
  • Ordinals
  • BRC-20
  • Runes
  • Atomical
  • その他、Taprootを活用する全プロトコル

参考資料


  • ICP公式仕様書
  • Chain Fusionドキュメント
  • BIP340/BIP341仕様
  • Taproot対応のICP開発例(GitHubレポジトリ)

このアップデートは、ICPがBitcoinインフラとの完全な統合へ向けてまた一歩前進したことを意味します。次世代のBitcoin対応スマートコントラクトを構築するうえで、重要な基盤となるでしょう。

Comments


bottom of page