執筆者: SHEKAR RAMASWAMY編集者: Cointime.com 237
暗号通貨エコシステムへの参入障壁を下げるために、多くの企業が秘密鍵の管理をシンプルにするソリューションに取り組んでいます。これらのソリューションの多くは非保管であると主張していますが、これらのソリューションはユーザーの秘密キーにアクセスしたり、紛失したりする可能性があります。彼らは法的なグレーゾーンを悪用し、自らをセキュリティとユーザーエクスペリエンスの中間点であると誤って位置づけています...
より安全な暗号通貨エコシステムのために、非保管サービスのガイドラインを改善する必要があります。特に、アンマネージド サービスを定義するには、より厳格なルールが必要です。非保管サービスを選択した場合、自分の秘密鍵が第三者のリスクから永久に安全であることがわかっているので、完全に安心できるはずです。この記事では、アンマネージド サービスには次の 3 つの要件が必要であると結論付けています。
ユーザーは自分の秘密鍵にアクセスできます。
サービスは秘密キーにアクセスできません。
サービスは秘密キーを失いません。
マルチパーティ コンピューテーション (MPC) は、これら 3 つの要件を達成するために使用できる暗号化技術です。
MPCはどのように機能しますか?
簡単に言うと、#fancymath (高度な数学) を使用すると、秘密キーを複数の「共有」に分割し、信頼できる関係者間で配布することができ、どの当事者も完全な秘密キーを見ることはありません。一般的に使用される設定は、次のような「2-to-3 MPC スキーム」です。
1 シェアはユーザーのデバイスに保存されます。
1 株は第三者 (通常はウォレット) によって保持されます。
ユーザーがデバイスを紛失した場合に備えて、1 つのバックアップ共有が電子メールで送信されます。
このシナリオでは、合計 3 つの共有があります。各共有はトランザクション オブジェクトに部分的に署名できます (共有は秘密キーの一部にすぎないため)。 3 つの共有のうち、少なくとも 2 つの共有は部分署名を提供する必要があり、その後、それらを組み合わせて完全な署名を作成し、ブロックチェーンに送信できます。このプロセス全体が MPC アルゴリズムと見なされます。
ユーザーがアクションを実行したいときは、通常どおりウォレットを使用してトランザクションに署名します。内部では、ウォレットは完全な秘密キーにアクセスできませんが、MPC プロトコルを使用して、共有を結合せずにトランザクションに署名します (詳細は後述)。したがって、サードパーティのウォレットはサーバー上の 2 番目または 3 番目の共有を「見る」ことはできず、ユーザーのアカウントを乗っ取ることは不可能になります。
ユーザーのデバイスが盗まれたり、第三者がハッキングされた場合でも、失われるのは 3 つの共有のうち 1 つだけであるため、ユーザーは引き続き制御できます。もちろん、これら 2 つのことが同時に起こったら、問題が発生します。
このアプローチは、アンマネージド ソリューションの基準も満たしていることは注目に値します。
1. ユーザーは、サードパーティまたはバックアップキーを使用して秘密キーの 2/3 を取得できます。
2. サードパーティは共有を 1 つしか持っていないため、秘密キーにアクセスできません。
3. サードパーティは 1 つの共有しか持っていないため、秘密キーを失うことはありません。
MPC スマート コントラクト ウォレット (SCW)
スマート コントラクト ウォレットがマルチユーザー トランザクションや支出制限などの機能を通じてどのように優れたユーザー エクスペリエンスを提供するかについてはすでに説明しました。ただし、結局のところ、それらは依然としてスマート コントラクトであり、トランザクションを開始するには EOA が必要です。
Ethereum Virtual Machine (EVM) は、秘密キーで署名されたトランザクションのみをサポートします。スマート コントラクトには秘密キーがないため、トランザクションを作成できません。したがって、スマート コントラクトを呼び出すトランザクションを作成できるのは EOA だけです。
念のため、スマート コントラクト ウォレットがどのように機能するかを示す図を次に示します。
MPC は「まだ EOA が必要である」問題を完全に解決するわけではありませんが、トランザクションを開始するプロセスをより安全かつ簡単にします。ユーザーは、自分に代わって秘密キーを保持する第三者を信頼する必要もなくなり、秘密キーを保護する方法について心配する必要もなくなりました。これで、次のようなメリットが得られます。
この図は前の図よりも複雑ですが、実装では複雑さが抽象化されているため、エンド ユーザーが煩わされることはありません。主な結果は、より最適化されたユーザー エクスペリエンスです。
結論として、最高の Web3 エクスペリエンスを提供するには、MPC と SCW を併用する必要があります。 Portal と ZeroDev のコラボレーションなど、すでにこれに取り組んでいる人もいます。
追加の読み物
SCW は MPC よりもはるかに優れており、この 2 つを混合すべきではないと主張する人もいます (Vitalik! を含む)。これらのツイートをチェックして議論に参加してください。
全てのコメント