RSKとLiquid比較:RBTCとLBTCはどのようにして生成されるのか? (2/4)

この投稿はセルジオ・ラーナー氏によるブログ投稿、The Cutting Edge of Sidechains: Liquid and RSKの一部を記事化したものです。

フェデレート・ペグ、RSKとLiquidの違い

サイドチェーンにおいて固有の通貨を形成する際、LiquidもRSKも共にフェデレート¹・マルチシグによってビットコインをロックする仕組みを使っていますが、それぞれのペグデザインは大きく異なります。

どちらのサイドチェーンも、現在15のアクティブ管理機関を有し、LiquidにおいてはBTCのリリースに11機関の署名、RSKにおいては8機関の署名が必要となっています。一見Liquidはセキュリティを重視し、その反面RSKは利便さを重視しているようにも見えます。しかし、実際はその反対です。Liquidは緊急リリース手順として、一定の時間内における3つのマルチシグのうち2つの署名によるリリースを許可しているため、セキュリティーより利便性を優先していることが分かります。Liquidのこのような緊急システムは緊急マルチシグのアクティベーションを強制的に発生させるため、ビットコインマイナーの大多数がBTCのリリーストランザクションを削除するといった新たな攻撃の可能性が生まれました。それぞれの相違にはメリットとデメリットが存在し、Liquidが緊急システムを廃止するのと同じくらい簡単に、RSKが緊急システムを導入することも容易となるでしょう。私はこのような重要なセキュリティシステムにおいては、結局はよりシンプルな方が勝ると信じています。

どちらのサイドチェーンもハードウェア・セキュリティモジュール(HSM)が秘密鍵の保管を行います。ブロックストリーム社もRSKラボもこのデバイスがどのようにデザインされたのか、或いはどのようなコードによって運用されているのか、といった部分についてはあまり情報を開示していません。RSKのフェデレーション管理機関はHSMファームウェアとハードウェア双方の監査を行う事が許されており、それはLiquidにおいても同様です。

Liquidは独自のハードウェア・プラットフォームとファームウェアを作り上げて来ており、それはセキュリティの面で大きなアドバンテージとなります。しかし、私はブロックストリーム社のデバイスが、秘密鍵の保護のためにセキュアエレメントを利用しているかは分かりません。セキュアエレメントは、通常のマイクロコントローラーでは守り切れないサイドチャンネル攻撃やインジェクション攻撃から機密を保護するために特別にデザインされています。RSKラボは、RSKラボが開発したカスタム・ファームウェア搭載のセキュアエレメントを有する既製品を導入しています。

1・・・フェデレーション、フェデーレト (Federation, federated)

サイドチェーン上のマルチシグの管理、そして資産のアンロックの権限を持つ取引所などの管理機関の集まり、またはそのメンバーを指す。

参考:p.8 of Drivechains, Sidechains, and Hybrid 2-Way Peg Designs

RBTC、LBTCの生成過程

BTCからLBTCへ

LiquidとRSKは、BTCのロックとサイドチェーントークンのアンロックのためのそれぞれ異なるプロトコルを持っています。Liquidでは、ユーザーがまずランダムなノンスを使って新しい臨時フェデレーションアドレスを作成し、BTCがこの臨時アドレスに送られます。多数の承認の後、ユーザーまたはフェデレーション管理機関がLiquidトランザクションを送信し、同時に他のフェデレーションメンバーにこの臨時トランザクションを通知します。その後、臨時アドレスにおいてロックされたBTCと同額のLBTCが発行されることになります。

画像:BTCからLBTCへの変換 (Liquid)

BTCからRBTCへ

BTCをRBTCに変換するプロセスは次のとおりです。まず、送信者は転送するBTCがP2PKHアドレス (Pay To PubKey Hash Address)に保持されていることを確認する必要があります。そうでない場合は、トランザクションTx1でまずP2PKHアドレスにBTCを送信する必要があります。その後、BTCはトランザクションTx2のP2PKHアドレスからフェデレーション・マルチシグアドレスに転送されます。多数の承認の後、フェデレーションがTx2のSPV証明を含む通知トランザクションをRSKに送信します。そしてブロックチェーンは、直ぐに送信されたBTCに値するRBTCを、Tx2の最初の入力と同じ秘密鍵によって制御されるアドレスにアンロック(送信)します。これはビットコイン公開鍵をRSKアドレスに変換することによって行われます。フェデレーションが通知トランザクションを発行しない場合は、どのユーザーでもSPV証明を含ませることで、通知トランザクションを発行できます。そのプロセスは同じであるため、このペグインプロセスは完全にトラストレスだと言えます。

画像:BTCからRBTCへの変換(RSK)

