メインコンテンツまでスキップ

lesson-1_イーサリアムネットワーク上でNFTコレクションを作成しよう

👋 ようこそ

このプロジェクトでは、自分でゼロからNFTを作成し、ブロックチェーン上で配布する方法を学びます。

プロジェクトを進めるには以下の技術が必要です。

※ 開発初心者の方は、まずETH-dAppのプロジェクトから始めることをお勧めします ☺️ いますべてを理解している必要はありません。 わからないことがあったらインターネットで検索したり、コミュニティで質問しながらプロジェクトを進めていきましょう!

✨ NFT Collection を作ろう

このプロジェクトでは、オリジナルNFTコレクションを作成していきます。

プロジェクトは下記の3ステップに分かれています。

  1. NFTに関するすべてのロジックが含まれたスマートコントラクトを作成する。
  2. 作成したスマートコントラクトをブロックチェーンにデプロイする。
  3. コレクションからNFTを簡単にMintできるWebアプリケーションを構築する。

上記ができるようになると、NFTをOpenSeaなどのプラットフォームで販売できます!

NFTはオン・チェーンにデプロイされます。

  • オン・チェーンにデプロイされるとは、「NFTのデータはすべてブロックチェーン上に記載される」という意味です。

⛓ ブロックチェーンとは何か?

ブロックチェーンとは、互いに通信するコンピュータ(ノード)のピアツーピア・ネットワークです。

参加者全員がネットワークの運営を分担する分散型ネットワークですので、各ネットワークの参加者は、ブロックチェーン上のコードとデータのコピーを維持します。

これらのデータはすべて、「ブロック」と呼ばれる記録の束に含まれており、それらが「連鎖」してブロックチェーンを構成しています。

ネットワーク上のすべてのノードは、コードとデータがいつでも変更可能な中央集権型のアプリケーションとは異なり、このデータが安全で変更不可能であることを保証しています。これがブロックチェーンを強力なものにしているのです ✨

ブロックチェーンはデータの保存を担っているため、根本的にはデータベースです。

そして、互いに会話するコンピュータのネットワークですから、ネットワークとなります。ネットワークとデータベースが一体化したものと考えればよいでしょう。

また、従来のWebアプリケーションとブロックチェーンアプリケーションの根本的な違いとして、アプリケーションは、ユーザーのデータを一切管理しません。ユーザーのデータは、ブロックチェーンによって管理されています。

🥫 スマートコントラクトとは何か?

スマートコントラクトとは、ブロックチェーン上でコントラクト(=契約)を自動的に実行するしくみです。

よくたとえられるのは、自動販売機です。自動販売機には「100円が投下され、ボタンが押されたら、飲み物を落とす」というプログラムが搭載されており、「店員さんがお金を受け取って飲み物を渡す」というプロセスを必要としません。

人の介在を省き、自動的にプログラムが実行される点こそ、スマートコントラクトが、「スマート」と呼ばれる理由です。

実際には、スマートコントラクトのしくみは、イーサリアムネットワーク上のすべてのコンピュータに複製され、処理されるプログラムにより成り立っています。

イーサリアムの汎用性により、そのネットワーク上にアプリケーションを構築できます。

スマートコントラクトのコードはすべてイミュータブル(不変)、つまり変更不可能です。

つまり、スマートコントラクトをブロックチェーンにデプロイすると、コードを変更したり更新したりすることはできなくなるのです。

これは、コードの信頼性と安全性を確保するための設計上の特徴です。

私はよくスマートコントラクトをWeb上のマイクロサービスにたとえます。ブロックチェーンからデータを読み書きしたり、ビジネスロジックを実行したりするためのインタフェースとして機能するのです。これらはパブリックにアクセス可能で、ブロックチェーンにアクセスできる人なら誰でもそのインタフェースにアクセスできることを意味します。

📱 dApps とは何か?

dAppsは、分散型アプリケーション(decentralized Application) の略です。

dAppsは、ブロックチェーン上に構築されたスマートコントラクトと、フロントエンドであるユーザーインタフェース(Webサイトなど)を組み合わせたアプリケーションのことを指します。

dAppsは、イーサリアムのプログラミング言語であるSolidityを基盤に構築されています。

イーサリアムでは、スマートコントラクトはオープンAPIのように誰でもアクセスできます。よって、ほかの人が書いたスマートコントラクトも、あなたのWebアプリケーションから呼び出すことができます。逆も然りです。

🌍 プロジェクトをアップグレードする

この学習コンテンツは、Attribution-ShareAlike 4.0 International © 2022 buildspaceのライセンス及び UNCHAIN License のもとで運用されています。

プロジェクトに参加していて、「こうすればもっと分かりやすいのに!」「これは間違っている!」と思ったら、ぜひpull requestを送ってください。

GitHubから直接コードを編集して直接pull requestを送る方法は、こちらを参照してください。

どんなリクエストでも大歓迎です 🎉

また、プロジェクトを自分のGitHubアカウントにForkして、中身を編集してからpull requestを送ることもできます。

  • プロジェクトをForkする方法は、こちら を参照してください。
  • Forkからpull requestを作成する方法は、こちら です。

👋 UNCHAIN-projectspull requestを送る! ⏩ UNCHAIN の GitHub にアクセス!

⚡️ Issueを作成する

pull request送るほどでもないけど、提案を残したい! と思ったら、こちらIssueを作成してみましょう。

Issueの作成方法に関しては、こちらを参照してください。

pull requestissueの作成は、実際にチームで開発を行う際に重要な作業になるので、ぜひトライしてみてください。

UNCHAINのプロジェクトをみんなでより良いものにしていきましょう ✨

🙋‍♂️ 質問する

ここまで何かわからないことがある場合は、Discordの#ethereumで質問をしてください。


次のレッスンに進んで、NFTについて学びましょう 🚀


Attribution: This learning content is licensed under Attribution-ShareAlike 4.0 International © 2022 buildspace. Sharelike: Translations and modifications to markdown documents.

Documentation created by yukis4san(UNCHAIN discord ID: yshimura#7617)