Web3Authから考察するマスアダプションの鍵を考察
今日のほとんどのdApps(分散型アプリケーション)は、Metamask等の外部ウォレットを利用した認証を必要とします。
暗号資産やNFTの領域に慣れ親しんだユーザーであれば、不自由なくこなすことができるフローですが、これから参入するマス層にとってはウォレットの概念やそれをdAppsに接続する仕組みが非常に理解し難く慣れない作業であることは間違いありません。
本記事では、ウォレットの作成や管理、認証周りの課題の整理と、それに対してアプローチするプロダクトを紹介します。
ウォレットの作成と管理の課題
まず、暗号資産のウォレット周りにはいくつかの課題が含まれます。
- ウォレットの管理にリテラシーが求められる
- シードフレーズ(秘密鍵)の紛失によって資産を失う
ウォレットの管理にはユーザー自身の資産を保護する観点から最低限のリテラシーが求められます。基礎的な観点から言えば、そもそもウォレットという単語そのものが根本的な誤解を招く言葉遣いだったりします。
より正確には各トークンがコントラクト内部に持っているストレージに各アカウントの残高や保有しているNFTのトークンID等が、それらを保有しているアカウントのアドレスと対になって記録されており、外部から参照することで「任意のアカウントが各トークンをどれくらい保有しているのか確認できるインターフェースを備えたアプリケーション」がウォレットです。
つまり、ウォレットというのはユーザー視点ではなくトークン視点(コントラクトアカウント)ですので、ウォレット側に残高を確認したいトークンを追加しなければウォレットの残高として確認することができません。
この概念は、初手から一般的なお財布としての「ウォレット」とは異なっていますし、「〜のトークンが表示されないです。詐欺ですか?」という声が生まれる一つの原因になっていると考えます。
※トークンはイーサリアムやMATICのようなFT(代替性トークン)と、NFTと呼ばれる非代替性トークンの両方を指しています。
ここまでに登場してきた「アカウント」に聞き馴染みがないかもしれないですが、イーサリアムには以下の2種類のアカウントタイプが存在します。
- 外部所有アカウント (EOA)
- コントラクトアカウント
※ビットコインはアカウント型ではなくUTXO型を採用していますが、本記事では触れるに留めます。
外部所有アカウントは秘密鍵によって管理されるアカウントで、コントラクトアカウントはデプロイされたスマートコントラクトによるアカウントであるため秘密鍵を持ちません。そして、現状多くのユーザーは外部所有アカウントを利用しているため、秘密鍵が全ての資産に対する操作権限を持ち、その管理はユーザーに委ねられています。
秘密鍵管理に伴うリスク
Metamask等のウォレットを開設する際に、BIP39ワードリストと呼ばれる2,048の英単語から取られた12〜24単語から生成されるシードフレーズが表示されたことを見たことある方は多いと思います。このシードフレーズは、アルゴリズムによって秘密鍵に可読性を持たせて表現させています。
ウォレットを作成したユーザーは、このシードフレーズをメモに残したり厳重に保管することで、ウォレットアプリケーションが紛失しても新しいウォレットにシードフレーズを入力させることで資産を引き続き利用できるようになっています。
シードフレーズについてはこちらの記事がおすすめです。
こう言った、一つのシードフレーズで秘密鍵を管理するウォレットの仕組みを「決定性ウォレット」と呼びます。
決定性ウォレットの性質により、新しいウォレットで自由に資産を利用できる互換性を獲得できる一方、シードフレーズ(秘密鍵)の紛失・流出は、ユーザーの資産の紛失・流出を意味するためさまざまなリスクから安全に保護する必要があります。
ただ、これを一般ユーザーが初手から理解してリスク管理できるかというと、必ずしもそうではないと思います。個人のアカウントであれば、意識次第によっては安全に利用できるかもしれませんが、複数人で共有するシチュエーションのある企業では、リスク管理が難しくなります。
そこで、最近では秘密鍵管理を不要にすることでウォレット作成と管理を容易にするマスアダプションを推し進めるプロダクトが続々と話題になってきています。
今回は、以上のような文脈上で登場したプロダクト「Web3auth」や「Magic」を紹介しつつ、マスアダプションにおける秘密鍵管理の重要性についてまとめていきます。
Web3Authは公開鍵/秘密鍵ペアをユーザーが直接操作する必要を排除
ラウンド: シリーズA
調達額: $13M
設立:2018年4月3日(Torus Labs Private Limited)
web3authは、GoogleやTwitter等のソーシャルアカウントでログインすることで、ユーザーが公開鍵/秘密鍵ペアを直接管理しなくて済むような認証インフラストラクチャーです。
web3authを導入したアプリケーションでは、TwitterやFacebook, Googleアカウントなど、ユーザーが利用したいログインフローを自由に選択することができます。
上記で触れたように、web3authではSNSアカウントを使ったウォレットの作成・管理が可能です。
本来、サービスを提供する主体が、ユーザーのウォレットの秘密鍵を保持することはカストディ規制に該当するため実現不可能なのですが、web3authでは秘密鍵をtKeyという閾値暗号方式で生成された管理キーとシェアに分割することで、秘密鍵を直接知ることができないような仕組みを実現しています。
tKEYは、Threshold Keyの略称であり、web3authが公開するtKeySDKでは、Shamir Secret Sharingを利用してユーザーの秘密鍵のシェアを生成します。
※Shamir Secret Sharing
(k, n)閾値法を具体的に実装する方法がシャミア(Shamir)の秘密分散法です。
以上のような仕組みを採用することで、これまでカストディのライセンスを持っている事業者にしかできなかった「ユーザーのウォレット管理を代行しUXを改善する」という取り組みがあらゆるサービス主体にとってやり易くなります。
DIDを活用することでパスワードレスログインを実現する「Magic」
設立:2018年4月3日(Torus Labs Private Limited)
ラウンド:シリーズA
調達額: $27M
Magicも、web3authと同様にウォレット開発と管理、接続部分のユーザーフローを簡単にすることで、より多くの人に対して安全で管理不要な認証インフラストラクチャーを提供しています。
一方、web3authと違い、Magicはユーザー名とパスワードの代わりに公開鍵と秘密鍵のペアを使ってユーザーを認証しています。分散化された識別子(Decentralized Identifiers (DIDs) v1.0)が秘密鍵によって署名され、ユーザーの身元を確認するための有効な認証トークンを発行します。
これによってユーザーにパスワードを求めることなくリエストの真正性を証明しログインを可能にしています。
また、Magicでは「Seamless On-Ramp Payment」といって、Stripeを組み合わせることでMagic Wallet内で直接暗号資産を購入できる機能も提供しています。
ここまで、閾値暗号方式で生成された管理キーとシェアに分割することで、企業によるウォレットの管理代行的なソリューションの実現や、SNSアカウントを用いたウォレット作成を可能にするweb3auth。秘密鍵によって署名された分散化識別子が発行するユーザーの身元を確認する認証トークンによってパスワードレスなログインプロセスを実現するMagicを見てきました。
暗号資産及びNFT市場のボリュームを広げていくためには、より多くの人々を本領域に引き込んでいく必要があります。これを実現する上で課題となるウォレットの作成や管理の問題の解決を目指すプロダクトは、今後も増えていくと考えられますので要チェックです。
Plus Web3は「Web3領域に特化したキャリア支援サービス」
Plus Web3では、Web3で働きたい人材と、個人に合わせた優良企業をマッチングする求人サービスを行っています。
- Web3で働くことも考えている…
- Web3のインターン先はどこがいいか分からない…
- どんな知識やスキルがあれば良いのか分からない…
このような悩みを抱える人は、一度「無料キャリア相談」にお越しください。あなたにマッチした優良企業をご紹介いたします。
参考
MonoBundleによる【イーサリアムのアカウントについて】の記事はこちら
web3authによる【Web3Auth raises $13M Series A to drive mass adoption on Web3 applications and wallets via simple, non-custodial authentication infrastructure】の記事はこちら
高校数学の美しい物語による【(k,n)しきい値法とシャミアの秘密分散法】の記事はこちら
Magicによる【Security】はこちら
Magicによる【Magic Raises $27M to Future-Proof Authentication】の記事はこちら
W3Cによる【Decentralized Identifiers (DIDs) v1.0】の記事はこちら