
ビットコインの再びの急騰をもたらした新技術開発のまとめ
TechFlow厳選深潮セレクト

ビットコインの再びの急騰をもたらした新技術開発のまとめ
ビットコインの元々の技術には、大規模な応用とビットコインが本来持つべき能力との間で対立する問題が常に存在している。
執筆:付少慶、SatoshiLab、万物島 BTC ワークショップ
1. ビットコインの既存技術における主な探求と対立
ビットコインの既存技術には、大規模応用およびビットコインが持つべき能力に関する対立問題が常に存在している。大規模応用や取引規模の拡大は、より複雑な取引命令やより大きな取引スペースを意味するのか?すべての機能をビットコイン単一システム上で実現しなければならないのか?初期において、ビットコインエコシステムの技術が未熟だったため、これらの現象はすべてビットコイン自体の問題であるように見えた。しかし技術の進展とともに、多くの問題に対してより明確な答えが得られるようになる。
本稿では関連するいくつかの問題、それらの発生経緯と解決プロセスについて述べる。この記事を通じて、これらの問題と技術との関連性、またビットコインメインチェーンおよび関連「テストチェーン」の変遷過程を確認できる。ビットコインの技術は、さまざまなプロジェクトやチームによって継続的に探求されてきた(イーサリアムもまた、ビットコインの不完全性に対する一種の探求である)。ただし、その変化は長らくビットコインメインネット上で顕著ではなかった。タプロート(Taproot)などの技術が登場し、オーディナルズ(Ordinals)プロトコルなどが生まれたことで、再び新たな発展のピークを迎えたのである。
こうした発展の流れと関連技術を全体として見ると、それらの相互関係が明らかになり、今後の発展方向や全体的なアーキテクチャを推測することも可能になる。
1.1. ビットコインのスクリプト言語と削除された命令
ビットコインのプログラミング言語は、逆ポーランド記法に基づくスクリプト言語であり、ループ文や条件制御文を持たない(後述の通り、TaprootおよびTaproot Scriptがこの部分の能力を拡張している)。そのため、よく言われるように「ビットコインのスクリプト言語はチューリング完全ではない」とされ、一定の限界がある。
もちろん、このような制限があるおかげで、ハッカーがネットワークを停止させる無限ループや、DoS攻撃を引き起こす悪意のあるコードを書くことができず、ビットコインネットワークがDoS攻撃を受けにくくなっている。ビットコインの開発者たちも、基幹ブロックチェーンはチューリング完全であってはならず、攻撃やネットワーク混雑を避けるべきだと考えている。
しかし、まさにこの制限ゆえに、ビットコインネットワークでは他の複雑なプログラムを実行できず、「有用」な機能を達成できない。その後登場したいくつかのブロックチェーンシステムは、具体的な課題を解決しユーザーのニーズを満たすために、これを直接変更した。例えば、イーサリアムで使用される言語はチューリング完全である。
ビットコインスクリプト命令の主な種類:
キーワード:
1. 定数。例:OP_0、OP_FALSE
2. フローコントロール。例:OP_IF、OP_NOTIF、OP_ELSE、……
3. スタック操作。例:OP_TOALTSTACK(入力を補助スタックのトップに積み、メインスタックから削除)、……
4. 文字列操作。例:OP_CAT(2つの文字列を結合、無効化済み)、OP_SIZE(スタックトップ要素の文字列長をスタックに積む(要素は削除しない))
5. ビット論理。例:OP_AND、OP_OR、OP_XOR
6. 算術論理。例:OP_1ADD(入力値に1を加算)、OP_1SUB(入力値から1を減算)
7. 暗号処理。例:OP_SHA1(SHA-1アルゴリズムでハッシュ化)、OP_CHECKSIG()
8. 仮想キーワード
9. 予約キーワード
ビットコインスクリプト命令の主な種類:
スクリプト:
1. ビットコインアドレスへの支払い標準取引(pay-to-pubkey-hash)
2. 標準的なビットコイン生成取引(pay-to-pubkey)
3. 証明可能な支出不能/削除可能な出力
4. Anyone-Can-Spend 出力
5. 謎解き取引
5つの標準的な取引スクリプトには、公開鍵ハッシュへの支払い(P2PKH)、公開鍵への支払い、マルチシグネチャ(最大15個の鍵まで限定)、スクリプトハッシュへの支払い(P2SH)、データ出力(OP_RETURN)が含まれる。
詳細はウェブページ:https://en.bitcoin.it/wiki/Script を参照。
削除されたビットコイン命令
ビットコインの歴史において、命令が複数回削除されたことがある。以下の図表では、赤色部分がすでに削除された命令である。
(1)文字列操作
(2)
(3)算術操作

