Argent の Itamar Lesuisse と Loopring の Daniel Wang からのフィードバックに感謝します。
仮想通貨とブロックチェーンのアプリケーションを平均的なユーザーが利用できるようにする上での大きな課題の 1 つはセキュリティです。ユーザーの資金の紛失や盗難をどのように防ぐか?
紛失や盗難は深刻な問題であり、多くの場合、罪のないブロックチェーン ユーザーに数千ドル、場合によっては純資産全体の大部分を失うことさえあります。
何年にもわたって多くのソリューションが提案されてきました: ペーパー ウォレット、ハードウェア ウォレット、そして私自身のかつてのお気に入りであるマルチシグ ウォレットです。
実際、それらはセキュリティの大幅な改善につながっています。しかし、これらのソリューションはすべてさまざまな欠陥を抱えていました。盗難や紛失に対する保護が実際に必要とされるよりもはるかに不十分な場合もあれば、扱いにくく使いにくいために普及率が非常に低い場合もあれば、その両方である場合もあります。
しかし最近では、より優れた代替手段が出現しています。それは、ソーシャル リカバリー ウォレットと呼ばれる新しいタイプのスマート コントラクト ウォレットです。
これらのウォレットは、以前のオプションよりも高いレベルのセキュリティとはるかに優れた使いやすさを提供する可能性がありますが、簡単かつ広く展開するにはまだ道のりがあります.
この投稿では、ソーシャル リカバリー ウォレットとは何か、それらが重要な理由、およびエコシステム全体でそれらをより広く採用するためにどのように移行できるか、また移行する必要があるかについて説明します。
ウォレットのセキュリティ問題は、ほぼ当初からブロックチェーン エコシステムの悩みの種でした。
暗号通貨の紛失と盗難は、ビットコインがほぼ唯一の暗号通貨だった 2011 年にも横行していました。実際、 Bitcoin Magazineの共同創設者兼ライターとしてのイーサリアム以前の役割で、当時すでに起こっていたハッキングと損失と盗難の恐怖を詳述する記事全体を書きました。
以下に 1 つのサンプルを示します。
昨夜、PDT の午後 9 時ごろ、リンクをクリックして CoinChat[.]freetzi[.]com にアクセスすると、Java を実行するように求められました。私は(これが正当なチャットだと思って)しましたが、何も起こりませんでした。何も考えずに窓を閉めた。約 14 分後に bitcoin-qt ウォレットを開きましたが、ウォレット 1Es3QVvKN1qA2p6me7jLCVMZpQXVXWPNTC に行くことを承認していないトランザクションが、ほぼすべてのウォレットで見られました...
この人の損失は 2.07 BTC で、当時の価値は 300 ドルでしたが、今日では 70000 ドルを超えています。ここに別のものがあります:
2011 年 6 月、Bitcointalk メンバーの「allinvain」は、未知の侵入者が何らかの方法で彼のコンピューターに直接アクセスした後、25,000 BTC (当時の価値は 500,000 ドル) を失いました。攻撃者は allinvain の wallet.dat ファイルにアクセスし、alinvain のコンピューター自体からトランザクションを送信するか、単純に wallet.dat ファイルをアップロードして自分のマシンで空にすることにより、ウォレットをすばやく空にすることができました。
現在の価値では、これは10 億ドル近くの損失です。しかし、懸念されるのは盗難だけではありません。秘密鍵の紛失による損失もあります。ステファン・トーマスは次のとおりです。
Bitcoin 開発者の Stefan Thomas は、暗号化された USB スティック、Dropbox アカウント、Virtualbox 仮想マシンの 3 つのウォレットのバックアップを持っていました。しかし、彼はそのうちの 2 つを消去し、3 つ目のパスワードを忘れてしまい、7,000 BTC (当時の価値は 125,000 ドル) へのアクセスを永久に失いました。 Thomas の反応: 「[私は] それ以来、より良いクライアントを作成することにかなり専念しています。」
ビットコイン エコシステムの 1 つの分析では、 毎日 1500 BTC が失われる可能性があることが示唆されています。これは、ビットコイン ユーザーが取引手数料に費やす金額の 10 倍以上であり、何年にもわたって合計すると総供給量の 20% にもなります。
ストーリーと数字は、同じ避けられない真実を示しています。ウォレットのセキュリティ問題の重要性は大きく、過小評価すべきではありません。
ウォレットのセキュリティが過小評価されやすい社会的および心理的な理由を理解するのは簡単です。人々は、常に批判的な大衆の前で不注意または愚かに見えることを自然に心配しており、非常に多くの人が自分の資金がハッキングされた経験を自分自身に留めています.資金の損失はさらに深刻です。なぜなら、「自分以外の責任は誰にもない」という感覚が蔓延しているからです (私の意見では非常に間違っていますが)。
しかし現実には、ブロックチェーンを含むデジタル技術の要点は、人間が極端な精神的努力をしたり、間違いを犯すことを常に恐れたりすることなく、非常に複雑なタスクに従事することを容易にすることです.
紛失や盗難に対する唯一の答えが、12 ステップのチュートリアル、あまり安全ではない中途半端な対策、およびそれほど時折ではない半皮肉な「失くしてごめんなさい」の組み合わせであるエコシステムは、入手するのに苦労するでしょう。幅広い採用。
したがって、すべての暗号通貨ユーザーが個人のセキュリティをフルタイムの趣味にする必要がなく、紛失や盗難の発生量を減らすソリューションは、業界にとって非常に価値があります。
ハードウェア ウォレットは、暗号通貨の資金管理のためのクラス最高のテクノロジとして宣伝されることがよくあります。
ハードウェア ウォレットは、コンピューターまたは電話に (USB 経由などで) 接続できる特殊なハードウェア デバイスであり、秘密鍵の生成とトランザクションの署名のみを行う特殊なチップが含まれています。
トランザクションはコンピュータまたは電話で開始され、送信する前にハードウェア ウォレットで確認する必要があります。秘密鍵はハードウェア ウォレットに保管されるため、攻撃者がコンピューターや電話にハッキングして資金を流出させることはありません。
ハードウェア ウォレットは大幅な改善であり、Java チャットルームの被害者を確実に保護できたはずですが、完全ではありません。ハードウェア ウォレットには主に 2 つの問題があります。
サプライ チェーン攻撃: ハードウェア ウォレットを購入した場合、その製造に関与した多くの関係者 (ウォレットを設計した会社、製造した工場、およびそれを交換した可能性のある出荷に関与したすべての人) を信頼していることになります。偽物。
ハードウェア ウォレットは、このような攻撃を引き付ける可能性があります。侵害されたデバイスの数に対する盗まれた資金の比率は非常に高いです。
Ledger などのハードウェア ウォレット メーカーは、これらのリスクから保護するために多くの保護手段を講じていますが、いくつかのリスクは依然として残っています。ハードウェア デバイスは、基本的に、オープン ソース ソフトウェアと同じ方法で監査することはできません。
依然として単一障害点: 誰かがあなたの後ろに立って PIN を入力しているのを見つけた直後にハードウェア ウォレットを盗んだ場合、彼らはあなたの資金を盗むことができます。
ハードウェア ウォレットを紛失すると、資金が失われます - ハードウェア ウォレットがセットアップ時にバックアップを生成して出力しない限り、それ自体に問題があることがわかります...
ハードウェアとソフトウェアを問わず、多くのウォレットには、ウォレットのルート秘密鍵を人間が読み取れる 12 ~ 24 語でエンコードしたニーモニック フレーズを出力するセットアップ手順があります。ニーモニック フレーズは次のようになります。
vote dance type subject valley fall usage silk essay lunch endorse lunar obvious race ribbon key already arrow enable drama keen survey lesson cruel
ウォレットを紛失してもニーモニック フレーズがある場合は、新しいウォレットを設定してアカウントを復元するときにフレーズを入力できます。ニーモニック フレーズには、他のすべてのキーを生成できるルート キーが含まれているためです。
ニーモニック フレーズは、紛失に対する保護には適していますが、盗難に対しては何もしません。さらに悪いことに、盗難の新たな経路が追加されます。標準のハードウェア ウォレット + ニーモニック バックアップの組み合わせを持っている場合、誰かがハードウェア ウォレット + PINまたはニーモニック バックアップのいずれかを盗むことで、資金を盗むことができます。
さらに、記憶のフレーズを維持し、それを誤って捨てないようにすること自体が重要な精神的努力です。
フレーズを半分に分けて半分を友達に渡せば、盗難の問題は軽減できますが、(i) 実際にこれを促進する人はほとんどいません。(ii) フレーズが短い (128 ビット) ため、セキュリティ上の問題があります。次に、一方のピースを盗む巧妙で意欲的な攻撃者は、\(2^{64}\) 個の可能なすべての組み合わせをブルート フォースして別のピースを見つけることができ、(iii) 精神的なオーバーヘッドがさらに増加します。
私たちが必要としているのは、3 つの重要な基準を満たすウォレットのデザインです。
単一障害点なし: 盗まれた場合に攻撃者が資金にアクセスできるようにしたり、紛失した場合に資金へのアクセスを拒否したりする可能性のあるものは 1 つもありません (理想的には、一緒に移動するものの集合もありません)。
低い精神的オーバーヘッド: 可能な限り、ユーザーが奇妙な新しい習慣を習得したり、特定の行動パターンに従うことを常に忘れないように精神的な努力をしたりする必要はありません。
取引の最大の容易さ: ほとんどの通常の活動は、通常のウォレットで行うよりも多くの労力を必要としないはずです (例: ステータス、メタマスク...)
2013 年当時、これらの問題を解決するクラス最高のテクノロジーはマルチシグでした。 3 つのキーを持つウォレットを持つことができ、そのうちの 2 つがトランザクションを送信するために必要です。
このテクノロジーはもともとビットコインのエコシステム内で開発されましたが、優れたマルチシグ ウォレット (例: Gnosis Safeを参照) がイーサリアムにも存在します。
マルチシグ ウォレットは、組織内で大きな成功を収めています。イーサリアム財団は、イーサリアム エコシステムの他の多くの組織と同様に、4-of-7 マルチシグ ウォレットを使用して資金を保管しています。
個人の資金を保持するマルチシグ ウォレットの主な課題は、誰が資金を保持し、トランザクションはどのように承認されるかということです。最も一般的な式は、「簡単にアクセスできるが別々の 2 つのキーをユーザーが保持し (ラップトップと電話など)、3 つ目のキーをより安全ではあるがアクセスしにくいバックアップとしてオフラインまたは友人や機関が保持する」という変形です。
これはかなり安全です。紛失や盗難の可能性があり、資金へのアクセスを失う可能性のある単一のデバイスはありません.しかし、セキュリティは完璧とは言えません。誰かのラップトップを盗むことができれば、電話を盗むこともそれほど難しくありません。
すべてのトランザクションで 2 つのデバイスを使用して 2 つの確認が必要になるため、使いやすさも課題です。
これにより、ウォレットを保護するための私の好みの方法であるソーシャル リカバリーにたどり着きます。社会的回復システムは次のように機能します。
トランザクションの承認に使用できる単一の「署名キー」があります
少なくとも 3 人 (またはそれ以上の数) の「保護者」のセットがあり、その大多数が協力してアカウントの署名鍵を変更できます。
署名キーには、ガーディアンを追加または削除する機能がありますが、遅延後 (多くの場合 1 ~ 3 日) に限ります。
すべての通常の状況下で、ユーザーはソーシャル リカバリー ウォレットを通常のウォレットのように使用し、署名キーでメッセージに署名するだけで、署名された各トランザクションは、Metamask のような「従来の」ウォレットと同じように、確認の 1 回のクリックで飛び出すことができます。 .
ユーザーが署名キーを紛失した場合、その時点でソーシャル リカバリー機能が作動します。ユーザーは保護者に連絡して、ウォレット コントラクトに登録されている署名公開キーを新しいものに変更するための特別なトランザクションに署名するよう依頼するだけです。 .
これは簡単です。単にsecurity.loopring.ioなどの Web ページにアクセスしてサインインし、復旧要求を確認して署名するだけです。各保護者にとって、Uniswap 取引を行うのと同じくらい簡単です。
誰を後見人に選ぶかについては、多くの選択肢があります。最も一般的な 3 つの選択肢は次のとおりです。
ウォレット所有者自身が所有するその他のデバイス (または紙のニーモニック)
友人や家族
あなたの電話番号や電子メールの確認を受け取った場合、またはおそらく価値の高いケースでは、ビデオ通話であなたを個人的に確認した場合に、回復メッセージに署名する機関。
ガーディアンは簡単に追加できます: ENS 名または ETH アドレスを入力するだけでガーディアンを追加できますが、ほとんどのソーシャル リカバリー ウォレットでは、追加に同意するためにガーディアンがリカバリー Web ページでトランザクションに署名する必要があります。
適切に設計されたソーシャル リカバリー ウォレットでは、ガーディアンは同じウォレットをダウンロードして使用する必要はありません。どのタイプのウォレットであっても、既存の Ethereum ウォレットをそのまま使用できます。
ガーディアンを追加することの利便性が高いことを考えると、幸運にもあなたのソーシャル サークルがすでに Ethereum ユーザーで構成されている場合、私は個人的にセキュリティを強化するためにガーディアンの数を多くする (理想的には 7 以上) ことを好みます。
すでにウォレットをお持ちの場合、ガーディアンになるために必要な継続的な精神的努力はありません。お客様が行う復旧操作はすべて、既存のウォレットを介して行われます。他の多くのアクティブな Ethereum ユーザーを知らない場合は、技術的に有能であると信頼できる少数の保護者が最適です。
保護者への攻撃や共謀のリスクを軽減するために、保護者は公に知られている必要はありません。実際、保護者は互いの身元を知る必要はありません。これには 2 つの方法があります。
まず、ガーディアンのアドレスがチェーンに直接保存される代わりに、アドレスのリストのハッシュがチェーンに保存され、ウォレットの所有者は回復時に完全なリストを公開するだけで済みます。
第 2 に、各ガーディアンは、その特定の回復のためだけに使用する新しい単一目的のアドレスを決定論的に生成するように依頼できます。回復が実際に必要でない限り、実際にそのアドレスでトランザクションを送信する必要はありません。
これらの技術的な保護を補完するために、さまざまな社会的サークルから多様な保護者のコレクションを選択することをお勧めします (理想的には 1 人の機関保護者を含む) 。これらの推奨事項を一緒に使用すると、ガーディアンが同時に攻撃されたり、共謀したりすることが非常に困難になります。
あなたが死亡したり永久に無力になったりした場合、保護者が自分自身を公に発表できるのは社会的に合意された標準的なプロトコルであり、その場合、彼らはお互いを見つけてあなたの資金を回収することができます.
マルチシグ、社会的回復などのあらゆる形態を使用する提案に対する一般的な反応の1つは、この解決策は「人々を信頼する」ことに戻るという考えであり、ブロックチェーンと暗号通貨業界の価値を裏切るものです.
一見しただけでこれを考える理由は理解できますが、この批判は暗号とは何かについての根本的な誤解から生じていると私は主張します。
私にとって、暗号の目標は、すべての信頼の必要性を取り除くことではありませんでした。
むしろ、暗号の目標は、人々が誰を信頼するかをより多く選択できるようにする暗号化および経済的ビルディングブロックへのアクセスを人々に提供し、さらに人々がより制約された形の信頼を構築できるようにすることです。彼らにすべてを行う力を与えることなく。
このように見ると、マルチシグと社会的回復は、この原則の完璧な表現です。各参加者は、トランザクションを受け入れるか拒否する能力に対してある程度の影響力を持ちますが、一方的に資金を移動することはできません。
このより複雑なロジックにより、資金を一方的に管理する人物または鍵が 1 人存在する場合よりもはるかに安全なセットアップが可能になります。
人間の入力は慎重に使用する必要があるが、完全に捨ててはならないというこの基本的な考え方は、人間の脳の長所と短所にうまく作用するため、強力です。
人間の脳は、パスワードを覚えたり紙の財布を追跡したりするのにはあまり適していませんが、他の人との関係を追跡するための ASIC です。この効果は、あまり技術的でないユーザーにとってはさらに強力です。彼らは財布とパスワードを扱うのに苦労するかもしれませんが、「すべてが私に群がらない人を 7 人選ぶ」などの社交的なタスクには同じくらい長けています。
人間の入力が攻撃や悪用のベクトルに変わることなく、メカニズムへの人間の入力から少なくとも一部の情報を抽出できる場合は、その方法を理解する必要があります。
また、社会的回復は非常に堅牢です。7 人の保護者がいるウォレットが侵害されるには、7 人の保護者のうち 4 人が何らかの方法でお互いを発見し、所有者に情報を漏らすことなく資金を盗むことに同意する必要があります。確かに、はるかに困難な課題です。 純粋に 1 人の個人によって保護されているウォレットを攻撃するよりも。
上記で説明した社会的回復は、財布を失うリスクに対処します。ただし、署名キーが盗まれるリスクは依然としてあります。誰かがあなたのコンピューターにハッキングしたり、既にログインしているときに背後から忍び寄って頭を殴ったり、ユーザー インターフェイスの不具合を利用して署名させたりすることさえあります。署名するつもりのなかった取引。
ボールトを追加することで、このような問題に対処するために社会的回復を拡張できます。すべてのソーシャル リカバリー ウォレットには、自動生成されたボールトが付属しています。アセットは、ボールトのアドレスに送信するだけでボールトに移動できますが、ボールトから移動できるのは 1 週間の遅延のみです。
その遅延の間、署名キー (拡張によりガーディアン) はトランザクションをキャンセルできます。必要に応じて、限られた財務操作 (ホワイトリストに登録されたトークン間の Uniswap 取引など) を遅滞なく実行できるように、ボールトをプログラムすることもできます。
現在、ソーシャル リカバリーを実装している 2 つの主要なウォレットは、 Argent ウォレットとLoopring ウォレットです。
アージェント ウォレットは、現在使用されている最初のメジャーであり、現在も最も人気のある「スマート コントラクト ウォレット」であり、社会的回復がその主なセールス ポイントの 1 つです。 Argent ウォレットには、ガーディアンを追加および削除できるインターフェイスが含まれています。
盗難から保護するために、ウォレットには 1 日あたりの制限があります。その金額までの取引は即座に行われますが、その金額を超える取引は保護者が引き出しを完了するために承認する必要があります。
Loopring ウォレットは、支払いと分散型取引所のZK ロールアップであるLoopring プロトコル(もちろん、そのサポートも含む) の開発者によって構築されたことで最もよく知られています。しかし、Loopring ウォレットには、Argent と非常によく似たソーシャル リカバリー機能もあります。
どちらの場合も、ウォレット会社は 1 つのガーディアンを無料で提供します。ガーディアンは、携帯電話から送信される確認コードを使用して認証を行います。他のガーディアンについては、同じウォレットの他のユーザー、またはイーサリアム アドレスを提供することで任意のイーサリアム ユーザーを追加できます。
どちらの場合も、ユーザー エクスペリエンスは驚くほどスムーズです。主な課題は 2 つありました。まず、どちらの場合もスムーズさは、署名されたメッセージをトランザクションとして再発行するウォレット メーカーによって実行される中央の「リレイヤー」に依存しています。第二に、手数料が高い。幸いなことに、これらの問題はどちらも克服できます。
前述のように、 (i) トランザクションを解決するための中継者への依存、および (ii) 高いトランザクション手数料 という 2 つの重要な課題があります。最初の課題であるリレイヤーへの依存は、イーサリアム アプリケーションでますます一般的な問題になっています。
この問題が発生するのは、イーサリアムには 2 種類のアカウントがあるためです。単一の秘密鍵によって管理されるアカウントである外部所有アカウント (EOA)とコントラクトです。イーサリアムでは、すべてのトランザクションは EOA から開始する必要があるという規則があります。当初の意図は、EOA が「ユーザー」を表し、コントラクトが「アプリケーション」を表し、ユーザーがアプリケーションに話しかけた場合にのみアプリケーションを実行できるというものでした。
マルチシグやソーシャル リカバリなど、より複雑なポリシーを持つウォレットが必要な場合は、コントラクトを使用してユーザーを表す必要があります。しかし、これには課題があります。資金が契約に含まれている場合、各トランザクションを開始するために支払うことができる ETH を持つ別のアカウントが必要であり、トランザクション手数料が非常に高くなった場合に備えて、かなりの ETH が必要です。
Argent と Loopring は、「リレイヤー」を個人的に実行することで、この問題を回避しています。リレイヤーは、ユーザーによって送信されたオフチェーンのデジタル署名された「メッセージ」をリッスンし、これらのメッセージをトランザクションにラップして、チェーンに公開します。
しかし、長期的には、これは不十分な解決策です。集中化のポイントが追加されます。リレーラーがダウンしていて、ユーザーが本当にトランザクションを送信する必要がある場合、ユーザーはいつでも自分の EOA から送信できますが、集中化と不便さの間の新しいトレードオフが導入されるのは事実です。
この問題を解決し、中央集権化せずに利便性を得ようとする試みがあります。主な 2 つのカテゴリは、一般化された分散型中継ネットワークを作成するか、コントラクトからトランザクションを開始できるように Ethereum プロトコル自体を変更するかのいずれかを中心に展開しています。しかし、これらのソリューションはどちらも取引手数料を解決するものではなく、実際、スマート コントラクトは本質的により複雑であるため、問題を悪化させます。
幸いなことに、エコシステムを楽観的ロールアップや ZK ロールアップなどのレイヤー 2 プロトコルに移行するという 3 つ目の解決策を検討することで、これらの問題を同時に解決できます。
オプティミスティック ロールアップと ZK ロールアップはどちらも、アカウントの抽象化を組み込んで設計することができ、中継者の必要性を回避します。既存のウォレット開発者はすでにロールアップを検討していますが、最終的にまとめてロールアップに移行することは、エコシステム全体の課題です。
ロールアップへのエコシステム全体の大規模な移行は、イーサリアム エコシステムの以前の過ちを覆し、マルチシグおよびスマート コントラクト ウォレットに、ユーザーの資金を保護するためのより中心的な役割を与える絶好の機会です。
しかし、これには、ウォレットのセキュリティが課題であること、そして私たちが必要な対応と課題への取り組みをほとんど行っていないことを、より広く認識する必要があります。
マルチシグと社会的回復は話の終わりである必要はありません。さらにうまく機能するデザインがあるかもしれません。しかし、ロールアップに移行し、これらのロールアップがスマート コントラクト ウォレットをファースト クラスの市民として扱うようにするという単純な改革は、それを実現するための重要なステップです。