- パスワード認証を置き換えるウォレットを使ったサインイン方法、Sign in with Ethereum (SIWE)
- 仕様はEIP4361で検討されている
-
良い点
- WebサイトやAPIアクセスなどのUX
- 例えばお金を払った分だけAPIを叩ける、NFTを持ってる人だけAPIを叩ける、みたいな作りをすることができそう
- ID/PASSWORDの漏洩などによるセキュリティリスクがない
-
気になる点
- 既存のID/PASSWORD認証と比べて匿名性は向上していないと思う
- セッションを使うのはしょうがないけど、ウォレットの公開鍵を渡してログインすること自体がちょっと気になる
- 例えばmetamaskで署名した後、metamaskのアカウントを切り替えるとバックエンド側から見ると同一人物だということがわかる
- ユーザーがウォレットを使ってサインインする
- サーバーへアクセスしてランダムなnance値を取得する
- siweの署名と、秘密鍵で暗号化したデジタル署名を送信する
- サーバーは受信した公開鍵で、署名を複合して、検証する
npm inpm run devhttps://docs.login.xyz/
Sign-In with Ethereum Example - wagmi
https://eips.ethereum.org/EIPS/eip-4361