なぜ命令が削除されたのか?安全性は確かに一つの要因だが、階層的設計の観点から見れば、その合理性が理解できる。これにより、基盤プロトコルがより基礎的かつ安定したものとなる。中本聡自身がこの問題に気づいていた可能性があり、そうでなければあえて命令を削減する必要はなかったであろう。一般の発想では、ユーザーのニーズを直接満たし、整備された命令とシステム機能を持つ小規模システムを作ろうとするが、協働が必要な大規模プロトコルとは異なる。
こうした事実は、ビットコインだけがレイヤー1ネットワークとして適しているという状況を生み出した。筆者は『ビットコイン価格が高騰すれば新しい代替チェーンが生まれる』という記事で、経済学的・技術的視点からビットコイン代替チェーンの可能性を分析した。しかし、ビットコインの基本特性と階層設計の観点からは、実際にレイヤー1ネットワークのインフラとして適しているのはビットコインのみであり、代替チェーンがあったとしてもせいぜい1.5層の存在に過ぎない。レイヤー1のレベルでは、正真正銘のものはビットコインだけであり、代替機能を持つチェーンは最多でもA級の模倣品程度である。
1.2. ビットコインのフォークの歴史、原因と意義
ビットコインの発展史において、命令の削減以外にも、ブロックサイズを巡る論争があり、これがしばしばハードフォークを引き起こしてきた。
BTC創設当初はブロックサイズに制限がなく、短時間に処理できる取引件数を増やすことを目的としていた。しかし、早期のBTC価格が非常に低く、悪意ある取引のコストも安かったため、これを防ぐため、中本聡は2010年9月12日にソフトフォークを行い、ブロックサイズが1MBを超えないように制限を設けた。中本聡はこの制限は一時的なものであり、将来的には制御可能かつ段階的にブロック制限を引き上げ、スケーリングのニーズに対応できるようにすべきだと指摘している。
以下はビットコインのフォークの歴史図:

