仮想マシン(EVM)

EVMの物理的なインスタンスは、雲や海の波を指すような方法で説明することはできません。これは、イーサネットクライアントを一緒に実行している何千ものコンピュータによって存在および維持されている実際のエンティティです。

PolySmartChainには、ほぼ同じ直感的なルールに従う独自のネイティブ暗号通貨(PSCETH)がありますが、より強力な機能であるスマートコントラクトもサポートしています。このより複雑な機能には、より複雑なアナロジーが必要です。PolySmartChainは分散型台帳ではなく、分散型台帳です。.PolySmartChainの状態は、すべてのアカウントと残高だけでなく、事前定義された一連のルールに従ってブロック間で変更でき、任意のマシンコードを実行できるマシン状態も保持する大規模なデータ構造です。ブロック内の状態を変更するための特定のルールは、EVMによって定義されます。

元帳からステートマシンまで

「分散型台帳」のアナロジーは、暗号化の基本ツールを使用して分散型通貨を実装するビットコインのようなブロックチェーンを説明するためによく使用されます。暗号通貨は「通常の」通貨のように動作します。これは、元帳を変更するために人々ができることとできないことを管理するルールがあるためです。たとえば、ビットコインアドレスは以前に受け取ったよりも多くのビットコインを使うことはできません。これらのルールは、ビットコインおよび他の多くのブロックチェーンでのすべてのトランザクションの基礎です。

PolySmartChainには、ほぼ同じ直感的なルールに従う独自のネイティブ暗号通貨(PSCETH)がありますが、より強力な機能であるスマートコントラクトもサポートしています。このより複雑な機能には、より複雑なアナロジーが必要です。PolySmartChainは分散型台帳ではなく、分散型台帳です。ステートマシン.PolySmartChainの状態は、すべてのアカウントと残高だけでなく、事前定義された一連のルールに従ってブロック間で変更でき、任意のマシンコードを実行できるマシン状態も保持する大規模なデータ構造です。ブロック内の状態を変更するための特定のルールは、EVMによって定義されます。

PolySmartChain状態遷移関数

EVMは数学関数のように動作します。特定の入力に対して、決定論的な出力を生成します。したがって、Etherをより正式に状態遷移関数を持つものとして説明することは非常に役立ちます。

    Y(S, T)= S'

古い有効な状態(S)>と新しい有効なトランザクション(T),のセットが与えられると、Ether状態遷移関数Y(S,T)は新しい有効な出力状態を生成しますS'

状態

PolySmartChainのコンテキストでは、状態は調整済みMerkle Patricia Trieと呼ばれる巨大なデータ構造であり、すべてのアカウントをハッシュでリンクし、ブロックチェーンに保存されている単一のルートハッシュまでさかのぼることができます。

取引

トランザクションは、アカウントからの暗号で署名された命令です。トランザクションには2つのタイプがあります。1つはメッセージ呼び出しトランザクションで、もう1つはコントラクト作成トランザクションです。

コントラクト作成トランザクションは、コンパイルされたスマートコントラクトバイトコードを含む新しいコントラクトアカウントを作成します。別のアカウントがそのコントラクトにメッセージ呼び出しを行うたびに、そのアカウントはそのバイトコードを実行します。

EVMの説明

EVMは、スタック深度が1024アイテムのスタックマシンとして動作します。各項目は256ビットの単語であり、使いやすさのために、256ビットの暗号化(Keccak-256ハッシュやsecp256k1署名など)が選択されています。

実行中、EVMはトランザクション間で持続しない一時メモリ(ワードアドレス可能なバイトの配列として)を維持します。

ただし、契約には、アカウントおよびグローバル状態の一部に関連付けられたMerkle Patriciaストレージトライ(単語アドレス可能な単語の配列として)が含まれています。

コンパイルされたスマートコントラクトバイトコードは、、、などXORの標準スタック操作を実行する多くのEVMオペコードとして実行されます。EVMは、、、などのブロックチェーン固有のスタック操作も実装します。

EVMの実装

EVMのすべての実装は、イーサネットによる貢献のおかげで、イーサネットイエローブックに記載されている仕様に従います。

Last updated