DAppsが気になって気になってしょーがないのでプログラマー目線で書いてみた
いろいろ調べてたら書きたくなってきたのでまとめてみます。:D
いままでのアプリケーションは中央集権型だった
DApps(Decentralized Applications)は「分散型アプリケーション」のことです。
これまでの一般的なWebアプリやゲームアプリは、アプリ運営元がサーバを立てて運営を行う中央集権型でした。
中央集権型の場合は運営元=神なワケで、改善・改悪・勝手に料金変えたりと、やろうと思えば何でもできちゃうわけです。
(あんまし無茶するとユーザが離れちゃいますけどね)
特にゲームの場合は影響が顕著で、売上立たないだの何だのでサービスが閉じちゃうと、ユーザがそれまで積み上げてきたものは消え去っちゃう。
頑張ってキャラをLv99にしても、激レアアイテムを手に入れたとしても、そんなモノはサービス終了と共に消滅しちゃうわけです。
だって神がサービス閉じると決めたんだから、そりゃしょーがない。
でも、そんな悩みもDAppsアプリではサヨナラです。
DAppsは何がスゴイのか
DAppsは「分散型アプリケーション」の名のごとく、運営主体が存在しません。
言うなれば、不特定多数の「みんな」によって運営されています。
そこには神の意志も都合も存在せず、みんなの意思が存在するのみ。
・・・と書くと怪しげな感じになっちゃいますが、DAppsは素晴らしい技術によって実現されていまして、技術者の端くれとしてこの仕組みに感銘を受けたのです。
DAppsの仕掛け人は、ビットコインに次いで時価総額第2位の「イーサリアム」という仮想通貨です。
僕は最近まで仮想通貨ってモノを詳しく知らなかったのですが、仮想通貨はただのバーチャルなお金ってわけじゃなく、それぞれ独自の機能が組み込まれています。
イーサリアムは元々DAppsを開発するための基盤(プラットフォーム)として作られた仮想通貨で、スマートコントラクトという仕組みを備えています。
仮想通貨ではありますが、通貨の役割を担うというよりも↑を主目的として開発されました。
スマートコントラクトってなんぞ
スマートコントラクトは、「ブロックチェーン上で、仲介者不要で契約を履行する仕組み」です。
(ってな説明をしている記事が多いですが、僕はぜんぜんピンとこなかったのでプログラマー的に噛み砕いて書きます)
スマートコントラクトは、プログラマー目線で言うと「特殊な機能がいっぱい詰まったオブジェクト」みたいなモノです。
- そのオブジェクトのクラスは、SolidityっていうJavascriptライクな言語でコーディングできます。
- そのオブジェクトに書かれた処理は、タイマーで自動実行することができます。
- そのオブジェクトには、いろんな型の変数を定義することができます。
- 変数を書き換えようとしたときは、不特定多数の人から不正が無いかチェックされます。
- 特定の人しか変数を書き換えられないよう制限することも可能です。
- 書き換えたという履歴がブロックチェーンに刻み込まれ、いつでも見返すことができます。
契約を交わすのに使えるほどセキュア+処理も書けてデータコンテナにもなる。他にも機能てんこ盛り。
こりゃー画期的!!
しかも、このスマートコントラクトは、ブロックチェーンに乗ってます。
=「DBを不特定多数の人が丸ごと持っている」「チェックは不特定多数の人が自動実行する」わけですので、そのブロックチェーンのネットワークが完全に死なない限りサービスが止まることはありません。
そして、運用の手間もかかりません!スゲー!!(開発者目線)
DAppsは各種処理においてこのスマートコントラクトを使うので、管理者不在でも安全にアプリが運用できちゃうワケです。
さて、長くなってきたので今日はこのへんでオシマイです。
次はDAppsの開発について書くか、競合/派生プラットフォームについて書くか考え中。
フリー開発者。
Webサービス・スマホアプリ・ゲームなど作ってます。
新しいもの好き。
アイデアひねり出す人。
【当ブログ以外の活動】
・Qiita
・Follow @Ijoru