イーサリアム上でイールドファームを作ろう
👋 Yield Farm Project へようこそ!
Yield Farm Projectでは、イーサリアムネットワーク上にスマートコントラクトを実装して、トークンを配布できる独自のWebアプリケーションを構築します。
このプロジェクトでは、具体的に以下の実装します。
- ユーザーのウォレットをあなたのDapp Token Farmに接続する。
- Webアプリケーションを通して、ユーザーがスマートコントラクトとやりとりとりできる機能を実装する。
Solidityでバックエンドを実装し、Reactでフロントエンドを構築します。
プロジェクトを進めるには以下の技術が必要です。
いますべてを理解している必要はありません。 わからないことがあったらインターネットで検索したり、コミュニティで質問しながらプロジェクトを進めていきましょう! 開発初心者の方は、まずETH-DAPPプロジェクトから始めることをお勧めします☺️
🛠 何を構築するのか?
Dapp Token Farmと呼ばれる DeFi Web アプリケーション を構築します。
Dapp Token Farmでは、以下の機能を実装します。
- インターネット上の誰もが投資家となり、あなたのプロジェクトにトークンを預けることができる(流動性の提供)
- このプロジェクトでは、投資可能なトークンとして、米ドルにペッグされた模擬仮想通貨「mDAIトークン」を使用します。
- 投資家は、預けたトークンの量に比例して、あなたのプロジェクトのトークンを獲得できる(Staking)
- このプロジェクトでは、mDAIの投資金額に応じて、オリジナルのトークンであるDappトークンが投資家に還元されます。
- 投資家は自分が投資したトークンを手元に戻せる(Unstaking)
⛓ ブロックチェーンとは何か?
ブロックチェーンとは、互いに通信するコンピュータ(ノード)のピアツーピア・ネットワークです。
参加者全員がネットワークの運営を分担する分散型ネットワークですので、各ネットワークの参加者は、ブロックチェーン上のコードとデータのコピーを維持します。
これらのデータはすべて、「ブロック」と呼ばれる記録の束に含まれており、それらが「連鎖」してブロックチェーンを構成しています。
ネットワーク上のすべてのノードは、コードとデータがいつでも変更可能な中央集権型のアプリケーションとは異なり、このデータが安全で変更不可能であることを保証しています。これがブロックチェーンを強力なものにしているのです ✨
ブロックチェーンはデータの保存を担っているため、根本的にはデータベースです。
そして、互いに会話するコンピュータのネットワークですから、ネットワークとなります。ネットワークとデータベースが一体化したものと考えればよいでしょう。
また、従来のWebアプリケーションとブロックチェーンアプリケーションの根本的な違いとして、アプリケーションは、ユーザーのデータを一切管理しません。ユーザーのデータは、ブロックチェーンによって管理されています。
🥫 スマートコントラクトとは何か?
スマートコントラクトとは、ブロックチェーン上でコントラクト(=契約)を自動的に実行するしくみです。
よくたとえられるのは、自動販売機です。自動販売機には「100円が投下され、ボタンが押されたら、飲み物を落とす」というプログラムが搭載されており、「店員さんがお金を受け取って飲み物を渡す」というプロセスを必要としません。
人の介在を省き、自動的にプログラムが実行される点こそ、スマートコントラクトが、「スマート」と呼ばれる理由です。
実際には、スマートコントラクトのしくみは、イーサリアムネットワーク上のすべてのコンピュータに複製され、処理されるプログラムにより成り立っています。
イーサリアムの汎用性により、そのネットワーク上にアプリケーションを構築できます。
スマートコントラクトのコードはすべてイミュータブル(不変)、つまり変更不可能です。
つまり、スマートコントラクトをブロックチェーンにデプロイすると、コードを変更したり更新できなくなるのです。
これは、コードの信頼性と安全性を確保するための設計上の特徴です。
私はよくスマートコントラクトをWeb上のマイクロサービスにたとえます。ブロックチェーンからデータを読み書きしたり、ビジネスロジックを実行したりするためのインタフェースとして機能するのです。これらはパブリックにアクセス可能で、ブロックチェーンにアクセスできる人なら誰でもそのインタフェースにアクセスできることを意味します。
❓ エラーが出た時の進め方
このプロジェクトは動画を参考にして作られています。なのでエラーが出て詰まってしまったときには参考とした動画を見てもらいたいと思います。
動画URLについては、それぞれのレッスンに対応した時間からスタートするようにURLを設定しており、それぞれのレッスンの最初に貼っています(ただしこのレッスンに関してはわかりやすいようにこの文章の下に貼っています)。
もし動画を参考にしてもエラーが解決しない場合はdiscordで気軽に質問してください!
🖥 このレッスンの参考動画URL
今回のプロジェクトは、Dapp Universityという有名なブロックチェーンのTutorialをベースに作成されています。 興味のある方は、ぜひご覧ください(コンテンツは英語になります): Dapp University Video
📱 dApps とは何か?
dAppsは、分散型アプリケーション(decentralized Application) の略です。
dAppsは、ブロックチェーン上に構築されたスマートコントラクトと、フロントエンドであるユーザーインタフェース(Webサイトなど)を組み合わせたアプリケーションのことを指します。
dAppsは、イーサリアムのプログラミング言語であるSolidityを基盤に構築されています。
イーサリアムでは、スマートコントラクトはオープンAPIのように誰でもアクセスできます。よって、ほかの人が書いたスマートコントラクトも、あなたのWebアプリケーションから呼び出すことができます。逆も然りです。
🌍 プロジェクトをアップグレードする
UNCHAIN のプロジェクトは UNCHAIN License により運用されています。
プロジェクトに参加していて、「こうすればもっと分かりやすいのに!」「これは間違っている!」と思った ら、ぜひpull request
を送ってください。
GitHubから直接コードを編集して直接pull request
を送る方法は、こちらを参照してください。
どんなリクエストでも大歓迎です 🎉
👋 UNCHAIN-projects
にpull request
を送る! ⏩ UNCHAIN の GitHub にアクセス!
また、プロジェクトを自分のGitHubアカウントにFork
して、中身を編集してからpull request
を送ることもできます。
⚡️ Issue
を作成する
pull request
送るほどでもないけど、提案を残したい! と思ったら、こちら にIssue
を作成してみましょう。
Issue
の作 成方法に関しては、こちらを参照してください。
pull request
やissue
の作成は実際にチームで開発する際、重要な作業になるので、ぜひトライしてみてください。
UNCHAINのプロジェクトをみんなでより良いものにしていきましょう ✨
次のレッスンに進んでDeFiとYield Farmingについて学びましょう🎉
Documentation created by honganji(UNCHAIN discord ID: Tonny#5693)
DeFiの仕組みについて学ぼう
🖥 このレッスンの参考動画 URL
🏦 DeFi とは何か?
分散型金融(DeFi/Decentralized Finance)とは、単一のサーバーではなく、コンピュータの分散型ネットワーク上で動作する金融システムであ り、金融取引を承認する中央銀行や政府機関を必要としない、新しいデジタル金融インフラを意味します。
これまでの金融取引は、銀行や取引所などの管理者が関与する中央集権型のシステムで行われていました。
DeFiは簡単に言うと、管理者のいない金融システムです。
管理者がいなくなることで、今度は自分で資産を管理しなければなりませんが、証券会社の手数料が安くなり、金融取引がスムーズに行えるようになりました。
分散型アプリ(dApps)として機能するDeFiは、インターネット上の2人以上の個人が、ブロックチェーン技術とスマートコントラクトを用いて、中間業者の関与やコストなしに仮想通貨を直接交換、貸し借り、取引できるようにしました。
DeFiサービスには、以下のようなものがあります。
- 貸し出し: ユーザーは暗号通貨を貸し出し、数分で利息を得ることができる。
- ブローカーを介さないピアツーピアの取引
- 暗号通貨を貯蓄し、銀行よりも高い金利を得る。
- ストック・オプションや先物契約などのデリバティブを購入する。
ピアツーピアのビジネス取引を促進するために、ユーザーはdAppsを利用しますが、そのほとんどはイーサリアムネットワーク上で見つけることができます。
画像: Mapping out Ethereum's DeFi
もちろん、他のチェーン上のDeFiも日々構築されています 🔥
DeFiはオープンソースであり、プロトコルとアプリは、ユーザーが検査し、革新することができるよう公開されています。その結果、ユーザーはプロトコルを組み合わせて、独自のdAppsを開発することでユニークな組み合わせの機会を得ることができます。
🌽 Yield Farming とは何か?
イールドファーミング(Yield Farming)とは、暗号資産をレンディングや分散型取引所などのDeFiサービスに預け、流動性を提供する見返りとして利息や手数料収入を得る仕組みを指します。
例えば、イーサリアムなどの暗号資産が、暗号資産貸出プラットフォームにプールされているとしましょう。
その暗号資産を借りたい人はレンタル料を支払って暗号資産を借り、貸し手は支払った金利手数料を利回りとして受け取ることができます。
これまでは管理者が仲介していましたが、DeFiでは管理者なしで利息を受け取ることが可能になります。
暗号資産を預け、流動性を提供する見返りとして、利息に加えて新たなトークンを得ることを「リクイディティ・マイニング(流動性マイニング)」と呼びます。
この「リクイディティ・マイニング」が、イールドファーミングの大きな特徴です。
リクイディテ・マイニングの好循環は、以下のような流れで作られます。
リクイディティ・マイニングの好循環
- 大量の資産を預けることで、利息や新たなトークンが獲得される。
- プラットフォームの 利用が増え、トークン価値が上昇する。
- 多くのユーザーを惹きつけ、トークン価値が上昇する。
リクイディティ・マイニングが生み出す好循環は、現在、イールドファーミングをますます加速させています。
🍿 Yield Farming が注目された経緯
イールドファーミングブームの火付け役となったのはレンディングサービスCompoundです。
流動性を確保するため、Compoundは資産を預けた人に対して、株式のように新たに発行した$COMPトークンの配布を行いました。
その結果、ユーザーは資産を貸せば貸すほど、流動性を提供すればするほど、手数料収入が増え(=イールドファーミング)、将来的に価値が上がる$COMPを入手できる(=リクイディティ・マイニング)ため、利用者が殺到しました 😲
$COMPが生み出した熱狂もあり、DeFiのエコシステムの総額はすでに37億ドルを超え、今もなお凄まじい勢いで増え続けています。
イールドファーミングのすごいところは、その異常に高い利回りにあります。
イールドファーミング自体は昔からあったのですが、リクイディティ・マイニングの登場で状況が一変しました。
リクイディティ・マイニングの登場により、数十〜数千%という異常に高い年利(APR)を生み出すことが可能になったのです。
資産運用では年利5%で も高いと思われがちだが、この利回りは圧倒的です 🤯
イールドファーミングによる年間収益率(APR)が非常に高い限り、DeFiの利用者は増え続けるでしょう。
また、リクイディティ・マイニングによる新たなトークンの獲得は、決して早すぎることはありません。
最近では、発行開始や取引所への上場発表直後に、DeFiトークンの価格が2~5倍になることもあります。
さらに、LEND、SNX、RENなど、月利100%以上のリターンを出している銘柄もあります。
今後、イーサリアム以上のチェーン上にイールドファーミングが構築されることになれば、さらに注目が集まり、DeFi利用者の増加が加速することが予想されます。
参考記事: イールドファーミングとは?仕組みや特徴、リスクについて徹底解説!
それでは次のレッスンから、開発を通してYield Farmingの仕組みを学んでいきましょう。まずは環境構築から!😊