RSK緊急用マルチシグ

はじめに

長年にわたり、ビットコインのハードフォークやソフトフォークを必要とせずにビットコインのサイドチェーンの2wayペッグを確保するには、フェデレートモデルが最適な方法だと考えられていました。他より分散化された潜在的なソリューションはすべて、ビットコインのソフトフォークか、ペッグを担保するための新しい競合トークンの使用を必要としました。2020年初頭、IOV LabsはRSKコミュニティ全体を招待し、RSKのビットコインへのペッグの安全性を向上させる方法を議論するために、いくつかのオンラインミーティングを開催しています。これらのミーティングで出てきたアイデアは、その後の数ヶ月でPowpegを作成するための膨大なコア開発努力の基礎となり、最初のPowHSMが出荷された2020年12月に最初の成果が光を浴びており、Powpegの目標は、連邦のマルチシグを構成する秘密鍵を人間が管理できないようにすることです。ペグナトリーは、手動で署名したり、秘密鍵を抽出したり、暗号化された形でバックアップすることさえできなくなり、またPowHSMは、秘密鍵を保護し、いつ署名するかについてのRSKの合意に従うHSMデバイス(Secure Elementをホスト)を使って構築されています。

PowHSMsのデザイン

初期の議論では、シュノール署名(Taprootでまもなく有効になります)を使ってペグナトリーの数を数百にまで拡大できるようにしたい、そのためにはHSMを安価な市販のプログラマブル・デバイスにする必要がある、という点で合意しました。また、PowHSMには、サイドチャネル攻撃から秘密鍵を守る最高のセキュリティが求められます。私たちは、これらの利点をすべて備えたSecure ElementチップのST31ファミリー(CC EAL5+認証)を採用することにしました。リスクを分析するまでは、すべてが順調に思えました。

リスク

この会議では、いくつかの注意喚起の声が聞かれており、その1つがコインスペクトのセキュリティ専門家で、ファームウェアのバグ、フラッシュメモリの故障、その他の基板部品の故障、デバイスの検閲や差し押さえなど、いくつかの潜在的なリスクについて警告していました。ここでは、それぞれのリスクについて簡単に説明します。

ファームウェアのバグ

Powpegは、RSKブロックを解析する低フットプリントのCコードライブラリを用いて、コンセンサスに従っています。しかし、このコードは、Javaベースのリファレンスノード(rskj)とは異なり、何らかの理由でマイニングされたブロックがHSMのコンセンサスを得られず、RSKネットワークに受け入れられた場合、すべてのPowHSMデバイスが同時に(修復不可能なほどに)ブロック化してしまう可能性がある。ペッグされた資金はすべてアクセスできなくなります。

フラッシュメモリの不具合

また、組み込みシステムに携わったことのあるRSKのコミュニティメンバーからは、「PowHSMデバイスは内蔵フラッシュメモリに頻繁に書き込みを行うが、ST31のメーカーが保証する書き込み成功回数は500Kである」という懸念が寄せられました。その後、デバイスが動作しなくなったり、予期せぬ故障が発生する可能性があります。もし、PowHSMがブロックヘッダを処理するたびにフラッシュセクタを更新していたら、デバイスの寿命はたったの175日になってしまいます。念のため、ファームウェアはブロックを一括して処理するように設計されています。しかし、50万回を超えて故障確率が急激に上昇すると、すべてのデバイスがまったく同じパターンの書き込み操作を行うため、すべてのデバイスが同時に焼損する危険性があります。大多数のデバイスが同時に故障すると、RSKブリッジのスマートコントラクトが命令する時間遅延サブプロトコルであるPowpegのメンバーシップ変更が実行できなくなる。メーカーが一定の書き込み回数を保証していても、製造バッチによって部品が異なるため、この数字を盲目的に信じることはできません。

ボードの不具合

また、会議の中で確認されたもう一つのリスクは、チップの使用頻度が最も高い場合(クレジットカードの購入やハードウェアウォレットなど)には、機器に通常とは異なるストレスがかかるため、ST31チップや回路基板内の残りの部品の信頼性が失われることはないということでした。もし、どこかの部品が故障したら?デバイスが修理できなかったら?もしも、電源回路のフィルタリングがうまくいかずに、メインのST31チップが焼けてしまったら?

検閲と差し押さえ

最後に、Powpegではペグナトリーはビットコインの資金に対してほとんど何の力も持たない。しかし、大多数のペグナトリーがPowHSMデバイスの電源を切ることを決めた(または強制された)場合、ビットコインは永遠にロックされます。装置をオフラインにしている人は、装置をオンラインに戻すために身代金を要求することができます。また、悪意のある政府がデバイスを保持している場合、ペグアウトを再び有効にする前に、特定のユーザーの検閲を要求することができます。

合意

これらの反対意見に対処するために、コミュニティは予期しない大災害が発生した場合にのみ有効になる緊急バックアップマルチシグネチャを導入することが最もシンプルな解決策であると合意しました。マルチシグが誤って起動しないように、RSKコミュニティは少なくとも1年間のタイムロックをかけ、定期的に更新することにしました。これにより、RSKコミュニティがコンセンサスや誤作動の問題を解決するのに十分な時間が得られます。

コミュニティはバグにより2020年6月に誤って起動したLiquidブロックチェーンの緊急マルチシグネチャの失敗を目の当たりにした後、この1年間のタイムロックという保守的な選択を再確認し、かろうじて2週間という短いタイムロックを使用したためです。そのため、Irisのネットワークアップグレードから、RSKブリッジのアドレスscriptPubには、このタイムロックされた緊急署名を表す添え字が入っています。この構造はRSKIP201に規定されています。UTXOが完全に活動していない状態が1年続くと、タイムロックは失効するが、UTXOは定期的に 更新され、タイムロックが延長される。更新プロトコルは、RSKIP207に定義されています。

