VitalikBlog翻訳シリーズ Vol.1 "Why we need wide adoption of social recovery wallets"
Ethereumの創設者であるVitalik氏のブログ「Why we need wide adoption of social recovery wallets(social recovery walletsの普及が必要な理由)」について翻訳しました。
- ウォレットのリサーチの仕事のアウトプットをブログにしたものです。
- 細かい誤訳についてはご容赦ください。
social recovery walletsの普及が必要な理由
フィードバックをいただいたArgentのItamar Lesuisse氏とLoopringのDaniel Wang氏に感謝します。
暗号通貨やブロックチェーンのアプリケーションを一般ユーザーが使えるようにするための大きな課題の1つは、セキュリティです。ユーザーの資金が失われたり盗まれたりするのをどう防ぐか?紛失や盗難は深刻な問題で、無実のブロックチェーンユーザーが数千ドル、場合によっては全資産の大半を失うことも少なくありません。
長年にわたって多くの解決策が提案されてきました:ペーパーウォレット、ハードウェアウォレット、そして私がかつて愛用した マルチシグウォレットです。そして実際に、これらのソリューションはセキュリティの大幅な向上につながりました。しかし、これらのソリューションには様々な欠陥があり、盗難や紛失に対する保護が実際に必要なものよりはるかに少なかったり、面倒で使いにくいために普及率が非常に低かったり、あるいはその両方であったりしています。しかし最近、より優れた代替手段が登場しています。それは、social recovery walletsと呼ばれる、新しいタイプのスマートコントラクトウォレットです。これらのウォレットは、以前の選択肢よりも高いレベルのセキュリティとはるかに優れたユーザビリティを提供できる可能性がありますが、簡単かつ広く展開できるようになるにはまだ道のりがあります。 この記事では、social recovery walletsとは何か、なぜそれが重要なのか、そしてエコシステム全体でより広範な採用に向けてどのように動くことができるのか、また動くべきなのかについて説明します。
ウォレットのセキュリティは本当に大きな問題
ウォレットのセキュリティ問題は、ブロックチェーンエコシステムが始まった当初から、ほとんどトゲのような存在でした。暗号通貨の損失や盗難は、ビットコインが唯一の暗号通貨だった2011年当時でさえも横行していました。実際、私がEthereum以前、ビットコインマガジンの共同設立者およびライターとして活動していたとき、当時すでに起きていたハッキングや損失、盗難の恐怖を詳細に説明する記事をすべて書き上げました。
以下はその一例です。
昨夜9時頃(PDT)、私はCoinChat[.]freetzi[.]comに行くためにリンクをクリックしました - そして、私はjavaを実行するように促されました。私は(これが正当なチャットルームだと思い)実行しましたが、何も起こりませんでした。私はウィンドウを閉じ、何も考えませんでした。約14分後にbitcoin-qtウォレットを開くと、私が承認していない取引がウォレット1Es3QVvKN1qA2p6me7jLCVMZpQXVXWPNTCに行き、私のウォレットのほぼ全体が使われていました...。
この人の損失は2.07BTCで、当時は300ドルの価値があり、現在は70000ドル以上になっています。もう一つご紹介しましょう。
2011年6月、Bitcointalkのメンバーである「allinvain」は、未知の侵入者が何らかの方法で彼のコンピュータに直接アクセスし、25000BTC(当時は50万ドルの価値)を失いました。この攻撃者は allinvain の wallet.dat ファイルにアクセスし、allinvain のコンピュータ自体から取引を送信するか、単に wallet.dat ファイルをアップロードして自分のマシンで空にすることで、ウォレットを素早く空にすることができたのです。
現在の価値に換算すると、10億円近い損失だ。しかし、盗難だけでなく、自分の秘密鍵を失うことによる損失も懸念される。ここにステファン・トーマスがいる。
ビットコイン開発者のステファン・トーマスは、暗号化されたUSBメモリ、Dropboxアカウント、Virtualbox仮想マシンの3つの財布のバックアップをとっていました。しかし、彼はそのうちの2つを消去し、3つ目のパスワードも忘れてしまい、7,000BTC(当時125,000ドルの価値)へのアクセスを永遠に失ってしまった。トーマスの反応 "それ以来、より良いクライアントを作ることにかなり専念しています。"
ビットコインのエコシステムのある分析によると、毎日1500BTCが失われている。これは、ビットコインのユーザーが取引手数料に費やす金額の10倍以上であり、長年に渡って供給総量の20%にも上る。財布のセキュリティ問題の重要性は非常に高く、過小評価されるべきではないのです。
ウォレットのセキュリティが軽視されやすい社会的・心理的な理由は簡単です。人々は、常に批判的な人々の前では無頓着で間抜けに見えることを自然に心配しており、資金がハッキングされた経験を自分の中に留めておく人が多くいます。資金の損失はさらに深刻で、「自分以外に責めるべき人はいない」という感覚が(私の意見では非常に間違っていますが)蔓延しています。しかし、現実には、ブロックチェーンを含むデジタル技術の要点は、人間が非常に複雑な作業を、極端な精神力を発揮したり、常に間違いを恐れることなく簡単に行えるようにすることなのです。損失や盗難に対する唯一の答えが、12段階のチュートリアルと、あまり安全とは言えない中途半端な対策と、たまにある半端な皮肉「お気の毒に」の組み合わせであるエコシステムは、広く採用されるのは難しいでしょう。
ですから、すべての暗号通貨ユーザーが個人のセキュリティを趣味にすることなく、損失や盗難の発生を減らすソリューションは、業界にとって非常に価値のあるものなのです。
ハードウェアウォレットだけでは十分とは言えない
ハードウェアウォレットは、暗号通貨資金管理のための最高クラスの技術としてしばしば宣伝されています。ハードウェアウォレットは、パソコンやスマホに接続できる(USBなど)専用ハードウェアデバイスで、秘密鍵の生成と取引への署名のみが可能な専用チップを搭載しています。取引はパソコンや携帯電話で開始され、送信する前にハードウェアウォレットで確認されなければなりません。秘密鍵はハードウェアウォレットに保存されるため、パソコンや携帯電話をハッキングする攻撃者が資金を流出させることはない。
ハードウェアウォレットは大きな改善であり、Javaチャットルームの被害者を守ることができたのは確かですが、完璧ではありません。ハードウェアウォレットには、主に2つの問題があると私は考えています。
サプライチェーン攻撃:ハードウェアウォレットを購入するということは、その製造に関わった多くの関係者を信用するということです。ウォレットを設計した会社、製造した工場、そして出荷に関わった全ての人が偽物と交換する可能性があります。ハードウェアウォレットは、このような攻撃を受ける可能性があります。盗まれた資金の割合が、危険にさらされたデバイスの数に対して非常に高いのです。Ledgerのようなハードウェアウォレットのメーカーは、こうしたリスクから保護するために多くの安全策を講じていますが、それでもいくつかのリスクは残っています。ハードウェアデバイスは基本的に、オープンソースソフトウェアと同じように監査することができません。 単一障害点:もし誰かがあなたの肩の後ろに立ち、あなたがPINを入力するのを捉えた直後にハードウェアウォレットを盗めば、あなたの資金を盗むことができます。ハードウェアウォレットがセットアップ時にバックアップを生成して出力しない限り、ハードウェアウォレットを紛失すると、資金を失うことになります。
ニーモニックフレーズは十分ではありません。
多くのウォレットは、ハードウェア、ソフトウェアを問わず、セットアップの際にニモニックフレーズを出力するようになっています。ニモニックフレーズは次のようなものです。
https://vitalik.ca/general/2021/01/11/recovery.html
ウォレットを紛失しても、ニーモニックフレーズを持っていれば、新しいウォレットをセットアップするときに、ニーモニックフレーズを入力すれば、アカウントを回復できます。
ニーモニックフレーズは、紛失を防ぐには有効ですが、盗難に対しては何の役にも立ちません。さらに悪いことに、新しい盗難の経路が追加されます。標準的なハードウェアウォレットとニーモニックバックアップのコンボを持っている場合、ハードウェアウォレットとPINまたはニーモニックバックアップのどちらかを盗まれると、資金を盗まれる可能性があります。さらに、ニモニックフレーズを維持し、誤って捨てないようにすること自体、自明でない精神的な努力の賜物です。
しかし、
(i)実際にこの方法をとる人はほとんどいない、
(ii)セキュリティ上の問題がある、もしフレーズが短い(128ビット)場合、巧妙でやる気のある攻撃者が片方を盗むと、もう片方を見つけるためにすべての可能な組み合わせをブルートフォースできるかもしれない、
(iii) さらに精神のオーバーヘッドが増加する、
などがあります。
必要なものは何か?
私たちが必要としているのは、3つの重要な基準を満たすウォレットのデザインです。
単一障害点がないこと:盗まれた場合に攻撃者に資金へのアクセスを与える、または紛失した場合に資金へのアクセスを拒否できるような単一物(理想的には一緒に移動する物の集合体)がないことです。
メンタルオーバーヘッドが少ない: できるだけ、ユーザーが奇妙な新しい習慣を覚えたり、特定の行動パターンに従うことを常に覚えておくために精神的努力を払う必要がないようにすること。
取引のしやすさを最大限に追求: ほとんどの通常の動作は、通常の財布で行うよりも多くの労力を必要としないこと(例:ステータス、メタマスク...)。
マルチシグはいいぞ!
2013年当時、これらの問題を解決する最高峰の技術がmultisigでした。3つのキーを持つウォレットを持ち、そのうちの2つがトランザクションを送信するのに必要です。
https://vitalik.ca/general/2021/01/11/recovery.html
この技術はもともとビットコインのエコシステムで開発されましたが、現在では優れたマルチシグウォレット(例:Gnosis Safeを参照)がEthereumにも存在しています。Ethereum財団は4-of-7 multisigウォレットを使用して資金を保管しており、Ethereumエコシステムの他の多くの組織も同様です。
マルチシグウォレットが個人の資金を保持する場合、主な課題は「誰が資金を保持し、どのように取引を承認するのか」ということです。最も一般的な方式は、「簡単にアクセスできるが分離した2つの鍵(例:ラップトップと電話)」と「より安全だがアクセスしにくい3つ目の鍵(オフラインまたは友人や機関によって保持されるバックアップ)」の変種である。
これなら、紛失や盗難で資金が使えなくなるようなデバイスは1つもないので、それなりに安全です。しかし、セキュリティは完璧とは言い難い。誰かのノートパソコンを盗むことができれば、その人の携帯電話も盗むことはそれほど難しくないことが多いのだ。また、取引のたびに2つのデバイスで2回の確認が必要なため、使い勝手も課題となっています。
ソーシャル・リカバリーはもっと良い!
そこで、私が推奨する財布の保護方法、ソーシャル・リカバリーについて説明します。ソーシャル・リカバリーシステムは次のように機能します。
取引を承認するための「署名キー」が1つある。
少なくとも3人(あるいはもっと多い人数)の「保護者」がいて、その過半数が協力してアカウントの署名キーを変更することができる。
署名鍵は保護者を追加または削除する機能を持つが、遅延(多くの場合1-3日)の後でなければならない。
https://vitalik.ca/general/2021/01/11/recovery.html
通常の場合、ユーザーは通常のウォレットのようにsocial recovery walletsを使用し、署名キーでメッセージに署名し、Metamaskのような「従来の」ウォレットと同じように1回の確認クリックで署名した各取引を実行することができます。
もし、ユーザーが署名キーを紛失した場合、ソーシャルリカバリー機能が作動します。ユーザーは、保護者に連絡を取り、ウォレットのコントラクトに登録されている署名用パブキーを新しいものに変更するための特別なトランザクションに署名してもらうだけでよいのです。これは簡単で、security.loopring.ioなどのウェブページに行き、サインインしてリカバリーリクエストを見てサインすればいいのです。各保護者にとっては、Uniswapトレードをするのと同じくらい簡単です。
保護者として誰を選ぶかについては、多くの選択肢が考えられます。最も一般的な選択肢は以下の3つです。
ウォレットホルダー自身が所有する他のデバイス(または紙のニーモニック)。 友人や家族 電話番号や電子メールの確認が取れれば、リカバリーメッセージに署名してくれる機関、または価値の高いケースでは、ビデオ通話で個人的に確認する機関 後見人は簡単に追加できます。ENS名やETHアドレスを入力するだけで後見人を追加できますが、ほとんどのsocial recovery walletsは、後見人が追加されることに同意するために、リカバリーウェブページのトランザクションに署名することを要求しています。social recovery walletsは、保護者が同じウォレットをダウンロードして使用する必要はなく、既存のEthereumウォレットを使用することができます。ガーディアンを追加することの利便性を考えると、もしあなたのソーシャルサークルがすでにEthereumユーザーで構成されているという幸運に恵まれているなら、個人的にはセキュリティ強化のためにガーディアンの数を多く(理想的には7以上)することをお勧めします。すでにウォレットを持っている場合、ガーディアンになるための継続的な精神的努力は必要ありません:あなたが行う回復操作は、既存のウォレットを介して行われます。もし、あなたが他のアクティブなEthereumユーザーをあまり知らないのであれば、技術的に信頼できる少人数のガーディアンがベストでしょう。
後見人への攻撃や共謀のリスクを減らすために、後見人は公的に知られる必要はありません:実際、彼らはお互いの身元を知る必要はありません。これは、2つの方法で実現することができます。まず、保護者のアドレスを直接チェーン上に保存するのではなく、アドレスリストのハッシュをチェーン上に保存し、ウォレットのオーナーはリカバリ時に全リストを公開すればよい。第二に、各保護者はその特定の回復のためだけに使用する新しい単一目的のアドレスを決定論的に生成するよう求められることがある。これらの技術的な保護を補完するために、様々な社会的サークルから多様な後見人を選ぶことをお勧めします(理想的には1人の組織的後見人を含む)。これらの推奨事項を一緒に使えば、後見人が同時に攻撃されたり共謀することは極めて難しくなります。
あなたが死んだり、永久に動けなくなった場合、後見人が自分たちのことを公表することは社会的に合意された標準的なプロトコルであり、その場合、彼らはお互いを見つけ、あなたの資金を回収することができるのです。
ソーシャル・リカバリー・ウォレットは "暗号の価値 "を裏切るものではなく、むしろ表現するものだ
ソーシャルリカバリーなど、何らかの形でマルチシグを利用する提案に対するよくある反応として、このソリューションは「人を信頼する」ことに戻るので、ブロックチェーンや暗号通貨業界の価値観に対する裏切りであるという考え方があるようです。一見するとそう思う気持ちもわかりますが、私はこの批判は暗号のあるべき姿に対する根本的な誤解から生じていると主張したいのです。
私にとっては、暗号のゴールは決して信用の必要性をすべて取り除くことではありません。むしろ暗号の目標は、暗号や経済の構成要素に人々がアクセスできるようにすることで、誰を信頼するかという選択肢を増やし、さらに、より制約の多い信頼の形を構築できるようにすることです。このように考えると、マルチシグとソーシャル・リカバリーはこの原則を完璧に表現している。各参加者は取引の受け入れや拒否の能力に対してある程度の影響力を持つが、誰も一方的に資金を動かすことはできない。このように、より複雑なロジックによって、資金を一方的にコントロールする人物や鍵が1つしかない場合よりも、はるかに安全なセットアップが可能になるのです。
このように、人間のインプットは慎重に扱われるべきものであり、かといって無闇に捨ててはいけないという基本的な考え方は、人間の脳の長所と短所をうまく利用しているため、強力である。人間の脳は、パスワードを覚えたり、紙の財布を追跡したりするのにはかなり不向きだが、他人との関係を把握するのにはASICのようなものである。この効果は、技術力の低いユーザーにはさらに強く現れます。財布やパスワードには苦労するかもしれませんが、「全員を巻き込まないように7人を選ぶ」といった社会的タスクには、同じように長けているのです。もし、人間の入力から少なくともいくつかの情報を抽出することができれば、その入力が攻撃や搾取のベクトルになることはありません。7人の保護者がいるウォレットが危険にさらされるには、7人の保護者のうち4人が何らかの方法でお互いを発見し、誰にも所有者に知られることなく資金を盗むことに合意する必要があります。
ソーシャル・リカバリーはどのように盗難から身を守るのですか?
ソーシャル・リカバリーでは、ウォレットを紛失するリスクには対処しています。しかし、署名キーが盗まれるリスクはまだあります。誰かがあなたのコンピュータにハッキングしたり、すでにログインしているあなたの背後に忍び寄り頭を殴ったり、あるいはユーザーインターフェースの不具合を利用して、あなたが署名するつもりのない取引に署名するようにだましたりします。
このような問題に対処するために、vaultを追加してソーシャルリカバリーを拡張することができます。すべてのsocial recovery walletsには、自動的に生成される保管庫を付属させることができます。資産は保管庫のアドレスに送るだけで保管庫に移動できますが、保管庫から移動できるのは1週間の遅延が発生したときだけです。この間、署名鍵(ひいては後見人)は取引をキャンセルすることができる。必要であれば、保管庫は、いくつかの限定された金融操作(例えば、ホワイトリストされたトークン間のユニスワップ取引)を遅延なく行えるようにプログラムすることも可能です。
既存のsocial recovery wallets
現在、ソーシャルリカバリーを実装しているウォレットは、ArgentウォレットとLoopringウォレットの2大ウォレットがあります。
https://vitalik.ca/general/2021/01/11/recovery.html
Argentウォレットは、現在使われている「スマートコントラクトウォレット」の中で、最初のメジャーなものであり、現在も最も人気のあるものである。Argentウォレットには、ガーディアンを追加・削除できるインターフェースがある。
https://vitalik.ca/general/2021/01/11/recovery.html
ArgentとLoopringは、個人的に「リレイヤー」を実行することでこの問題を回避している。リレイヤーは、ユーザーから提出されたオフチェーンのデジタル署名付き「メッセージ」をリッスンし、これらのメッセージをトランザクションでラップしてチェーンにパブリッシュするのだ。しかし、長期的に見ると、これは良くない解決策だ。中央集権の余分なポイントが追加されるからだ。もしリレーヤーがダウンし、ユーザーがどうしてもトランザクションを送信する必要がある場合は、いつでも自分のEOAから送信すればよいのだが、それでも集中化と不都合との間の新しいトレードオフが導入されていることになる。この問題を解決し、中央集権化せずに利便性を得ようとする取り組みがあり、大きく分けて、一般的な分散型中継ネットワークを作るか、Ethereumのプロトコル自体を修正してコントラクトから取引を開始できるようにするか、という2つがある。しかし、どちらも取引手数料を解決するものではなく、むしろスマートコントラクトが本質的に複雑であるため、問題を悪化させることになります。
幸いなことに、私たちは第3の解決策に目を向けることで、これらの問題の両方を同時に解決することができます。つまり、エコシステムをOptimisticrollupやZKrollupなどのレイヤー2プロトコルに移行させるのです。OptimisticrollupとZKrollupは、どちらもアカウントの抽象化を組み込んで設計することができ、中継器の必要性を回避することができます。既存のウォレット開発者はすでにrollupを検討していますが、最終的にrollupに全面的に移行することはエコシステム全体の課題です。
エコシステム全体でのrollupへの大規模な移行は、Ethereumエコシステムの以前の過ちを覆し、ユーザーの資金を保護する上でマルチシグとスマートコントラクトウォレットにもっと中心的な役割を与える良い機会です。しかし、そのためにはウォレットのセキュリティが課題であること、そして私たちはその課題に対応するために必要な努力をほとんどしてこなかったことを、より広く認識する必要があります。マルチシグとソーシャルリカバリーが物語の終わりである必要はなく、もっとうまく機能するデザインがあるかもしれません。しかし、rollupに移行し、これらのrollupがスマートコントラクトウォレットを一流の市民として扱うことを確認するという単純な改革は、それを実現するための重要なステップとなります。
この記事が気に入ったらサポートをしてみませんか?