目次
はじめに
前回「エモい」サービスを作っていくという話をしましたが、さっそくブロックチェーンで簡単なサービスを作りました。
せっかくだからブロックチェーンの特徴を活かしたシンプルなものを作りたいなあと思い、掲示板サービスにしました。
まあこのサービスが「エモい」かどうかはわかりませんが、個人的には「エモい」んじゃないかなと思っています笑
CryptoBoardとは
ニックネームとメッセージを投稿するだけのシンプルな掲示板サービスです。
普通の掲示板と違うのは書き込まれたデータは全てEthereum上に格納されるというところです。
コンセプトは「言葉を刻む」
データが改竄出来ないというブロックチェーンの特徴を活かして、永遠に残る掲示板とか面白いんじゃないかと思って作りました。
CryptoBoardのアピールポイント
- データが分散されている
まあ一番はこれですね。
Ethereum自体が分散されているため、全ノードが消滅しない限りデータは消えません。
おそらく人類が絶滅するまで永遠に刻まれます。エモい!
-
検閲されない
これもブロックチェーンの特徴ですが、書き込まれたメッセージは誰だろうが消したり上書きすることが出来ません。
開発者の自分でも出来ないように作っています。
間違って投稿しても絶対削除できないので注意してご利用下さい。 -
DAppsの入門に最適
正直言ってDAppsは初心者へのハードルが高いです。
まずはメッセージを投稿するという簡単な使い方から少しづつ慣れていって頂ければ幸いです。
苦労したところ・課題
-
アーキテクチャやツールが独特
当然ですが、ブロックチェーンは既存のWebやアプリとは全然異なる方式で動いています。
Webエンジニアにも作りやすいようにツールは整ってきてはいますが、最初は独特のアーキテクチャに戸惑うと思います。また、Ethereumアプリの開発にはSolidityというJavascriptライクな言語を使い、ネットワークの接続にはweb3.jsというライブラリを使うんですが、やはり発展途上な部分が多いです。
例えば現時点でコントラクトは構造体の配列を返せないなど、ちょっとした制約でハマることもありました。
今後の進歩に期待。 -
半分散型アプリケーション?
実は分散型アプリケーションと謳ってはいますが、分散されているのは書き込まれたデータだけで、フロント部分(Webサイト)は分散されていません。
これもエモい話になりますが、分散型アプリケーションの最終的な目標は、インフラからアプリまで全て分散されていることです。
ただし現状ではアプリを全て分散するのはコストが高いため、サイトまで分散化されているサービスはほとんどありません。
技術的にはIPFSとかEthereumで現在開発中のSwarmなども出てきているので、いずれ低コストで簡単に分散化出来るようになるかもしれません。 -
手数料が高い高い問題
Ethereumプラットフォームの手数料が読めない。。そして高い。。
手数料の計算方法が結構複雑で、デプロイするコントラクトの質やコード量によっても変わってきますし、発行するトランザクションの内容によっても差が出たりします。
また作り方を失敗すると一回のトランザクションの発行でかなりかかってしまう場合もあるので、手数料も考慮したシステム設計が必要。
必要最低限の処理だけブロックチェーン化するとか、手数料を抑えたプログラムを書くとか、いくつかのテクニックはありますが、やはり抜本的な対応策が欲しいです。(価格が上がりすぎている問題もありますが。。)
はじめてDappsを開発してみた率直な感想
-
面白い反面怖い
まず一度公開したコントラクトはコントロール出来ません。
正確に言うと、コントロールするテクニックは存在しますが、それをやってしまうと分散化の思想から外れてしまうという問題があります。またコントラクトコードは全世界に公開されているので、コントロールできるようなプログラムを書いてしまうとそれを隠すことは出来ません。逆に完全にアンコントローラブルなコントラクトを公開したとして、例えば機密情報などが記録されてしまい、トラブルが発生して国や警察から消せと言われても無理としか言えません。
Webサイト自体は閉じることは可能ですが、データは永遠に残り続けますし、コントラクトによっては別の人間に使用され続けます。正直既存の企業が完全に分散化されたアプリケーションを運営できるイメージが全く湧きません。
管理主体がないシステムは、個人が誰でも「自由」に活動できる反面、「無秩序」になる危険性が有ります。
中央集権と非中央集権のジレンマを感じます。(なのでこの界隈は宗教戦争にも似た思想の衝突が多いです笑)ただブロックチェーンはあくまでひとつの技術なので、もちろん中央集権的な使い方も出来ます。
が、それは個人的にはあんまり魅力を感じません。
単なる既存のシステムのリプレイスではなく、管理者がいない世界で完全に分散化されたエコシステムが構築されるところが見たい。
エモいかどうかが重要です。
-
ベストプラクティスが少なく、手探り感がすごい
まあこれは黎明期なので仕方がない部分です。
少し触ってみた感触で言うと、コントラクトの開発にはWebアプリのような気軽さはありません。
一度デプロイすると更新ができないので。
感覚的にはデバイスなどのハードウェアのプログラミングに近いと思います。
テストがとても重要なので、今後その辺りの知見も溜まってくるでしょう。 -
ユーザインタフェースが複雑
暗号通貨(Ether)を手に入れて、Metamaskをブラウザでインストールして、だとどうしても手順が多く、ほとんどの人にとって敷居が高くなってしまいます。
複雑なものは一般には普及しないと思っているので、これは業界全体の課題ですね。
最後に
Web系やアプリはどう動いているのかなんとなく分かりますが、ブロックチェーンは調べても調べてもわからないくらい奥が深い。
そこが面白い。
ただこれからDAppsが普及していくためには、簡単に使えるアプリがどんどん増えて、徐々に使える人が増えて行く必要があると思っています。
今回リリースしたCryptoBoardで少しでも興味持ってくれる人が増えたら嬉しいです。
それでは。
注意
※本ブログおよびCryptoBoardは決して仮想通貨投資を推奨するためのものではありません。投資に関しては自己責任でご判断願います。
Donation
この技術が少しでも認知され、普及に貢献出来るようにこれからも活動を続けていきます。
Ethereum Address: 0x0998F93A043bbf1FE1832f898306AE62c4f92898