秘密鍵

RSKコミュニティは単一障害点を好まないので、緊急マルチシグは署名者の閾値によって安全に保たれます。しかし、緊急マルチシグに参加する署名者の数が増えれば増えるほど、コミュニティは署名者の善意を検証し、署名者の公開鍵を認証するための努力をしなければならなく、また、緊急署名者が増えれば増えるほど、ペグアウト取引のコストも高くなる。そこでRSKコミュニティは、少数だが著名なコミュニティ参加者に鍵を提供することにしたのです。

  • RSKプラットフォームの拡張とセキュリティに対する実績のあるIOV Labs社に鍵を1個
  • RSKコア開発チームのリーダーに鍵を1個
  • 著名なBitcoinコア開発者または貢献者に鍵を1個

Irisネットワークのアップグレードが延期され、RSKでは2021年にコミュニティプロジェクトが大幅に増加したため、署名者を1人増やしてマルチシグを拡張することが決定され、1つのキーが主に使用されているコミュニティプロジェクトの有名な貢献者に提供されました。取引統計によると、RSKで最も人気のあるdappsはSovrynとMoney on Chainの2つです。どちらのプロジェクトも鍵の保有を呼びかけられ、Money on Chainが4つ目の鍵を受け入れました。もともと3つのうち2つのマルチシグであったものが、4つのうち3つのマルチシグになったのです。現在、CasaのCTOであるJameson Loppは、ビットコインを代表する署名者になることに同意しており、すでにKeybaseの鍵で署名された公開鍵を提供し、それを認証しました。また、RSKのコア開発チームとMoney on ChainのリーダーであるAdrian Eidelmanも同意しています。

将来性

緊急時のマルチシグネチャを搭載するという決定は、RSKコミュニティによってなされ、何度も再確認されてきましたが、RSKの改善プロセスを利用して、将来的にこの機能を無効にしたり、改善したりすることができます。より良い解決策が利用可能になるかもしれませんし、特定されたリスクが他の手段で軽減されるかもしれません。いくつかの潜在的なビットコインのソフトフォークは、RSKのセキュリティを向上させ、緊急時のマルチシグの必要性を減らすことができる。ここでは、いくつかの改善策を提案します。

MAST:緊急マルチシグの署名者数をTaprootのMASTを使って増やすことで、ペグアウトを安く抑えることができ、これにより、大多数のPowHSMをジャックするリスクを減らすことができる。

Emergency Powpeg: 12個のPowHSMを追加した完全バックアップのPowpegを作成することができます(ただし、非アクティブにしておきます)。これにより、悪意のある人がタイムロックを強制的に失効させてペグのセキュリティを低下させようとするリスクを低減することができます。

Virtual Outputs:ビットコインは、仮想出力(VUTXO)を実装することができる。これは、メンバーがMerkleパスを使用して支出できる簡潔な集約された出力であり、VUTXO は、誓約付きのトランザクションを使用して実装することができます。仮想出力には、Merkle tree node/出力をさらに 2 つのtree node/出力に拡張する契約が含まれます。VUTXOは、RSKユーザーの残高の定期的なスナップショットを、Powpegアドレスの単一の簡潔なタイムロックされたスクリプトパスで作成することを可能にし、大災害の際にビットコインを正当な所有者に自動的に分配できるようにすることができるのです。

Schnorr Signatures:Taprootの起動により、短いSchnorr閾値のシグネチャが可能になるため、ペグナトリーの数が数百にまで増え、検閲の懸念を緩和することができる。PowHSMが2ラウンドで署名を構築することだけが必要です。

Multiple HSMs:例えば、各ペグナトリーに2つの異なるメーカーのHSMを搭載すれば、緊急用マルチシグを使用する動機となったリスクを軽減することができます。しかし、この方法では開発に多大な労力を要することが難点です。

まとめ

RSKコミュニティは、ユーザーの資金の安全性を他のどの機能よりも重視しており、フェデレーションをPowpegに進化させるために、コミュニティは決定時に認識されたリスクからRSKを保護するための緊急マルチシグの追加を提案しています。コンセンサスを得るには長い時間がかかりましたが、Powpeg + emergency multisigのコンボを受け入れることで達成されています。しかし、RSKユーザーの中には、このトレードオフを再評価し、新たな方法でマルチシグのセキュリティを向上させたいという意見が出てきました。慌てて変更するのはRSKコミュニティの特徴ではありませんし、重要な変更の際には再度、幅広いコンセンサスを得る必要があります。Irisネットワークのアップグレードは間近に迫っており、新しいリリースは第三者による監査を受け、アルファテストネットでテストされています。次のネットワーク・アップグレードでは、緊急用マルチシグを改善する機会があると思います。

同時に、RSKコミュニティの特定のグループによって作成された新しい代替2wayペグは、異なる設計に基づいており、いくつかのリスクを取り、全く異なる検閲/セキュリティのトレードオフを採用することができる。採用されたセキュリティモデルについてユーザーに十分な情報が提供されていれば、それは問題ない。しかし、RSKネイティブペグは最高のセキュリティを保証する必要があり、それは保守的なアプローチをとることを意味します。


原文:https://medium.com/iovlabs-innovation-stories/the-rsk-emergency-multisig-5c3ae0fee84e By Head of Innovation at IOV Labs. Designer of the RSK sidechain