EIP-8298 streicht die Beschraenkung auf die Laufzeit und erlaubt SETCODEFROM im Initcode
Ein Commit im EIP-Repository ueberarbeitet EIP-8298. Der Vorschlag fuehrt SETCODEFROM ein, einen EVM-Befehl, der den Code-Hash des aktuellen Kontos auf den Code-Hash eines Quellkontos setzt, das bereits bereitgestellten Code besitzt; der neue Code ist fuer spaetere Ausfuehrung sichtbar. Die Aenderung ist im Text klein und in der Wirkung nicht: In der Zusammenfassung stand bisher "runtime-only", und dieser Zusatz ist verschwunden. Der Commit-Titel macht die Absicht deutlich — SETCODEFROM im Initcode erlauben und als Quelle ein Konto mit bereits bereitgestelltem Code verlangen.
Als Begruendung nennt der Vorschlag Wiederverwendung von Code und die Oekonomie der Bereitstellung: Viele Vertraege mit identischem Laufzeitcode bereitzustellen ist teuer, und dies erlaubt es, auf bereits vorhandenen Code zu zeigen, statt erneut fuer dessen Schreiben zu zahlen. Als Voraussetzungen fuehrt der Vorschlag unter anderem EIP-3529, 3607, 6780, 7702, 8037 und 8038 auf.

Was das bedeutet
Den Befehl im Initcode zuzulassen ist der Unterschied zwischen einer Optimierung und einem Bereitstellungsmuster. Auf die Laufzeit begrenzt, ist SETCODEFROM ein Weg fuer ein bereits bereitgestelltes Konto, das Auszufuehrende zu wechseln. Im Initcode verfuegbar, wird er zu dem Mechanismus, ueber den ein Vertrag seinen Code ueberhaupt erst erhaelt — und genau das macht das Fabrikmuster guenstig statt bloss guenstiger.
Zugleich verschiebt sich die Frage, was der Code eines bereitgestellten Vertrags ist. Die Anforderung, dass die Quelle ein Konto mit bereits bereitgestelltem Code sein muss, ist hier die Leitplanke, und sie leistet echte Arbeit: Der uebernommene Code hat selbst eine Bereitstellung durchlaufen, statt am Verwendungsort zusammengesetzt zu werden. Wer Werkzeuge baut, die ueber Bytecode urteilen — Verifizierer, Indexer, alles, was nach Code-Hash zwischenspeichert —, sollte die endgueltige Fassung genau lesen: Wenn der Code eines Kontos zur Referenz auf den Code eines anderen wird, aendert sich, worauf diese Zwischenspeicher schluesseln.