0xのCoreConceptの翻訳 #4

0xとイーサリウム上の開発

0xは将来的には、全てのメジャーなブロックチェーン上でのトレーディングを考えているが、現時点では、イーサリウムベースのアセットのみをサポートしている。このセクションでは、0xとイーサリウムの技術的な側面について概念的な話を説明をする。

イーサリウムの入門書

イーサリウムは、PoWベースのブロックチェーンであり、12秒ごとにブロックが生成される。このネイティブカレンシーをEtherと呼び、ブロック更新のたびに、マイナーに報酬としてこのEtherが支払われる。トランザクションは、ある値を1つのアカウントから別のアカウントに転送するというシンプルなもので、これ自体はビットコインに近い。ただ、同時に、その取引を発動する条件についても、小さなプログラムをブロックチェーン上に保管することができる。これらの小さいプログラムのことを、”スマートコントラクト”と呼び、ここではあらゆるアービトラリーロジックを実行可能になっている。その点を踏まえると、0xプロトコルは、イーサリウム上に作られたスマートコントラクトシステムの1つである。あるオーダーの条件やそのキャンセルなどがスマートコントラクトに相当するのである。

イーサリウムのアカウントタイプ

イーサリウムには、2つのアカウントタイプが存在する:

Externally owned accounts (EOA)

EOAは、人によって直接管理されるイーサリウムアカウントのことである。イーサリウムと0xは、手前のセクションで識別子を証明したブロックを構築するためのデジタル著名の正当性をイーサリウムのブロックチェーン上における特定アカウントのプロキシーオーナーシップにより、証明している。

両者のプラットフォームにおける特定のデジタル著名は、パブリックキーの暗号学を利用している。パブリックキーの暗号学においては、誰かが2つのキーを生成し、そのうちパブリックキーは、広く分散して管理され、プライベートキーの方は、そのオーナーによって管理される。プライベートキーと共に、メッセージをサインすることによって、オーナーは、そのプライベートキーが、特定のパブリックキーに対応するものであることを、プライベートキーの情報を公にすることなしに、世界に知らせることができる。イーサリウムは、この機能をEOAアカウントをサポートすることによって使用しおり、パブリックキーに由来するアカウントID(ないしはアドレス)を保証する。このパブリックキーに対応するプライベートキーをもつオーナーは、この仕組みによって、スマートコントラクトを発動することができ、価値の転送を行うことができる。0xが、イーサリウム上のスマートコントラクトであるが故に、プライベートキーのオーナーは、イーサリウム上の別のアカウントのユーザーと、0xプロトコルを使うことで、取引を完了することができるのである。

0xは、また、この既存のオーセンティケーションを使うことで、オーダーのメーカーが、0xのオーダーをオフチェーンで著名することを可能にしている。つまり、オーダーのメーカーは、自分のイーサリウム上のアセットを取引する際は、彼らのイーサリウムアカウントに紐付けられているプライベートキーと共にオーダーを著名しなければならない。この方法で、テイカーは、イーサリウム上で、メーカーが、きちんとそのアセットのオーナーシップがあることと、そして、注文を実行することができることの真正性を証明することができるのである。

Smart contract accounts

スマートコントラクトアカウントは、ブロックチェーン上に、スマートコントラクトのプログラムがディプロイされるたびに生成される。そのコントラクトコードは、このアドレスと共に生きるのである。スマートコントラクトプログラムに書き込まれた条件を発動するために、ユーザーは、そのアドレスに、トランザクションを送る必要がある。

そのトランザクションは、同様に、このプログラムのどの関数が発動されるかを特定し、どの変数が提供さえれるべきかも特定する。たとえば、0xを使って、あるメーカーのオーダーをテイカーが取引する場合、テイカーは、どの注文を完了するかを特定し、イーサリウムのトランザクションを0xのエクスチェンコントラクトアドレスに送信する。同時に、必要なパラーメーター、例えば、メイカーのオーダーのどれだけの分をテイカー側が受けるかなどの変数も与える。

Gas

このブロックチェーンのトランザクションには、マイナーに支払うための一定の手数料が要求される。この手数料は、マイナーにお願いする作業量に応じたものになる。スマートコントラクトはアービトラリーロジックを含むため、イーサリウムは、スマートコントラクトの開発者に、最適な価格設定を行うためのシステムを発明した。

このトランザクションを実行するための単位を、”GAS”と呼び、スマートコントラクトの内容に応じて、どれぐらいのGASが必要になるかをある程度想定することができる。しかし、マイナーへの報酬は、Etherで支払われるため、EtherとGasの間の取引レートが必要になってくる。ここに、固定のエクスチェンジレートをとるのではなく、イーサリウムのコアデベロッパーは、トランザクションの送り手が、支払える範囲の手数料を自分で決める方式を採用した。


この方法では、マイナーは、報酬条件に応じて、仕事を選び、ユーザーは、そのトランザクション処理を行う緊急度に応じて報酬レベルをあげるなどを行うことができる。このガスのオークション制度による価格ダイナミズムは、イサーリウムにおける全てのDEXに興味深い結果をもたらした。1つのブロックが消費可能なガスの量は、Block Gas Limitと呼ばれる制限が設けられている。Gasについて学ぶには、このブログポストを読むとよい。

つづく。

関連記事