暗号資産の仕組み(イーサリアム編)
目次
- はじめに
- トランザクション(Tx)
- EVM(Etherium Virtual Machine)
- ガス代(gas fee)
- ブロックの発行方法
- おわりに
1. はじめに
本レポートではイーサリアムの仕組みについて説明する。イーサリアムとは、創始者であるヴィタリック・ブテリンがビットコインの技術拡張性が低いことに着目し、ブロックチェーン技術に更なる拡張性をもたらす為に作成した暗号資産で、人の手を介さずに契約内容を自動実行できるスマートコントラクトなどの機能が備わったプラットフォームである。
イーサリアムプラットフォーム上でできる代表的なこととして、DAppsと呼ばれる非中央集権的なアプリケーションの作成がある。イーサリアムの仕組みを説明するにあたり、まずはDAppsの挙動の中核をなすスマートコントラクトについて説明する。
スマートコントラクトを一言で例えると、自動販売機である。自動販売機では、100円を投入すると水が買え、150円を入れるとジュースが買える。中に人間がいないのに、投入した金額や押したボタンによって出てくるドリンクは違う、といった自動化の仕組みがあると言える。すなわち、スマートコントラクトを利用することで、内部に人間やサーバーがなくとも、あらゆる取引がプログラムで実行されるシステムを実現することができるのである。
イーサリアムが自動でプログラムを実行する仕組みを理解する上で重要なのが、トランザクション(Tx)、EVM、ガス代(gas fee)、そしてブロックの発行方法の4点である。
2. トランザクション(Tx)
トランザクション(Tx)とは、イーサリアムに状態変化を起こすメッセージの実行依頼のことである。一般的な例で言うと、「AさんがBさんに〇〇円分の暗号資産を送付した」や「ブロックチェーン上にあるCさんのデジタルアートがDさんに譲渡された」、「新しい情報をブロックチェーンに記述したい」という際にトランザクション(Tx)が発行される。[1]
「AさんがBさんに〇〇円分の暗号資産を送付した」と言う例を元に、もう少し掘り下げてみる。AさんがBさんに自分の資産を送る場合、その資産が入っている暗号資産のお財布(ウォレット)からイーサリアムに対して、「Bさんのウォレットにお金を送るよ」というトランザクション(Tx)を出す。
すると、イーサリアムはAさんのウォレットに対して署名(signature)を求める。署名(signature)とは、ウォレットの持ち主しか見ることのできない秘密鍵と言う暗号を使って、イーサリアムに対して資産の移動を承諾する署名を残すことである。署名(signature)が完了すると、トランザクション(Tx)が発行され資産の移動が完了する。
秘密鍵を用いた署名(signature)の仕組みがあることで、本人以外は自分の資産を触ることができなくなる。従って、資産は中央に管理者がいないイーサリアムであっても不正なく資産の移動が実現できる。
例えば、分散型取引所(DEX)や分散型マーケットプレイスなどのDAppsでは、いくつかのコントラクトを組み合わせ、署名(signature)とトランザクション(Tx)を通じてスマートコントラクトを起動させ、無人かつ非中央集権的な取引を可能にしている。
3. EVM(Ethereum Virtual Machine)
EVMは、Ethereum Virtual Machineの略語である。EVMは人間とイーサリアムの橋渡しをするマシンになる。
一般的に、私たち人間はイーサリアムというソフトウェアにSolidityというプログラミング言語で命令を出す。しかし、イーサリアム自体はSolidityを読み取ることができず、イーサリアムで読み取れる言語(EVM bytecode)に翻訳する機械(EVM)が必要になる。
4. ガス代(gas fee)
簡単に説明するとガス代(gas fee)とは、イーサリアムを悪意のあるアカウントから守るために考案された手数料のことである。
中央集権的な管理モデルの場合は、不正アカウントを中央にいるサーバーや人間が締め出す事ができる一方で、イーサリアム等のノードで分散管理されているモデルの場合、恣意的に特定のアカウントを締め出す事ができない。すると、悪意のあるハッカーが、無限ループ問題などの攻撃をイーサリアムに仕掛けてくる懸念が出てくるのである。
そこで、イーサリアムではトランザクション(Tx)が発行される度にガス代(gas fee)と言うネットワーク利用手数料を、イーサリアムの基軸通貨であるETHで徴収し、イーサリアムをハッカーから守る。
具体的な防ぎ方は、まず各トランザクション(Tx)の実行時にあらかじめ支払うべきガス代(gas fee)の上限を設定する。そして、プログラムの処理ごとに手数料が計算され、設定したガス代を上回った時点でそのプログラムの処理は失敗とみなされるという仕組みで無限ループ問題を根本的に発生させなくしているのである。
イーサリアムを利用するユーザの目線に立つと、資産の移動や新しいコードのデプロイの度に手数料が徴収されるのは煩雑なことであるが、まさにその手数料によって、イーサリアムは悪意あるハッカーに攻撃を仕掛けられる事態を未然に防いでいるのである。
5. ブロックの発行方法
イーサリアムはブロックチェーン上に成り立つシステムであるため、文字通り、ブロックというデータの入れ物にトランザクション(Tx)という情報が格納され、そのブロックが数珠繋ぎになって保存されるという仕組みで信頼を担保している。従って、誰かが次のブロックを作成しないと、その時点の最終ブロックに格納できる容量が満杯になってしまい、処理が停止してしまう。
イーサリアムでは、Proof of Stake(PoS)という仕組みでブロックを生成している。PoSは抽選で次のブロックの生成者を選ぶ仕組みで、より多くのETHを預け入れた人ほど、当選確率が高くなる。(なお、ブロック生成のためにETHを預け入れることをステーキングと呼ぶ。)
仮に、ブロック生成で不正が起きれば、基軸通貨のETHは連動して大きく値を下げるであろう。
多くのETHを保有している人は不正をすることで大きな損失を被るため、不正が起こる可能性は極めて低い、という仕組みになっているのである。
6. おわりに
全てのブロックチェーンには利用の目的がある。世界で初めての暗号資産であるビットコインのチェーンの目的は、分散化された決済の確立であった。
他方、イーサリアムのブロックチェーンはその用途が大きく拡大され、DAppsの挙動となる。そのため、イーサリアムにはスマートコントラクト、EVM、ガス代という独自の仕組みを有しており、これらを通じて、分散化されたソフトウェアがこれを読んでいる今の時点でも安全に機能しているのである。
参考文献
[1]:トランザクション | ethereum.org . ethereum.org . https://ethereum.org/ja/developers/docs/transactions/
[2]:イーサリアム仮想マシン(EVM) | ethereum.org . ethereum.org . https://ethereum.org/ja/developers/docs/evm/
[3]:ガスとフィー(手数料) | ethereum.org . ethereum.org . https://ethereum.org/ja/developers/docs/gas/
[4]:ブロック | ethereum.org . ethereum.org . https://ethereum.org/ja/developers/docs/blocks/