ブロックチェーン上の取引を検証・処理するには、専用の暗号鍵を使用してデジタル署名を行う必要があります。仕組み上、その鍵を所有する者が取引を行う権限を持ちます。つまり、鍵を安全に保管することが極めて重要です。
個人や機関が鍵を保護できるよう支援するプロバイダーが数多く登場しています。各プロバイダーは「デジタル署名方式」を採用して鍵情報を保護し、それによって許可された者だけが資金を移動できるようにしています。
マルチシグとTSSの概要
こうしたセキュリティ方式の中でも、特に際立っているのが、マルチシグ(多重署名方式)とTSS(閾値署名方式)の2つです。これら2つの方式は、仕組みには若干の違いがあるものの、鍵を安全に保管するために必要なセキュリティと信頼性を提供します。
マルチシグとTSSは、いずれも公開鍵暗号方式を用いてデジタル署名を作成します。このモデルでは、公開鍵暗号方式は公開鍵と秘密鍵のペアに依存しており、秘密鍵によって生成される一意の署名は、対応する公開鍵によってのみ認証されます。
マルチシグもTSSも、秘密鍵や秘密鍵の素材を複数の参加者に分散させることで、単一障害点を防ぎます。つまり、悪意のある攻撃者が秘密鍵を復元するには、複数の鍵保有者を攻撃する必要があるということです。
注目すべき違いの一つは、マルチシグでは複数の分散型鍵が使用され、取引に署名するには一定数の鍵が必要となる点です。一方、TSSでは、1つの鍵が複数の部分に分割され、同様の方法で分散されます。また、TSSでも閾値、すなわち取引に署名するために必要な鍵のシェアの最小数が求められます。
TSSについて
TSSは分散鍵生成プロトコルを活用することで、複数の当事者が鍵生成プロセスに参加できるようにします。また、プロセス全体を通じて秘密鍵そのものを開示することなく、デジタル署名を作成します。
取引の際、各参加者は他の参加者に向けた値を生成し、それを複数回にわたって共有します。秘密のシェアを組み合わせることで、各参加者は自身の秘密鍵のシェアを生成できます。署名時には、閾値数の参加者だけが集まれば、最終的な署名を導き出すことができます。
この一連の処理において、秘密鍵が生成されることは決してありません。つまり、秘密鍵が外部に漏れることは決してないということです。悪意のある攻撃者が秘密鍵を復元するには、しきい値で定められた数以上の参加者を侵害する必要があります。
TSSについてよく使われる例えとして、個人の給与を明かさずに、あるグループの平均給与を算出するというものがあります。
4人の人物がいるとしましょう。アーノルド、ボニー、チェン、そしてダニエルです。アーノルドの年収は45,000ドル、ボニーは41,000ドル、チェンは53,000ドル、ダニエルは27,000ドルで、合計すると166,000ドルになります。
ここで、各プレイヤーは自分の給料を、合計が自分の給料額になる4つのランダムな数字に分割します。
アーノルドは自分の給料を、-1,000、30,000、1,000、15,000という4つのランダムな数字に分割した。アーノルドは、30,000をボニーと、1,000をチェンと、15,000をダニエルと分け合った。
ボニーは給料を、23,000、7,000、9,000、2,000という4つのランダムな金額に分けました。ボニーは7,000をアーノルドと、9,000をチェンと、2,000をダニエルと分け合いました。
チェンは自分の給料を、5,000、20,000、25,000、3,000という4つのランダムな金額に分割した。チェンは20,000をアーノルドと、25,000をボニーと、3,000をダニエルと分け合った。
ダニエルは自分の給料を、3,000、5,000、10,000、9,000という4つのランダムな数字に分けた。ダニエルは5,000をアーノルドに、10,000をボニーに、9,000をチェンに分け与えた。
次に、彼らはそれぞれ、他のメンバーから受け取ったシェアを組み立てる:
アーノルドは各グループから受け取った数値をすべて-1,000で足し合わせ、合計は31,000となった
ボニーは各グループから受け取った数字をすべて合計して23,000とし、その合計は88,000となった
陳は各当事者から受け取った数字をすべて5,000で足し合わせ、合計は24,000となった
ダニエルは各グループから受け取った数字をすべて3,000で足し合わせ、合計は23,000となった
最後に、すべての関係者が集まり、各自が算出した最終的な数値を合計すると、166,000となった。その後、これを4で割って平均給与を算出すると、41,500ドルとなった。
アーノルド+ボニー+チェン+ダニエル=16万6千

