トランザクションの「順番」にも情報を記録できる?マイナーが収益化できるかもしれない新しいフロンティア
3月下旬、アメリカの大手マイニング企業Marathon Digital Holdings社が公式ツイッター上で「Mブロック」をマイニングしたと発表しました。
This morning, we mined the M block on #Bitcoin – a visual demonstration of Marathon’s template building capabilities and vertical tech stack. https://t.co/cXSHnobzPg pic.twitter.com/zwwUbXWHRY
— Marathon Digital Holdings (NASDAQ: MARA) (@MarathonDH) March 26, 2024
これはブロックチェーンエクスプローラー大手のMempool.spaceの機能でブロックの中身のトランザクションを可視化(手数料で色分けしてブロック内の順番に沿って配置)したときに上記の画像になる、という遊び心たっぷりの宣伝活動ということでした。
表面的にはただそれだけのことですが、面白い着眼点として「トランザクションの内容とその順番」自体にも情報量があることがわかります。ビットコインの1ブロックに含められるデータには4MWU (1MvB)という上限が設定されていますが、実はその内容の並び替えにも情報を記録できるわけです。
今日はその発見について、実際にMarathonが行ったブロック生成をもとに考えてみましょう。
・Marathonが支払った機会費用はペイできるのか?
・トランザクションの順序にどれだけの情報を記録できるのか?
・どのような使い方を考えられるか?
Marathonが支払った機会費用はペイできるのか?
まず、今回の画像がどういうものかを理解するにはMempool.spaceに実際に行ってブロックの可視化を見てみるのが手早いです。
例えば最近のブロック837847を見てみましょう。

左側にはMempool.spaceが運用しているBitcoinノードが自身のメモリプールから選んで生成候補としたブロックの内容が表示され、右側には実際に誰かが採掘したブロックの内容が表示されています。左側でピンク色になっているのは実際のブロックには含まれなかったトランザクションです。
重要なのは右側のブロック内のトランザクションは手数料率で色分けされていることです。このブロックではほとんどが15 sat/vbyte前後だったので同じような色になっていますが、細かい赤色のトランザクションは100 sat/vbyteを超えていたり、逆に黄緑色のトランザクションは6 sat/vbyteなど相場より低いと思われる手数料率でした。
合計手数料が実際のブロックのほうが少ないように、一部のトランザクションは単純なオンチェーントランザクション手数料だけで選んだわけではなさそうです。例えばマイニングプール自身のトランザクションや、ブロックチェーン外で追加の手数料をもらっている場合が考えられます。
さて、今回のMarathonが生成したブロック836361に移りましょう。先ほど解説したブロックの比較機能はオフにしました。

濃い赤色のトランザクションは2,000 sat/vbyte、オレンジ色は150 sat/vbyte、緑色は1.01 sat/vbyteのトランザクションで埋め尽くされています。人工的に見えますが、実際にその通りで、このトランザクションはすべてMarathonが用意したOP_Returnトランザクションです。(つまり一般ユーザーのトランザクションは1つも含まれていない)
この1つ後のブロックの合計手数料は0.325 BTCだったので、Marathonは約330万円の機会費用で「Mブロック」を採掘したことになります。MarathonのIR資料によると、2月の総売上は833 BTC(約85億円)のため、それと比較するとかなり小さな金額ではあるといえます。仮にこのギミックに330万円以上の宣伝効果があればペイできると言えそうですが、投資家を獲得する競争が激しいマイニング業界において技術力をアピールするアプローチは間違ってはいないかもしれません。
(実際に「Mempool.spaceのビジュアライザーに合わせてブロックテンプレートを生成する技術力」に意味があるかはさておき。)
トランザクションの順序にどれだけの情報を記録できるのか?
今回Marathonがトランザクションの順序を使って表現したのは特定のブロックチェーンエクスプローラーを使ってしか見られない粗いビットマップ画像ですが、理論上はもっと様々な情報を表現できそうです。
例えば1ブロックに10トランザクション含まれるとして、そのトランザクションの並べ方は10!通りあります。したがって、単位をbitで求めるとlog2(10!)=21.79ビットのデータを表現できます。これが2000トランザクションだと2.38キロバイトにもなります。(Wolfram Alphaで計算)
ただし、これはすべてのトランザクションが独立している前提の計算となります。(同じブロック内のトランザクションで生成されたUTXOを消費するトランザクションはかならず前者より後に来る必要があるため。)
したがってマイナーはこれまであまり順番を気にせず生成していたブロック内のトランザクションを並べ替えることで、新たに2~3キロバイトの情報を追加で埋め込むことができるのです。(ただしもう1つ落とし穴があり、トランザクションの並び替えでマイニングすべきブロックテンプレートを変更することはできなくなります。タイムスタンプやコインベース出力のOP_Returnなどを変更する、「やらせ」のトランザクションを含めておく、などの対策が必要かもしれません)
どのような使い方を考えられるか?
マイナーがこのように情報をブロックに付加することでどのようなプロトコルを実現できるでしょうか?
例えば今回のように画像情報のようなものを書き込む、宣伝をするといったことは考えられます。もちろんトランザクションの順序から情報を解読するためのプロトコルを定義する必要はありますが、仮に掲示板として価値が見出された場合にはマイナーは喜んでその追加収益を受け付けるでしょう。ただし、どれくらいの人がブロックに含まれた広告をわざわざ見に行くかはわかりませんが。
他にも、例えばDrivechainのようなものや何らかの少量のデータ書き込みによって他のチェーンやロールアップが利用するケースも考えられます。しかし、ブロックの順序が1つしかなかったり、完全にブラックボックス化してしまいやすい(トランザクションはメモリプールを通して原則的にネットワークに伝播するが、書き込んでほしいデータは必ずしもそうではない)ことから問題が引き起こされたり、競争によって満足に使えないような状況が起こるかもしれません。
ちなみに豆知識として、AntPoolが運営しているトランザクションアクセラレーターには他にも5つのプールが参画しているようで、必ずしも独占という形になるわけではないようです。いずれにせよオープンではないため問題が起こる可能性はありますが。↓
Here's a chart of the pools apparently participating in AntPool's transaction accelerator https://t.co/BTS0dVYmXa pic.twitter.com/oBagK1sPLM
— mononaut (tx/acc) (@mononautical) April 2, 2024
まとめ
・ブロック内のトランザクションの「順序」に2~3キロバイトの情報を埋め込む余地がある
・MarathonはMempool.spaceのビジュアライザーに自社を表すMマークを表示するために生成したブロックに自演のトランザクションを特定の順番で含めた
・現時点で何らかの規格や使い道などはなく、これからも使用されるかはわからないが、マイナーは追加の収益源として何らかの活用方法を見出したいはず
次の記事
読者になる
一緒に新しい世界を探求していきましょう。
ディスカッション