この場合、ユーザーは取引所に登録せずとも、BTCをRBTCに変換することができます。Liquidでは、どのユーザーでもペグインすることができますが、それよりはフェデレーションに属している取引所に登録し、KYC手順をパスすることが推奨されています。これは、Liquid フェデレーションがユーザーのペグイン・トランザクションを無視できるからです。

RSKが所持する秘密鍵

現時点では、RSK Labsは未だロックされているビットコインの数を制限するための秘密鍵を持っています。RSK Labsは、これは一時的なセキュリティ対策であり、マージマイニングのエンゲージメントがビットコイン・ハッシュレートの51%を超えれば、この権限を放棄すると発表しています。ソースコードによれば、RSK Labsが、ペグを管理するスマートコントラクトに特別なメッセージを送ることで、この制限を解除できることを示しています。

ペグインからペグアウトまで

透明なペグ・プロセス

ツーウェイペグは、どのユーザーもペグインとペグアウトのトランザクションを検出および検査できる場合、その透明性を認められます。それによって、全てのユーザーがフェデレーションが保有しているマルチシグを確認することができるのです。ペグが透明であれば、すべてのユーザーはサイドチェーンの循環供給がマルチシグにロックされた資金と一致することを確認できます。また、フェデレーションの動作不良や、ペグの内外でのトランザクションによるブロックが発生していないかどうかもチェックすることができます。

RSKのペグは完全に透明であり、ユーザーがすべてのペグインとペグアウトのトランザクションを確認、認証することができます。ペグに付属する全てのUTXO (Unspent Transaction Outputs)リストは、プラットフォーム上で実行されているスマートコントラクトから読み取ることが可能です。また、このコントラクトから、現在および過去のフェデレーションアドレスにアクセスすることができます。ペグアウトトランザクションはペグUTXOを消費するので、識別可能なのです。

画像:完全監査可能なペグインとペグアウト・トランザクション

Liquidではセキュリティを強化するホットウォレットとコールドウォレットの組み合わせを使用しながら、ペグアウト・トランザクションの待ち時間を短縮していますが、この方法にはデメリットが伴います。ビットコイン側では、ペグイン・トランザクションはHSMによってコントロールされているマルチシグ・ホットウォレットに支払われます。生成されたUTXOは、緊急リカバリースクリプトが有効になるのを防ぐために定期的にリサイクルされます。

Liquidのトランザクション・プロセス

Liquidの開発者たちは、システムのセキュリティー上のリスクが最も高いのはペグアウトプロセスだと考え、ペグアウト・トランザクションによって解放されるビットコインは、ユーザーウォレットに直接届くのではなく、取引所のコールドウォレットに送るべきだと判断しました。Liquidのように、一部の管理機関は取引所である場合、ビットコインはユーザーが登録している取引所と同じ取引所のコールドウォレットに移動されます。このプロセスは取引所にとってトランザクションをチェックするする最後の機会になります。取引所は、コールドウォレットに資産を受け取った後、取引所のホットウォレットにある同額の資産をユーザーに送信します。これら計2回のトランザクションはアトミックスワップではないため、2つのリスクが存在します。1つ目は、 もしHSMが取引所に最初に支払いを済ませない場合、取引所からユーザーに支払いが行われないことです。そして2つ目は、もし取引所が最初にユーザーに支払いを行ってしまうと、システムが誤作動し、取引所に返金が成されないというリスクです。いずれにしても、取引所を仲介者として利用するという要素によって、必然的にKYCはシステムの鍵になるため、それによって管理機関がユーザーの輸送中の資金の一時的な保管者または送金者、あるいはその両方の役割を担うということになります。最後に、これはBTCをユーザーに支払うトランザクションを実質的に隠してしまうことになり、ユーザーの機密性を向上させますが、同時にコミュニティによる分散したペグの透明性と、外部からの検閲の検出を邪魔するトレードオフとなってしまいます(ペグアウト・トランザクションは、プライベートウェブサイトであるliquid.horseでカウントされています)。Liquid UTXOのタイムロックされた緊急リカバリースクリプトでは、オフライン資産を定期的にリフレッシュしてタイムロックを延期する必要があるため、コールドストレージの有効性を低下させることになります。

RSKがコールドウォレットを実装していない理由

RSKペグでも透明なコールドウォレットを比較的容易に実装できるとしても、現時点でRSKは管理機関の義務は最小限にとどめるべきであると考えます。管理機関が通常の手続きの一部として実行する「人による手作業」は、政府や企業からの検閲と圧力を招くことになります。より多様なハードウェア、およびソフトウェア・コンポーネントのセットを持つ管理機関を追加することで、より高いセキュリティを実現することができるでしょう。

Liquidはマルチシグのホットウォレット(ペグイン)でBTCを受け取りますが、ペグアウトの際には担当者のホットウォレットの一つから支払い、マルチシグからコールドウォレットへの払い戻しを受け取ります。

原文:The Cutting Edge of Sidechains: Liquid and RSK