NFT画像の参照先のお話するよ~!
NFTと言うとクリエイターが画像の販売をしていてあたかもデジタルデータを売っているようなイメージをされています。
・・・それでもあなたは買いますか?(いやそういう話ではなくw
わたしはNFT推進派ですw
1.デジタルデータには法律的所有権は無い。
これは話の腰を折りたいわけではなくて事実としてデジタルデータは物ではないので買ってもその所有権利はありません。
※創作物については作成した時点で自動的に著作権が付きます。
著作権を譲渡するなどしっかり明記してNFTを購入する必要がある。
双方合意の取り決めが特に無い場合は著作権は移動しない。
あくまでも「所有状態を再現している」と言うのが私の解釈です。
ではNFTの購入とは無駄なのか?
いえそうではありません。
私たちの社会的な物差しでブロックチェーンを考えてはいけません。
ブロックチェーンは人間に頼らない新しいコンセンサスの取り方なので人間社会と必ずしも折り合いはつきません。
ブロックチェーンは非常にドライにそのアドレスがデータを所有していることを淡々と証明します。
それを社会が認めるのか?は関係ありません。
認めようが認めまいがアドレスが所有している状態を示します。
法律は認めていない(というか定義が無い)がブロックチェーンは証明している。
という状態です。
※なお暗号資産は認められています。
今のところNFTはグレーゾーンで多くの場合が
暗号資産1号、2号に該当しません。
いつ所有権が認められるのか?を考えたとときに、まずなにか問題、事件が発生する必要があります。司法判断が行われる必要があります。
その解決のために所有している状態と認めるのか?認めないのかの議論が展開されます。
ここで注目したいのは事件、問題が発生するとはどういう状況でしょうか?
たとえば揉める事と言えば、
交通事故(たとえが悪いかもしれませんが)でお互いの信号機の主張でしょうか。
双方が青を主張していて裁判になったとします。
裁判になったということはその時点で信号が何色だったのか?と言うことは誰も分からないということです。
双方の言い分と目撃者の情報、時間、監視カメラの様子などをから推測する必要があります。
裁判になってしまうそもそもの原因は信号機のすべての記録が無いことです。
では果たしてブロックチェーンの情報に曖昧な記録があるのでしょうか?
正解は 「ありません」
1件たりとも曖昧な記録がありません。
最初の取引履歴から最新の取引履歴まで何時、誰が、誰に、いくら送った、もしくはNFTを発行、売った、買ったなどと言った情報がすべて記録されています。それも改竄不可能な形で。
不明な記録が存在しない=もめる原因が発生しない=問題が生まれない。
※仕組みの説明はこちらをご覧ください。
さきも言いましたが何か起こらないと司法は動きません。(困っている人が動くのです。ブーメランで私が訴えることになるかもしれませんがwww)
なにも問題いが無いのに裁判する必要も法律整備する必要もありません。
https://www.call4.jp/column/?p=252
ブロックチェーンではNFTの所有に関してトラブルになるようなことが起こりえないのです。
それは誰が今所有しているか?と言うことが誰でもわかるようになっていますし、過去の履歴も残っています。
もしマーケットプレイス上でトラブルがあった場合はブロックチェーンではなくあくまでマーケットプレイスの仕様、仕組み上問題です。
ブロックチェーンを使わなければ問題が発生します。
国が認める必要はなく、我々が所有していると思えばそれでよいのです。
そしてもし誰かに何か言われてもブロックチェーンが淡々その証拠を担保してくれます。
私がよく言うのはブロックチェーンを使っているとそもそも裁判(もめることが少ない)にならないので法整備は進まない。
2.NFTの画像データはブロックチェーンに保存していない。
ERC721というのはよく目にすると思います。
これはブロックチェーンのトークンの規格でNFTに使われています。
トークンとは交換できる通貨(データ実体)と言うことです。
ERC20との違いは
ERC20は通貨的な利用に合わせた発行枚数、送信機能などの設定があるのに対して
ERC721ではトークンID(名前を付けれる)があるだけの1枚ものとして発行そして譲渡できると言うイメージです。
SymbolではトークンIDと数量どちらも必ず使える(ネームスペースで名前も付けれる)1つのトークンの仕様なのでトークの仕様ごとにアプリケーションをチューニングする必要がありません。EVMがないのでコントラクトのエラーやバグを起こすこともありません。
https://doneru.jp/life/about-erctoken/
ERC721の機能として”トークンにURL”を設定できます。
※トークンURLと言うものが721の規格で決められているということですね。
このトークンURLはトークンに紐づけたいURLリンクということです。
画像のURLでもなんでもいいわけです。
ブロックチェーンはそこは知りません。
とにかくこの今から発行するNFTトークンに紐づけるURLを設定します。
これはERC721を利用するサービス(OpenSea)がこのURLからどこかに保存してあるデータを引っ張ってきて画像なりなんなりを表示します。
そしてこのトークンURLが昨今問題のいわゆる画像の”参照先”です
トークンURLここへ書き込んだURLは絶対的な物でないということを学んでください。
このイーサリアムをはじめとするEVM(スマートコントラクト)はプログラムであり内容は動的変化します。
よくあるCOLLECTION系NFTの実装方法を考えます。
たとえば参照先のURLをhttps://bootarou/1.png
とします。
スマートコントラクトはプログラムですので
{number++}というプログラムをURLの中に入れます。
https://bootarou/{number++}.png
変数(number)に++を付けると
++は1つたすと言う意味のコードです。
numberは、はじめ0が入っています。
コントラクトが実行(発行)されるたびに1つずつ数字が増えることになります。
{number++}が実行されて結果が出力されるのでトークンURLは以下のようになります。
https://bootarou/1.png
https://bootarou/2.png
https://bootarou/3.png
https://bootarou/4.png
https://bootarou/5.png
1つの同じコントラクトから違う画像のCOLLECTION NFTがどんどん発行されていきます。
※実行できる人はこのコントラクトに設定されているオーナーに制限しています。
ここでは話しませんがこの誰かか作ったこのコントラクトの信頼はどうすのか?問題もあります。
コピペした中に不正なプログラムがあったら大変です。
いわゆるNFTに保存されている情報の正体はこれです、
参照先URLしかありません。
それはプログラムによっても変更可能です。
たとえば10回目の実行だけ違うURLにするようなことも可能です。
画像データはブロックチェーンのどこにもないのです。
ブロックチェーンではない以上、残念ながらそこから先は改竄可能な保存先となります。
さらにOpenSeaなど一般的なNFTは参照先にOpenSea用の参照先データを設定しています。
どういう事か?というと
先の説明ではトークンURL=画像の参照先となっていましたが、
多くの場合、トークンURL=画像の参照先も書かれたOpenSea用設定ファイル(メタデータと言われる)
となっています。
なので画像を表示するにはそのコントラクトにアクセスしてデータをもらい
もらったトークンURLからメタデータを取得してメタデータの中に書かれた画像のURLを参照しています。
マトリョーシカですねw
そんなこんなでNFT=画像データではありません。
メタデータのURLが書かれたトークンを所有していること証明しています。
IPFSと言うものを使うことがおおいのですがそれはブロックチェーンではないので消えます。
私は不安定なIPFSを使うぐらいなら分散性ゼロの既存のサーバーに責任者おいてしっかり管理した方がマシだと思います。
今のインターネットはそうしてます。
そんなことしなくてもフルオンチェーンで書き込むサービスもありますので
NFTDriveでも使ってもらえたらと思います。ワラワラ。
※一部スマコンプログラムに直接データを書き込んだフルオンチェーンもあります。今回は特に問題になっている多くの一般的なNFTの場合の解説です。
私が開発したSymbolブロックチェーン基盤のNFTDriveでは
すべてのデータが完全にブロックチェーンに保存されていてデータが入っているアドレスがトークンのオーナーと言う関係でブロックチェーンの記録として保証されています。
参照先のURLといったものはありませんw
データが入ったアドレスが発行したトークン=NFT
当然メタデータなど変更可能な曖昧なデータを参照する必要がなく、トークンを発行したアドレス=画像データを取引記録として持つアドレスそのものになっています。さらにデータアドレスの秘密鍵を破棄してゴックスさせることでその所有者ですらも改竄不可能にしています。
ATNFT(アディショナルトランスフォームNFT)
逆に私は参照型のNFTをそう呼んでいます。
例えば参照先の
https://bootarou/1.png
の画像を自由に変更することでNFTとしての証明はそのままに
提供するデータを管理者側で自由に変える事が出来ます。
これは相手に所有させたままデータを変えてい行けるので色々展開ができます。
ATNFTの作成方法はテキストファイルに参照先のURL
例:https://bootarou/1.png
とだけ書いて保存し、それをNFTDriveでアップロードするだけです。
そうするとNFTDriveのデコーダーは参照先としてURLを読み込みます。
ちなみにOpenSeaで参照先をNFTDriveの絶対データにすることもできます。
こうすると消える心配はありませんね!
https://testnets.opensea.io/assets/mumbai/0xa003064dfa65a9b8bfe183281cd5078dbd3141d6/0
↓もとのデータ
https://nft-drive-data-explorer.tk/download.php?address=NDPYCATAWHPJL2HHFJRVP7TIIWRPXG4KUD77LAA
テストネット版のOpenSeaですけどね。
まとめると
フルオンチェーンではないNFT=所有状態証明+参照先URL。
フルオンチェーンNFT=所有状態証明+データ。
どう足掻いてもフルオンチェーンは正義!!イエアー!!
といったところでしょうかではバイバイ~!!
この記事が気に入ったらサポートをしてみませんか?