![見出し画像](https://assets.st-note.com/production/uploads/images/104493315/rectangle_large_type_2_255d6fc1daa2b09306731fd788a62df5.jpeg?width=1200)
NFT始めました
こんにちは。BTI部のタケヒロです!
遅ればせながら、弊社にもじわりじわりとWeb3の波がやってきています。
と言うとちょっと大げさかもしれませんが、現在、弊社ではNFTを活用して何か新しいことができないかと考えており、少しずつですがメンバーとNFTについて勉強し始めています。
今回は、勉強中のNFTについて、これまでに調べたことを備忘録的にまとめていきたいと思います。
NFTとは
NFTは、Non-Fungible Tokenの略。日本語に訳すと「非代替性トークン」で、トークンの一種です。
トークンとは、ブロックチェーン上に存在する、仮想通貨(暗号通貨、暗号資産)を指します。
NFTの逆は、FT(Fungible Token)で、「代替性トークン」です。
NFT、FTのどちらもトークンですが、代替性があるかどうかが異なります。
では、「代替性」とは何か。
簡単に言うと、自分が所有しているトークンを代替するトークンが他にあるかどうかを表します。
実際の貨幣を例に考えてみましょう。
千円札を1枚持って、弊社オフィスビル前のキッチンカーに持って行くと、チキンハーブグリル弁当に交換してくれます。
これは、私の財布に入っている千円札だけでなく、日本中のどの千円札を持って行っても同じです。
千円札を持ってさえいれば、そのキッチンカーではチキンハーブグリル弁当に交換してくれます。
これは、そのキッチンカーのオーナーさんがたまたま親切で、どんな千円札でも受け入れてくれるからではなく、日本銀行が発行した千円札が、他のどの千円札とも同等の意味を持つ、すなわち代替可能だからです。
このことを「代替性がある」と言います。
ビットコインやイーサリアムの様なコインは代替性を持っているため、それらを持っていると、それと等価の別のトークンやモノに交換することが可能です。
NFTの場合は非代替なので、私が持っているトークンを代替できるトークンは基本的に世界中のどこを探しても存在しません。
2021年にデジタルアートが大きなブームになったことが記憶に新しい方も多いでしょう。
ひとつの画像データが何千万円という高値で取引きされたのです。
このデジタルアートの取引を裏付ける技術の主役が、実はNFTなのです。
なぜNFTがデジタルアートの取引に使われるのか
NFTの非代替性を利用することで、NFTを「何かの証明」として利用することが可能になります。
例えば、ある固有のデータとNFTを紐付け、そのNFTを紐づくデータの所有権と定義すれば、ブロックチェーン上ではNFTを保有していることが、そのデータを保有していることの証明と捉えることができるのです。
もうひとつのNFTの特性として、取引の信頼性が挙げられます。
これはNFTというよりブロックチェーンの特徴ですが、ブロックチェーンはオープンな技術であり、イーサリアム等のネットワーク上でのデータの書き換えは、誰もが(スキルがあれば)その内容を参照できるため、透明性に優れています。
また、チェーンの参加者による承認に基づいて取引が行われるため改ざんが難しく、信頼性が非常に高いという特徴もあります。
これら、NFTの特徴を利用し、ブロックチェーン上でトランザクション(取引・契約)を自動的に処理する仕組みを「スマートコントラクト」と呼びます。
NFTの非代替性を利用し、画像データに対する所有権を定義することで、これまでに存在しなかったデジタルアートに対する「所有」という概念が生み出されました。
また、スマートコントラクトにより、アートの所有権の売買がオープンに行われることで新しい市場が誕生し、爆発的に話題になったのです。
NFTの技術的な理解
ここでは、NFTとは何か、少し技術的な視点で見てみましょう。
“NFT=非代替性トークン”であり、非代替性を持つように実装されたトークンであればすべてNFTである、と言って良いでしょうか?
答えはYESです。
個々のトークンを識別できる要素があれば、広義にNFTと呼んでも差支えありません。
ただ、既存の様々な技術にデファクトスタンダードが存在するように、実際にはNFTにもERC721という規格が存在し、それが標準になっています。ERC721はイーサリアムでのNFTの標準規格ですが、Polygon(イーサリアムとは別のネットワーク)でも基本的にはその規格が使われているようです。
ERC721の詳細な解説は省略しますが、ご興味のある方は、公式ドキュメントをご参照ください。
オブジェクト指向プログラミング経験のある方であれば仕様をイメージしやすいかと思いますが、ERC721はNFTのコントラクトに関する仕様です。
ブロックチェーン上での取引はスマートコントラクトによって行われるとご説明しました。
NFTの取引は、そのNFTのコントラクト(プログラム)が実行されることで行われています。
これは、NFTだけではなくトークン(EIP20)にも共通する仕組みです。
コントラクトはSolidityという言語で記述されますが、Java等のオブジェクト指向型の言語のクラスと基本的な考え方は同じで、ローカル変数(ステート)とメソッド(関数)によりその機能が実装されます。
至極おおざっぱに言ってしまうと、ブロックチェーン上にJavaのクラスのようなものの仕様がオープンな状態でデプロイされていて、それを誰もが参照し(条件を満たせば)実行することができるのです。
NFTと聞くと、ごく新しい技術で、はじめはとっつきにくい印象を持たれる方も多いかと思いますが、このように仕様を見てみると特にプログラミング経験者の方は理解しやすくなるのではないでしょうか。
蛇足ですが、私はいくらグーグルで検索していろいろな記事を読んでもNFTの代替性の仕組みを理解できませんでした。
しかし、コントラクトのソースコードのサンプルをいくつか見ることですぐにイメージを固めることができました。
自然言語で理解しようとするよりもコンピューター言語の方が簡潔で分かりやすい場合もあるもんだな、とつくづく実感しました。
話を戻すと、NFTの仕様はJavaで業務システムを構築することに比べるとシンプルです。
コントラクトの実装さえしてしまえば、プラットフォームはブロックチェーン上に既に存在するので、むしろ開発スコープは小さいかもしれません。
ガス代
前章で、コントラクトの実行は誰でもできると書きました。
ただし、新しくコントラクトのインスタンスを生成(MINTと言います)する際や、ステートを書き変える際にはガス代がかかります。
ガス代とは、ブロックチェーン上の情報を書き変える際に発生する手数料です。
誰でもスマートコントラクトを実行することはできるのですが、そのためには手数料の支払いが必要になってきます。
NFTの開発は技術的にはそれほどハードルが高いわけではありません。
基本的にはコントラクトの設計と実装が中心になります。
しかし、ガス代を考慮するとその運用(取引)に若干のハードルがあり、そのハードルを極力下げるための工夫が必要になってきます。
オンチェーン・オフチェーン
NFTの設計をする際の重要なポイントとしてオンチェーン/オフチェーンの考慮があります。
デジタルアートを例にご説明します。
NFTはデジタルアートの所有権でした。
では、NFTが指し示すアートの実体 = 画像データはどこにあるのでしょうか?
NFTのステートに画像データをまるごと格納してしまうのは一つの方法です。
ただ、大きなデータをブロックチェーン上(NFTのステート)に書きこむことは、それだけ大きなガス代が発生することになり、すなわち、それだけお金を支払う必要があります。
ガス代を小さくするため、画像データはブロックチェーン以外の場所に保管しておくのが一般的です。
例えば、画像データをWebサーバーやAWSのS3等、従来の(Web2.0時代の)ストレージに保存しておき、NFTにはその画像データへの参照(リンク)のみを持たせるやり方です。
ブロックチェーン上にデータを保管することやNFTに実装したプログラムを実行することを「オンチェーン」といい、ブロックチェーン以外の場所のデータや処理を「オフチェーン」といいます。
NFTを設計する際には、何をオンチェーンで、何をオフチェーンにするのかをよく考える必要があります。
なんでもかんでもすべてオンチェーンで行うことは理論上可能ですが、それだけガス代がかかり現実的ではありません。
それなら、ガス代がかからない様にすべてオフチェーンに持たせれば良いのでは?と思うかもしれませんが、それはそれで考慮が必要です。
そもそもWeb3の世界観においては、原理的に中央集権的な仕組みに依存すべきではありません。
データがオフチェーンに存在すること自体、Web3的な観点では不自然とも言えるのです。
第一、スマートコントラクトで実現しようとしている取引対象に関わるデータがすべてオフチェーンだとしたら、そもそもNFTである理由もあまりないですよね。
いかにガス代を減らすかはNFTの設計を行う上では大切な観点ですが、実現したいことの大切な要素がオンチェーンにあり、透明性を持って公開できているかということがより重要なポイントです。
参考までですが、IPFSの様な分散型のストレージサービスを活用してデータを公開するのもひとつの現実的な解となります。
ちなみに、IPFS自体は厳密に言うといわゆるオンチェーンではないのですが、P2P、コンテンツ指向型プロトコルで透明性が高く、非中央集権型ストレージサービスであることから、Web3的でNFTとも相性が良く、画像データ等の保管場所としてよく使用されています。
まとめ
今回は、最近私たちが学んでいるNFTについて、その一部をご紹介しました。
勉強中の身であるが故、ひょっとしたら誤っている内容があるかもしれません。
その際には、是非ご指摘やご意見いただければと思います。
今回は書面の都合上あまり深くは掘り下げられませんでしたが、もっと勉強して一層知識を深めていきますので、改めてNFT関連の情報を共有したいと思います。
また、今はまだお話しできませんが、弊社で計画中の取り組みについても、いずれご紹介できればと思います。
三ッ輪ホールディングス株式会社 BTI部 部長 タケヒロ
2002年からSIerにて官公庁や大手銀行、海外系電子決済等、主に大規模系B2Bサービス開発に従事。その後、コンサルティングファームを経て2020年に三ッ輪産業株式会社に入社。現在は、三ッ輪グループ全体のデジタル化や業務効率化、社外向け新規サービスの企画・構築を担当。
得意領域(≒趣味)はスクラッチ開発だが、最近は釣りの分野にも活動領域を広げ、仕掛けづくりの研究開発や新たな釣りものの調査にも日夜努力を重ねている。
この記事が気に入ったらサポートをしてみませんか?