$30 off During Our Annual Pro Sale. View Details »

N Suite 技術よもやま話

bc/web3@loft
July 03, 2023
78

N Suite 技術よもやま話

bc/web3@loft

July 03, 2023
Tweet

Transcript

  1. © 2023 double jump.tokyo inc. All Rights Reserved
    N Suite 技術よもやま話
    2023/06/21
    TOKYO BLOCKCHAIN TECH MEETUP

    View Slide

  2. © 2023 double jump.tokyo inc. All Rights Reserved
    Re-building the future of gaming
    with blockchain technology!

    View Slide

  3. © 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

    View Slide

  4. Confidential. © 2022 double jump.tokyo inc. All Rights Reserved
    N Suite の概要

    4

    企業がWeb3ビジネスを行うために必要な ウォレット機能を備えた

    Web3ビジネス・ソフトウェア(SaaS) 


    View Slide

  5. Confidential. © 2022 double jump.tokyo inc. All Rights Reserved
    N Suite の活用シーン

    5

    Web3ビジネスの様々なシーンで使用できる

    暗号資産の保有・送金
 NFTの発行・運用
 NFTの保有・送信

    DeFiの
    使用

    スマートコントラクトの
    デプロイ・メソッド実行

    dAppsへの

    アクセス


    View Slide

  6. Confidential. © 2022 double jump.tokyo inc. All Rights Reserved
    企業向けウォレットで考慮すべきポイント

    6

    ウォレットの利用状況を適切に管理・
    把握するために、効果的かつ効率的
    なワークフローの整備が必要。 

    社員が自由にウォレットを使えてしまう
    と、仮想通貨/トークンの紛失や盗難の
    リスク管理が必要。

    内部統制のオペレーション整備 

    紛失や盗難のリスク管理 

    ?

    View Slide

  7. Confidential. © 2022 double jump.tokyo inc. All Rights Reserved
    N Suite のウォレット機能

    7

    ウォレット
 ワークフローシステム 

    プロジェクトチーム間で秘密鍵を 安全かつ効率的に共有管理可能にするために 

    ワークフローシステムを備えたウォレットを提供 


    View Slide

  8. Confidential. © 2022 double jump.tokyo inc. All Rights Reserved
    AWS 認定ソフトウェア

    8

    AWS ファンデーショナルテクニカルレビュー(FTR)を
    通過し、「AWS 認定ソフトウェア」に。AWS より、シス
    テムのセキュリティ、信頼性、運用上の優秀性など
    の評価を受け、一定の基準をクリア。

    View Slide

  9. 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

    ※マルチシグ非対応 
 ※マルチシグ非対応 

    ※マルチシグ非対応 


    View Slide

  10. 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! 


    View Slide

  11. © 2023 double jump.tokyo inc. All Rights Reserved
    N Suiteの技術の裏側

    View Slide

  12. 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 

    使用者


    View Slide

  13. Confidential. © 2022 double jump.tokyo inc. All Rights Reserved
    N Suite の秘密鍵管理方式

    13

    用途に応じて秘密鍵の管理方法を選択
    クラウド型 ハードウェア・ウォレット
    (AWS KMS)
 (例: Ledger)

    自社管理するクラウド 

    (AWS KMS等)に秘密鍵を保管
    マルチシグ型
    (コントラクトウォレット)

    本日紹介する範囲

    View Slide

  14. クラウド型 ハードウェア・ウォレット
    (AWS KMS)
 (例: Ledger)

    自社管理するクラウド 

    (AWS KMS等)に秘密鍵を保管
    マルチシグ型
    (コントラクトウォレット)


    View Slide

  15. Confidential. © 2022 double jump.tokyo inc. All Rights Reserved
    AWS KMS について

    15

    AWS Key Management Service
    暗号化キー(いわゆる秘密鍵)を作成して、安全に保管するサービス
    作成した秘密鍵は、HSM(Hardware Security Module)に
    保存され、HSMから秘密鍵を取り出せないように堅牢に
    保護されている。
    Ethereumのトランザクションの署名で使われるECDSA
    署名に対応している。
    HSM

    View Slide

  16. 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型
    のウォレットサービスにできる

    View Slide

  17. Confidential. © 2022 double jump.tokyo inc. All Rights Reserved
    N Wallet での署名

    17

    署名
 ブロードキャスト 

    Tx
    Tx
    承認

    申請

    Tx
    Raw Transaction 

    AWS KMS
    秘密鍵
    署名リクエスト 

    署名リクエスト 
 レスポンス with 署名済みTx 

    Tx
    ブロードキャスト 

    Tx

    View Slide

  18. Confidential. © 2022 double jump.tokyo inc. All Rights Reserved
    AWS KMS
    秘密鍵
    AWS KMS で秘密鍵を管理するメリット

    18

    秘密鍵本体を渡さずに共
    有可能
    ※AWSアクセスキー=使用権限

    秘密鍵がクラウドから
    漏洩することがない 

    1
    4
    アクセス遮断

    AWSのアクセスキーで 

    秘密鍵の使用を制御 

    ※退職者が出た場合など

    3
    Logs
    秘密鍵の使用履歴がAWS
    上のログに残る 

    2
    CloudTrail

    View Slide

  19. クラウド型 ハードウェア・ウォレット
    (AWS KMS)
 (例: Ledger)

    自社管理するクラウド 

    (AWS KMS等)に秘密鍵を保管
    マルチシグ型
    (コントラクトウォレット)


    View Slide

  20. 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


    View Slide

  21. 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


    View Slide

  22. Confidential. © 2022 double jump.tokyo inc. All Rights Reserved
    N Suite での使用の流れ

    22

    N Suiteの
    バックグラウンド 

    署名1
    承認
    秘密鍵の
    使用を申請
    承認された操作に署名
    (MAINの秘密鍵を使用)

    Workflow
    Backup
    Main
    署名2&操作実行
    接続

    マルチシグ
    ウォレット

    N Suite のシステムが署名
    (N Suiteの秘密鍵を使用)

    View Slide

  23. 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

    View Slide

  24. 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

    View Slide

  25. © 2023 double jump.tokyo inc. All Rights Reserved
    N Suiteの技術よもやま話

    View Slide

  26. © 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鍵発行はなし

    View Slide

  27. © 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なので罠が多い、、
    ○ 互換の追従も大変

    View Slide

  28. © 2023 double jump.tokyo inc. All Rights Reserved
    Backend
    ● toB SaaSということで、ゲームなどと違いアクセスは定常的
    ○ スパイクはなく、業務時間のアクセスがメイン
    ○ そもそもブロックチェーンにトランザクションを起こす機会は少ない
    ● 全面的にServerlessを採用して開発を開始
    ○ API Gateway + Lambdaの構成
    ○ コンテナよりもできることが限られるが、その分できることに集中できる
    ■ CI/CDに悩む必要がない!
    ● 自前でIndexerも構築し、残高表示も対応
    ● web3の幅広い課題に自前で対応中!

    View Slide

  29. © 2023 double jump.tokyo inc. All Rights Reserved
    まとめ
    ● N Suiteのご紹介
    ● web3特有の技術課題に取り組むだけでなく、web2的な技術に関しても高
    水準な開発環境で進めている
    ● web3は過渡期で複雑なことが多く、それ以外のことはなくべく考えることを
    減らしたい
    ● 2020年4月から開発を重ねてきたN Suiteは十分に実践に耐える状態に
    なっているのでぜひご利用ください!

    View Slide

  30. © 2023 double jump.tokyo inc. All Rights Reserved
    N Suiteを開発するDJTでは
    一緒にプロダクト開発をするエンジニアを
    募集しています!
    We are hiring !

    View Slide

  31. Copyright © 2023 double jump.tokyo Inc. All rights reserved.

    View Slide