NFTを私用で触り始めたので備忘録として記載する。
用語
ブロックチェーン
P2Pネットワーク上でお互いに資産(データ)を保持することで、資産の可用性を上げ改ざんを難しくした方式
それぞれの資産をhashとして保持し、hashを通して資産を連続してチェーンのように繋げる。
処理は大きく分けて、下記の手順で動作する。
- 資産の作成(ハッシュ化など)
- 資産の保存(合意形成)
- 資産のやりとり、閲覧
ノード
ブロックチェーンのP2Pネットワーク(以下ブロックチェーンネットワーク)に参加している計算機
合意形成、合意形成アルゴリズム
ブロックチェーンに資産を保存(繋ぎこむ)するアルゴリズム
主にPoW, PoSがある。
PoW(Proof of Work)
日本語に直すと「作業(仕事)による証明(仮)」
Minerが資産をハッシュ計算し、ブロックチェーンネットワークへ資産を保存(承認)すること。
Nonceの計算等は省略。
ブロックチェーンネットワークへ完全に保存されるには過半数以上のノードに正しく保存されなければいけない。
代表的なコインはBitcoin(処理時間 約10分~20分)
PoS(Proof of Stake)
日本語に直すと「掛け金による証明(仮)」
コインを多く持つノードに資産の保存(承認)を依頼する方法。
初めて使用したコインはNxt
NFT
日本語名 非代替性トークン
ブロックチェーンに画像などの資産を登録することでその資産が一意のものであることを示す方式
ERC-721
Ethereumネットワーク上でNFTを取り扱うための規格の技術提案
openseaにて利用されている。
スマートコントラクト
ブロックチェーン上で契約を自動で実行する仕組み
プログラムとして記述した通りに動作する。
現実世界では預金通帳に書き込む動作を行うイメージ。
Ethereum では Solidity
でよく記述される。
JavaScriptのhardhatを用いた開発が有名?