DAppsについて
私は現在ブロックチェーン技術について勉強をしており、その中で気になったことを、記事として整理していければと思います。
※ 投機目的ではなく、あくまで純粋に技術を勉強しています。
※ 参考図書: 「ブロックチェーンのしくみと開発がこれ1冊でしっかりわかる教科書」
今回は、DApps(Decentralized Applications: 分散型アプリケーション)について整理していきます。
簡単にいうと、ブロックチェーンを利用したアプリケーションのことです。
主な特徴は以下となります。
- トークンの発行
- アプリ内のさまざまな価値をトークン化し、参加者は貢献に応じてトークン報酬を受け取ることができる
- 中央管理者が存在しない
- ソースコードが公開されている(オープンソース)
- ソースコードを世界中の誰でも閲覧ができ、自由に参加が可能
- プログラミング言語のフレームワーク等、オープンソースで開発されているプロジェクトと同じようなイメージ
- ブロックチェーンを利用し、自律的にアプリケーションが動作する
- 分散型のネットワーク(P2Pネットワーク)を利用しており、データは複数のサーバーに分散保存
トークンについて
DAppsが注目をされているのは、1つ目のトークンを活用することで、アプリケーションの中で貢献をしている人に対し、報酬を渡すことができる仕組みがあるからだと思います。
ここで言うトークンの定義ですが、既存のブロックチェーン(イーサリアム等)の上で新たに作られた仮想通貨のことを指します。
トークンを多く持っていたり、長い期間保有していると、報酬が得られるといった具合です。
現在、DAppsは大部分でイーサリアムを元に開発をされているため、今後の説明はイーサリアムを元にして進めていきます。
イーサリアムのトークン実装については、標準規格が準備されています。ERC20(FT: 代替可能トークン で主に利用)、ERC721(NFT: 非代替トークン で主に利用)といったものです。DAppsの中でポイントのように流通させたり、取引所で扱いやすくする場合には、ERC20の規格でトークンを発行することが多いです。
ERC721(NFT)については、また別途整理したいと思います。
中央管理者が存在しない
中央管理者が存在するアプリケーションとは、例えば、Twitterなどが挙げられます。基本的にTwitterが保持しているデータ等は、Twitterが中央のデータベースで管理をしています。
しかし、DAppsだと、ブロックチェーン上にデータを保持しており、そのデータを削除したりすることもできないようになっています。
ソースコードが公開されている
イーサリアムで開発されたDAppsは、イーサリアムのブロックチェーン上にソースコードを保存しています。ブロックチェーンの情報はオープンとなっているため、ソースコードについても閲覧が可能です。
ソースコード以外にもアプリ内に関係するデータをブロックチェーンに保存します。ただし、大量のデータをブロックチェーンに保存、処理することは難しいため、別途、分散保存をするデータストレージ(IPFSやSwarm)を活用します。容量が大きいデータに関して、既存のアプリケーションで使われているようなデータベースに保存されることもあります。
自律的に動作するアプリ
アプリケーションを自律的に動作させるためには、予め、動作の規約を定めておく必要があります。
身近な自律的に動作するアプリの一つとして、自動販売機があります。
(例)「お金を投入→購入可能なドリンクのボタンが光る→ボタンを押下→対象のドリンクを1つ渡す」
このように自律的に動作するプログラムについて、ブロックチェーン上に配置されたものを「スマートコントラクト」と呼びます。
Discussion