DAppsを開発してみての感想

システム開発事業部の町田です、最近はライフログ系のアプリでご飯の写真をとってカロリーなどを計算することにはまってます、いろいろを数字に治すとちょっと現実味が増します、塩分とか、、、
話が変わり、最近は非中央集権
というワードに惹かれて、DAppsついて学んでいます。
DAppsとは、Decenterized Applicationsの略で非中央集権のアプリを意味します。
実際には完全に非中央集権でなくともイーサリアムのスマートコントラクトを用いたアプリケーションを指すことが多いです。
具体的な開発方法はこのブログで公開されているEthereumを動かすシリーズが参考になります?
スマートコントラクトの特徴
スマートコントラクトの特徴は、取引の記録とデータがイーサリアムに書き込まれることです。イーサリアム上に有るデータは、どこからでも参照可能であるため取引の透明性を保つことができます、また、イーサリアムに書き込まれることでデータの可用性と完全性が担保されます。
DApps開発で悩みどころ
まず第一に開発方法に関するドキュメントが少ないことです、僕はCryptoZombiesから始めて、Ethereumを動かすシリーズなどを読みながら進みました。
その次に実際に開発する際に悩むところが、以下の四点です。
拡張性
コントラクト自体もイーサリアムに書き込まれます。イーサリアムに書き込まれたコントラクトはデータ同様、改竄は実質できず、残り続けます。そのため新しいバージョンのコントラクトが出てもアップデートを強制できません。パブリッシュする際は十分な設計とテストが必要になります。
即時実行性
データの完全性を保証するために記録する処理に時間がかかります、それをカバーするフロントエンドが必要になります。
手数料
基本的には処理を実行する人が手数料を担保し、処理の複雑さと書き込まれるデータの大きさによって決定されます。従量課金制のクラウドサービスと同じです、たくさんマシンパワーを使ったら、大きなデータを保存したら、その分料金がかかります。大きなデータは手数料がかかるのでストレージサービスに保存してパスを保存するのが一般的です。Dropboxなどでも良いですがそういったものを使うとDecenterizedとは言えないため、IPFSやSwarmなどの分散ファイルシステムを使用します。
法律関連
イーサリアムは仮想通貨としても取り扱われており、インセンティブが発生するDAppsは賭博法などの法律に悩まされます。法律に強い人いたら話したいです。
DAppsを作ろう
スマートコントラクトはトークンのやり取りがなければ、ストレージ付きの関数を実行できるクラウドサービスのような感じです。上記で上げた物と開発言語の癖に慣れればすんなり開発を行えると思います。DAppsはまだまだ黎明期で、続々とサービスが公開されています。まずは実際に公開されている物を触ってみてください、以下にリンクを置いておきます。
steemit – ブログサービス、いいねなどによってインセンティブが得られる。
CryptoKitties – 猫を育成するゲーム、猫を売ったり買ったりもできる。
DigitalArtChain – 画像データをトークン化することで価値をもたせるサービス
OpenSea – ERC721トークンを扱うプラットフォームサービス、一覧を見れたり買ったり売ったりできる