blog

DeNAのエンジニアが考えていることや、担当しているサービスについて情報発信しています

2021.05.18 技術記事

ブロックチェーンゲームPICKFIVE(ピックファイブ)試験提供の舞台裏

by Fumitoshi Ogata

#pickfive #software-architecture #blockchain #nft

技術開発室の緒方です。

5月の連休の試合で、川崎ブレイブサンダースよりPICKFIVEというブロックチェーンゲームがローンチされました。試験提供という位置付けでありながら、多くのファンの方に楽しんでいただけたことは非常に嬉しかったです。また、テレビ東京系の経済ニュース「ワールドビジネスサテライト」のNFT特集としても紹介いただいたりと、非常に注目を集めました。今回の取り組みについて、どのようにブロックチェーン技術を利用しているのか、技術的な側面から書いてみたいと思います。

ブロックチェーン技術の選択肢

ブロックチェーンテクノロジーでプロダクトを作る場合、技術としては現在、様々な選択肢があります。技術開発室では日頃Ethereum, HyperLedger, Corda, Enjin, EOS, Zilliqa, Kadena, Flowなど様々なブロックチェーン技術のリサーチや、付随するSDKの開発を行っており、社内の様々な部門に対してブロックチェーン活用の提案や、技術提供を行っています。

ユースケースは様々で、今回のPICKFIVEのようにエンタメとしての活用方法や、AIなどに活用されるデータの蓄積を目的としているものまで様々なものがありますが、各プロダクトでどのテクノロジーを選択するのかについては、次の観点を明確にしておく必要があります。

  1. ブロックチェーンのどの観点で利用するのか?(トレーサビリティ、トレードetc..)
  2. 設計するシステムとブロックチェーンの連携をどのように行うか?

一言にブロックチェーンと言っても、データベースの仕組みであるが故にその用途や特徴は様々です。最初になぜ、ブロックチェーンを利用するかを明確にしておく必要があります。また、どこまでをスマートコントラクトで作るのかという部分も非常に重要です。スマートコントラクトを書けるエンジニアがまだ多くないこともありますが、他にも権利上の問題や、コード監査にかかる費用なども考えなければならないため、全てをコントラクトで書くのではなく、必要に応じて、サーバーサイドエンジニアと役割分担を行い柔軟に開発を進めることも重要なポイントです。

LINE Blockchain

PICKFIVEでは、LINE Blockchainを利用しています。技術開発室として、昨年のLINE Blockchain CBT(クローズドベータテスト)の段階から参加させていただき、様々な技術検証を行ってきました。色々な観点がありますが、もっとも大きな決め手となったのは、ユーザーにおけるUXの部分です。PICKFIVEでは、仮想通貨ウォレットなどに精通していない人がメインのターゲットユーザーとなっています。多くのブロックチェーン関連のアプリケーションの場合、Walletのインストールがユーザーにとって非常に大きなハードルとなっているという現状があります。多くの場合、カストディの規制などもあり、ユーザーは秘密鍵を自身で管理する事が求められます。Mnemonicフレーズなどの工夫はされていますが、一般的なSNS認証などに比べると難易度は高いと言えます。Microsoftなどを始め、Decentralized Identityなどの研究もされており次世代の認証の仕組みとして期待されていますが、一般に普及するのはもう少し先になりそうです。そのような中、LINEのログイン機構とLINE BITMAX Walletの連携はPICKFIVEのようなエンタメ利用用途のユースケースにとっては非常にメリットが大きいということが、最終的に導入の決め手となりました。

Pros&Cons

さて、今回PICKFIVEで採用したLINE BlockchainのProsとConsを見ていきたいと思います。

Pros

  1. ユーザーにとって、ウォレットの運用が簡単。
    LINE上のソーシャルグラフも活用できる。
  2. 様々な規格のトークンを簡単に作れる。コントラクトを書く必要がないため、コード監査などが不要である。
  3. ユーザー側で転送にかかるGas代金が不要である

Cons

  1. ウォレット登録は、LINEの会員フローに大きく依存する。
  2. コントラクトが書けないので、カード以外のデータストアについてはDBを別途用意する必要がある。
  3. ブロックチェーン利用の契約や審査が個別に必要となる。

主に、ウォレットの管理が簡単である点や、LINEの既存のソーシャルグラフに対してトークンを送ることができる点は非常にメリットがあると考えます。コントラクトが書けないという点はConsに書きましたが、裏を返すと、セキュリティなどのコード監査などを受ける必要がなくなるという点はProsとなります。ブロックチェーンの場合は、Cross-function Race Conditionsはじめ独自の攻撃が存在するため、コード監査などセキュリティにかかる費用が膨れ上がってしまうデメリットがあります。その点、ある程度雛型化されているサービスの場合は、安心して利用できるというメリットが大きいと思います。コントラクトを書くことはできないものの、LINE Blockchainの場合は、カードに関する情報を貯めるMeta領域は確保されているため、カードの固有値などの情報はMetaの中に保管することができます。

