Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Web3.0到来前夜のログイン認証

 Web3.0到来前夜のログイン認証

Web3.0の世界が目指すログイン認証について、JSを使った実装方法、普及中のサービスについての紹介を含め、ブロックチェーンの発展とともに語りたい。

E3a7ce9ebda79866155665413fd311e5?s=128

Toshiya

July 17, 2021
Tweet

Transcript

  1. Web3.0到来前夜のログイン認証 Toshiya Matsumoto

  2. 自己紹介: 松本年矢(@toshiboy86) - バックエンド・フロントエンドのWebエンジニアとして活動していた が、2018年にStartbahn株式会社にブロックチェーン開発メンバーと して参加 - Ethereum Blockchainを使ったDAppsのPoC、開発、ローンチ、運用 を経験

    - API、フロントエンドのSDK開発など - 日本の伝統芸能、特に歌舞伎が好き toshibowie86@gmail.com
  3. スライドの目的と流れ 目的 分散化の流れの中で、個人によるアカウント管理、JSを使った認証方法が普及している 様子を紹介 流れ 1. 前提となるWeb3.0やブロックチェーンについて高速で紹介 2. 認証ロジックの紹介 3.

    jsで動くウォレット・サービス(npm)の紹介 4. 認証を実際に体験
  4. Web3.0とは - Webの歴史 - Web1.0: データを読むことができる (簡単なホームページなど ) - Web2.0:

    データを読み書きできる (SNS) - Web2.0の問題点 - 単一障害点による不正アクセスのリスク
 - 特定の企業によるユーザのプライバシー情報の一元管理
 - Web3.0の登場 : デジタル世界の民主化 - 管理主体が介在することなく、自分自身が自らのデジタル IDを保有・管理 - 分散的なサービス運用による単一障害点の回避 resource: https://www.creativevillage.ne.jp/69756, https://lastrust.io/2020/06/05/whatis-did-web3/
  5. Web3.0の推進者: Blockchain 分散型ネットワークを構成する複数のコンピューターに、暗号技術を組み合わせ、取引情報などのデータを同期して 記録する手法 - コンセンサス
 - 一部のコンピューターで取引データを改ざんしても、他のコンピューターとの多数決によって正しい取引データが選ばれるた め、記録の改ざんや不正取引を防げる -

    ハッシュ
 - ブロックと呼ばれるデータの単位を生成し、時系列に沿ってチェーンのようにつないでいくことによりデー タベースとなる - ピア・トゥー・ピア(P2P:Peer to Peer)
 - 公開鍵暗号などの暗号化技術
 resource: https://www.coindeskjapan.com/keywords/blockchain/ “「分散型コンセンサス」と呼ばれるもので、ネットワーク上の信頼されていない多くの参加者が一貫性と信頼を確立する能力の ことです” by マーク・アンドリーセン(Webブラウザ NCSA MosaicやNetscape Navigatorの開発者)
  6. - ヴィタリック・ブテリン氏等によって開発されたプラットフォームの名称 - 暗号通貨はEther(イーサ) - Proof of Workによりマイニングによる通貨発行とセキュリティの担保 - Bitcoinに次ぐ総資産

    特徴 スマートコントラクト - Ethereum Blockchain上にプログラムをデプロイすることで、設定した要件を自動的に実行する - eg. アリスがボブに100Ether送ったとすると、その内5%の5Etherを松本にも送る - eg. Startbahnでは、アート作品の証明書とその所有者をプログラム上で紐付ける dApps 構築のプラットフォーム - 分散型アプリケーション(英 : Decentralized Applications、略称: dApps )を構築するための開発環境を提供するプラットフォーム - 企業や政府、銀行などの中央管理者がいなくても稼働するアプリケーション - 前四半期に約1.5兆ドルの取引を決済しており、これは Visaの決済量の50%に相当 Ethereum(イーサリアム) Blockchain resource: https://bitflyer.com/ja-jp/ethereum
  7. 分散型アプリケーション(Dapps): NFT NFT(Non Fungible Token) - 2020年に空前の大ブームとなる - デジタルアートと所有者の関係性を明 確にすると期待

    - 技術: Ethereum blockchainのスマート コントラクト上でトークンと呼ばれるID を生成し、ユーザIDと作品情報などを マッピングする https://opensea.io/ https://rarible.com/ https://nbatopshot.com/ 初ツイートのNFTが
 約3億1640万円)で
 落札された
  8. DeFi(Decentralized Finance) - 世界中の誰もが、銀行や証券会社を使わずに、簡単にダウンロードできる仮想通貨Walletを使って、ブロック チェーンベースの資産を貸し借りしたり、送ったり、取引したりすることができます。 https://uniswap.org/ https://compound.finance/ 基本性質 - パーミッションレス:

    民族、性別、年齢、資産、政治的立場などに関係なく、世界中の誰にでも平等にサービス を提供することができる - 透明性: いつでもどこでも誰でも監査可能である 分散型アプリケーション(Dapps): DeFi Resource: https://note.com/yas_crypto/n/n273b80d781b3
  9. DAppsと既存Appの大きな違い 個人がアカウント(秘密鍵やパスワード)を管理して、個人がアプリケーションと直接 やりとりを行い、所有権の証明を行う

  10. Ethereumで所有者を証明するためのID - EOA(Externally Owned Account) - 個人のID - 20bytesの16進数: 例:

    0x1aa76a48dda5f106a96704359212237609e0b9c8 - 元になる秘密鍵は256bitesの16進数: 例: f8f8a2f43c8376ccb0871305060d7b27b0554d2cc72bccf41b2705608452f315 - 仮想通貨(Ether)やNFTとの紐付きも全てEOA単位で行われる - 絶対に秘密鍵は渡してはダメ https://etherscan.io/
  11. EOAは署名関数と組み合わせることで、メッセージへの署名と復元を利用して、所有権 を第三者に証明できる EOAの秘密鍵を利用した署名と所有権の証明 secp256k1の楕円曲線暗号を利用 https://gaiax-blockchain.com/elliptic-curve-cryptography

  12. コードを使った実例 アカウントの所有者 (f) 署名関数(メッセージ, 秘密鍵) = 署名 検証者 (f) 復元関数(メッセージ,

    署名) = EOA
  13. Javascript Libraryの紹介 Name Weekly Downloads Last publish URL ethereumjs-util 558,668

    3 months ago https://www.npmjs.com/package/ethereumjs-util ethers 252,887 9 hours ago https://www.npmjs.com/package/ethers web3 262,579 2 days ago https://www.npmjs.com/package/web3 NPM 情報
  14. コードを使った実例 Sandbox参照: ethersを使用 https://codesandbox.io/s/misty-leftpad-x8snx?file=/src/in dex.ts

  15. 従来型(web2.0)認証フロー への応用 Resource: https://www.toptal.com/ethereum/one-click-login-flows-a-metamask-tutorial

  16. パスワードをDBに保存する必要がなくなっ た

  17. パスワード支配からの 卒業

  18. と言いたいところだが、 個人での秘密鍵管理はリス ク高いし、リテラシも要求さ れる

  19. web上でEOA管理を楽にしてくれるサービス達 Name Login Method Private Key Storage Private Key Available

    at npm Weekly Downloads npm Last publish Telegram user Twitter user U R L Torus Oauth providers Nodes in p2p network Browser (Torus domain iframe) 12,763 17 days ago 305 8649 https://w ww.npmj s.com/pa ckage/@ toruslabs /torus-em bed (Email or phone number) & password AWS(HSMs, KMS, Incognito) Browser (Fortmatic domain iframe) 18,396 a year ago 865 4360 https://www. npmjs.com/ package/fort matic Email & password HSM HSM 1,453 2 months ago - 10.1K https://www. npmjs.com/ package/bits ki Email & password N/A Browser (Portis domain iframe) 18,800 5 days ago 812 3333 https://www. npmjs.com/ package/@ portis/web3 27,July,2021
  20. Torusの事例: Oauth2.0認証 https://docs.tor.us/key-infrastructure/role-of-torus-nodes/overview EOA Privat-key session storage シンガポールのス タートアップ GoogleなどのOauth

    認証とEOAを紐付け
  21. Torusの実装とデモ https://docs.tor.us/wallet/api-reference/installation

  22. 実際にDemo - https://opensea.io/ メッセージ、シグネチャ、Nonce確認 Startbahn(スタートバーン)では、このようなLoginの実装やNFTの発行など、ブロックチェーンの知名度が 上がるかなり早い段階からプロダクトをローンチして運用しているので、興味ある方は ↓↓ https://startbahn.jp/

  23. まとめ - Web3.0、ブロックチェーンを使ったアプリケーション(Dapps)などの台頭により、アカ ウントを自身で管理する流れがある。それを用いて、サービス提供者が鍵を保存す る必要のない認証方法が使われ始めている。 - アカウントの個人管理は大きなリスクも伴うため、中央集権的だがWeb2.0で一般的 となったOauthとEthereumの秘密鍵を紐付けるハイブリット型のサービスが出てき ている(そういった意味でのweb3.0前夜) -

    完全にIDを分散管理するプロジェクト(DID(Decentralized Identifier))も出てきているので引 き続き注目
  24. リソース 「Web3.0は何を変える?Webの歴史から振り返る」 ; https://www.creativevillage.ne.jp/69756 「Web3.0とDIDとは」: https://lastrust.io/2020/06/05/whatis-did-web3/ 「ブロックチェーン(blockchain)の基礎知識」: https://www.coindeskjapan.com/keywords/blockchain/ 「イーサリアム(Ethereum)とは?」: https://bitflyer.com/ja-jp/ethereum

    「ethereumbook」: https://github.com/ethereumbook/ethereumbook 「One-click Login with Blockchain: A MetaMask Tutorial」: https://www.toptal.com/ethereum/one-click-login-flows-a-metamask-tutorial 「TORUS documentation Overview」: https://docs.tor.us/key-infrastructure/role-of-torus-nodes/overview 「TORUS documentation Installation: https://docs.tor.us/wallet/api-reference/installation
  25. ご静聴ありがとうございました