誰の給与も個別に明かすことなく、グループは彼らの給与を算出することができた 平均 給与。
TSSも同様の仕組みで機能します。最終的な署名(先の例でいう平均給与に相当)は、各当事者が生成したランダムな値である秘密シェアを組み合わせることで生成できますが、その際、各当事者の秘密鍵シェア(先の例でいう個々の給与に相当)が漏れることはありません。
TSSをシャミールの秘密分散法(SSS)と混同してはならない。SSSでは、秘密鍵が複数の断片(シャード)に分割され、参加者間で分配される。トランザクションに署名する際、各シャードの保有者が集まり、秘密鍵を再構築する。
SSSでは、秘密鍵は鍵生成時と署名時の両方で生成されます。これにより、攻撃者が中間者攻撃を用いて秘密鍵を暴露・復元できる可能性があるという脆弱性が生じます。
しかし、TSSはこのリスクを排除します。鍵の生成時であれ、トランザクションの署名時であれ、プロセスのどの段階においても秘密鍵自体を生成することはないため、この特定の脆弱性の影響を受けません。
TSSとマルチシグの比較
TSSとマルチシグは、それぞれわずかに異なる点を最適化しています。
説明責任: エンドユーザーが、どの当事者がトランザクションの署名に参加したかを知りたい場合、マルチシグウォレットの方が適しています。ブロックチェーンには、どの鍵が使用されたかが正確に記録されるため、それを遡って追跡することが可能です。一方、TSS(分散型署名)では、鍵のシェアの閾値が満たされたかどうかのみが記録され、具体的にどの鍵が使用されたかは記録されません。そのため、トランザクションの署名に参加した人物を特定する直接的なオンチェーン上の方法はありません。
互換性: すべてのプロトコルがネイティブにマルチシグをサポートしているわけではありません。例えば、BTCは「Pay to Script Hash(P2SH)」規格のおかげで、マルチシグ方式をネイティブにサポートしています。この規格では、エンドユーザーがアドレスから取引を送信するために必要な署名の数を指定できますが、他の特定のブロックチェーンではそうではありません。
プロトコルがネイティブにマルチシグをサポートしていない場合、同様の機能を実現するためにスマートコントラクトを作成する必要があります。スマートコントラクトが十分に監査されていないと、脆弱性の影響を受けやすくなる可能性があります。例えば、 Parityウォレットの脆弱性 この件では約3,000万米ドルが盗まれた。スマートコントラクトを安全に作成し、できれば第三者機関による監査を受けるには時間がかかるため、新しいコインのサポート追加プロセスが遅れがちになる。
費用: マルチシグ取引は、1つの取引につき複数の署名が含まれるため、データ量が多くなります。これらの署名はオンチェーン上で保存・検証される必要があるからです。一方、TSS取引は署名が1つしか含まれず、追加のスマートコントラクトも不要であるため、オンチェーン上のデータ量が少なくなります。そのため、ガス料金の面では、TSSの方がマルチシグに比べてコストがやや低くなります。
速度: マルチシグとTSSは、ほぼ同等の取引速度を実現します。マルチシグは複数の署名を生成し、それらをオンチェーンで検証する必要があるため、処理が遅くなるのではないかと疑う人もいるかもしれません。しかし、TSSにも独自の課題があり、そもそも取引を生成するために参加者間のやり取りがより多く必要となります。いずれにせよ、こうした議論はそれほど重要ではありません。ブロックチェーンの速度は、特定のウォレットでどの署名方式が使用されているかよりも、通常はそのプロトコル自体によって制約されるからです。
柔軟性: TSSはMulti-Sigよりもプロトコルに依存しないため、プロバイダーにとって実装の柔軟性が高い。スマートコントラクトを必要とせず、あらゆるブロックチェーンで利用可能だ。スマートコントラクトは開発に時間を要し、徹底的な監査も必要となる。TSSを利用すれば、あらゆるコインをWeb3アプリケーションに迅速に導入することができる。
BitGoのTSSソリューションと他のMPCソリューションとの比較
TSSは、代替的なセキュリティ方式であるMPC(多者間計算)を基盤としていますが、BitGoのTSSソリューションは、現在市場に出回っている一部のMPC/TSS実装に見られる以下の課題に対処しています:
説明責任. TSSの性質上、ブロックチェーン上では誰が取引に署名したかは表示されません。しかし、BitGoでは、特定の取引でどの鍵のシェアが使用されたかを記録した、安全で詳細なログを管理しています。
BitGoのTSSソリューションは、ユーザー、BitGo、およびバックアップの各キーシェアから構成される当社のマルチシグモデルに基づいています。署名を作成するには、これら3つのシェアのうち2つを組み合わせる必要があります。当社は、取引の署名時に3つのキーシェアのうちどれが使用されたかをプラットフォーム内にログとして記録し、そのログを改ざん不可能な状態にするよう厳重に保護しています。
専用技術BitGoは、BitGoのキーシェアを保護するためにサードパーティのソリューションに依存していません。その代わりに、BitGoには暗号資産向けに特化したハードウェアセキュリティモジュール(HSM)を開発する専任の研究開発チームがあります。
当社が独自に設計したHSMを活用することで、サプライチェーン攻撃から自社を保護しています。また、暗号資産が登場する前の時代を想定して構築された従来のHSMに見られるような、取引を無条件に署名してしまうようなリスクも回避しています。その代わりに、BitGoの専用設計されたHSMは、受け取った各取引に対して追加のチェックを行い、完全に署名してブロックチェーンに送信しています。
ハイブリッド型アプローチ. BitGoは、鍵のシェアを保護するために特定の技術のみに依存しているわけではありません。当社は、異なる種類の技術を用いて鍵のシェアを保存・保護する、多様化されたハイブリッドなアプローチを通じて、事業継続性を確保しています。
BitGoのキーシェア(プラットフォーム・キーシェアとも呼ばれます)は、BitGoが管理し、当社が専用に開発したハードウェアセキュリティモジュール(HSM)によって保護されています。一方、ユーザー・キーシェアは、お客様が管理します。
ユーザーキーのシェアを保護するクライアント技術としては、TPM、HSM、あるいはオンプレミスまたはクラウド上に展開されたセキュアエンクレーブなどが挙げられます。バックアップキーは、バックアップおよび災害復旧の目的でオフラインで保護されます。
BitGoはハイブリッド型のアプローチを採用することで、単一障害点を回避しています。鍵素材を保護する特定の技術に脆弱性が発見された場合、鍵素材全体が危険にさらされ、ひいてはその技術によって管理されている資金も同様に危険にさらされることになるからです。
企業が脆弱性が悪用される前にそれを発見した場合、できるだけ早くパッチを見つけ、パッチが提供されるまでサービスを停止する必要があります。パッチが利用できない場合は、鍵素材を移行するための新しい技術を見つける必要がありますが、これには数か月を要し、サービスの停止を招く可能性があります。BitGoは、TSSの鍵シェアを保護するために単一の技術に依存しないことで、この問題を解決しています。
BitGoのハイブリッド型アプローチは、鍵のシェアを保護するために導入している技術が地理的に分散されているため、事業継続性を確保することも可能です。自然災害が発生した場合、単一の地理的拠点に依存していると、顧客の資金をすべて失うことになりかねません。
査読. 多くのTSSソリューションはオープンソース化されておらず、実戦での検証も受けていないため、未発見の脆弱性が潜んでいる可能性があります。今日、多くの企業は、市場投入を早めるために開発を急いだという事実を隠蔽するために、独自仕様の暗号技術に依存しています。つまり、不十分なテストと透明性の欠如が原因で、将来的に悪用される可能性のある脆弱性が、暗号技術の中に確実に存在しているのです。
セキュリティの専門家 ブルース・シュナイアー 「ただ単に......だからといって」と主張している あなた あなたが作成したコードを解読できないからといって、 誰も ~できる。同様に、 OWASP (オープン・ウェブ・アプリケーション・セキュリティ・プロジェクト)は次のように述べている。「独自の暗号化アルゴリズムは、通常、堅固な数学的根拠ではなく『隠蔽によるセキュリティ』に依存しているため、信頼すべきではない。可能な限り、これらのアルゴリズムの使用は避けるべきである。」
私たちはこれをオープンソース化し、 バグ報奨金プログラム この問題に対処するのは、それがお客様のセキュリティを確保する唯一の方法だと確信しているからです。当社の技術は実績があり、実戦でもその有効性が証明されています。私たちの言葉を鵜呑みにする必要はありません。
バックアップキー. TSSの実装によっては、各キーシェアを同等に扱い、バックアップ用に割り当てないものもあります。しかし、クライアントはサービスプロバイダーを介さずにトランザクションに署名できる必要があります。自然災害、技術的な障害、またはサービスの停止によりサービスプロバイダーが利用できなくなった場合でも、クライアントは引き続きトランザクションを処理できなければなりません。
そのため、BitGoは、ユーザーがユーザー用キーシェアとバックアップ用キーシェアの両方を使用して取引を行えるよう、バックアップ用に使用するキーシェアの1つを顧客の管理下に割り当てています。
これにより、ユーザーキーシェアの保有者が会社を退職したり、パスワードを紛失したりするなど、キーシェアを紛失した場合でも、クライアントを保護することができます。そのような場合でも、ユーザーはバックアップキーシェアを使用して、BitGoのキーシェアと組み合わせてトランザクションに署名することができます。
BitGoウォレットについて詳しく知りたい方は、以下までお問い合わせください sales@bitgo.com当社のバグ報奨金プログラムに参加するには、以下をご覧ください 当プログラムのページ 詳細については、こちらをご覧ください。
BitGoについて
BitGoはデジタル資産のインフラストラクチャー企業であり、カストディ、ウォレット、ステーキング、トレーディング、ファイナンス、決済サービスを規制されたコールドストレージから提供しています。2013年の設立以来、当社は金融システムのデジタル資産経済への移行を加速させることに注力してきました。グローバルな事業展開と複数の規制対象事業体により、BitGoは業界のトップブランド、取引所、プラットフォームの多くを含む数千の機関投資家、および世界中の数百万人の個人投資家にサービスを提供しています。
