ビットコインブロックチェーン:パフォーマンスとスケーラビリティ
ビットコインは分散型電子キャッシュシステムであり、仲介者を介さずにピアツーピア決済を可能にします。 オリジナルのビットコインソフトウェアは、サトシ・ナカモトによって開発され、2009年にMITライセンスに基づいてリリースされました。 ピアツーピアの電子キャッシュシステム。
ビットコインは、分散型仮想通貨の実装に初めて成功した企業です。ビットコインが誕生してから16年後、約2,000万ビットコインが流通し、現在では2兆ドル以上の時価総額に達しています。
ビットコインブロックチェーン内では、取引とは、入出力の集合体が支払者と受取人の間でビットコインの所有権を移転することを意味します。入力は、ネットワークにどの通貨から支払いが行われるかを指示します。入力の通貨は、未曾有のものでなければならず、つまり、他の誰かに支払うために使用されていないことを意味します。一方、
出力は、支払人が受取人に支払うことに同意したビットコインの支出額を提供します。取引が行われると、出力は受取人の未決済額となり、現在の受取人が他の誰かに通貨を支払います。
たとえば、アリスがBob 10 BTCを支払う必要がある場合、アリスはビットコインウォレットを開き、Bobの取引アドレスをスキャンまたはコピーして、Bobに10 BTCの支払いをした取引を作成します。取引がデジタル署名され提出されると、ビットコインブロックチェーンネットワークに送信されます。
取引がビットコインネットワークにブロードキャストされた後、通常、取引を受け取るP2Pネットワークのフルノードであるブックキーパーノードは、ビットコインプロトコルルールに従って検証します。 P2P トランザクションが有効である場合、ブックキーパーはトランザクションプールに追加し、ネットワーク内のピアにトランザクションを中継します。
ビットコインネットワーク内では、10分ごとに「マイニングノード」またはマイナーと呼ばれるネットワークノードのサブセットが、取引プールからすべての有効な取引を収集し、候補ブロックを作成します。また、特典を受け取り、取引手数料を徴収するために、自身でコインベース取引を作成します。マイニングレースに勝ち、ブロックをチェーンに追加した場合、すべてのノードが新しいブロックを検証し、ブロックチェーンのコピーに追加します。魔法のように、ボブはアリスからの支払いとウォレット内の10 BTCを見ることができるようになります。
ビットコインネットワークにおける大きな懸念の1つ、または一般的にはプルーフオブワーク(PoW)ベースのブロックチェーンに対する大きな懸念の1つは、スケーラビリティです。設計上、すべての取引はすべてのノードによって検証される必要があります。新しいブロックの作成には平均10分かかり、ブロックサイズは1 MBに制限されます。ブロックサイズと周波数制限により、ネットワークのスループットがさらに制限されます。その結果、ビットコインブロックは平均2,700件の取引に対応できます。今日の決済システムでは、VISAは平均2,000トランザクション/秒(TPS)を処理でき、1日のピークレートは約4,000 TPSです。2025年現在、Paypalは平均約193 TPS、つまり1日あたり約1,700万件の取引を処理できます。
ビットコインネットワークでVisaのような容量を達成することは、明らかに不可能です。より高いパフォーマンスとスケーラビリティを実現するには、ネットワークのトランザクション処理制限を増やし、ビットコインネットワークでソフトウェア機能を強化する必要があります。
ブロックチェーンのトリレンマは、ブロックチェーンネットワーク上でスケーラビリティ、分散化、セキュリティを損なわずに実現するというトリフェクタに対処します。トリレンマの前提の中心にあるのは、ブロックチェーンのシステム内で3つの特性をすべて達成することはほぼ不可能だという主張です。
次の図は、ブロックチェーンのスケーラビリティのトリレンマを示しています。
スケーラビリティの概念の鍵は、ベースレイヤーで3つの要件をすべて満たす方法を見つけることです。ビットコインの設計の選択肢は分散化とセキュリティを好み、スケーラビリティを犠牲にしています。
ビットコインスケーリングソリューション
ビットコインのスケーラビリティソリューションには多くの提案があり、オンチェーンとオフチェーンのスケーリングにさらに分けることができます。
オンチェーンスケーリング
オンチェーンソリューションはレイヤー1ソリューションとも呼ばれ、ビットコインブロックチェーンネットワークのベースレイヤーにおけるスケーラビリティとパフォーマンスの問題に対応しています。ネットワークレイテンシーの点で、オンチェーンスケーリングはブロックチェーンでより多くの取引を処理する能力を提供します。たとえば、1 MBブロックにより多くの取引を収めるSegWitや、ブロックサイズを大きくするビットコインキャッシュ(BCH、シンボルɃ)などがあります。
SegWit
SegWit(ビットコイン改善提案番号BIP14)は、「分離された証人」の略で、取引のデジタル署名を分離することを意味します。開発者のPieter Wiulle氏が2015年12月に開催されたスケーリングビットコイン会議で初めて紹介されました。SegWitの目的は、意図しないビットコイン取引の可鍛性を防止し、オプションのデータ転送を可能にし、特定のプロトコル制限を回避することでした。
ビットコイン取引は、以下の3つの要素で構成されています。
ビットコイン送信者のアドレスであるトランザクション入力
トランザクション出力。受取ビットコインアドレスです。
送信するビットコインの金額と、送信者がコインを送付できることを確認するデジタル署名
デジタル署名が変更されると、取引識別子が変更されます。ビットコインのコードは、取引がまだ確認されていない場合にデジタル署名を変更できることが判明しました。取引がネットワークに追加されると、署名を含む取引は不変になります。シグネチャの変更は、数学的チェックを実行してもネットワークによって検証されるように行われます。ただし、ハッシュアルゴリズムを実行すると、異なる結果が得られます。
例を見てみましょう。
入力:
以前のtx: p9k5ee39a430901c91a5917b9f2dc19d6d1a0e9cea205b009ca73dd04470b9a6
インデックス:0
scriptSig: 304502206e21798a42fae0e854281abd38bacd1aeed3ee3738d9e1446618c4571d10
90db022100e2ac980643b0b82c0e88ffdfec6b64e3e6ba35e7ba5fdd7d5d6cc8d25c6b241501
出力:
価値:2000000000
scriptPubKey:OP_DUP OP_HASH160 201371705fa9bd789a2fcd52d2c580b65d35549d
OP_EQUALVERIFY OP_CHECKSIG
このトランザクションの入力は、トランザクションp9k5eの出力#0から20 BTCをインポートします。その後、出力は20 BTCをビットコインアドレスに送信します(通常のベースではなく、16進数2013...で表されます58)。受取人がこの資金を使いたい場合、受取人自身の取引の入力でこの取引の出力#0を参照します。
いくつかの定義:
• Previous tx — 住所Aに対する過去の取引の識別子
• Index — 入力番号(ここでは、入力番号は1つだけです:0)
• scriptSig — 検証スクリプトの最初の部分(トランザクション署名を含む)
• Value — サトシ単位で送信するビットコインの数(1ビットコイン = 1億サトシ)(上記の例では20ビットコイン)
• scriptPubKey — 検証スクリプトの第2部。受信者アドレスBも含まれます。
以前の取引の金額が消費可能であることを確認するには、新しい取引のscriptSigを以前の取引のScriptPubKeyと組み合わせる必要があります。その結果が真実かつ有効であることを確認するため、ScriptPubKeyは公開鍵の平等性と署名の妥当性を確認するだけです(OP_CHECKSIG)。
ビットコイン取引では、txid(取引IDまたは取引ハッシュの略)は、取引データのすべてのフィールドのsha256dハッシュです。txidの値はScriptSigによって異なります。マイニングノードのプロセストランザクションでは、スクリプトをミューティングできます署名が有効であり、トランザクションも同じ効果を持ちますが、txidは変更されます。たとえば、OP_NOP操作(何もしない操作)を追加できます。または、2つの操作を追加することもできます。OP_DUPとOP_DROP(1つ目はスタック上の署名を複製し、2つ目は再度削除します)。署名は有効ですが、txidは変更されます。
別の例:署名値が「3」の場合、「03」または「3+7-7」に変更することができます。数学的には、有効な署名を持つ取引価値ですが、ハッシュ化は価値そのものではなく、価値の書き方によって異なるため、ハッシュの結果は異なります。
既存の取引のミュータブル取引IDは、さまざまな理由で問題が発生する可能性があります。 たとえば、ビットコインネットワーク上にレイヤー2ソリューションを構築したい場合は、レイヤー2がレイヤー1に依存しているため、レイヤー1を変更できないことを確認する必要があります。
txidを変更すると、未確認の資金を支出または受け入れる際に問題が発生する可能性があります。SegWitはこの問題を解決します。
SegWitでは、すべての可鍛性情報は取引から独立した「立会人データ」に分割されます。txidを計算する場合、この可鍛性情報は含まれません。この場合、問題は修正されるため、識別子は変更できません。
以下は、SegWit取引の出力例です。
インデックス0
詳細
出力
アドレス
35SegWitPieWKVHieXd97mnurNi8o6CM73
価値
1.00200000 BTC
PkScript
OP_HASH160
2928f43af18d2d60e8a843540d8086b305341339
OP_EQUAL
SigScript
0014a4b4ca48de0b3fffc15404a1acdc8dbaae226955
立会人
30450221008604ef8f6d8afa892dee0f31259b6ce02dd70c545cfcfed8148179971876c54a022076d771d6e91bed212783c9b06e0de600fab2d518fad6f15a2b191d7fbd262a3e01
039d25ab79f41f75ceaf882411fd41fa670a4c672c23ffaf0e361a969cde0692e8
証人情報があり、データにはすべての可鍛性情報が含まれていることがわかります。SigScriptのハッシュ情報は、SegWitトランザクションのない前の例に比べてはるかに少ないです。つまり、ビットコインの取引サイズを縮小し、元の部分から証人データを削除し、最後に別の構造として追加することで、取引速度を改善します。
SegWitのメリットは以下のとおりです。
ノードのパフォーマンス — 取引サイズが縮小されるため、ノードがブロック(または取引)をより迅速に検証できるため、ビットコインネットワークは混雑しにくくなります。
取引の可鍛性 — 前述のように、SegWitでは、署名が取引データから証人データブロックに移動します。txidは不変であり、取引データがハッキングされるのを防ぎます。
シグネチャハッシュ操作の線形スケーリング — トランザクションサイズを縮小すると、バッチの一部として特定のトランザクションのトランザクションデータが増えます。SegWitは、トランザクションの各バイトをハッシュ化する必要が2倍を超えないように、トランザクションデータとトランザクション署名を分離します。
複数署名取引のセキュリティ向上 — SegWitは2種類のスクリプトを提供しています。1つは公開鍵、もう1つは決済をスクリプトハッシュに向けるスクリプトです。これらのスクリプトを組み合わせることで、SegWitはマルチ署名(マルチシグ)トランザクションを有効にしてセキュリティを強化します。
レイヤー1の上に構築 — SegWitは、ライトニングネットワークなどのレイヤー2プロトコルのビットコイン開発に最適です。また、SegWitアクティベーションは、MAST(より複雑なビットコインスマートコントラクトを可能にする)、Schnorr署名(取引能力の向上を可能にする)、TumbleBit(匿名のトップレイヤーネットワーク)などの他の機能の開発作業を促進します。
ライトニングネットワークを保護 — ライトニングネットワークのマイクロペイメントチャネルは、初回入金をロックするために二重署名取引に依存しています。ライトニングネットワークの支払いを開始するには、両当事者の資金が二重署名アドレス1つに送信されます。不正行為を防止するため、資金が実際に二重署名アドレスに送金される前に、取引に二重署名する必要があります。メインブロックチェーンから取引の出力を収集するためには、両者を同期させる必要があります。この必須取引IDは変更できません。
理論的には、SegWitはビットコインのスループットまたはTPSを倍増させることができます)。しかし、ビットコインネットワークのスループットを向上させることは重要ですが、理論上の倍増でさえ、決済システムとしてビットコインを主流に使うには低すぎます。
ブロックサイズ
ビットコインのオンチェーンスケーラビリティを向上させるもう1つの提案は、ブロックサイズの拡大を示唆しています。このアイデアは表面的にシンプルです。ブロックサイズを現在の1 MBから8 MBに増やすと、取引スループットが8倍になります。たとえば、ビットコインキャッシュ(BCH)ブロックは当初8MBで、現在は32MBに設定されています。このような垂直スケーリングアプローチは、1つのブロック内に多くの取引を追加します。しかし、ブロックサイズを大きくすると、ブロックチェーンが何倍も大きくなる可能性があり、大型ブロックを処理するにはより良いコンピューティング能力が必要です。同時に、これは、効果的な誠実なハッシュパワーの減少により、ネットワークのセキュリティをある程度低下させます。
また、ネットワークが数人の富裕層に集中し、最終的には分散化とセキュリティ、ブロックチェーンの主な教義を損なうシナリオにつながる可能性もあります。セキュリティ上の懸念として、より多くのネットワークノードが取引処理に参加する場合、ブロックチェーンネットワークはより安全であると一般的に考えられています。アルトコインチェーンの流通が拡大するにつれ、どのブロックチェーンでも運用されるノードは減少します。
これにより、より小さなアルトコインネットワークがネットワーク攻撃に対してより脆弱になる可能性があるため、ブロックチェーンの安全性が低下する可能性があります。たとえば、大規模なネットワーク上に約1万ノードがあるとします。ネットワーク上で攻撃を開始するには、5,001ノード(51%)以上が侵害される必要があります。10,000ノードを50の小さなチェーンにスライスすると、各チェーンは200ノードで構成され、101ノードで小さなチェーンを奪うだけで、1%の攻撃問題と呼ばれます。
もう1つの問題は、クロスチェーン統合です。クロスブロックチェーン統合に対応するソリューションもありますが、小規模チェーンとアルトコインの統合の全体的な複雑さは大幅に増加します。SegWit2xは、2017年に行われたブロックサイズ議論の妥協案であり、SegWitが最初のステップとして有効化されることを示唆し、その後、ブロックサイズは2 MBに拡大されます。しかし、この提案は、ビットコインネットワークのほとんどのノードでは受け入れられませんでした。
オフチェーンソリューション
オンチェーンソリューションの理論的根拠と同様に、ビットコインコミュニティは、レイヤー2ソリューションと呼ばれるオフチェーンソリューションを積極的に探しています。オフチェーンのスケーリングでは、2人の参加者とあらゆる種類の取引を処理できるビットコインブロックチェーン上に追加のレイヤーを構築することが解決策です。これらの取引は、ブロックチェーン上で1つの取引としてバッチ化して送信できます。これらのオフチェーンソリューションの1つをライティングネットワークと呼びます。
照明ネットワーク
2016年1月、The Bitcoin Lightning Networkというホワイトペーパーが発表されました。スケーラブルなオフチェーン即時決済は、Joseph PoonとThaddeus Dryjaによって提出されました。その中で、Lightningネットワークの輪郭が説明されました。
Lightningは分散型ネットワークで、ブロックチェーン内でスマートコントラクト機能を使用して、参加者のネットワーク全体で即時決済を可能にします。
ライトニングネットワークのレイヤー2決済ソリューションは、ブロックチェーンを拡張し、ほとんどの取引をオフチェーンで維持することで、信頼できない即時決済を可能にします。いわゆる決済チャネルのネットワークを構築し、2つの当事者が取引を行い、互いにのみ支払いを行います。取引は2人の参加者間でのみ行われるため、ビットコインネットワークのすべてのノードですぐに検証、中継、保管される必要はありません。
決済をオフチェーンに移行することで、チャネルの維持コストはチャネル内の決済量よりも低くなります。これにより、マイクロペイメントや少額取引が可能になり、オンチェーン取引手数料が高価すぎて正当化できません。さらに、Lightning Networkは、近代的なデータ処理とレイテンシー制限でオフチェーン取引のスループットを拡大し、決済を高速に処理できるようにします。
ライトニングネットワークのしくみを見てみましょう。
実例:当初、アリスはA1コミットメント取引を保有し、ボブはB1コミットメント取引を保有していました。A1の取り消しキーK A1はAliceのみが所有し、B1の取り消しキーK B1はBobのみが所有します。
アリスとボブがそれぞれアカウントに10 BTCを保有しているとします。アリスはボブに2 BTCを送りたいと考えています。
アリスとボブはどちらも同じ金額(この場合、10 BTC)を入金し、それぞれがロックします。同じ金額の資金を共通ボックスに入金するこのアクションは、2人の参加者の間で開かれる「決済チャネル」の形でブロックチェーンに記録されます。
アリスは新しい取引B2を作成し、8 BTCをアリスに、12 BTCをボブに割り当てます。
アリスはB2に署名し、ボブに送信します。
ボブはB2を受け取り、署名して保管します。
ボブは新しい取引A2を作成し、8 BTCをアリスに、12 BTCをボブに割り当てます。
ボブはA2に署名し、アリスに送信します。
アリスはA2を受け取り、署名して保管します。
アリスはKa1を提供し、A1を無効化しました。その後、A1を削除できます。
BobはK B1を提供しており、B1を無効化しています。その後、B1を削除できます。
要約すると、決済チャネルは、両当事者のために資金プールを組み合わせて作成し、合意した方法でプールされた資金の所有権の約束を移転しています。AliceまたはBobのいずれかがチャネルを決済したい場合、決済できます。「チャネルを閉じる」とは、双方が自己資金を取り戻すことを意味します。このボックスの開封はブロックチェーン上で行われ、誰がボックスからどのくらいの金額が永久に記録されるかの記録になります。
ライティングネットワークはハッシュドタイムロック契約(HTLC)を使用します。HTLCは、ハッシュロックとタイムロックを使用して、支払いの受信者が、支払いの証明書を生成して期限前に支払いを受け取ることを承認するか、支払いを受け取る能力を失い、支払い者に返すことを要求します。これにより、複数のホップ(追加チャネル)を介して直接チャネルを持たない当事者間で取引を送信できるため、Lightningネットワークに接続されているすべての人が単一の相互接続されたグローバル金融システムの一部となります。
例を見てみましょう。
アリスはティムに支払いを送信したいと考えていますが、ティムに支払いチャネルがありません。アリスはボブと決済チャネルを持ち、ボブはティムと決済チャネルを持っています。質問:アリスはどのようにティムに支払うことができますか?
これを行うには、Timは暗号秘密文字列(キー)を作成し、ハッシュ関数(SHA-256など)を使用してハッシュし、Aliceに送信する必要があります。また、TimはBobとハッシュを共有します。この説明文を簡単にするために、価値をVと表記します。
HTLC
ハッシュ(V)はロックで、キーはHTLCのロックを解除するコードです。
アリスはボブと一緒にHTLCを作成し、3日以内にVのプリイメージを作成できれば支払いをするとボブに伝えました。アリスは、配信後3日間のロック時間で取引に署名します。ボブはVに関する知識があれば償還でき、その後はアリスのみが償還できます。HTLCでは、BobがVとは何かを知らない場合、誤って資金が燃え尽きないようにしながら、アリスがBobに条件付き約束をすることができます。
ボブも同じことを行い、Timが2日以内にVを生産できればTimに支払うHTLCを作成します。しかし、Timは実際にVを知っています。Timはキーを使用してBobから希望の金額を引き出しられるため、Aliceからの支払いの完了を検討できます。現在、BobとVを共有することで、Bobも資金を回収できるようにしています。
Timは2日以内にBobに鍵を開示し、TimはBobから支払いを受けます。
ボブは3日以内にキーをアリスに開示し、アリスから支払いを受けます。
全員が協力した後、これらの取引はすべてLightning Network内で行われます。ライトニングネットワークは、ほぼ原子的な性質と双方向性を持つため、誰もが機械的な方法で報酬を得られます。つまり、全員が報酬を受け取るか、誰も報酬を受け取らないことを意味します。
ライティングネットワークでは、決済取引がブロードキャストされると、すべての個々の取引が最初に検証されます。虚偽または不正確な取引のブロードキャストを避けるため、取引履歴と一致する必要があります。また、不正な取引には罰則が課されます。照明ネットワークがシステム内で悪意のある攻撃者を検知した場合、直ちに罰則が科されます。このようにして、ネットワーク全体が信頼性と一貫性を確保しながら、悪質な振る舞いを阻止します。
オンチェーン取引と比べて、Lightningネットワークを利用するメリットはいくつかあります。
迅速かつ迅速な取引:ライトニングネットワーク取引の決済時間は1分未満で、ミリ秒単位で発生する可能性があります。
マイクロペイメント:Lightning Networkでは、大量のマイクロトランザクションが可能です。
取引スループット:基本的に、プロトコルの下で発生する可能性のある1秒あたりの支払い回数に制限はありません。トランザクション数は、各ノードの容量と速度によってのみ制限されます。
プライバシー:ブロックチェーンの記録がありません。個々のライトニングネットワーク決済取引の詳細は、ブロックチェーンに直接的かつ公に記録されません。各ノード事業者はチャネル間で支払いを確認できるため、支払いは多くの連続チャネルを通じてルーティングされます。ただし、隣接していない場合、資金の出所や仕向地を確認することはできません。
チェーン上での混雑が少ない
非常に低い取引手数料:照明ネットワーク内の仲介ノードに支払われる取引手数料は、多くの場合、ミリサトシ単位の少額です。
限界
ライトニングネットワークは、2つのノード間の双方向決済チャネルで構成されており、統合するとスマートコントラクトが作成されます。いずれかの当事者がいずれかの時点でチャネルをドロップした場合、チャネルは閉じられ、ブロックチェーン上で決済されます。
ライトニングネットワークの紛争メカニズムの性質上、各参加者は常にチャネルを監視し、ネットワークにブロードキャストされるオフライン台帳の状態を追跡する必要があります。この問題を解決するために、「ウォッチタワー」という概念が開発されました。
まとめ
ビットコインのブロックチェーンは依然として画期的な分散型決済システムですが、その固有の設計はスケーラビリティよりもセキュリティと分散化を優先しており、従来の決済ネットワークに比べて取引スループットが限られています。SegWitやLightning Networkなどのイノベーションは、取引能力を高め、オフチェーン即時決済を可能にすることで、ビットコインのパフォーマンスを向上させる重要な進歩を表しています。
しかし、ブロックチェーンのスケーラビリティのトリレンマは、開発者が妥協することなくスケーラビリティ、セキュリティ、分散化のバランスを取るよう引き続き挑戦しています。ビットコインが進化するにつれ、デジタル経済がますます拡大する中で、より幅広い普及とネットワークの完全性の維持を支援するには、継続的な調査とレイヤードスケーリングソリューションが不可欠です。
#LearnWithBybit

