Menu

Category

Archive

logo


CryptoKittiesで猫を買ってみる

2018-01-09 22:00:00 +0900
  • このエントリーをはてなブックマークに追加

この記事では、自分と同じように暗号通貨以外のブロックチェーンの応用例として、まずはCryptoKittiesを触ってみたいという方へ向けて、とりあえず最初の1匹目の猫を買うところまでを書きます。

CryptoKittiesについて

CryptoKittiesは、2017年11月28日にAxiom Zen(ZenHubを作っている会社)によりリリースされました。Ethereumのネットワーク上で動くブロックチェーン関連技術を使った初めてのゲームアプリケーションです。一時は、Ethereumネットワークトランザクションの11%を占めたアプリです。

ゲームの内容としては凄くシンプルで、しょーもないと言えばしょーもないです。Ethereumのネットワーク上で、猫を売ったり買ったり、時には交配をさせながら、猫を集めて可愛がることができます。1000万円以上で猫が売れたこともあったらしいです。。。

暗号通貨以外にもブロックチェーンの応用例を探している中、興味深かったので触ってみました。

はじめての猫

まず、CryptoKittiesで遊ぶには、PC環境にて(スマホだけだと現状NG)ChromeかFirefoxが必要です。

その上で、MetaMaskというデジタルウォレットのプラグインを使います。このプラグインは、下記参考URLから飛んでブラウザに追加すればカンタンに登録できます。登録時に生成されるシードワードは、パスワードを忘れてしまった際の復元に必要なのでどこか安全に保存しておきましょう。普通のウェブサービスのような、「パスワードをお忘れの方はこちら」というメールアドレスからパスワードを再発行する機能はありません。

デジタルウォレットを導入したら、さらに、仮想通貨であるEthereum(ETH)も用意しなければなりません。CryptoKittiesは、Ethereumのメインネットで動いているので、本物のEthereumが必要です。アメリカ在住の方は、MetaMask上でETHを購入できるようですが、日本だと現状できないので bitFlyer等の取引所で入手する必要があります。そして、MetaMaskのアドレスへ購入したETHを送金します。bitFlyerだとメニューの、「入出金」→「ETH ご送付」から送金することができます。しばらく経つと、bitFlyer側でイーサ送付のチェックをし、MetaMaskに反映されます。

これで、基本的な準備は完了です。ここからやっと、CryptoKittiesのサイトで操作をして、猫を買います。

CryptoKitties上での操作はそこまで難しくありません。「Marketplace」から適当に猫を選んで買うだけです。自分は右上のソートして1番安いものを買いました。

購入ボタンを押すと、MetaMaskのポップアップが表示されるので、Gas Limit と Gas Price を入力して「Submit」すれば完了です。右上のパルスアイコンから購入したトランザクションの確認もできます。実際に、Ethereumのネットワークに自分のトランザクションが送信されたことが確認でき楽しいです。

実際のポップアップはこんな感じです。

Gasの決め方

上のセクションでサラッと、「Gas Limit と Gas Price を入力して」と書いたのですが、自分はここで少し詰まってしまいました。

そもそも、Gas とはトランザクションを送信したり実行する際に発生する手数料のことです。Gasは、マイナーに払われるものであり、CryptoKittiesの運営元や他のサービスプロバイダーに払われるものではありません。

そして、次に Gas Limit と Gas Price の説明です。ETHの単位ですが、weiという単位があります。これは、etherの最小単位です。1 ether = 10^18 wei です。「Gas Limit」は通常「gwei」という単位で測られます。「gwei」は、恐らくギガweiということで、1 gwei = 10^9 wei です。「Gas Limit」と「Gas Price」の掛け算が、最大で払うことを許容する wei になります。「Gas Limit」は、その名の通りで払っても良い Gas の最大値を指定します。gas も単位であり、最高で払って良い gas 数と 1 gas あたりの値段の2つを指定するということですね。現状、通常のトランザクションは「Gas Limit」を 21,000 に設定することが多いようです。「Gas Limit」は、最大値を指定するので全ての gas が使われるとは限らず、使われなかったものは戻ってきます。

なぜ、etherという単位が既にあるのに、手数料のために新しい単位を導入するのでしょう?これは、同じトランザクション、計算、リクエストは同じコストである必要があるということからのようです。ether は、volatile な存在なので、常に同じコストであることを保証できません。そのため、gas という異なる単位を導入し、gas と ether の交換比率(Gas Price)を指定します。この交換比率を ether の価値の上下によって、動かすことにより、同じコストであることを達成するらしいです。(正直ココらへんがあまりイメージが付いていない。「What is the difference between ether and gas?」を参考にしていただければ。)

Gasの理解ができたところで、値段を決めるわけですが、マイナーはGasの値段が高いトランザクションから処理していきます。その目安ですが、ETH GAS Stationというサイトに、「Safe Low」「Standard」「Fast」という3つのレベルで基準が示されています。私が見た際には、順に 21gwei, 45gwei, 75gweiとなっていました。

私の場合、GAS Stationの「Standard」レベルにGasを積んでもトランザクションが「Fail」となってしまい、猫が買えませんでした。

このグラフを見るに、今年の1月に Gas Priceが上がっていますね。恐らく、この影響によりGas Priceをそれなりの値段にしないとトランザクションが成功しなかったのだと思います。

終わりに

正直、わざわざお金を払ってイーサを手に入れたり、モバイルでは遊べなかったりと、それなりに暗号通貨関連の知識がある人じゃないと遊べないですが、ブロックチェーン関連技術を使った黎明期のアプリケーションとしては、なかなか面白いんじゃないでしょうか。

CryptoKittiesの実装や運用を参考にしながら、そのうち自分も何か作ってみたい次第。

参考

CryptoKitties
CryptoKitties Sales
MetaMask
ETH Gas Station
What is Gas?
What is the difference between ether and gas?