Share
Embed
Transcript
31 slides
-
© 2023 double jump.tokyo inc. All Rights Reserved N Suite
技術よもやま話 2023/06/21 TOKYO BLOCKCHAIN TECH MEETUP -
© 2023 double jump.tokyo inc. All Rights Reserved Re-building the
future of gaming with blockchain technology! -
© 2023 double jump.tokyo inc. All Rights Reserved Copyright ©
2023 double jump.tokyo Inc. All rights reserved. double jump.tokyo は BCG(※) 開発・運用・支援を主軸とし web3事業の様々なノウハウを有する ブロックチェーン専業開発会社です。 会社名:double jump.tokyo株式会社 所在地:東京都新宿区西新宿 4-34-7 代表者:代表取締役 CEO 上野 広伸、代表取締役 CTO 満足 亮 事業内容:ブロックチェーン技術を用いたゲーム、 NFTおよびアセットの開発・運営・販売等 加盟団体:一般社団法人 日本ブロックチェーン協会(上野は理事を務める) 一般社団法人 コンピューターエンターテインメント協会 ※BCG=ブロックチェーンゲーム COMPANY -
Confidential. © 2022 double jump.tokyo inc. All Rights Reserved N
Suite の概要 4 企業がWeb3ビジネスを行うために必要な ウォレット機能を備えた Web3ビジネス・ソフトウェア(SaaS) -
Confidential. © 2022 double jump.tokyo inc. All Rights Reserved N
Suite の活用シーン 5 Web3ビジネスの様々なシーンで使用できる 暗号資産の保有・送金 NFTの発行・運用 NFTの保有・送信 DeFiの 使用 スマートコントラクトの デプロイ・メソッド実行 dAppsへの アクセス -
Confidential. © 2022 double jump.tokyo inc. All Rights Reserved 企業向けウォレットで考慮すべきポイント
6 ウォレットの利用状況を適切に管理・ 把握するために、効果的かつ効率的 なワークフローの整備が必要。 社員が自由にウォレットを使えてしまう と、仮想通貨/トークンの紛失や盗難の リスク管理が必要。 内部統制のオペレーション整備 紛失や盗難のリスク管理 ? -
Confidential. © 2022 double jump.tokyo inc. All Rights Reserved N
Suite のウォレット機能 7 ウォレット ワークフローシステム プロジェクトチーム間で秘密鍵を 安全かつ効率的に共有管理可能にするために ワークフローシステムを備えたウォレットを提供 -
Confidential. © 2022 double jump.tokyo inc. All Rights Reserved AWS
認定ソフトウェア 8 AWS ファンデーショナルテクニカルレビュー(FTR)を 通過し、「AWS 認定ソフトウェア」に。AWS より、シス テムのセキュリティ、信頼性、運用上の優秀性など の評価を受け、一定の基準をクリア。 -
Confidential. © 2022 double jump.tokyo inc. All Rights Reserved N
Suite の対応ネットワーク 9 Optimism Arbitrum One Nitro Goerli Rollup Optimism Goerli Fuji Testnet BSC Testnet Avalanche BSC Ethereum Goerli Testnet Polygon Mumbai Testnet Astar Shibuya Shiden Shibuya ※その他ネットワークは順次拡大予定 Klyatn Baobab Testnet Oasys Oasys Testnet ※マルチシグ非対応 ※マルチシグ非対応 ※マルチシグ非対応 -
Confidential. © 2022 double jump.tokyo inc. All Rights Reserved まだまだあるN
Suiteの機能! 10 • 一括送金機能(200件) • NFT一括Mint機能 • NFT Metadata Preview • EVMカスタムネットワーク • EIP-6963: Multi Injected Provider Discovery対応 ← New! -
Confidential. © 2022 double jump.tokyo inc. All Rights Reserved N
Suite のワークフロー機能の仕組み 12 Create Sign Broadcast Tx Tx Tx Raw Transaction Signed Transaction 通常のウォレットのTx実行の流れ Sign Broadcast Tx Tx Approve Tx Request Tx N Suite のTx実行の流れ 申請者 承認者 実行者 Raw Transaction Signed Transaction 使用者 -
Confidential. © 2022 double jump.tokyo inc. All Rights Reserved N
Suite の秘密鍵管理方式 13 用途に応じて秘密鍵の管理方法を選択 クラウド型 ハードウェア・ウォレット (AWS KMS) (例: Ledger) 自社管理するクラウド (AWS KMS等)に秘密鍵を保管 マルチシグ型 (コントラクトウォレット) 本日紹介する範囲 -
クラウド型 ハードウェア・ウォレット (AWS KMS) (例: Ledger) 自社管理するクラウド (AWS KMS等)に秘密鍵を保管
マルチシグ型 (コントラクトウォレット) -
Confidential. © 2022 double jump.tokyo inc. All Rights Reserved AWS
KMS について 15 AWS Key Management Service 暗号化キー(いわゆる秘密鍵)を作成して、安全に保管するサービス 作成した秘密鍵は、HSM(Hardware Security Module)に 保存され、HSMから秘密鍵を取り出せないように堅牢に 保護されている。 Ethereumのトランザクションの署名で使われるECDSA 署名に対応している。 HSM -
Confidential. © 2022 double jump.tokyo inc. All Rights Reserved AWS
KMS と N Wallet の接続 16 AWS KMS IAM IAM Policy IAM User 秘密鍵 権限の割り当て 付与 登録 ユーザ企業のAWSアカウント AWS KMSの操作権限を割り当てたIAM Policy を作成。 IAM User に、作成したIAM Policyを付与。 AWS KMS のCMK (Customer Master Key) に暗号化キー(秘密 鍵)を作成。 1 2 3 IAM User のクレデンシャル (Access Key, Secret Access Key) を N Walletに登録。 AWS KMSに作成した秘密鍵のアドレス読み込みと署名が可能に なる。 4 秘密鍵はユーザ企業が保持している形になるため、Self-Custory型 のウォレットサービスにできる -
Confidential. © 2022 double jump.tokyo inc. All Rights Reserved N
Wallet での署名 17 署名 ブロードキャスト Tx Tx 承認 申請 Tx Raw Transaction AWS KMS 秘密鍵 署名リクエスト 署名リクエスト レスポンス with 署名済みTx Tx ブロードキャスト Tx -
Confidential. © 2022 double jump.tokyo inc. All Rights Reserved AWS
KMS 秘密鍵 AWS KMS で秘密鍵を管理するメリット 18 秘密鍵本体を渡さずに共 有可能 ※AWSアクセスキー=使用権限 秘密鍵がクラウドから 漏洩することがない 1 4 アクセス遮断 AWSのアクセスキーで 秘密鍵の使用を制御 ※退職者が出た場合など 3 Logs 秘密鍵の使用履歴がAWS 上のログに残る 2 CloudTrail -
クラウド型 ハードウェア・ウォレット (AWS KMS) (例: Ledger) 自社管理するクラウド (AWS KMS等)に秘密鍵を保管
マルチシグ型 (コントラクトウォレット) -
Confidential. © 2022 double jump.tokyo inc. All Rights Reserved N
Suite のマルチシグウォレット 20 一般的なマルチシグ N Suite のマルチシグ 2 of 3 の例 Signer Signer Signer 0x3aB2…080F (コントラクトウォレット) 2 of 3 の例 0x3aB2…080F (コントラクトウォレット) Signer Group Signer Group Signer Group -
Confidential. © 2022 double jump.tokyo inc. All Rights Reserved Signer
Group の役割 21 0x3aB2…080F Signer Group Signer Group Signer Group Main N Suite Backup ユーザ企業が管理 ユーザ企業が管理 N Suiteが管理 通常のTx実行時に署名で使用。 署名の一つをN Suiteが肩代わり。 他のSigner Groupを変更する 時に使用。 2 of 3 -
Confidential. © 2022 double jump.tokyo inc. All Rights Reserved N
Suite での使用の流れ 22 N Suiteの バックグラウンド 署名1 承認 秘密鍵の 使用を申請 承認された操作に署名 (MAINの秘密鍵を使用) Workflow Backup Main 署名2&操作実行 接続 マルチシグ ウォレット N Suite のシステムが署名 (N Suiteの秘密鍵を使用) -
Confidential. © 2022 double jump.tokyo inc. All Rights Reserved 技術スタック
23 分類 関連技術 バックエンド 言語:Go フロントエンド 言語:TypeScript, React.js, Next.js Chrome Extension 言語:TypeScript, React.js, Next.js インフラ AWS, Vercel, Sendgrid, Auth0 ブロックチェーン Solidity, ethers.js, Hardhat, Infura -
Confidential. © 2022 double jump.tokyo inc. All Rights Reserved N
Suite 構成図 24 User Extention https N Board https 認証 Private https API request Main API Blockchain Proxy N Suite AWS Customer’s cloud Custom signer sign request sign request KMS protocol batch https https Blockchain node など Static file https https (with api key) メールデータ https API request / tx sync blocks BlastAPI Alchemy EventBridge -
© 2023 double jump.tokyo inc. All Rights Reserved 開発裏話 •
N Suite開発の着手は2020年4月。 ◦ NFTブームにより日本企業のNFTビジネスの参入の可能性が見えてきた • 大きなキッカケはAWS KMS 非対称鍵の実装とsecp256k1の採用 ◦ 2019/11/25 「Digital signing with the new asymmetric keys feature of AWS KMS」 ◦ N Suite開発前にある程度のフィージビリティ確認は済ませ、プロダクションで KMSを導入開始していた ▪ そもそもDJT社内では鍵管理が常に課題であった • 昨年から新規にN Suite外のEVM鍵発行はなし -
© 2023 double jump.tokyo inc. All Rights Reserved Frontend •
前年にVercel/Next.jsを採用したゲームプロジェクトを開発していた ◦ toBダッシュボードということで負荷の心配も少なく一択で採用 ◦ CI/CDフローをVercelが用意してくれるため開発者体験が非常に良い ▪ CI/CDに悩む必要がない! ◦ 当時から「イケてる」感のあるプロダクトではあったが、今年はレビュー機能や キャッシュ機構などさらに進化している • Crypto系のプロジェクトは当時Next.jsの採用が多く、Crypto系のライブ ラリがReact対応されていることが多かった • N WalletはMetaMask互換のChromeExtentionなので罠が多い、、 ◦ 互換の追従も大変 -
© 2023 double jump.tokyo inc. All Rights Reserved Backend •
toB SaaSということで、ゲームなどと違いアクセスは定常的 ◦ スパイクはなく、業務時間のアクセスがメイン ◦ そもそもブロックチェーンにトランザクションを起こす機会は少ない • 全面的にServerlessを採用して開発を開始 ◦ API Gateway + Lambdaの構成 ◦ コンテナよりもできることが限られるが、その分できることに集中できる ▪ CI/CDに悩む必要がない! • 自前でIndexerも構築し、残高表示も対応 • web3の幅広い課題に自前で対応中! -
© 2023 double jump.tokyo inc. All Rights Reserved まとめ •
N Suiteのご紹介 • web3特有の技術課題に取り組むだけでなく、web2的な技術に関しても高 水準な開発環境で進めている • web3は過渡期で複雑なことが多く、それ以外のことはなくべく考えることを 減らしたい • 2020年4月から開発を重ねてきたN Suiteは十分に実践に耐える状態に なっているのでぜひご利用ください! -
© 2023 double jump.tokyo inc. All Rights Reserved N Suiteを開発するDJTでは
一緒にプロダクト開発をするエンジニアを 募集しています! We are hiring !