ギャビンの初期の貢献は2つありました。まず、最初の設計におけるコントラクト呼び出しモデルが非同期であったことにお気づきかもしれません。コントラクトAはコントラクトBに対して内部トランザクションを作成することができましたが。内部トランザクションの実行は、最初のトランザクションの実行が完全に完了するまで開始されません。これは、トランザクションが他のコントラクトから情報を取得する方法として内部トランザクションを使用できないことを意味します。他のコントラクトから情報を取得するには、EXTROオペコードを使用するしかありません。
つまり、Gavinの実装では、あるコントラクトが別のコントラクトを呼び出すと、内部トランザクションは即座に実行されます。実行が完了すると、VMは内部トランザクションを作成したコントラクトに戻り、次のオペコードに進みます。私たち2人にとって、このアプローチはさらに良いと思われたので、仕様の一部にすることにしました。
第二に、彼と私の議論が、取引手数料モデルをコントラクト支払い方式からセンダー支払い方式にリファクタリングし、燃料アーキテクチャに切り替えるきっかけとなりました。このバージョンでは、個々の取引ステップの実行直後にイーサを消費するのではなく、取引開始者が一定の手数料を支払い、一定量の燃料が割り当てられます。同時に、計算ステップは燃料制限に依存します。ある取引で燃料がすべて消費された場合、その燃料は消費されますが、実行全体は元に戻されます。これは、コントラクトが以前心配しなければならなかったすべてのタイプの部分的実行攻撃を取り除くので、最も安全なアプローチと思われます。トランザクションの実行が完了すると、チャージされた未使用の燃料は払い戻されます。
プログラマブル通貨を構築するためのプラットフォーム、つまりデジタル資産を保有し、あらかじめ設定されたルールに従ってそれらを移転するブロックチェーンベースの契約を持つプラットフォームから、汎用コンピューティングプラットフォームへ。-汎用コンピューティング・プラットフォームへ。この変化は、イーサリアムの焦点と用語の微妙な変化から始まり、その後、ウェブ3の統合がますます重視されるようになり、影響力を増しています。