Bitcoinは世界初の暗号通貨として2009年に開発されており、Bitcoinネットワークはデジタル通貨の作成とトランザクションを実行する最先端のテクノロジーです。Bitcoinが誕生してすぐの時は基礎となるテクノロジーは一般大衆にとって多くが謎であり、デジタル世界で暗号化がどのように機能するかを理解している人はそう多くはありませんでした。
現在では多くの人々がBitcoinの取引プロセスに関する教育を受けていますが、依然としてBitcoinメモリプールをしっかりと理解している人はあまりいません。そこで、この記事ではBitcoinネットワークのトランザクション処理や検証の際に必要となるBitcoinメモリプールの重要な役割について説明していきたいと思います。
重要なポイント
- Bitcoinメモリプールとは、ネットワーク上の各ブロックチェーンのノード内にある未確認のトランザクション用のストレージスペースを指しています。
- より高いガス料金のトランザクションには、マイナーインセンティブによって通常より速いスピードにて実行されます。
- それぞれのメモリプールのサイズや速度は異なり、Bitcoinネットワークではメモリプールからトランザクションが送信される平均時間は10分です。
- メモリプール内に72時間以上滞留するトランザクションは自動的にキャンセルされてしまいます。
メモリプールプロトコルについて理解する
Bitcoinメモリプールは一般的にメモリプールと呼ばれており、主に未確認のトランザクション用のストレージスペースを指しています。メモリプールを完全に理解するには、まずBitcoinプロトコルがトランザクションをどのように処理するかを理解する必要があります。例えばBitcoinでの支払いを希望するユーザーXがいるとしたら、まずユーザーXはその処理を開始する前にいくつかの手順を実行する必要があります。
まず、ユーザーXは取引金額、住所、その他の特定の情報を含む全ての関連する情報を入力します。それらの入力が完了したら後はユーザーXが“送信ボタン”を押せば取引が完了しますが、 実際にBitcoinトランザクションの処理に時間がかかることはよく知られており、ここでメモリプールの出番が訪れるのです。
メモリプールとは未確認のトランザクションの待機領域として機能するBitcoinノード内のストレージスペースとなることから、まずはそのトランザクションが様々な認証を通過した有効なトランザクションであることを確認される必要があります。
次にマイナーを介してどのトランザクションをプルーフ・オブ・ワーク (PoW) に通すかを決定します。ほとんどの場合においてマイナーによって多くの利益がもたらされるため、より大きな送金にはより大きな取引手数料がかかってサイズによってもランク付けされます。
上記の件を踏まえ、ユーザーXによって行われた送金はこれら全てのプロセスが完了するまで保留中のトランザクションとして待機され、何も問題が無ければ最終的にはその転送は実行されます。
メモリプールに保留中のトランザクションが含まれる仕組みについて
一般的に信じられている内容とは異なり、Bitcoinメモリプールは全ての保留中のトランザクションを同時に含む単一のストレージデバイスやクラウドプロトコルではありません。
その代わりとして、各Bitcoinノードは様々なメモリサイズを持つ独自のメモリプール スペースをサポートします。一部のノードではより多くのトランザクションを含めることができるより大きな容量を備えていることから、新しいノードのバリエーションには容量が限られているものや従来のBitcoinノードよりもはるかに高速に機能するライトノードが含まれていたりします。
ただし、単一のトランザクションを検証するには必要な情報がBitcoinネットワーク上の全ての既存のノードを通過する必要があります。これは新しいBitcoin取引の有効性および合法性を保証するための厳格な要件であり、このプロセス中を介してアドレスの有効性、送金資金の十分性、その他の重要な詳細などが確認されることでそのトランザクションが正常に実行できることが保証されます。
BTCメモリプール vs Ethereumメモリプール
根本的にはBitcoinとEthereumは全く異なるブロックチェーンネットワークですが、メモリプールにおいては非常に良く似たいくつかの点を持っています。大きな根本的な違いにもかかわらず、新しいトランザクションの検証プロセスは双方のブロックチェーンシステムにおいてほぼ同じように機能します。
EthereumはEVM (Ethereum Virtual Machine) を使用してトランザクションの管理および処理を行う事は非常に有名であり、さらにEthereumはスマートコントラクトを採用していることから様々な条件を満たすサポートを行う正確な検証プロセスを実現します。例えばEthereumでは送金日、取引手数料、その他の重要な変数の有効性を自動的に確認することが可能です。
当然のことながら、これらの自動検証によってトランザクションの検証時間を大幅に短縮することができますが、実際にはネットワークの混雑と計算能力の大量使用によってEthereumのトランザクションには依然として多くの時間がかかっています。したがって上記のような技術面での大きな違いがあれど、実際のEthereumメモリプールでかかる検証時間とBitcoinメモリプールの検証時間はほぼ変わらないのです。
実際のBitcoinメモリプールの機能方法
これまでに説明してきたメモリプールの概念はさておき、メモリプールの実際のプロセスとそのメカニズムについてユーザーが知っておくべきいくつかの内容ことについて説明していきます。実際にメモリプールを介してトランザクションを迅速に実行するには、抽出可能な最大値 (MEV) の概念を理解する必要があります。
MEVはマイナーが新しいトランザクションノードを検証することで得られる最大利益を測定するものであり、MEVの大きさはトランザクションの確認時間に直接影響してきます。例えば新しい転送のトランザクション手数料が高くなると新しいノードのMEVも高くなることから、多くのマイナーはその他のノードよりも先にこのノードを検証する意欲が高まるのです。
そのため、小規模なトランザクションはメモリプール内に長期間滞留する可能性があります。実際この様な事はあまり理想的ではありませんが、Bitcoinネットワーク全体はマイナーにその任務を依存していることからMEVはマイナーにとって優先順位を決める大きな動機となるのです。
Bitcoinはガス代のサイズを増やすことでより小規模なトランザクションでより高い料金を発生させる機会を提供しますが、こうすることでユーザーは転送が時間に左右される場合に起こる潜在的な処理時間を短縮することが可能となります。
長い間未確認のトランザクションはどうなりますか?
実際にBitcoinネットワーク内でのブロックチェーンの保留にはどのくらいの時間がかかるのでしょうか?Bitcoinメモリプールにて未確認のトランザクションによって直接資金が失われることはありませんが、時間に敏感な送金が遅れることによって後に重大なリスクが発生する可能性はあります。
小さいトランザクションやネットワークが混雑している場合には一部のトランザクションがメモリプール内で最大72時間滞留する可能性がありますが、その後にその送金はキャンセルされてそれぞれの所有者の暗号通貨ウォレットへと返金されます。
このシステムは関係者全員にとって公平のように思えますが、確実性に関しては内容によっては壊滅的な結果につながる可能性もあります。メモリプールプロトコルは主に中小規模のユーザーにとって、小規模なトランザクションが期限内に処理されるかどうかを知る方法はないことからBitcoinネットワークに不確実性をもたらします。そのため、ユーザーはそのようなリスクを認識して時間に敏感な小規模なトランザクションの処理は常に避け続けなければなりません。
メモリプールからBitcoinを引き出す方法
残念ながらBitcoinメモリプールにおいてトランザクションの取り消しは認められていないことから、一度処理が始まると手動でキャンセルする方法はありません。ただし、トランザクションのガス料金額を増額する変更の機会が1つだけ認められています。
これは転送をキャンセルしたいユーザーにはあまり役に立ちませんが、ユーザーが転送を実行する可能性を高めるのには役立つことでしょう。上記でも説明したように、高い手数料はマイナーに十分なモチベーションを与えて検証時間が短縮されますが、この慣行はBitcoinネットワーク内にペイツーウィンの環境を生み出すためであるとBitcoinコミュニティからは批判の声が上がっています。
まとめ
BitcoinメモリプールはBitcoinのトランザクションの管理およびネットワークが新しい送金を検証できるようにするための便利なツールとなりますが、現在のBitcoinの検証システムは非常に多くの時間を要しマイナーのインセンティブに強く依存していることからより大きなトランザクションのみが処理される可能性が高くなっています。これは多くの人にとって不公平であるように見えるかもしれませんが、転送がキャンセルされるという不幸なシナリオを避けるためにもこのようなシステムは必要であることから、ユーザーはそれらに対応できる戦略を持つことが非常に重要となります。