← PC・IT用語集へ戻る

トークン(ブロックチェーン)

Blockchain Token
ブロックチェーン技術を用いて発行される、独自の価値や権利を表す電子的な権利証。
トークン(ブロックチェーン) (Blockchain Token)

概要(サマリー)

トークン(ブロックチェーン)は、ブロックチェーン技術を用いてデジタル上に発行される、独自の価値やサービス利用権、または投票権などを表す電子的なデータ(権利証)である。

イーサリアムなど既存のブロックチェーン上では、スマートコントラクトを使ってトークンを発行・管理できる。ただし、すべてのトークンが同じ方式で作られるわけではない。


詳細解説

ブロックチェーンにおけるトークンとは何か

ブロックチェーンの文脈における「トークン」は、現実世界における「テーマパークの乗り物チケット」や「店舗独自のポイント・クーポン」「株券」のようなものをデジタルで表現したものである。

用途は特定サービス内に限られるものから、市場で取引されるものまで幅広い。履歴はネットワークの合意方式に基づいて記録されるため、「絶対に改ざんできない」と単純化しないことが重要である。

暗号資産(コイン)とトークンの決定的な違い

一般的な説明では「コイン」と「トークン」を次のように区別することがある。ただし、完全に統一された分類ではない。

  • コイン(ネイティブトークン):独自のブロックチェーンを直接支える基盤通貨。取引手数料(ガス代)の支払いや、システムの維持に使われる。
  • 例:ビットコイン(BTC)、イーサ(ETH)など。
  • トークン:コインが稼働する既存のブロックチェーン(基盤)を借りて、その上でプログラムによって発行される二次的なデータ。
  • 例:イーサリアム上で動く様々な独自サービス専用の通貨・ポイントなど。

トークンの主な分類と役割

ブロックチェーン上のトークンは、その性質や目的によって主に以下のように分類される。

  • ユーティリティトークン:特定のサービスやアプリ(DApps)内で、特定の機能を利用するための「利用権」や「手数料支払手段」として機能するトークン。
  • ガバナンストークン:そのプロジェクトの運営方針を決める会議において、「投票権(議決権)」として機能するトークン。所有量に応じて投票の重みが変わる。
  • セキュリティトークン(証券トークン):株式や不動産などの現実資産の権利をトークン化し、配当金などの経済的利益を得る権利が紐づけられたトークン(法的規制の対象となる)。
  • ステーブルコイン:法定通貨などの参照資産に価格を近づけるよう設計されたトークン。連動が崩れるリスクもある。

トークンを支える規格とスマートコントラクト

トークンが異なるアプリや取引所でスムーズにやり取りできるのは、統一された共通規格があるからである。

代表的なものが、イーサリアムで使われる ERC-20 という規格である。この規格に沿ってスマートコントラクトを記述することで、「トークンの総発行数」「残高の確認」「送信処理」などのプログラムのインターフェースが統一され、あらゆるウォレットや分散型アプリ(DApps)と即座に連携できるようになっている。


AIコーディングとの関係

Web3開発では、AIをスマートコントラクトの雛形作成やテスト案の整理に利用できる。ただし、生成コードが安全とは限らない。

例えば、イーサリアムやEVM互換チェーン用の標準的なERC-20トークンを作成したい場合、AIに以下のような指示を与えることで、業界標準である OpenZeppelin の安全なライブラリを使用したスマートコントラクトのソースコードを瞬時に生成させることができる。

プロンプト例:
「OpenZeppelinのライブラリを使用して、初期発行数が1,000,000トークンで、発行者のみが追加発行(mint)できるシンプルなERC-20トークンのスマートコントラクト(Solidity)を記述してください。」

AIが生成したスマートコントラクトのSolidityコードの例を以下に示す。

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

contract MyToken is ERC20, Ownable {
    constructor(address initialOwner) ERC20("MyCustomToken", "MCT") Ownable(initialOwner) {
        _mint(initialOwner, 1_000_000 * 10 ** decimals());
    }

    function mint(address to, uint256 amount) public onlyOwner {
        _mint(to, amount);
    }
}

スマートコントラクトはデプロイ後の変更が難しい構成が多く、脆弱性が資産被害につながる可能性がある。AIの出力だけを信用せず、単体テスト、静的解析、テストネットでの検証、必要に応じた第三者監査を行う。


よくある勘違い

ブロックチェーンのトークンはすべて投資(投機)目的のためのもの?

これは大きな誤解である。確かに価格が上下し投資対象となるトークンもあるが、本来の設計目的は「サービスの利用権(ユーティリティ)」や「コミュニティの投票権(ガバナンス)」である。値上がりを目的とせず、純粋にシステムやコミュニティを円滑に回すための道具として設計されているトークンも非常に多い。

トークンとNFTは全く同じもの?

これも間違いである。通常のブロックチェーン上のトークン(ERC-20など)は「代替可能トークン(FT)」と呼ばれ、私が持つ1トークンとあなたが持つ1トークンは全く同じ価値を持ち、交換できる(お金と同じ性質)。これに対し、NFT(非代替性トークン / ERC-721規格など)は、一つひとつに異なる識別IDが付いており、唯一無二の価値を持つ(デジタルアートや鑑定書付きの会員証と同じ性質)。

トークンを発行するには、莫大な開発費と独自のブロックチェーンが必要?

これも誤解である。ゼロから独自のブロックチェーンを構築するのは膨大なエンジニアと設備が必要だが、トークンは既存のブロックチェーン(イーサリアムなど)の上に乗せるプログラム(スマートコントラクト)に過ぎない。そのため、上記のような短いプログラムを書くだけで、実質数分〜数時間で独自のトークンを発行することが可能である。


まとめ

  • ブロックチェーンのトークンは、特定のコミュニティやアプリ内で機能するデジタルな「権利証・引換券」である。
  • 独自のチェーンを持つ「コイン」とは異なり、既存のブロックチェーンの規格(ERC-20など)を利用して発行される。
  • 利用権としての「ユーティリティ」、投票権としての「ガバナンス」など、目的別に多様な種類がある。
  • AIコーディングでは、スマートコントラクト(Solidityコード)の生成をAIに指示することで迅速に構築できる。
  • 公開後の修正が難しいため、AIに徹底的な脆弱性チェックとエラーテストを指示することが不可欠である。

情報ソース


より詳しくAIに聞いてみよう

  • スマートコントラクトを使ってERC-20トークンを発行するための、具体的な環境構築とデプロイの手順を初心者向けに教えてください。
  • 代替可能トークン(ERC-20)と非代替可能トークン(ERC-721 / NFT)のプログラム上の構造的な違いを解説してください。
  • ガバナンストークンを用いた「DAO(分散型自律組織)」の仕組みと、投票プロセスの自動化について教えてください。
  • AIを使ってSolidityコードの「リエントランシー攻撃」などの脆弱性をチェックし、安全に修正するためのプロンプト例を教えてください。
  • ステーブルコイン(USDTやUSDC)が法定通貨と価値を同じに保ち続けられる仕組みを教えてください。