HiÐΞClassic

ブロックチェーンや仮想通貨って何?どう動くの?――NFTのことは嫌いでもEthereumは嫌いにならないでください

aqz/tamaina
3 years ago
分散台帳技術なぜ分散台帳なのかネイティブ通貨高すぎるGas代とスケーリング技術アカウントの作成「取引所」のアカウントは?スマート・コントラクト通貨トークン草コインステーブルコイン分散型取引所(DEX)流動性マイニング(イールドファーミング)NFTsNFTは所有権を表現できる?NFTは偽造可能??なぜNFTは投機性が高いの?いかがでしたか?

この記事は、「Ethereum(イーサリアム)やBitcoin(ビットコイン)といったブロックチェーンについて何も知らない。」「NFTって話題だけど、結局何なの?」「検索しても投資のことしか出てこない!」という方に向け、ブロックチェーンやEthereumについて総体的に理解してもらうための記事です。

絵が全くない上に分量も多くなってしまいましたが、ブロックチェーンの現状やブロックチェーンでできることについてざっくり知っていただけると嬉しいです。

分散台帳技術

ブロックチェーンは、分散台帳の方式のひとつです。
ここで言う台帳とは、通貨などの取引をすべて記録するデータベースのことです。分散台帳とは、世界中のみんなで保持して確認し合えるように設計された台帳だと思ってください。

分散台帳技術の中ではブロックチェーン方式が現在の主流であり、速度と信頼性のバランスがとれていると言われています。

2009年にサトシ・ナカモトによりBitcoinがローンチされましたが、2022年現在では、より便利で高速なEthereumや、Ethereumと互換性のあるブロックチェーンが主流となりつつあります。

この記事では話を簡単にするため、Ethereumを中心に話を展開していきます。
NFTについて理解するだけならEthereumについてさえ知っていれば大丈夫です。

なぜ分散台帳なのか

なぜ分散台帳が必要なのでしょうか。
Fediverseの記事でも書いた通り、「分散」とは、「中央集権」に対抗する概念です。

中央集権ではないことの一番のメリットは、開発と参入のし易さです。
これまでの中央集権型の決済サービスでは、手数料が高かったり審査基準が厳しかったりするために、決済を伴うサービスを展開する敷居は高いものでした。
ブロックチェーンはオープン規格であり開発が簡単なので、ブロックチェーンを基にして様々なdApps(分散型アプリケーション)が誕生しています。決済サービスによって勝手に検閲されて取引できなくなってしまうようなこともありません。

ネイティブ通貨

Ehtereumにおいては、送金等の取引(トランザクション)を行うには取引手数料が必要で、これはチェーンのネイティブ通貨であるEther(イーサ・$ETH)で支払います。

一方、Ethereumチェーンの参加者(ノード)は、取引を承認して「ブロック」を作る(採掘・マイニング)ことで、報酬としてETHを得ることができます。
ここで得られる報酬額は、新たに発行されるETH(現在は2 ETH)と承認した取引の手数料の一部となっています(現状の詳細はEIP-1559を参照)。

高すぎるGas代とスケーリング技術

記事執筆現在、Ethereumの送金の取引手数料(Gas代)は約5000円弱となっています。ちょっとした買い物に使うには法外です。
どうしてこんなに高くなってしまったのでしょうか。まず手数料の仕組みをご説明します。

Ethereumでは、送金やコントラクトの計算について、その計算量に準じて取引手数料の基準となる「Gas」が定義されています。現在「送金」だけに必要ガス量は21,000 Gasとなっています。

取引の際には、1Gasの価格(Gas Price)を、まずは取引の送信者が指定します。もちろんなるべく低く設定します。
採掘者は多くの取引を承認すればそれだけ多くのガス代を獲得できますが、一方で低いGas Priceの取引を無視していいことになっています。つまりGas Priceが高く設定された取引から承認されます。
つまりGas Priceには市場があり、最終的なGas代(= Gas Fee × Gas Price)は需給で決まるようになっています。

取引量が多く$ETHの価格も高い現在では、通常の送金であっても取引手数料が5000円弱になってしまうのです。

このようなGas代高騰問題を解決するため、様々なスケーリング技術が開発・運用されています。

HiÐΞで使われているPolygon (Matic Network)もその一つです。
Polygonはガス代がかなり安い上に、様々なdAppが対応しています。
なお、Polygonのネイティブ通貨は$MATICとなっています。