Fungeble / NonFungeble

LINE Blockchainでは、カードをFungeble / NonFungebleの2種類で作成することが可能です。PICKFIVEの中では初期、どちらのトークンで、カードを作るか非常に悩みました。ゲームセンターで遊べるカードゲームなどもおおよそ、この2パターンが存在しており、ゲームの設計によって選択されます。私が普段、子供と一緒にゲームセンターで遊んでいるポケモンのゲーム筐体があるのですが、そのゲームでは、カードごとに成長する要素はなく、ゲームの進行度によって成長するのは主人公のレベルだけに限られています。こういったケースではFungebleを使うべきですが、PICKFIVEでは、将来的にはカード固有のレベリングを使う可能性もあるため、NonFungebleを選定しました。法的な観点や、将来的なマーケットへの展開を考えた場合は、カード1枚1枚がまったく異なるというNonFungelbeを選択するケースが多いかもしれませんが、一方でカードの個々の個体管理が複雑になってしまうので、シンプルにFungebleで実装するようなアイデアも有用ではないかと思っています。

ERC1155 / ERC998

PICKFIVEでは、ユーザーが新規登録をした際に、スターターパックを配布します。ソーシャルゲームなどではごく一般的なカードパックの仕組みですが、ブロックチェーンの世界では、ERC1155という仕組みを利用することで実現しています。ERCというのは、Ethrerumの基盤技術の中の規格ではありますが、多くのブロックチェーンでこれらをベースにした仕組みが採用されています。ERC1155を使うことで、1度のトランザクションでグループとして送ることや、複数の相手にトークンを送ることができるようになります。 LINE Blockchainの面白いところにこのERC1155やERC998という規格同等のものが用意されており、トークンのバリエーションのを豊富さに重きを置いて開発された事が伺えます。ERC998はPICKFIVEでは利用していませんが、アバターやレゴブロックのように組み合わせで作品を作り、親子関係を持たせたまま、送受信できる仕組みであるため、現在NFTで流行しているアートなどの文脈で活用ができるのではないかと期待しています。

Conclusion

私がブロックチェーンに関する研究開発を始めた頃、ERC721は活用されておらず、ERC20(ライクなもの)を利用することが一つの方法でした。当時も、ゲーム部門で利用できるようなエンタメコンテンツの提案を行いたいと思っていましたが、トレーディングカードライクなものは作れないため、クッキークリッカーのようなサービストークンを活用したゲームしか提案できず、歯痒く思っていたことが記憶に残っています。ERC20を並列で並べたり、CounterPartyやNEMなどを用いて作ろうとしたこともありますが、様々な課題があって実現できませんでした。ウォレットのUX的な問題や、ユーザーが仮想通貨を手に入れるまでのハードルの高さは、エンタメサービスとしてブロックチェーンを利用するケースでは課題となっていますが、PICKFIVEでは既存のSNSログインを利用することで、ユーザーのハードルは下がったと思います。海外のNBATopショットなどのユースケースを見てもそうですが、ユーザーにはブロックチェーンであることを感じさせない事例が今後は増えていくと思われます。ブロックチェーンはDegitalTrueOwnershipと言われるデジタルでありながら、リアルなものと同じ所有権を確立できるという最大の魅力がありますが、それらを体験してもらうためにも、導入のハードルはできる限り低く設定する必要があります。これは過去、モバゲーの「かんたん会員」などの施策のように、まずはユーザーに面白さを体験してもらい、難易度の高い次のステップへ進むような流れと似ていると思います。可能性を感じてくれたユーザーが、様々なブロックチェーンサービスの繋がりの大海原に踏み出せるように、これからもInteroperability(相互運用性)を作り出すサービスを作っていきたいと思います。


この記事を読んで「面白かった」「学びがあった」と思っていただけた方、よろしければ Twitter や facebook、はてなブックマークにてコメントをお願いします!

また DeNA 公式 Twitter アカウント @DeNAxTech では、 Blog記事だけでなく色々な勉強会での登壇資料も発信してます。ぜひフォローして下さい!

最後まで読んでいただき、ありがとうございます!
この記事をシェアしていただける方はこちらからお願いします。

recruit

DeNAでは、失敗を恐れず常に挑戦し続けるエンジニアを募集しています。