NFTと仮想通貨とブロックチェーン

この記事は [ミライトデザイン Advent Calendar 2022](https://qiita.com/advent-calendar/2022/miraito-inc) の 24日目です。

23日目は [@Yukimasa Ikeda](https://www.yukimasa.net/) さんの [「vercelのog image generationを使用して、Next.jsで動的にOG画像を自動生成する」](https://www.yukimasa.net/posts/vercel-ogimage-generation) でした。

OG画像を動的に作成したい場合の参考になるので、気になる方は記事の方を読んでみて下さい。

# はじめに

ここ最近NFTに関する話題を耳にすることが多くなり、自分自身もNFTに関連するゲームやサービスに触れることが多くなりました。

そこで、簡単に「NFT」やそれに付随する「仮想通貨」「ブロックチェーン」に関してざっくりとまとめた記事を作ってみました。

# NFT

## 概要

- 「Non-Fungible Token」 の略称で、日本語では「非代替性トークン」と訳される事が多い
- 後述の「ブロックチェーン」上に記録される一意な(代替不可能な)デジタルデータのこと
- 「スマートコントラクト」の仕組みを利用して、NFTの受け渡しと同時に「ブロックチェーン」上で所有者を書き換える
- デジタルデータに対して所有者を明確に示すことが出来、資産的価値を生み出す事が出来る
- 基盤となっているブロックチェーンの種類(=対応する仮想通貨とほぼ同義)毎に分かれていて、〜ネットワークと呼ぶことがある

## スマートコントラクト

- 「ブロックチェーン」上に保存されたプログラムのこと。
    - イーサリアムの場合、 solidity という言語で開発をする事が多いらしい
        - ERC721 というNFT向けの仕様(インターフェース)に沿って作成する
- 予め決めておいた特定の条件を満たした場合に、自動的になんらかの処理を実行する
- 「ブロックチェーン」上に組み込まれる為、その内容には透明性があり改ざんも難しい

## 有名なNFTネットワーク

| 名称 | 対応する仮想通貨 | 備考 |
| --- | --- | --- |
| イーサリアム | ETH |  |
| Polygon | MATIC | イーサリアム上に構築されてる別のネットワーク(「サイドチェーン」や「レイヤー2」と呼ばれる) |
| Solana | SOL | 他のネットワークと比べて処理速度 (取引が確定するまでの時間)が短い |

# 仮想通貨

## 概要

- 日本銀行の定義では下記となっている。
    1. 不特定の者に対して、代金の支払い等に使用でき、かつ、法定通貨（日本円や米国ドル等）と相互に交換できる
    2. 電子的に記録され、移転できる
    3. 法定通貨または法定通貨建ての資産（プリペイドカード等）ではない
    - [https://www.boj.or.jp/announcements/education/oshiete/money/c27.htm/](https://www.boj.or.jp/announcements/education/oshiete/money/c27.htm/)
- 国内外の「販売所」「取引所」で入手・換金することが出来る

### 販売所と取引所

- 「販売所」は ユーザーが事業者から直接売買を行う
    - 簡単(即時売買が可能)だが手数料が高め
- 「取引所」は 事業者を仲介してユーザー同士で売買を行う
    - 面倒(株取引のように売り手と買い手が揃わないと成立しない)だが手数料が安い

## ウォレット

- 仮想通貨やNFTを管理するためのアドレス(入れ物 = 財布や 口座のようなイメージ)
- 送受信をするために秘密鍵が必要で、秘密鍵を紛失してしまうとそのアドレスの資産はどうやっても取り戻せない
    - この辺は管理者不在であるが故に発生してしまう事。
        - パスワードを忘れて400億円相当のビットコインが引き出せないという話題が少し前にあった
            - [https://finders.me/articles.php?id=2687](https://finders.me/articles.php?id=2687)
- いくつか種類があり、簡単にまとめると下記の表のようになる。

| インターネット接続有無 | 利用媒体 | 名称 | 秘密鍵の管理 | 有名な物 |
| --- | --- | --- | --- | --- |
| 有(ホットウォレット) | Webブラウザ | ウェブウォレット(取引所) | 取引所(サービス提供者)が管理 | bitFllyer, CoinCheck, GMOコイン |
|  | Webブラウザ | ウェブウォレット(プラグイン) | ブラウザにプラグインを入れて管理 | MetaMask, Coinbase |
|  | PC | デスクトップウォレット | PCにソフトをインストールして管理 | Electrum, Copay |
|  | スマホ | モバイルウォレット | スマホにアプリをインストールして管理 | MetaMask, Phantom |
| 無(コールドウォレット) | 専用機器 | ハードウェアウォレット | 物理的な外部専用デバイスで管理 | LedgerNano, Trezor |
|  | 紙 | ペーパーウォレット | 紙に印刷して管理 | bitaddress.org |

# ブロックチェーン

ここまでに述べた「NFT」や「仮想通貨」の基盤となっているのが「ブロックチェーン」技術です。

## 特徴

- 大きな特徴は下記の3つ
    1. 追跡可能性
    2. 耐改ざん性
    3. 非中央集権性

## 追跡可能性

- ブロックチェーンでは過去全てのやり取りが時系列順にブロックとして保存されている。
- 過去に遡って全てのデータを参照可能なので高いトレーサビリティがある。

## 耐改ざん性

- PoW(Proof of Work) や PoS(Proof of State) 等の「コンセンサス・アルゴリズム」により、参加している全ノードが「正しいと合意」したブロックだけがブロックチェーンに追加されるようにしている。
    - PoWはBitCoin、 PoSはEthereum(2022/09/15以降) が採用している。
    - PoW (Proof of Work)に関しては下記の動画が分かりやすいのでオススメ
        - 「結局ビットコインってどういう仕組みなの？」 (3Blue1BrouwnJapan)
            - [https://www.youtube.com/watch?v=o-xhOBn4S60](https://www.youtube.com/watch?v=o-xhOBn4S60)
- どの「コンセンサス・アルゴリズム」も悪意ある攻撃者による改ざんを事実上不可能にするような方法を取っている
    - 例: PoWの場合、全参加ノードの半数を超える計算能力が「悪意ある攻撃者」にあれば改ざんは可能だが現実的ではない。

## 非中央集権性

- P2P(Peer to Peer)での通信方針が使われており、中心となる管理サーバー等が存在していない
- 分散化されていて常にノード同士が相互に動作している為、実質的にダウンタイム(システムが使えない状態)がゼロとなる

# 最後に

デジタルデータの売買取引というと、一昔前はネットゲーム等でRMT(Real Money Trade)として忌避されていたことがあります。

それは「非代替性」の担保が出来ず、また「中央集権」的だったために「それDupeじゃないの？ それにサービス終了したら何も残らないでしょ？」というものでした。

これがNFTの場合にはゲームのサービスが終わっても、NFT自体はブロックチェーン上にずっと残ることになります。

また、所有者の履歴も全て追えるので「このアイテム、もうサービス終わったけど20xx年の大会優勝者が使ってた奴なんだぜ」…という資産的な価値(主にコレクター向けですが…)を見出すことも出来るようになりました。

NFT以外にも「ブロックチェーン」を基盤としたDeFi(Decentralized Finance / 分散型金融) や DAO(Decentralized Autonomous Organization / 分散型自律組織) 等のWeb3と呼ばれている物が来年以降トレンドになるかな? という気がしています。

ただ、DeFi や DAO はNFT以上に「なるほど、わからん」状態なので、もう少し理解したいなと思っています。

参考として自分がやっているゲームや利用しているサービス / アプリ等を簡単に記載しておきます。

ここまでの知識はこの辺のゲームやサービスを使うために、色々と調べた結果身についたような感じです。

- **NFT関連ゲーム**
    - Aglet ([https://aglet.app/](https://aglet.app/))
    - Dustland Runner ([https://www.thedustland.com/](https://www.thedustland.com/))
    - Walken ([https://walken.io/](https://walken.io/))
    - Genopets ([https://www.genopets.me/](https://www.genopets.me/))
- **仮想通貨関連ゲーム**
    - Sweatcoin ([https://sweatco.in/](https://sweatco.in/))
    - ステラウォーク ([https://apps.apple.com/jp/app/ステラウォーク-歩くだけで暗号資産が貰える/id1599065744](https://apps.apple.com/jp/app/%E3%82%B9%E3%83%86%E3%83%A9%E3%82%A6%E3%82%A9%E3%83%BC%E3%82%AF-%E6%AD%A9%E3%81%8F%E3%81%A0%E3%81%91%E3%81%A7%E6%9A%97%E5%8F%B7%E8%B3%87%E7%94%A3%E3%81%8C%E8%B2%B0%E3%81%88%E3%82%8B/id1599065744))
- **NFT販売所**
    - OpenSea ([https://opensea.io/ja](https://opensea.io/ja))
    - MagicEden ([https://magiceden.io/](https://magiceden.io/))
- **仮想通貨販売所・取引所**
    - CoinCheck ([https://coincheck.com/ja/](https://coincheck.com/ja/))
    - [Gate.io](http://Gate.io) ([https://www.gate.io/ja](https://www.gate.io/ja))
    - Binance ([https://www.binance.com/en](https://www.binance.com/en))
- **仮想通貨ウォレット**
    - MetaMask ([https://metamask.io/](https://metamask.io/))
    - Phantom ([https://phantom.app/](https://phantom.app/))


明日のアドベントカレンダーの締めは @hirodragon さんの記事になります。
どんな内容になるのか楽しみにしています。