Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
NFT Baseball Game 2022.5.7 第2回ゆるNFTオンラインハッカソン! Yushi Ara
Slide 2
Slide 2 text
そもそものきっかけ
Slide 3
Slide 3 text
そもそものきっかけ せっかくこういう NFT あるから これ使って遊びたい!野球盤とかイイじゃん! ランダム要素つかいたい!
Slide 4
Slide 4 text
課題意識 ブロックチェーンで乱数つくるのはたいへん ↓ 自前オラクル?・・・❌ 運営依存 オラクル・サービス?・・・❌ コスト Commit-Reveal 方式?・・・❌ UX
Slide 5
Slide 5 text
アイデア 未来のブロックハッシュを乱数として使ったらどう? 0x253.. 0x123.. ???
Slide 6
Slide 6 text
アイデア 未来のブロックハッシュを乱数として使ったらどう? 0x253.. 0x123.. ??? ここでトリガー 参照予定
Slide 7
Slide 7 text
アイデア 未来のブロックハッシュを乱数として使ったらどう? 0x253.. 0x953.. 0x123.. ??? 次(以降)のトランザクションで結果が決まる 参照
Slide 8
Slide 8 text
NFT Baseball の概要 ・・・ 1 2 3 4 5 持ってる NFT が バッターになる
Slide 9
Slide 9 text
NFT Baseball の概要 2 3 4 5 プレイ!
Slide 10
Slide 10 text
NFT Baseball の概要 ・・・ 3 4 5 プレイ! この時点で1つ前 の結果が決まる 結果は次のいずれか ● シングル ● ツーベース ● スリーベース ● ホームラン ● アウト
Slide 11
Slide 11 text
NFT Baseball の概要 ・・・ 4 5 ランナーは 前に押し出される プレイ!
Slide 12
Slide 12 text
NFT Baseball の概要 ・・・ 5 ホームインすると スコアの数だけ NFT をもらえる! プレイ!
Slide 13
Slide 13 text
スコアを取るともらえる NFT
Slide 14
Slide 14 text
おもしろさ、よいところ ● 既存 NFT の活用 ● 出塁状態で 期待値が変化 ● ゲームの ライフログ ● 運営に依存しない 乱数
Slide 15
Slide 15 text
デモ https://nftbb-3pt283r74-0xys.vercel.app Mumbai テストネットで試してね
Slide 16
Slide 16 text
展望 ● バッターの NFT によって ヒット確率を変える ● バッターの NFT を ホワイトリスト 化 ● もらえる NFT の メタデータを拡張 (ゲーム結果を入れる、フルオンチェーンにする) ● NFT のコミュニティごとに戦うのもおもしろそう
Slide 17
Slide 17 text
補足
Slide 18
Slide 18 text
ソースコード github.com/avcdsld/baseball-board-game ● コントラクト(Solidity, Hardhat) ● フロントエンド(Next.js, Vercel) Mumbai テストネットにデプロイ済み
Slide 19
Slide 19 text
1つ先のブロックハッシュを乱数として使うコード https://github.com/avcdsld/baseball-board-game/blob/main/packages/contracts/contracts/BaseballBoardGame.sol#L65
Slide 20
Slide 20 text
出塁の状態はビットで表現 https://github.com/avcdsld/baseball-board-game/blob/main/packages/contracts/contracts/BaseballBoardGame.sol#L113-L139
Slide 21
Slide 21 text
QA ● ブロックハッシュを使ってる時点で、未来だろうがそうでなか ろうが、乱数の質は変わらないのでは? → けっこう違いそう。現在ブロックのハッシュを使う場合、 マイナーがブロックに入れる機会を伺えてしまう。 (ダメなら入れない、いけるときだけ入れる) 未来のブロックのハッシュを使えば、機会を選べない。 つまり、マイナーが結果を操作できる可能性が低くなる。
Slide 22
Slide 22 text
QA ● 次の人がプレイしなかったらどうなる? → 結果を確定させるだけの、誰でも呼べる関数も用意してる