本書の目的

デジタル文化財の管理において、「真正性の保証」と「来歴情報の永続的な記録」は極めて重要な課題です。博物館や美術館が所蔵する文化財のデジタルデータは、複製・改ざんが容易であり、従来の中央集権的なデータベースでは長期的な信頼性を担保することが難しい場面があります。

本書では、ブロックチェーン技術とIPFS(InterPlanetary File System)を組み合わせることで、デジタル文化財の管理システムを試作した過程を記録しています。具体的には、文化財のデジタル画像をNFT(Non-Fungible Token)として登録し、その来歴情報をブロックチェーン上に記録するシステムを構築します。

なぜブロックチェーンなのか

デジタル・ヒューマニティーズの分野では、文化財のデジタルアーカイブが世界中で進んでいます。しかし、デジタルデータには以下のような課題があります。

  1. 改ざん耐性: デジタルデータは容易にコピー・変更が可能であり、オリジナルと複製の区別が困難
  2. 来歴追跡: 文化財の所有履歴・修復履歴・展示履歴などの来歴(provenance)情報を信頼性高く記録する仕組みが必要
  3. 永続性: 特定の機関やサーバーに依存しないデータ保存が求められる
  4. 相互運用性: 異なる機関間でデータを共有・検証できる標準的な仕組みが必要

ブロックチェーンは、これらの課題に対して以下の利点を提供します。

  • 不変性: 一度記録されたデータは改ざんが極めて困難
  • 透明性: すべての取引履歴が公開台帳上で検証可能
  • 分散性: 中央管理者なしにデータの整合性を保証
  • スマートコントラクト: 文化財の貸出・返却などのルールをプログラムとして実装可能

システムの全体像

本システムは、以下の技術スタックで構成されています。

-------EENRRFCCT7429:107PN:iMFneTEaJtttSa:haOMeNarINsUePekISuFxomSt+l.iSjwdesaipgtomyliia

使用技術の概要

技術用途バージョン
Next.jsフロントエンドフレームワーク14.x
Solidityスマートコントラクト言語0.8.20
Hardhat開発・テスト・デプロイ環境2.x
ethers.jsEthereumライブラリv6
wagmiReactフック for Ethereum2.x
PinataIPFS ピンニングサービスV3 API
SepoliaEthereumテストネット-

各章の構成

本書は以下の流れで、段階的にシステムを構築していきます。

第1章(本章): システムの動機と全体像の解説

第2章 NFT対応: ERC721コントラクトの実装とPinata IPFSを使ったメタデータの保存。文化財をNFTとして発行する基本的な仕組みを構築します。

第3章 履歴の追加: 文化財の来歴情報(修復、展示、所有権変更など)をブロックチェーン上のイベントログとして記録する機能を実装します。

第4章 NFTのレンタル(所有権転送版): 最初のアプローチとして、所有権の転送によるレンタル機能を実装しますが、この方法の問題点を確認します。

第5章 NFTのレンタル(ERC-4907版): ERC-4907規格を使用した適切なレンタル機能を実装します。所有者と利用者を分離し、期限付きアクセスを実現します。

第6章 ウォレットの接続: MetaMaskとwagmiを使用したフロントエンドからのウォレット接続を実装し、ユーザーがシステムとインタラクションできるようにします。

開発環境のセットアップ

本書のコードを実行するために、以下の準備が必要です。

# Node.js のインストール(v18以上推奨)
node -v

# プロジェクトの作成
mkdir cultural-heritage-nft
cd cultural-heritage-nft

# Hardhat プロジェクトの初期化
npx hardhat init
# "Create a TypeScript project" を選択

# 必要なパッケージのインストール
npm install @openzeppelin/contracts
npm install --save-dev @nomicfoundation/hardhat-toolbox

# フロントエンド用パッケージ
npm install next react react-dom wagmi viem @rainbow-me/rainbowkit

MetaMaskブラウザ拡張機能をインストールし、Sepoliaテストネットに接続しておいてください。テスト用のETHは、Sepolia Faucetから取得できます。

想定読者

本書は、以下のような方を対象としています。

  • デジタル・ヒューマニティーズに興味がある研究者・学生
  • 文化財のデジタルアーカイブに携わる技術者
  • ブロックチェーン技術を実際のユースケースに適用したい開発者
  • NFTの技術的な仕組みを理解したい方

JavaScriptの基本的な知識があれば、Solidityやブロックチェーンの経験がなくても読み進められるように構成しています。

関連記事