Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
CryptoKittiesを技術的に理解する/Technical understanding ...
Search
Ara
April 20, 2018
Technology
480
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CryptoKittiesを技術的に理解する/Technical understanding of CryptoKitties
Ara
April 20, 2018
More Decks by Ara
See All by Ara
NFT Baseball Game | 第2回ゆるNFTオンラインハッカソン!
avcdsld
0
340
Value of NFTs on Flow / NFTの価値を高める試み on Flow
avcdsld
0
200
Flow Dapps Dev / Flow ブロックチェーン Dapps 開発
avcdsld
0
200
実録 Medalla Testnet Validator / Real Story of Medalla Testnet Validator
avcdsld
0
160
LINE Blockchain について/LINE Blockchain Overview
avcdsld
0
150
VR 空間で NFT を扱う方法を考える/VR x NFT
avcdsld
0
270
NFT Standards vol.1 様々なブロックチェーンのNFTを調査・比較してみる/NFT Standards vol.1
avcdsld
0
250
ブラウザで利用できる最近のEthereumウォレットの概要とインテグレーション方法/Recent Ethereum wallets and how to integrate
avcdsld
0
150
Ethereumにおける最近のメタトランザクションの動向/Ethereum MetaTransaction Trends
avcdsld
0
830
Other Decks in Technology
See All in Technology
メルカリにおけるAI時代の高速プロトタイピング基盤「Arca」
ryotarai
18
14k
Codex概要
ymiya55
0
230
認知負荷を吸収し、プロダクトをまたぐPR Preview基盤の設計事例
taiki45
2
570
私の推しは「聞いてから進む」AIです -AI-DLCに一人でアプリを作らせた話
yama3133
1
160
キャリアLT今日までそして明日から
kentapapa
1
140
BedrockとLambdaで作る リアルタイム進行型推理ゲーム
kawametho
0
160
プラットフォームを「作る」、 チームに「入り込む」
sansantech
PRO
0
530
AIは爆速なのに、私が詰まっていた話 ― 音声入力と鳴くマスコットでボトルネックを削る
yama3133
0
320
20260929_AmazonGuardDutyの検出通知メールにAWS DevOpsAgentの調査結果を追加する
yhana
1
410
あなたの知らないAmazon VPC Route Server/Amazon VPC Route Server you don't know about
masakiokuda
2
210
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
180
並行性の問題を防げ!実践トランザクション入門
occhi
0
180
Featured
See All Featured
Accessibility Awareness
sabderemane
1
230
A Tale of Four Properties
chriscoyier
163
24k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
350
Typedesign – Prime Four
hannesfritz
42
3.2k
30 Presentation Tips
portentint
PRO
1
410
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
420
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
240
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
510
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
490
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Building the Perfect Custom Keyboard
takai
2
890
Transcript
CryptoKitties を 技術的に理解する 2018-04-20 avcdsld
とは?
ブリーディング・コレクションできる、かわいい暗号ネコを中心としたゲーム。 それぞれのネコはあなたが 100% 所有し、複製・奪取・破壊できない。
• ネコ1匹=固有のトークンとしてブロックチェーン上に記録 • それぞれ異なるパラメータ(遺伝情報) • ネコ2匹分のトークンを交配して、新しくネコ(トークン)を生成できる • 2017年11月28日 リリース、1週間で5万匹(660万ドル)取引された
実際にやってみた
None
正直、かわいくないのばかり…
None
属性がいろいろある プロフィールが1匹ずつ違う 所有者が決められる名前 親 子供
購入してみる
None
Chrome 拡張の MetaMask で ETH を支払う
Chrome 拡張の MetaMask で ETH を支払う こんな感じで ブラウザ上で動くよ
None
ブリーディングしてみる
None
None
30分後… 生まれた! https://www.cryptokitties.co/kitty/642875
レアな遺伝子を持つネコたち http://xn--o9j473hsypxwkza4937abff.com/virtual-currency/game/cryptokitties-tokucho/
参考:実際にやってみた手順 • 取引所 bitFlyer で ETH 購入(今回は 2000 円相当) •
MetaMask のアドレスに送金 • CryptoKitties のサイトでアカウント作成 (メールアドレスがあればOK) • ネコ購入(約170円×2) • ネコ交配(約500円)
の仕組み
ネコ = ブロックチェーン上に記録されるトークン struct Kitty { uint256 genes; uint64 birthTime;
uint64 cooldownEndBlock; uint32 matronId; uint32 sireId; uint32 siringWithId; uint16 cooldownIndex; uint16 generation; } 遺伝子 生成時刻 次に交配できるブロック 母親の ID 父親の ID 夫の ID(妊娠中に使用) 出産後のクールダウン時間 世代
ネコ = ブロックチェーン上に記録されるトークン Kitty[] kitties; mapping (uint256 => address) public
kittyIndexToOwner; KittyBase.sol ・・・ コード詳細:https://github.com/dapperlabs/cryptokitties-bounty/blob/master/contracts/KittyBase.sol #1 #2 : : #1 #2
ネコの遺伝子 • 各数値の意味や、交配のロジックは非公開 • どの値がどう影響するか、ユーザーによる解析が進んでいる (レアなネコは高値で売れるので、解析にも熱が入る) Kitty #1 の遺伝子 https://cryptokittydex.com/kitties/1
None
Fungible (代替できる) Non-Fungible (代替できない) どのトークン(硬化)でも同じ価値 トークンごとに価値が異なる ネコ = 固有のパラメータを持つトークン
トークンは、ERC721 という仕様に従って作られている contract ERC721 { // Required methods function totalSupply()
public view returns (uint256 total); function balanceOf(address _owner) public view returns (uint256 balance); function ownerOf(uint256 _tokenId) external view returns (address owner); function approve(address _to, uint256 _tokenId) external; function transfer(address _to, uint256 _tokenId) external; function transferFrom(address _from, address _to, uint256 _tokenId) external; // Events event Transfer(address from, address to, uint256 tokenId); event Approval(address owner, address approved, uint256 tokenId); // Optional // function name() public view returns (string name); // function symbol() public view returns (string symbol); // function tokensOfOwner(address _owner) external view returns (uint256[] tokenIds); // function tokenMetadata(uint256 _tokenId, string _preferredTransport) public view returns (string infoUrl); // ERC-165 Compatibility (https://github.com/ethereum/EIPs/issues/165) function supportsInterface(bytes4 _interfaceID) external view returns (bool); } https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md
CryptoKitties のコントラクト一覧 仮想仔猫ゲーム CryptoKitties のコントラクトを読んでみる https://qiita.com/blueplanet/items/fa005a1c9457169a7391 全ソースコード :https://etherscan.io/address/0x06012c8cf97bead5deae237070f9587f8e7a266d#code このコントラクトが最終的に すべてを継承している
CryptoKitties のコントラクト一覧 仮想仔猫ゲーム CryptoKitties のコントラクトを読んでみる https://qiita.com/blueplanet/items/fa005a1c9457169a7391 全ソースコード: https://etherscan.io/address/0x06012c8cf97bead5deae237070f9587f8e7a266d#code このコントラクトが最終的に すべてを継承している
利用 利用 ネコの遺伝子 を交配する (コード非公開) 利用 購入オークション 交配オークション
ネコ交配のシーケンス https://zhuanlan.zhihu.com/p/32491728 ユーザー 母親が妊娠中か?クールダウン時間が経ったか? 子の世代数を計算 父遺伝子、母遺伝子、クールダウン時間 遺伝子生成(非オープンソース) 子ネコ情報 パラメータに基づきネコ作成、リストに追加、所有者を設定 母ネコの妊娠状態を解除
出産費用を払う
http://www.rolldice.club/cryptokitties/wkt_creator.php ネコのイラストは自動生成っぽい
イラストを自動生成する技術の例 https://robohash.org/ https://github.com/e1ven/Robohash
なぜバズったか? • 1匹として同じネコはいない、この世界観がたまらない(Non-Fungible) • ネコの属性がいちいちカッコいい • 集めるのが楽しい • 自分だけのネコ、という優越感 •
レアな猫を作れるかも!?という期待 • ネコを売れば実際に儲かる・・・こんなにお手軽に!?
CryptoKitties の課題 • ネコのイラスト、遺伝子の解釈ロジックは、ブロックチェーン上に無い → “ERC721Metadata” という使われていないコントラクトがある. もともとこれらもブロックチェーンで管理しようとしていたけど、
コストがかかり過ぎるから断念した? • ある意味、詐欺っぽい(確率が制御できるパチンコみたいな…)
CryptoKitties の課題 アプリサーバー コントラクト = = ブロックチェーン ユーザー 中央集権
CryptoKitties の課題 アプリサーバー コントラクト = = ブロックチェーン ユーザー 中央集権 これがここにあっていいの…?
従来サービスと一体何が違うのか 現状のブロックチェーンでは 画像まですべて保存しづらい
参考情報 • 全ソースコード(Etherscan より) https://etherscan.io/address/0x06012c8cf97bead5deae237070f9587f8e7a266d#code • CryptoKitties のソースコード解説 - Qiita
https://qiita.com/yamamoto_ban/items/389b520659d4856e31bb • 仮想仔猫ゲーム CryptoKitties のコントラクトを読んでみる - Qiita https://qiita.com/blueplanet/items/fa005a1c9457169a7391 • 以太坊猫(CryptoKitties)猫交配交易用例 时序图 - 知乎 ※中国語だけど、シーケンスが一番良くまとまっている https://zhuanlan.zhihu.com/p/32491728 • CryptoKittiesで使われているNFT(Non-Fungible Token)なERC721 Tokenとは? https://tomokazu-kozuma.com/what-is-non-fungible-token-erc-721-token-used-in-cryptokitties/ • ERC721とは? – ブロックチェーン総合研究所【BRI】 – Medium https://medium.com/blockchain-research-institute/erc721%E3%81%A8%E3%81%AF-38e80ea2b328 • Cryptokittiesの新規性とEthereumへの今後の影響を考える(ビットコイナー反省会) - YouTube https://www.youtube.com/watch?v=zkJeWHfHuso • Kitty Sales https://kittysales.herokuapp.com/ • CryptoKittiesの全体の5%以下しかいない特長を持ったレア猫を一覧にして紹介! http://xn--o9j473hsypxwkza4937abff.com/virtual-currency/game/cryptokitties-tokucho/
CryptoZombies の紹介 https://cryptozombies.io/jp/
None
None
DApps の開発プラットフォーム • Ethereum ― 「ワールドコンピュータ」を目指す ◦ 言語:Solidity, Viper ◦
独自トークンを作りやすい • NEO ― 中国版 Ethereum ◦ 言語:C#, Java, Python, JavaScript ◦ 様々な言語が使える • LISK ― アメリカ版 Ethereum ◦ 言語:JavaScript ◦ 処理をサイドチェーンで行うためスケーラビリティが高い 現状、Ethereum 一択か…?
Ethereum の開発言語 • Solidity ◦ 現在のデファクトスタンダード ◦ JavaScript ライク •
Viper ◦ セキュリティまわりの実装を簡便化した言語 ◦ Python ライク これから学ぶなら Viper?… それとも、まずは Solidity?