メインコンテンツへスキップ

トランザクション — ETH.BUILD

教育ツールETH.BUILDを使用して、イーサリアムのトランザクションがどのように機能するかを実演します。イーサリアム・ネットワーク上でトランザクションがどのように構築、署名、送信されるかをご覧ください。

Date published: 2021年1月14日

オースティン・グリフィスによるチュートリアルで、ビジュアルプログラミングツールETH.BUILDを使用してイーサリアムのトランザクションがどのように機能するかを実演します。トランザクションの構造、ガス価格、署名、ブロードキャスト、トランザクション・プールについて解説します。

このトランスクリプトは、オースティン・グリフィスが公開した元の動画のトランスクリプト (opens in a new tab)のアクセシブルなコピーです。読みやすさのために軽く編集されています。

トランザクション手数料とマイナーのインセンティブ (0:00)

今日のETH.BUILDでは、トランザクションについてお話しします。これまで、トランザクションがブロックにマイニングされ、ブロックにパッケージ化され、チェーンにマイニングされる様子を見てきました。今回は、ブロック・リワード以外に、プール内の他の人々と比較して、マイナーが私たちのトランザクションをプールから取り出し、ブロックに入れてチェーンにマイニングするインセンティブとなるものについてお話しします。プールには入札を行っている何千人もの人々がいる可能性があり、その入札はこの手数料で行われます。

トランザクションに手数料を含めて、「私はアリスで、ボブに5を送信します。リプレイ攻撃を防ぐためのナンスは1です」と指定することができます。また、これをマイニングした人は誰でもその手数料を受け取ることができます。基本的に、アリスはボブに5を送信していますが、それをチェーンに入れるためにマイナーにも少額の手数料を支払っているのです。

イーサリアムのトランザクションの構造 (1:10)

イーサリアム上のトランザクションはどのようなものでしょうか?もはや「ボブ」や「アリス」ではなく、アドレスを使用します。値はETHではなくWeiになります。そして手数料もWeiになります。

早速このトランザクションを見てみましょう。ニーモニックを入力したアカウントがあり、イーサリアム・メインネットに接続しています。また、CoinMarketCapから価格データを取得するモジュールも実行しているため、0.1数ETHが約23ドルに相当することがわかります。

トランザクションのセットアップ (2:25)

これから行うのは、トランザクションを作成し、マイナーがそれを拾ってオンチェーンに配置するようにインセンティブを与えることです。アリスとボブという2人のキャラクターがいます。アリスは秘密鍵を使ってボブにいくらかの値を送信します。ここには「送信元(from)」アドレスのフィールドはありません。なぜなら、キーペアを使用して署名し、復元するからです。トランザクションはパッケージ化され、署名され、ネットワーク全体に送信されます。誰もそれを改ざんすることはできず、受信側では誰かがそれを復元し、署名したのが確かに私たちであることを確認できます。「送信元」アドレスはそこから導出されます。

ガス価格のストラテジー (4:20)

ガス価格はデフォルトで約4.1 Gweiに設定されています。これは41億Weiです。しかし、私たちはより戦略的になり、現在オンチェーンで何が起こっているかを確認したいと思います。最後のブロックには78件のトランザクションがあり、ガス価格は約5から最小値までの範囲であったことがわかります。基本的に、そのブロックにマイニングされるには5を超える必要があります。そこで、ガス価格をほんの少し高い5.001に設定しましょう。

Weiへの変換 (5:20)

Weiへの変換を行う必要があります。イーサリアムでは、主に2つの単位を扱います。人々が通常話すETHと、ETHのごくわずかな割合であるWeiです。ガス価格に使用するGweiは、その中間に位置します。この理由は、私たちが普段、1ペニーの何分の一という単位で話さないのと同じです。

アリスは0.18 ETHを持っており、ボブに0.05 ETHを送信します。ガス価格は5 Gweiに設定します。

署名とブロードキャスト (7:02)

アリスがトランザクションに署名することを選択すると、ネットワーク全体に送信できる署名付きトランザクションとして発信されます。誰もそれを改ざんすることはできません。受信側では、署名したのがアリスであることを導き出すことができ、送信先やマイナーに支払われるガスに関するすべての情報が含まれています。

その署名付きトランザクションを受け取り、ブロックチェーン・モジュールの送信関数に組み込みます。送信をクリックすると、ハッシュ、つまりトランザクション・ハッシュが返されます。基本的に、分散型ネットワークに送信すると、トランザクション・ハッシュが返ってきます。それがネットワークに送信されると、トランザクション・プールが存在し、人々は皆、自分のトランザクションを通すために入札を行っています。

ブロックの確認 (8:41)

ブロックチェーンに自分のトランザクションを照会することができます。案の定、すでにマイニングされています。ブロックを見て、ガス価格で並べ替えると、自分たちのトランザクションを見つけることができます。ガス価格5.001のトランザクションがあります。アリスからボブへの送信で、追加のデータはありません。下から4、5番目の位置に入っています。

トランザクションでデータを送信する (9:54)

値を送信し、トランザクションがオンチェーンで承認されるように入札することができます。しかし、もう1つ、データフィールドを見てみましょう。トランザクションと一緒にデータを送信することができます。これは16進数になります。アリスはボブにさらに6ドルを送信し、「hey Bob」というメッセージを添付します。「hey Bob」が16進数に変換されているのがわかります。

そのトランザクションに署名し、マイナーに送信すると、ネットワークに送られ、ハッシュが返ってきます。マイニングされるのを見守っていると、実際にマイニングされます。そのブロックを確認すると、データが添付されたトランザクションを見ることができます。

トランザクション・プールとガスの引き上げ (12:43)

最後のデモンストレーションとして、非常に低いガス価格(約1.001 Gwei)でトランザクションをプールに入れます。マイナーに十分なインセンティブを与えていないため、マイニングされずにそこに留まっています。トランザクションがトランザクション・プールで保留中であることがわかります。プールには100から300のトランザクションがありますが、マイニングされている最新のブロックを見ると、最小のガス価格は約5です。

したがって、このトランザクションを再送信する必要があります。10に引き上げましょう。これは必要以上に高い値ですが、同じナンスでガス価格を高くして、同じトランザクションを再送信します。ネットワークは「同じ人、同じトランザクションで、より多く支払う意思がある」と判断します。そしてピックアップされ、次のブロックにマイニングされます。

まとめ (14:52)

トランザクションを送信し、マイナーがそれをブロックのチェーンに入れるようにインセンティブを与えるためにガスを支払いました。また、トランザクションと一緒にデータも送信しました。このコールデータが付属するようになったことで、あらゆる種類の本当に素晴らしいことができるようになります。スマートコントラクトや多くの楽しいことについては、後ほど詳しく説明します。

このページは役に立ちましたか?