このように登場したスケーリング技術と区別できるよう、元から存在したEthereumチェーンは「Ethereumメインネット」や「L1(レイヤー1)」と呼ばれたりします。

ガス代が高すぎるため、これ以降Ethereumメインネットに関わる話はしません。

アカウントの作成

ブロックチェーンでは、アカウントがなければ何もできません。
まずはMetaMaskなどのウォレットアプリをブラウザやスマートフォンにインストールし、アカウントを作成します。

Ethereumアカウントは、ランダムに生成された秘密鍵とそれに紐づくアドレスで成り立っています。
アカウント作成時にメモさせられたシードフレーズ(ニーモニック、パスフレーズとも言われます)は、秘密鍵を簡単に復元するためのものです。
秘密鍵からアドレスは簡単に計算できますが、逆にアドレスから秘密鍵を特定するのは量子コンピューターでも困難であるように設計されています。

取引を作成するときは、秘密鍵で取引内容を署名し、それをEthereumノード(デフォルトではウォレット制作者が準備したものが指定されています)に送信します。あとはチェーンの承認を待ちましょう。
取引承認の際には、その取引がそのアドレスのものかが署名で検証されるため、改竄の心配はありません。

逆に言うと、秘密鍵やシードフレーズを他人に知られてしまえば勝手に取引を作成されてしまいます。秘密鍵やシードフレーズを絶対に教えてはいけません。

一方、アドレスは公開することができます。アドレスをWeb上で公開すれば、たとえば寄付を受け付けたり保有するNFTコレクションを見せるたりすることができます。ただ、取引の履歴が全世界に公開されることになるので、よく考えて公開してください。
アカウントは簡単にいくつでも無料で生成できるので、非公開のアカウントと公開用アカウントを分けるなど用途を分けてアカウントを運用することもできます。

「取引所」のアカウントは?

いわゆる暗号資産取引所にも別にアカウントが作成されますが、Ethereumならではの自由度が損なわれるため、利用はあまりお勧めできません。
Ethereumを使うなら、資産はMetaMaskなどのウォレットで管理しましょう。

スマート・コントラクト

ETHはネイティブ通貨としてEthereum自体の規格やソフトウェアに定義されていますが、JPYCなどの通貨トークンやNFTはEthereum上でどのように実現しているのでしょうか。
JPYCやNFTの正体はスマート・コントラクトと呼ばれるプログラムです。普通は省略してコントラクトと呼ばれます。

コントラクトはEthereumのバーチャルマシン(EVM)機能を使って実装されています。
EVM用のコードをプログラムし、手数料を支払ってコードを送信すれば、誰もがコントラクトをチェーン上に作成できます。

コントラクトにもアカウントと同じようにアドレスが割り振られます。

ブロックチェーンという広大な土地に、自販機やATMのような機械(=コントラクト)を設置するイメージです。そして設置した時点でその場所に住所(アドレス)が割り当てられます。

コントラクトの入出力や機能については、「ERC」として規格の標準化が行われています。標準化が行われていることで、様々なトークンを様々なdAppで利用したり他の互換チェーンで同じコントラクトを作成したりすることができます。
通貨トークンは「ERC-20」が広く使われ、NFTに用いるものでは「ERC-721」や「ERC-1155」が定義されています。

コントラクトは自由度が高い分、バグや脆弱性によって資産が盗まれて取り戻せなくなる可能性もあります。安易によくわからないdAppsを使うべきではありません。
また、偽のコントラクトにも注意してください。サービスの提供者はWebサイト上でコントラクトアドレスを公開しているので、使用するトークンやコントラクトが本物かどうかを判断することができます。

通貨トークン

ERC-20準拠コントラクトは、アカウントごとの残高を記録して送金などの機能を提供することで、通貨として振舞います。

草コイン

OpenZeppelinの既製のERC-20準拠のコントラクトコードを送信すれば、「自分の通貨」を簡単にEthereum上に作成することができます。
そうして作られた価値のないコインは「草コイン」や「Sh*t Coin」と呼ばれます。

ステーブルコイン

通貨トークンの一種として、ステーブルコインと呼ばれる、現実の国家の法定通貨と価値が同じになるよう調整されているトークンがあります。
米ドル(USD)のステーブルコインにはUSDCやTether(USDT)、DAIなどがあります。
日本円(JPY)のステーブルコインにはHiÐΞで使えるJPYCがあります。

