見出し画像

プログラミング超初心者がDAPPを開発してみた

こんにちは。
Increate Co., LtdのKohei (@increate_kohei)です。

先日こんなツイートをしました。

New Messageに入力した文章がCurrent Messageに反映されるだけです。

が、これはスマートコントラクトを利用してブロックチェーン上で実装されたプログラムなのです。つまりはDAPP(Decentralized Application)なのですが、その特徴はコチラ。

分散型 - 一個人やグループがコントロールできないオープンなパブリック分散型プラットフォームであるEthereum上でDappsを動作させる。
決定論的 - 実行される環境に関係なく同じ機能を果たす
チューリングコンプリート - 必要なリソースがあれば、どんなアクションでも実行できる。
隔離 - アプリはEthereum Virtual Machineと呼ばれる仮想環境で実行されるため、スマートコントラクトにバグがあってもブロックチェーンネットワークの正常な機能に支障をきたさない。

ethereum.org

ベトナムでの事業を考える合間をぬって、ブロックチェーンについて学んでいます。身銭をきってDeFiへの投資も行いつつ色々調べていく中で、この領域に大きな可能性を感じ始めています。

そんな中、自分でも簡単なDAPP(ブロックチェーン上のスマートコントラクトを活用したアプリケーション)を開発してみたいと思っていたら、ちょうど良いチュートリアルを発見しました。

このチュートリアルを使ってDAPPを開発してみたので、ることで、DAPPどのようなものなのか、何が出来るのかについて、非常に理解が深まったので紹介したいと思います。

使ったチュートリアル

今回やってみたチュートリアルはWeb3Universityで提供されているものになります。Alchemyというブロックチェーン開発プラットフォームを提供している企業が、これからブロックチェーン開発を学習する人向けに作ったサイトです。

なので、このチュートリアルで開発するDAPPもAlchemyを使って開発します。

英語ではありますが、ステップ毎にとても丁寧に説明されているので、プログラミング知識がそれほどなくても大丈夫です。

チュートリアルは、以下の3つから構成されています。

1.スマートコントラクトをイーサリアムのテストネットワーク上にデプロイする
2.デプロイしたスマートコントラクトと通信してみる
3.デプロイしたスマートコントラクトと通信するためのフロントエンドを開発する

途中で躓いたらDiscordで質問できます。もしくは私に聞いてもらっても構いません。(回答は保証できませんが・・・)

わかったこと

実際にデプロイしたスマートコントラクトがこちらです。テストネット上ではありますが、Etherscanで自分のコントラクトが見れたときは感動しますね!


Contractタブからスマートコントラクトのソースコードを確認することができます。

他のあらゆるDeFi、DAPPもスマートコントラクトなので同様にソースコードが見れます。なので本来的には、コードを見て信頼できるかを確認した上で取引を行う必要があります。悪意ある開発者であれば自分に有利なコードを仕込んでいる可能性もあるわけです。

しかし、実際には私のようにコードが読めない人間もいるので、そのためにコードの監査サービスなるものがあったりします。きちんとした監査サービスから認証を受けていれば、信頼して問題なさそうということになります。


一方、Alchemy上ではこんな感じでデプロイしたスマートコントラクトに関する情報を確認することができます。

ComposerというイーサリアムのAPIに簡単にリクエストを送信するツールもあります。


まとめ

いかがでしたでしょうか。今回このチュートリアルに従ってDAPPを開発するのに計20時間くらいかかりました。

DAPP開発の基本はこれでわかったので、後はスマートコントラクトにもっと複雑なロジックを組み込みさえすれば、多くユースケースが考えられそうです。

まだNFTやDeFi、ゲームなど実験的な用途で使われることが多いDAPPですが、近い将来には個人間決済など他の用途にも利用が広がるのではないでしょうか。


語れる相手募集してます

Increate ではベトナムにおけるフィンテック事業の立ち上げを計画しています。興味を持っていただけた是非Twitter DMでご連絡ください。

こんな方とお話したいです。
・ ベトナムでのビジネスに感心がある方、関わっている方
・ フィンテックに感心がある方、関わっている方
・ 事業アイデアの壁打ちをしていただける方

Twitter:@Kohei026327771
Website: https://increate.biz/

こんなレポートも書いています。


この記事が気に入ったらサポートをしてみませんか?