ビットコインの人気上昇に伴い、ネットワークの取引混雑や確認時間の延長が深刻化していった。2015年、Gavin AndresenとMike Hearnは、BitcoinXTの新バージョンでBIP-101案を実装し、ブロック上限を8MBまで引き上げることを提案した。一方、Greg Maxell、Luke Jr、Pieter Wuilleといったコア開発者たちは反対し、この方法はフルノードの運用コストを高め、制御不能な影響を及ぼすと懸念した。この議論は最終的にテーマと参加者の範囲を広げながら進行した。
上記の内容から、中本聡も「ブロックサイズの制限は一時的なものであり、将来は制御可能かつ段階的に制限を引き上げ、スケーリングのニーズに対応できるようにすべきだ」と述べていたことがわかる。しかし、いつ頃大規模ブロックをサポートするためにフォークを行うべきか、あるいは別のチェーンを分岐させて大規模ブロックをサポートすることが問題解決につながるのか?繰り返される論争の中で、多くの事例が生まれてきた。例えば、BCHのブロックサイズは当初8Mで、後に32Mまで拡大された。BSVは128Mである。BCH(および後のBSV)以外にも、この時期には多数のBTCフォークコインが出現した。BitMEXResearchによれば、BCHのフォーク後1年間で少なくとも50種類以上の新しいフォークコインが登場した。
後述するが、ビットコインメインネット上ではSegwitやTaprootによって、事実上ブロック容量が1Mから4Mまで拡大されている。
ビットコインのフォークは、自身の変化を通じてより多様なニーズをサポートしようとする発展上の探求である。そこにはユーザー、マイナー、投資家、開発者のニーズが含まれている。
1.3. ビットコイン発展におけるいくつかの代表的な探求
中本聡の退場後、後継者Gavin AndresenはBitcoin CoreおよびBitcoin財団の設立を主導した。この期間中、BTCの拡張性に関する探求は常にあり、特に資産発行領域において注目された。
(1)カラードコイン(Colored Coins)
eToroのCEOであるYoni Assiaが2012年3月27日に最初にカラードコインの概念を提唱した。このアイデアは次第に発展し、Bitcointalkなどのフォーラムで注目を集め、最終的にMeni Rosenfeldが2012年12月4日にカラードコインの詳細なホワイトペーパーを発表した。
カラードコインの構想は、ビットコインの特定部分に特別なラベル(つまり「染色」)を付けることで、より広範な資産や価値を表現できるようにすることにある。実装面では、以下2つのタイプに大別される:
1)OP_RETURNベース:Flavien Charlonが2013年に提唱したOpen Assetsなど。OP_RETURN(Bitcoin v0.9.0で導入、Bitcoin上で少量のデータを保存可能。当初は40バイト、後に80バイトに引き上げ)を利用し、スクリプト内に操作コードを格納し、外部からの読み取りによって「染色」と取引を完了させる(この方式は、オーディナルズが外部インデックスによって資産の正当性を決定する方法と類似している)。
2)OP_RETURNベース:ChromaWayが2014年に提唱したEPOBCプロトコル。EPOBC資産の追加情報は、ビットコイン取引のnSequenceフィールドに保存され、各EPOBC資産のカテゴリと正当性はジェネシス取引まで遡って確認する必要がある。
(2)マスターコイン(MasterCoin / OMNI)
JR Willettは2012年1月6日にマスターコインの構想を発表し、「ビットコイン第二の白書」と称した。2013年7月にはICO形式でプロジェクトを正式に開始し、最終的に5120BTC(当時約50万ドル相当)を調達した。マスターコインとカラードコインの違いは、前者が完全なノード層を構築し、ビットコインブロックをスキャンしてステートモデルデータベースを維持する点にある。このデータベースはブロックチェーン外のノードに存在する。この設計により、カラードコインよりも複雑な機能を提供できる。例えば、新規資産の作成、分散型取引所、自動価格フィードバックなどが可能になった。2014年には、Tetherもマスターコインプロトコルを利用してビットコイン上でステーブルコイン(Tether USD、OMNI)を発行した。
(3)Counterparty
Counterpartyは2014年に正式にリリースされた。CounterpartyもOP_RETURNを使用してデータをBTCネットワークに保存する。しかし、カラードコインとは異なり、資産はUTXO形式ではなく、OP_RETURNに情報を載せて資産の移転を示す。資産保有者が特定のデータを持つ取引に署名することで、資産の移転が完了する。この方式により、資産の発行、取引、およびイーサリアムスマートコントラクト互換のプラットフォームを実現している。
その他にも、イーサリアム、リップル、ビットシェアーズなどを含めて「Bitcoin 2.0」と広義に捉える見方もある。
1.4. ビットコインの不完全性と階層的プロトコル
ビットコインシステムの不完全性(または制限)は主に以下の点に表れる(本稿での「不完全性」はイーサリアム白書の要約によるものであり、真の欠陥ではない)。
1. ビットコインのアカウントシステムUTXO
現在のブロックチェーンプロジェクトでは、主に2種類の記録保存方式がある。1つはアカウント/残高モデル、もう1つはUTXOモデルである。ビットコインはUTXOモデルを採用しており、イーサリアム、EOSなどはアカウント/残高モデルを採用している。
ビットコインウォレットでは通常アカウント残高を見ることができるが、中本聡が設計したビットコインシステムには「残高」という概念は存在しない。「ビットコイン残高」はウォレットアプリによって派生されたものである。UTXO(Unspent Transaction Outputs:未使用取引出力)は、取引の生成と検証における核心的概念である。取引はチェーン状の構造を形成し、すべての合法的なビットコイン取引は、過去の1つまたは複数の取引出力に遡ることができる。これらのチェーンの起点はすべてマイニング報酬であり、末端が現在未使用の取引出力である。
つまり現実世界にはビットコインは存在せず、UTXOしか存在しない。ビットコイン取引は取引入力と取引出力から構成され、各取引は1つの入力を「消費(spend)」し、1つの出力(output)を生成する。この出力こそが「未使用取引出力」、すなわちUTXOである。
スマートコントラクトを実現する場合、UTXOモデルには非常に大きな問題がある。イーサリアム黄皮書の設計者であるGavin WoodはUTXOの理解に深く精通していた。イーサリアムの最大の新機能はスマートコントラクトであり、これを考慮して、Gavin WoodはUTXO上でチューリング完全なスマートコントラクトを実現するのは困難だと判断した。一方、アカウントモデルは自然にオブジェクト指向的であり、各取引ごとに対応するアカウントに記録される(nonce++)。管理の容易さのため、グローバルステートが導入され、各取引がこのグローバルステートを変更する。これは現実世界と対応しており、些細な変化でも世界を変えることになる。そのため、イーサリアムはアカウントシステムを採用し、その後のパブリックチェーンの多くもさまざまなタイプのアカウントシステムを基にしている。
UTXOのもう一つの深刻な欠点は、アカウントの引き出し額を精緻に制御できないことである。これはイーサリアム白書でも言及されている。
2. ビットコインのスクリプト言語:非チューリング完全
ビットコインのスクリプト言語は多様な計算をサポートできるが、すべての計算をサポートできるわけではない。最も重要な欠落は、ループ文や条件制御文がないことである。そのため、ビットコインのスクリプト言語はチューリング完全ではないと言える。これにより、一定の制限が生じる。もちろん、この制限のおかげで、ハッカーがネットワークを停止させる無限ループやDoS攻撃を引き起こす悪意あるコードを書けず、ビットコインネットワークがDoS攻撃を受けにくい。開発者たちも、基幹ブロックチェーンはチューリング完全であってはならず、攻撃やネットワーク混雑を回避すべきだと考えている。しかし、まさにこの制限ゆえに、ビットコインネットワークでは複雑なプログラムを実行できない。ループ文をサポートしない目的は、取引確認時に無限ループが発生するのを防ぐためである。
安全性のためにチューリング完全性を排除する理由は十分ではない。また、非チューリング完全な言語ができることは非常に限られている。
3. ビットコインのその他の不完全性:セキュリティ、拡張性
マイニングの中央集権化問題:ビットコインのマイニングアルゴリズムは、マイナーがブロックヘッダーをわずかに変更し続け、最終的にあるノードの変更版のハッシュ値が目標値以下になるまで繰り返す。しかし、このマイニングアルゴリズムは2種類の中央集権化攻撃に弱い。第一に、ASIC(特定用途向け集積回路)や専用チップが設計され、ビットコインマイニングという特殊タスクにおいて数千倍の効率向上をもたらす。これにより、ビットコインマイニングはもはや高度に分散的かつ平等主義的な活動ではなく、巨額の資本投入が必要となる。第二に、大多数のビットコインマイナーはもはやローカルでブロック検証を行わず、中央集権的なマイニングプールが提供するブロックヘッダーに依存している。これは深刻な問題と言える:現在、上位3つのマイニングプールは間接的にビットコインネットワークの約50%の処理能力を掌握している。
拡張性はビットコインの重要な課題である。ビットコインの使用量は毎時約1MB増加する。もしビットコインネットワークがVisaの秒間2000取引を処理すると、3秒ごとに1MB(毎時1GB、年間8TB)増加する。取引数が少ないこともビットコインコミュニティ内で論争を呼んでいる。大規模ブロックは性能を向上させるが、中央集権化リスクが問題となる。
製品ライフサイクルの観点から見ると、ビットコインの小さな不完全性は、自らのシステム内で改善可能であり、改善方法は現在のシステムの制限を受ける。しかし、新しいシステムでこれらを解決できるなら、旧システムの制限を全く気にする必要はない。新しいブロックチェーンシステムを構築するなら、その設計段階でこうした小さな機能の改良も同時に設計・アップグレードすればよい。
階層的設計
階層的設計は、複雑なシステムを処理するための人間の手法と方法論であり、システムを複数の階層に分割し、各階層間の関係と機能を定義することで、モジュール化、保守性、拡張性を実現し、設計効率と信頼性を高める。
広範かつ大規模なプロトコル体系において、階層化は明確な利点を持つ。これにより理解が容易になり、分業実装やモジュール別改善がしやすくなる。コンピュータネットワークにおけるISO/OSIの7層モデルなどがその例であり、実際の実装ではいくつかの層を統合することもある。例えば、TCP/IPプロトコルは4層構造である。具体的には、プロトコル階層の利点として、各層が独立している、柔軟性が高い、構造的に分割可能、実装・保守が容易、標準化を促進する、などが挙げられる。
プロトコル階層の観点から見ると、ビットコインは最も基盤的な下位層に位置するため、UTXO、非チューリング完全、ブロック生成時間の長さ、ブロック容量の小ささ、創設者の不在、…などは欠点ではなく、むしろレイヤー1ネットワークとして持つべき特徴である。
注:筆者は『一文で整理するビットコインレイヤー2(Layer 2)建設の基礎知識体系 V1.5版』でプロトコル階層についてさらに詳しく述べている。
2. ビットコイン発展における重要な新技術(ブロック拡張と能力拡張)
前節では、ビットコインの既存技術における主な対立と探求事例について考察したが、多くはハードフォークを引き起こしたり、まったく異なる異種チェーンを生んだ。ビットコイン自体のブロックチェーン上でも、多くの成果が生まれており、本質的にはブロック拡張と能力拡張である。主に以下の点に表れている。
2.1. OP_RETURN
ビットコインの開発者たちは、ビットコインの能力拡張を常に試みており、以下のような形で表れている:
(1)OP_RETURNの利用
OP_RETURNはスクリプト操作コードの一つで、スクリプトの実行を終了し、スタックトップの値を返すために使用される。この操作コードはプログラミング言語におけるreturn関数に似ている。ビットコインの歴史において、OP_RETURNの機能は複数回変更されており、現在は帳簿上にデータを保存する手段として主に使われている。OP_RETURNの機能は過去に大きな変更があり、現在は重要なメカニズムとなっており、これを使えばチェーン上に任意のデータを保存できる。
OP_RETURNは当初、スクリプトの実行を早期に終了するためのリターン操作として使用されていた。実行結果はスタックトップ項目として表示される。この操作コードには当初、悪用されやすい脆弱性があったが、中本聡がすぐに修正した。
OP_RETURN機能のさらなる変更
Bitcoin Coreのv0.9.0アップデートで、「OP_RETURN出力」スクリプトが標準出力タイプとして採用され、ユーザーが「支出不可能な取引出力(unspendable transaction output)」にデータを添付できるようになった。このスクリプトで使用可能なデータ量の上限は当初40バイトに制限され、後に80バイトに引き上げられた。
ブロックチェーン上へのデータ保存:
OP_RETURNを常にfalseを返すように変更したことで、興味深い結果が生まれた。OP_RETURN以降の操作コードやデータは評価されないため、ネットワークユーザーはこの操作コードを使って任意形式のデータを保存し始めた。
ビットコインキャッシュ(BCH)時代(2017年8月1日~2018年11月15日)には、OP_RETURN出力に添付できるデータ長が220バイトに拡張され、より大きなデータがブロックチェーン上の革新的な応用を促進した。例えば、ブロックチェーン上のソーシャルメディアにコンテンツを投稿するなど。
BSVでは、220バイトの制限がしばらく維持された。その後2019年1月、OP_RETURN操作コードはノードが後続の操作コードを検証しない形でスクリプトを終了するため、ノードはスクリプトが520バイトの最大スクリプトサイズ制限内にあるかをチェックしない。そのため、ネットワーク上のノード運営者は最大取引サイズを100KBまで引き上げることを決定し、開発者がより多くの応用革新を自由に行えるようにした。これにより、より大きく複雑なデータをビットコイン台帳に組み込むことが可能になった。当時、ある応用ではウェブサイト全体をBSV台帳に埋め込んだ事例もあった。
OP_RETURNは一定の機能拡張を果たしたが、全体としては能力に限界がある。そこで、隔離型ウィットネス(Segwit)技術が生まれた。
(2)Segwit(隔離型ウィットネス)
隔離型ウィットネス(Segregated Witness、略称SegWit)は、Pieter Wuille(ビットコインコア開発者、Blockstream共同創設者)が2015年12月に初めて提唱し、後にビットコインBIP141となった。Segwitはビットコインブロック内の取引データ構造を若干変更することで、以下の問題を解決する:
1)transaction malleability(取引改ざん)問題。
2)SPV証明における取引署名の送信を任意項目とすることで、Merkle proofの送信データ量を削減。
3)事実上のブロック容量拡大。
前2項は主にセキュリティと性能の向上であり、新技術に最も大きな影響を与えたのは3項目目の、事実上のブロック容量拡大(後述のBlock weightの概念参照)であり、これがビットコインの能力拡張の基盤を築いた。そして、後続のTaproot(Segwitの第2版)によるさらなる強化へとつながった。
ブロック容量が事実上拡大されたものの、Segwitもブロックサイズ制限の影響を受ける。ビットコインのブロックサイズ制限は1Mバイトであり、witnessデータはこの制限に含まれないが、witnessデータの乱用を防ぐため、総ブロックサイズに制限が設けられている。ここで「ブロック重量(Block weight)」という新しい概念が導入された。
Block weight = Base size × 3 + Total size
Base size:witnessデータを含まないブロックサイズ
Total size:BIP144で規定されるシリアル化された取引のブロックサイズ(バイト単位)、基礎データとwitnessデータを含む。
SegwitはBlock weight ≦ 4Mを制限している。
Segwitは技術的にビットコインのスケーリングをライトニングネットワークの使用を可能にしたが、ここではその詳細は省略する。
(3)Taproot(隔離型ウィットネスV2版)
Taprootという単語をそのまま使うと、多くの人が新しい概念だと思うだろうが、これが隔離型ウィットネスの第2版であると言われれば、ほとんどの人がその関連性を理解できるだろう。Taprootに関連するBIPは340、341、342であり、それぞれの名称は:BIP340(secp256k1のためのSchnorr署名)、BIP341(Taproot:SegWit version 1 spending rules)、BIP342(Taproot Scriptsの検証)。
2021年11月、Taprootはソフトフォークの形で正式に有効化された。今回のアップグレードはBIP340、BIP341、BIP342の組み合わせである。BIP340は複数の取引を同時に検証できるSchnorr署名を導入し、楕円曲線デジタル署名アルゴリズム(ECDSA)を置き換え、ネットワーク容量をさらに拡大し、大量取引の処理速度を向上させ、複雑なスマートコントラクトの展開を可能にした。BIP341は、ブロックチェーン上の取引データストレージを最適化するためのMerk
TechFlow公式コミュニティへようこそ
Telegram購読グループ:https://t.me/TechFlowDaily
Twitter公式アカウント:https://x.com/TechFlowPost
Twitter英語アカウント:https://x.com/BlockFlow_News











