EthereumでDAppsGameを開発しよう!!
DAppsとは
DApps(分散型アプリケーション)とは『Decentralized Applications』のことで、日本語に訳すと「分散型アプリケーション」となります。これを言い換えれば『ブロックチェーン技術を用いた非中央集権的なアプリケーション』ということになります。
DApps(分散型アプリケーション)の定義として以下のものが挙げられます。
①アプリケーションは、オープンソースであること。オペレーションは自動であり、中央のコントロール主体を持たないこと。トークン、データ、レコード、などにつき、暗号化されて分散化されたブロックチェーンを利用していること。
②アプリケーションは、オープンに流通可能な、暗号トークンを持っていること。アプリケーションの利用に際してトークンを利用すること。参加者には、そのトークンによってリワード(報酬)が支払われること。
③アプリケーションはマーケットやユーザーからの改善要求によりプロトコルを改善していくこと。この改善は、ユーザーのコンセンサスによること。
DAppsとEthereum
Ethereumには「スマートコントラクト」という機能が備わっていて、送金手段としての仮想通貨という側面だけでなくDApps構築のプラットフォームとしても機能しています。スマートコントラクトはDAppsのように中央主体のないシステムと非常に相性が良いため、実際に数多くのDAppsがEthereum上で構築されています。
DAppsの現状
以下の記事で詳しく説明されています。まだまだ世界に比べると少ないですがじわじわと日本初のDAppsが出てきてるようですね!
開発しよう
・何を作るか
ギャンブルを作ります。ギャンブル等公平性が必要だけど現実世界では本当に公平なのかわからないものほどブロックチェーンと相性がいいです。あと簡易なギャンブルであれば実装が簡単そうだというのも理由の一つです。今はみんなでやるブラックジャックみたいなのを考えています。
ルールとしては、ETHを21にできた人が勝ち。それまでに貯めてきたETHをもらえる。21を超えた場合は42になってまたゲームが始まる。というルールで考えています。ただ問題点があってこのままだと最初にお金を入れてくれた人へのインセンティブがないんですよね。。なのでルールを変える、あるいはゲーム自体を別のものにするかは考え中です。何か良いアイデアがあればコメントください!!!
・どうやって作るか
WebとEthereumの開発が必要になります。WebはPHPのフレームワークであるLaravelを利用して実装していこうと考えています。EthereumはsolidityとういうEthereum上で実行可能な言語で書いていきます。
・必要な手順
1.solidity環境構築 05/02
2.Ethereum環境構築 05/03
3.Laravel環境構築 05/03
4.web側実装 05/04
5.Contract実装 05/05
記事にできるかはともかくとしてこのくらいのスケジュール感で実装したい!GW中に終わらせたいですね~随時手順は記事にしていくんでぜひ見ていってください!