BTCの二層Rootstockを例に、銘文アプリケーションの新しいシーンでのマージマイニングを解読する。
著者:Gametaverse
出典:PANews
広く知られているように、インスクリプション技術は現在主に資産の発行に使用されていますが、最近BTCエコシステムを研究している際に、マージマイニングもインスクリプションを使用していることに気付きました。本稿では、BTCの第2層であるRootstock(@rootstock_io)を例に、マージマイニングの仕組みについて探ります。
RSKのマージマイニングの原理
RootstockはEVM互換のサイドチェーンで、SHA256に基づくPOWコンセンサスを採用しています。エコシステムの役割は3つあります。1) マイナー:BTCと共用のマイナーがブロックを作成します。2) Powpeg:BTCチェーンの資産の双方向のアンカーを担当します。3) ノードオペレーター:フルノードを運営し、トランザクションをブロードキャストし、ブロックを検証します。BTCと同じコンセンサスを採用しているため、マージマイニングが行われます。
マージマイニングを初めて聞いたとき、私の第一印象は、同じマイニングアルゴリズムを使用しているので、マイナー(マイニング機器)はマイニング報酬を比較し、報酬が高い方をマイニングするだろうというものでした。しかし、詳しく調べてみると、この考えは間違っていることがわかりました。マージマイニングの実際のプロセスは、インスクリプションの作成と非常に似ています。インスクリプションNFTが画像やテキストをBTCチェーンの空間に刻むものであるなら、マージマイニングはRSKというブロックチェーンのブロックヘッダーに関連する情報をBTCチェーンの空間に刻むことになります。
マージマイニングの作業フローは以下の通りです:
- 準備段階:
- マイナーがビットコインブロックを作成:まず、マイナーは新しいビットコインブロックを準備します。これにはトランザクション、前のブロックのハッシュなどの標準コンポーネントが含まれます。
- RSKブロックテンプレートの作成:同時に、マイナーはRSKネットワークからRSKブロックテンプレートを取得します。このテンプレートには、処理待ちのRSKトランザクションやその他の必要なブロック情報が含まれています。
- ブロックの組み合わせ:
- マイナーはRSKブロックテンプレートを小さなデータ片に変換し、「RSKタグ」(またはマージマイニングマーク)と呼ばれるものを作成します。次に、マイナーはこのタグをビットコインブロックのコインベーストランザクションに挿入します。コインベーストランザクションは各ブロックの最初のトランザクションで、通常はマイナーへの報酬に使用されます。
- こうして、ビットコインブロックにはRSKブロックに関する情報が含まれるようになりますが、これはビットコインブロックの正常な機能には影響しません。
- マイニング:
- マイナーは通常通りビットコインブロックの作業証明(PoW)マイニングを開始します。ビットコインブロックがRSKの情報を含んでいるため、マイナーは実際には2つのチェーンのために同時にマイニングを行っています。
- 検証と提出:
- ビットコインブロックの提出:マイナーが有効な作業証明を見つけ、新しいビットコインブロックを成功裏に掘り出した後、彼らは通常通りそれをビットコインネットワークに提出します。
- RSKブロックの提出:マイナーは同様にコインベーストランザクションからRSKタグを抽出し、それを使用して完全なRSKブロックを構築します。次に、このRSKブロックがRSKネットワークに提出されます。
- RSKネットワークの検証:
- RSKネットワークは新しいブロックを受信すると、最初にそれが有効なビットコインブロックの参照(RSKタグを通じて)を含んでいるかどうかを確認します。
- 次に、RSKネットワークはビットコインブロックの作業証明を検証します。これは、RSKネットワークがビットコインブロックのハッシュ値がビットコインネットワークの難易度要件を満たしているかどうかを確認できるため可能です。
- すべてが有効であれば、RSKブロックは受け入れられ、RSKブロックチェーンに追加されます。これは、追加の計算を増やすことなく、ビットコインのPoWマイニングプロセスを通じてRSKネットワークの安全性を同時に確保することを意味します。
上記の議論から、マージマイニングとOrdinal NFTの違いは次のようになります。
- マージマイニングはRSKタグ(RSKブロックに関連するデータを含む)を刻むのに対し、Ordinal NFTは一般的に画像やテキストを刻みます。
- マージマイニングがデータを保存する場所はブロックのコインベーストランザクションのスクリプト領域であり、Ordinal NFTがデータを保存する場所はSegwitスクリプト空間です。
マージマイニングがブロックの非同期性をどのように処理するか
おそらく、誰かが疑問を持つかもしれません。マージマイニングでBTCチェーンは10分ごとにブロックを生成し、RSKは30秒ごとにブロックを生成する場合、仮に過去1分間にRSKが2つのブロックを生成したとしたら、これらの2つのブロックはどのように構築されるのでしょうか?結局のところ、BTCマイナーは10分ごとに1つのブロックを構築する必要があります。
これは実際には、マージマイニングにおける異なるチェーンのブロック時間間隔の違いの処理に関わっています。RSKのブロック時間は約30秒であり、ビットコインの平均ブロック時間は約10分です。これは、ビットコインが1つのブロックを掘り出す間に、RSKが複数のブロックを生成できることを意味します。
マージマイニングでは、次のように処理されます:
RSKブロックの生成:RSKのブロックは平均して30秒ごとに生成されますが、これらのブロックがすべてビットコインブロックに「バインド」されるわけではありません。RSKは「コミットメント」と呼ばれるメカニズムを使用して、ビットコインブロックにRSKブロックの情報を記録します。
ブロックの「コミットメント」:ビットコインブロックのコインベーストランザクション内で、マイナーは特別なRSKブロック情報(通常「コミットメント」または「提出」と呼ばれます)を含めることができます。しかし、ビットコインのブロック時間がRSKよりもはるかに長いため、この情報は通常、複数のRSKブロックの状態を表します。簡単に言えば、1つのビットコインブロックは1つまたは複数のRSKブロックの情報を保持することができますが、これは主に特定の時点での最新のRSK状態またはブロックのマージ提出に関わります。
時間差の解決:したがって、複数のRSKブロックが1つのビットコインブロックの時間内に生成される可能性がありますが、マージマイニングプロセスは主にビットコインブロック内にRSKネットワークの最新の状態を記録することに関わっています。ビットコインブロックが掘り出され、RSKの情報を含むとき、この情報はRSKネットワークに反映され、RSKブロックが確認されることを可能にします。
RSKネットワークの確認と安全性:ビットコインブロックが成功裏に掘り出され、RSKブロックへの参照を含むとき、対応するRSKブロックはネットワークによって確認されます。これは、RSKブロックに追加の安全性を提供するだけでなく、RSKがビットコインネットワークの強力なマイニング能力を利用できるようにします。
マイナーとフルノードの分離
ビットコインネットワークでは、マイナーは通常フルノードも運営しています。これは、効果的にマイニングを行うために、トランザクションを検証し無効なブロックの生成を防ぐために完全なブロックチェーンデータにアクセスする必要があるからです。したがって、ビットコインエコシステムでは、マイナーとフルノードオペレーターの役割はしばしば重複しますが、理論的にはフルノードを運営することは必ずしもマイニングに参加する必要はありません。
RSKネットワークでは、状況が少し異なります:
1. マイナー(Miners):
RSKにおいて、マイナーはネットワークの安全性にとって非常に重要です。RSKはビットコインマイナーがマージマイニングを通じて同時にRSKネットワークの安全性を提供できることを許可しており、これは彼らがビットコインを掘りながらRSKを掘ることができ、追加の計算リソースを必要としないことを意味します。これらのマイナーはRSKのトランザクションを検証しパッケージ化し、作業証明メカニズムを通じてRSKブロックチェーンを維持します。
2. フルノードオペレーター(Node Operators):
RSKマイナーがネットワークで重要な役割を果たしている一方で、フルノードオペレーターも非常に重要です。フルノードオペレーターはRSKネットワークで完全なノードを運営しており、これは彼らがネットワークの完全で最新のブロックチェーンのコピーを保持していることを意味します。彼らはネットワークが合意に達するのを助け、トランザクションやブロックを広めます。しかし、ビットコインとは異なり、RSKでフルノードを運営することは直接的にマイニングに等しいわけではありません。ネットワークをサポートするためにフルノードを運営することはできますが、マージマイニングには参加しないことも可能です。
したがって、RSKにおいてマイナーとフルノードオペレーターは異なる参加者である可能性がありますが、同じであることもあります。違いは、すべてのマイナーがマイニングプロセスに参加するためにフルノードを運営する必要がある一方で、RSKのフルノードを運営するすべての人がマイニングに参加するわけではないということです。このように分けることが主にマージマイニングを可能にし、ビットコインマイナーが自分のマイニング効率を犠牲にすることなくRSKネットワークの安全性を高めることを許可し、フルノードオペレーターはネットワークの健康と透明性を維持するために存在しています。
最後に、BTCマージマイニングのマイナーはRBTCを受け取り、ガスの報酬として機能します。RootstockチェーンのガバナンストークンはRIFであり、ガス料金として機能するのは1:1でペッグされたRBTCです。この双方向のペッグは15のPowpeg(数は変動します)によって管理され、預金時にはビットコインをRSKの預金マルチシグアドレスに送信し、十分なブロック確認を待つ必要があります。十分な確認が得られた後、サイドチェーン上のSolidityコントラクトがこのトランザクションを検出し、サイドチェーン上のあなたの公開鍵(あなたが預け入れたUTXOの公開鍵)が制御するアカウントに残高を追加します。出金のプロセスもスマートコントラクトによって制御され、コントラクトが通知するメインチェーンの出金トランザクションに署名するためにアライアンスとコミュニケーションを取ります。