ブロックチェーンの前には、Webがありました
ブロックチェーンの前とERC-721の前には、ワールドワイドウェブ(または単にウェブ)がありました。インターネットの最初の商用利用は1980年代後半に登場し、1989年にティムバーナーズリーはインターネット上にウェブを作成しました。 Webは、ハイパーテキスト転送プロトコル(HTTP)、ハイパーテキストマークアップ言語(HTML)、ユニバーサルリソース識別子(URI)、およびWebブラウザで構成されています。 HTTPは、すべての要素を相互に接続するための基盤となるプロトコルです。 HTMLは、ユーザーがアクセスできるサイトを作成するための言語を提供します。 URIは、ユーザーが使用できるWebサイト、ドキュメント、画像などのリソースを識別します。ブラウザを使用すると、ユーザーはこれらのさまざまなリソースにアクセスして利用できます.
Webの本来の目的は、研究者がドキュメントを共有し、アイデアの自由な交換を促進できるようにすることでした。これはすべての合理的な期待を超えて成功しただけでなく、数年で世界を変えました.
Webの問題:
ウェブの制限が明らかになりました. アイデアの自由な交換は、デジタル所有権と財産権を説明できませんでした. エンジニアが新しいソフトウェアの発明を作成してWebにリリースした場合、プロトコルには作成者を保護するものはありません。ユーザーはそれをダウンロード、実行、コピーします。本発明は、作成者が決して意図せず、承認しない可能性のある目的に役立つ。このプロトコルは、作者の作品の使用に対して金銭的に補償するメカニズムを提供していません。また、プロトコルは、誰かが発明者のソフトウェアを取得し、自分の名前を付けて、自分のものとして販売することを防ぐメカニズムさえ提供していません。.
Webが発展するにつれて、商取引をしたい個人や組織は、所有権を保護しようとする方法を模索してきましたが、プロトコル自体に組み込まれた保護の欠如が可能性を制限しています。.
ブロックチェーンの世界は違います.
ブロックチェーンであなたの資産をカバーする
ブロックチェーン環境では、誰かが秘密鍵を所有することによって資産を所有します。彼らは、その秘密鍵から作成された公開デジタル署名でその資産に署名することによって所有権を証明します。ブロックチェーンは、信頼できない分散型環境でデジタル通貨を取引しますが、ユーザーはデジタル通貨以外の資産も取引します。ソフトウェアで表現できる商品やサービスはすべて、ブロックチェーン上のデジタル資産として機能します。.
資産は代替可能または代替不可能として分類されます。代替可能な資産とは、すべてのユニットがそのクラスの他のすべてのユニットと正確に等しい場合です。米ドルは代替可能です。あなたが店に行って購入する場合、すべてのドルは同じであるため、商人はあなたがこのドルを使用するか、そのドルを取引に使用するかを気にしません。代替不可能な資産は、そのクラスでユニークです。あなたがレストランに行き、Xの金額のチキンサンドイッチを注文し、ウェイターがちょうどXの金額のフィッシュサンドイッチを持ってきたと仮定します。 2つは同じ性質(両方ともサンドイッチ)であり、まったく同じ値を持っていても、まったく同じものではないため、代替可能ではありません。.
(ビットコインを代替不可能として分類します。各ビットコインは特定の時点で同じ値を保持しますが、すべてのビットコインには既知の履歴が含まれており、過去にマネーロンダリング、麻薬取引、またはその他の違法行為に費やされた1つのビットコインは他のビットコインよりも望ましくありませんきれいな歴史を持つビットコイン。)
ERC-20およびトークン標準
イーサリアムネットワークには、代替可能なアセットを作成するためのERC-20トークン標準が存在します。 ERCの頭字語はEthereumRequest for Commentの略であり、番号は単なる識別インデックスです。 ERC-721標準は、代替不可能な資産を取引するために作成されました(erc721.org).
ERCトークン標準は、オブジェクト指向プログラミングのインターフェイスのように機能します。インターフェースは、プログラマーがオブジェクトを作成するために従わなければならないコントラクトを定義します。プログラマーは単一のインターフェースから複数のオブジェクトを作成しますが、そのインターフェースのすべてのプロパティとメソッドを実装する必要があります。オブジェクトは、インターフェースで定義されたもの以外の追加のプロパティとメソッドを実装できます。たとえば、インターフェースは、「タイヤ」および「ステアリングメカニズム」として定義されたプロパティを持つ「車両」を定義する場合があります。.
このインターフェースから、プログラマーは「三輪車」オブジェクト、「オートバイ」オブジェクト、および「車」オブジェクトを作成します。 「オートバイ」および「自動車」オブジェクトには、「三輪車」オブジェクトが必要としない「ガスタンク」プロパティが含まれます。 ERCトークン標準はまったく同じように動作します.
クリプトキティとERC-721の夜明け
ERC-721規格はによって導入されました ディーターシャーリー の アクシオムゼン. この規格の本来の目的は、クリプトキティを作成することでした。 CryptoKittiesは、猫のユニークな収集可能なデジタルアートワークです。 CryptoKittiesのユニークなコレクションを所有できるだけでなく、猫を繁殖させて新しいCryptoKittiesを作成することもできます。.
これにより、新しい猫を作成して販売できる潜在的な収益の道が開かれます。他の人が彼らと一緒に繁殖したい特に望ましいクリプトキティを持っているなら、あなたはスタッド料金を請求するお金を稼ぐことができます.
やがて、クリプトキティ自体は、団塊の世代の子供時代に大流行したフラフープやデイヴィッドクロケットのクーンスキンキャップよりも価値がないことがわかるかもしれません。当時、最先端の技術は白黒放送テレビでした。 CryptoKittiesの真の価値は、代替不可能なデジタル資産の所有権の概念実証を提供することであることが判明する可能性があります。.
それほど秘密ではないコード
ERC-721トークン標準のコードは、イベントと機能を定義するコントラクトです。ここではコードの一般的な説明で十分であり、詳細な技術情報はにあります。 ERC-721ウェブサイト.
プログラマーは、Transfer()、Approval()、およびApprovalForAll()の3つのイベントを実装する必要があります。所有権が変更されると、転送がトリガーされます。非代替可能トークン(NFT)の承認済みアドレスが変更または再確認されると、承認がトリガーされます。 ApprovalForAllは、オペレーターが所有者を有効または無効にしたときにトリガーされます.
プログラマーが実装しなければならない機能は次のとおりです。
balanceOf() 所有者に割り当てられたすべての代替不可能なトークン(NFT)をカウントする
の所有者() NFTの所有者を見つける
safeTransferFrom() NFTの所有権をあるアドレスから別のアドレスに転送し、パラメーターに問題がある場合は例外をスローします
からの転送() NFTの所有権を譲渡する
approve() NFTの承認済みアドレスを設定または再確認する
setApprovalForAll() msg.senderのすべての資産を管理するためのサードパーティ(「オペレーター」)の承認を有効または無効にする
getApproved() このNFTの承認済みアドレス、または存在しない場合はゼロアドレスを返します
isApprovedForAll() オペレーターが所有者に対して承認されたオペレーターである場合はtrueを返し、そうでない場合はfalseを返します。
supportInterface() コントラクトが有効なinterfaceIDを実装している場合はtrueを返し、そうでない場合はfalseを返します
最終的な考え:新興技術の9つの命
ERC-721は、デジタルテクノロジーの性質上、最初からいくつかの潜在的な制限を示しています。どのデジタルオブジェクトもビットのコレクションを構成するだけで、ビットを変更できます。あなたが史上最高のデジタルポートレートを作成したアーティストだとします。誰かが肖像画をコピーして口ひげを描くことを選択した場合、元の資産の所有権を証明できるという理由だけでそれを防ぐことができますか?あなたはあなたの財産から派生した新しい資産を所有していますか?アセットが芸術作品ではなく実行可能コードの一部である場合、そのコードの使用を制限することができますか??
新しいテクノロジーが登場したとき、すべての可能性と制限がすぐに明らかになるわけではありません。その結果、エンジニアは可能性と課題についてブレインストーミングを行い、脳がストームに対応できない場合は、軽い霧雨と時折の突風で十分なことがよくあります。この時点で言えることは、ERC-721は思慮深いアプローチであり、World WideWebプロトコルの元々の欠点のいくつかを軽減する上で適度な希望を提供するということです。.