非中央集権アプリ ~ ERC-20, ERC-721

非中央集権トークン

トークンという言葉は所有権全体を表す抽象概念であり、特定の資産を売買できる権利というニュアンスです。

これは資産だけではなく、ソフトウェアや映画、音楽などのデジタルコンテンツにアクセスできる権利も含まれています。

イーサリアムコミュニティーはトークンの作成を支援するため EIP (Ethereum Improvement Proposal)というプロセスを通じてトークンの規格を策定しています。

ERC-20

ERC-20は、ファンジブル作成の際の規格です。

ファンジブルトークンはお店のポイントや、飛行機会社のマイル等、通貨の代わりとして機能するトークンのことを指します。

ERC-20でのコントラクトトークンは同一の価値であると識別されるため区別することはできません。

ERC-20トークン作成の際は特定の関数を実装することが義務付けられています。

ERC-20の義務関数

# トークンの流通数
totalSupply()
# 指定したアドレスの残高
balanceOf(address _owner)
# 送金の失敗や成功をfalseとtrueで返す
transfer(address _to, uint256 _value)
# 所有者の代理として送金された失敗と成功をfalseとtrueで返す
transferFrom(address _from, addres _to, uint256 _value)
# 承認の失敗や成功をfalseとtrueで返す。
approve(address _spender, uint256 _value)
# 承認されたアドレスが引き出せる金額を返す
allowance(address _owner, address _spender)

これらの関数を組み込むことによってERC-20トークンを作成することができます。

スマートコントラクトトークンの法律的な位置付けはまだ議論が始まったばかりであり将来トークンが有価証券となる可能性も残されているため、今後も注意深く動向を追っていく必要があります。

イーサリアムで作成されたTokens一覧はこちらのページで閲覧することができます。

Tokesn一覧

ERC-721

ERC-721はノンファンジブルトークン、通称NFT規格です。

ノンファンジブルトークンは互いに異なっている規格であり、コントラクトがトークンの残高を追跡することは不可能で、発行するトークンをそれぞれ個別に追跡する必要があります。

ERC-20同様ERC-721もオプションフィールドを追加実装可能であり、必要であればトークンのURI(Uniform Resource Identifier)を追加することも可能です。

ただし、実装には特定の関数が義務付けられています。

ERC-721の義務関数

# 指定所有者のNFTの数を返す
balanceOf(address _owner)
# 特定のトークンIDの所有者アドレスを返す
ownerOf(uint256 _tokenId)
# トークンの所有権を譲渡する
# _to譲渡先がコントラクトであるケースではonERC721Received関数で受信可能か検証する
safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data)
# トークンの所有権を譲渡する〜空の文字列を設定
safeTransferFrom(address _from, address _to, uint256 _tokenId)
# トークンの所有権を譲渡する
transferFrom(address _from, address _to, uint256 _tokenId)
ただしこれは譲渡前にERC-721かどうかの確認は行われません。
このため、万が一ERC-721ではなかった場合は永遠に権利を失うことになります。
ERC-20かERC-721か曖昧な場合はsafeTransferを使用するようにしましょう。
# 別のアドレスが所有者の代理としてトークンを送金可能にする
approve(address _approved, uint256 _tokenId)
# _approvedがtrueの場合はoperatorに対して現在の所有者が所有するトークンの管理を承認
setApprovalForAll(address _operator, bool _approved)
# 指定されたトークンIDに対し承認されたアドレスを返す
getApprovedForAll(address _owner, address _operator)
# _operatorがオペレーターとして承認されているかどうかのチェック
isApprovedForAll(address _owner, address _operator)

まとめ〜NFT実用例

ERC-20同様ERC-721コントラクトはOpenZeppelinで作成されています。

Github OpenZeppelinはこちら

CryptoKitties

ERC-721の利用例としてはCryptoKittiesが有名です。

CryptoKitties(クリプトキィティーズ)は仮想の猫を集めるゲームであり、猫(cattributesを備えている)は256ビットのゲノムで表されています。

ユーザーが飼っている猫を荒廃させると、生まれた子猫のcattributesは親猫のゲノムを組み合わせたものになります。

珍しい猫を育てたり販売することでユーザー間で高値で取引されています。

この猫は一匹一匹が替えの効かない唯一無二のNFTとなっており、それは例えゲーム会社の開発元であっても例外ではありません。

カナダの会社Axiom ZenまたはAnimoca Brandsから提供され、2017年11月28日からプレイ可能となっており、2020年時点でユーザー数は10万人を突破。

DApps、NFTゲームの先進的存在として現在もユーザー数を伸ばして行っています。

過去最高値としては600ETH(当時の価格で約1900万円で落札された猫もいます。
icon image

こちらの記事もいかがですか?!
ざっくり歴史把握シリーズは今さら聞けない情報もたくさんありおすすめです!

阿鼻叫喚の恐ろしい世界。
自分じゃなくてよかった・・・

世にも恐ろしい株式市場の悲惨な暴落史をざっくり把握する

株式市場の歴史、実は結構古いんです。

株式市場の歴史をざっくり把握する / Stock market

今さら聞けない・・・ビットコインやイーサリアムの歴史をざっくり把握しておきましょう!

暗号通貨の歴史をざっくり把握する

イーサリアムの歴史をざっくり把握

現代でも裁量トレードはまだ残っていますが、この先の未来では裁量トレードを行う人はほとんどいなくなるかと思います。

アルゴリズム取引の歴史をざっくり把握する / Algorithmic trading

ナイチンゲールは実はデータサイエンティストだった!?

データサイエンスの歴史をざっくり把握する / Data

裁量トレードだって、botトレードだってテクニカル分析の基本を知らなければいけません。
こちらもなかなか今さら聞けない分野ですので、歴史についてまずはざっくり勉強していきましょう。

テクニカル分析の歴史をざっくり把握 / Technical analysis

なんとなく頼りないイメージのある経済学者ですが、もちろん凄い人は凄いんです。

経済学の歴史をざっくり把握する / Economics

FXは慎重に!

円やドル / 外国為替市場の歴史をざっくり把握する

Kotaro
Kotaro
服部 洸太郎
音大を卒業後ピアニストとして活動。
自身のピアノトリオで活動後北欧スウェーデンにてシンガーアーティストLindha Kallerdahlと声帯とピアノによる即興哲学を研究。
その後ドイツへ渡りケルンにてAchim Tangと共に作品制作。
帰国後、金田式電流伝送DC録音の名手:五島昭彦氏のスタジオ「タイムマシンレコード」にアシスタントとして弟子入りし、録音エンジニアとしての活動開始。
独立後、音楽レーベル「芸術工房Pinocoa(現在はKotaro Studioに統合)」を立ち上げ、タンゴやクラシックなどのアコースティック音楽作品を多数プロデュース。
その後、秋山庄太郎氏後継の写真スタジオ「村上アーカイブス」でサウンドデザイナー兼音響担当として映像制作チームに参加。
村上宏治氏の元で本格的に写真、映像技術を学ぶ。
祖父母の在宅介護をきっかけにプログラムの世界に興味を持ち、介護で使えるプログラムをM5Stackを使って自作。
株式会社 ジオセンスの代表取締役社長:小林一英氏よりプログラムを学ぶ。
現在はKotaro Studioにてアルゼンチンタンゴをはじめとした民族音楽に関する文化の研究、ピアノ音響、さらに432hz周波数を使った癒しのサウンドを研究中。
2022年9月より豊かな暮らしをテーマとしたウェブサイト『レンタルdeクラセル』も発信中〜