ステーブルコインはDEXで他の通貨と簡単に交換できるため、暗号資産の出入口として最適です。

分散型取引所(DEX)

分散型取引所(DEX)は、通貨の両替(スワップ)をブロックチェーン上のコントラクトによって実現するものです。
PolygonだとQuickSwapSushiSwapがメジャーでしょうか。

たとえば、QuickSwapで10JPYCを$MATICに交換するといったことが可能です。

誰かが両替を行うには、他の誰かが両方の通貨を十分に預け入れて「流動性を提供」する必要があります。
余った資産で流動性を提供すると、誰かが両替した際に少しだけ手数料をもらうことができます。

このようにブロックチェーン上で行われる金融はDeFi(ディファイ・Decentralized Finance - 分散型金融)と呼ばれます。

流動性マイニング(イールドファーミング)

流動性マイニングは、流動性提供を発展させた黒魔術です。2桁や3桁の利率で資産を増やすことができるかもしれません。黒魔術なので自己責任でお願いします。

NFTs

通貨トークンのコントラクトは通貨の残高を管理しますが、NFTは発行したトークンに通し番号を付けて移転の履歴を管理します。
「NFTコントラクトXにおいて『トークンID 12番がアカウントAからアカウントBに移転した』」といった具合に取引が記録されます。

トークンIDごとの画像と説明の付与の規格についてもERC-721に規定されています。
ブロックチェーン上に画像データそのものを配置するのはちょっと厳しいものがあるので、チェーンにはURLのみを保存し、データはIPFSないしは通常のURLを参照します。

最大級のNFTマーケットプレイスであるOpenSeaは、取引のほぼすべてがコントラクトで実行されます。
OpenSeaでは知識なしにブラウザの操作のみでNFTを発行できます。
ただ、OpenSeaで発行したNFTはOpenSeaのコントラクトで発行され、polygonscanではERC-721トークンとして表示されません。

NFTは、デジタルアート作品やウイスキー樽の競売に使われたり、ゲームにおける土地やトレーディングカード或いはキャラクターなどといったアイテムの所有を表したりするのに使われています。

NFTは所有権を表現できる?

アートなどのデータは、NFTとして取引する場合、NFTにした時点でURLが公開されます。
第三者もそのURLを指定したNFTを作成できてしまうので、NFTがそのURLのデータの「所持」を表すかどうかは微妙なところです。
ただ、NFTの発行者が作者本人のものかどうか確かめれば真贋は判断できます。もっと確実なのは、URLにアクセスされてデータを返す際、「署名でアクセス者のアドレスを確認後、ブロックチェーンでそのアドレスがトークンを持っているか確認し、内容を所持者とそれ以外の人で書き換える」というような細工をすれば所持者を区別できるかと思います。

NFTは偽造可能??

コントラクトのアドレスは不変かつ上書きされることもないので、「コントラクトXの12番」という概念を偽造することは不可能です。

ただ、OpenSeaなどのプラットフォーム上で見た目を限りなくコピーすることは可能です。
NFTに限りませんが、OpenSeaなどトークン発行元以外のプラットフォームでNFTを購入する際には、そのコントラクトXのアドレスが発行元が公表しているものと同じかどうかを確認するべきでしょう。

なぜNFTは投機性が高いの?

NFTが投機に使われているのは、NFTが大量発行可能かつオークションでの転売ができる点がギャンブルに飢えた投機家を夢中にさせているからだそうです

NFTが、芸術家を対象(カモ)にした「商材」として使われている場合もあるそうです。
筆者としては、NFTアートの販売はOpenSeaといった大手の信頼性の高いプラットフォームで行うべきと考えます。また、繰り返し述べていますが、NFTは所有権を証明するという点では少し弱い規格であることに留意してください。

いかがでしたか?

結構長くて眠たい内容になってしまったかと思います。すみませんでした。

私のメインの活動である、SNSの分散規格のActivityPub/Fediverseについても興味を持っていただければ幸いです。


コメント
いいね
投げ銭
最新順
人気順
aqz/tamaina
3 years ago
コメント
いいね
投げ銭
最新順
人気順
トピック
アプリ

Astar Network

DFINITY / ICP

NFT

DAO

DeFi

L2

メタバース

BCG

仮想通貨 / クリプト

ブロックチェーン別

プロジェクト

目次
Tweet
ログイン