著者: 0xShinChann, Crypto KOL; 翻訳: 0xjs@GoldenFinance
OP_CAT は、かつてサトシ・ナカモトによってBTCスクリプト言語から削除されたオペコードですが、現在再びコミュニティにおける熱い議論の中心となっています(注:OP_CATは、Bitcoin Asiaカンファレンス中にビットコイン開発者によって最も議論されたものです)。
潜在的なアップグレードとして、Bitcoin Improvement Proposal (BIP) 347として最初の公式指定を受けました。
OP_CATは、ビットコインのスマートコントラクト(イーサに似ている)の機能改善を目的としたイニシアチブです。この記事では、OP_CATとは何か、その動作メカニズム、ユースケースは何か、コミュニティでの論争は何かなどについて詳しく説明します。
1.背景:OP_CATが生まれた経緯
OP_CATはビットコインにおける初期のオペコードです。これはもともと、ビットコインの創始者であるサトシ・ナカモトによってプログラミングのショートカットとして作成されました。しかし、高いメモリ使用量と潜在的なセキュリティ脆弱性への懸念から、2010年に削除されました。
2023年10月、ビットコインの研究者であるEthan Heilman氏とArmin Sabouri氏は、OP_CAT opcodeをビットコインのスクリプト言語に再導入することを提案するBitcoin Improvement Proposal(BIP)を提案しました。
このオペコードは、開発者がTaprootアップグレードで新しいトランザクションタイプを有効にするために使用されるネイティブスクリプト言語であるTapscriptで、Merkleツリーやその他のハッシュデータ構造を構築し、評価することを可能にします。
2.OP_CATは理論的にはどのように機能するのですか?
(i) 値のポップ: まず、スタックから上位2つの項目を削除します。
(ii) 結合:次に2つの項目を結合する。x1とx2がアイテムで、x2が最後に追加されたアイテムである場合、OP_CATはそれらを結合してx1x2とします。
(iii)プッシュバック:新しく結合されたアイテムは、スタックの一番上に戻されます。
ただし、OP_CATは、スタック上に2つ以下のアイテムしかない場合や、結合されたアイテムのサイズが520バイト(ビットコインのスクリプト要素の上限)を超える場合には機能しません。ソフトフォークによって有効化された場合、スクリプト内の既存の使用されていない操作を置き換え、ネットワークに大きな変更を必要とせずにそれらをアクティブにします。
3.なぜOP_CATが必要で、何をするのですか?
データ処理の簡素化: OP_CAT により、Tapscript 内で 2 つのスタック値をマージできます。これにより、複雑なデータ構造の作成が簡素化され、スクリプトの機能が強化されます。
ビットコインの機能を拡張する:OP_CATは、ビットコインには存在しないがイーサでは重要な共通機能を導入します。これにより、L2、DEX、dAppの開発が簡素化され、ビットコインネットワークが汎用的になります。
マルチシグネチャースクリプト:OP_CATはマルチシグネチャースクリプトのサイズを縮小するのに役立ち、より効率的で煩雑さを軽減します。
複雑な契約の促進: OP_CATは、秘密鍵が漏洩した場合でも資金を保護する保管庫などの高度な契約をサポートします。
4.ビットコインにおけるOP_CATの役割は議論の余地がある:OP_CATは完璧か?
この提案は、ブロックチェーンとしてのビットコインが将来どのように進化するのか、あるいは進化しないのかという道筋に影響するため、少し物議を醸しています。
ある陣営は、Bitcoinはそのままであるべきで、BTCを取引するという中核機能を維持すべきだと考えており、他の陣営は、Bitcoinはまだ骨抜きにされておらず、盛んになりつつあるスケーラビリティソリューション(ブリッジやL2など)を強化する余地があると考えています。
問題の核心は、ビットコインがよりプログラム可能なパブリックチェーンにスケールすべきか、それともP2P決済レイヤーのままであるべきか、という重要な決定です。
BIP347の詳細については、こちらのアドレスをご覧ください: https://github.com/bitcoin/bips/blob/master/bip-0347.mediawiki