内部トランザクション
内部トランザクションとは何ですか?
内部トランザクションは、外部トランザクション (EOA からスマート コントラクトに送信されるトランザクション) によってトリガーされるスマート コントラクト ロジックの結果です。
スマート コントラクトは、イーサリアム ブロックチェーンの最も重要な側面の 1 つです。これらは、契約の条項がエンコードされ、法的当局や中央当局が関与しない、ビジネスが自動化された自動実行のデジタル契約です。
イーサリアム スマート コントラクトは、ある意味、ブロックチェーン上にインストールされたコンピューター プログラムであり、イーサの残高やコード呼び出し間の状態を管理し、トランザクションを実行するために使用されます。ブロックチェーン上の他のすべてのものと同様、スマート コントラクトは一般に公開されています。
スマート コントラクト トランザクションは通常、不可逆的かつ追跡可能であり、 EOA とも呼ばれる外部所有のアカウントを通じて送信されます。このアカウントは多くの場合プライベートで個人によって保持されています。このようなスマート コントラクトの対話は、特定の事前定義された手順をトリガーし、「内部トランザクション」と呼ばれる副作用や副産物を生み出すため、魅力的です。単一のスマート コントラクトの関与により、数十、場合によっては数百の内部トランザクションが発生する可能性があります。これらは、スマート コントラクトまたはトークン転送の実行時に発生する値の転送です。
特定のイーサおよびトークンのトランザクションには、スマート コントラクトの実行が必要です。これらはメインの ETH トランザクション履歴に内部トランザクションとして表示され、表示されません。
トランザクションはイーサリアム チェーンの状態の変更です。つまり、トランザクションはデータを読み取るのではなく、チェーンにデータを書き込みます。
イーサリアムでは、いくつかの異なる状態変化が発生する可能性がありますが、ユーザーが最も心配するのはトランザクションです。開発者は、転送を追跡するアドレス アクティビティ通知を使用して、トランザクション (たとえば、2 つのイーサリアム アカウント間の価値の交換) についてユーザーに通知できます。
通常のトランザクションとは異なり、内部トランザクションには暗号署名がなく、通常はオフチェーンに保存されます。つまり、ブロックチェーン自体の一部ではありません。一部はオンチェーンに保存されますが、これには追加のガスの使用が必要となるため、あまり頻繁には使用されません。このような内部トランザクションは常に Ether を排他的に転送し、アドレス バランスに影響を与えます。
内部トランザクションが発生した場合、それに関する情報はあまりありません。その結果、消費者は、自分の住所、財布、または契約がいつ関係しているかに気づかないことがよくあります。
トランザクションの追跡には時間がかかることがあります。この操作は CPU を集中的に使用するため、ノードに負荷がかかります。ノードが十分に強力でない場合、トレース中にノードが破損し、そのノード上の残りのデータに問題が発生する可能性があります。
さらに、内部トランザクションの追跡結果は膨大になる可能性があり、保管と取得が問題になります。もう 1 つの問題は、通常、ノードがトレース操作を特定のブロック数 (通常は約 30 分相当のブロック)に制限していることです。その結果、潜在的な出来事に関する情報を収集できるようにするには、スマート コントラクト インタラクション後の期間が、アクションを起こす上で非常に重要になります。その結果、潜在的な内部トランザクションに関する情報を収集できるようにするには、スマート コントラクト インタラクション後の期間が重要です。
要約すると、内部トランザクションを追跡するには、時間、ノード容量、および処理能力が必要です。これは、簡単ですぐに利用できる操作であるはずですが、すべてのブロックチェーン ユーザーと暗号愛好家にとって不可能ではありません。