-
bitcoin $77323.969542 USD
0.01% -
ethereum $2523.414850 USD
2.23% -
tether $0.999674 USD
0.01% -
bnb $732.334794 USD
2.37% -
xrp $1.364311 USD
0.51% -
usd-coin $0.999831 USD
0.00% -
solana $101.751035 USD
1.88% -
tron $0.339246 USD
0.15% -
hyperliquid $78.911101 USD
-1.42% -
zcash $1143.169120 USD
2.95% -
dogecoin $0.084522 USD
0.58% -
monero $539.820025 USD
5.75% -
chainlink $11.538258 USD
0.03% -
unus-sed-leo $9.111763 USD
0.28% -
cardano $0.208079 USD
-0.46%
Wie aktualisiere ich einen Smart Contract mithilfe eines Proxy-Musters?
The Ethereum proxy pattern separates logic and storage, enabling upgrades via delegatecall while preserving state—provided storage layout remains consistent across versions.
Jan 23, 2026 at 03:40 am
Das Proxy-Muster in Ethereum verstehen
1. Das Proxy-Muster entkoppelt die Vertragslogik vom Speicher, indem es zwei separate Verträge bereitstellt: einen Proxy und eine Implementierung.
2. Benutzer interagieren ausschließlich mit dem Proxy, der alle Anrufe mithilfe von „delegatecall“ an den aktuellen Implementierungsvertrag weiterleitet.
3. Das Speicherlayout muss bei allen Implementierungs-Upgrades konsistent bleiben, um Datenbeschädigungen oder Fehlausrichtungen zu verhindern.
4. Der Proxy verwaltet einen einzelnen Speicherplatz für die Implementierungsadresse, sodass diese aktualisiert werden kann, ohne den Benutzerstatus zu beeinträchtigen.
5. Diese Architektur ermöglicht abwärtskompatible Änderungen und behält gleichzeitig die Guthaben, Zulagen und historischen Interaktionen in der Kette bei.
Schlüsselkomponenten eines transparenten Proxys
1. Der Proxy-Vertrag enthält eine Fallback-Funktion, die externe Aufrufe über Delegatecall an die angegebene Implementierung weiterleitet.
2. Eine Administratorrolle wird erzwungen, um Upgrade-Berechtigungen einzuschränken – nur autorisierte Adressen dürfen den Implementierungszeiger ändern.
3. Ein Modifikator prüft, ob der Aufrufer der Administrator ist, bevor er die Upgrade-Logik ausführt, und verhindert so eine unbefugte Neukonfiguration.
4. Der Implementierungsvertrag muss von einem Basisvertrag erben, der die Speicherstruktur definiert und so die Ausrichtung auf das Layout des Proxys gewährleistet.
5. Funktionsselektoren bleiben versionübergreifend erhalten; Neue Funktionen müssen Kollisionen mit vorhandenen Funktionen vermeiden, es sei denn, sie überschreiben das Verhalten absichtlich.
Schritte zur Bereitstellung und zum Upgrade
1. Stellen Sie den ersten Implementierungsvertrag bereit, der die Kerngeschäftslogik und die erforderlichen Statusvariablen enthält.
2. Stellen Sie den Proxy-Vertrag bereit, initialisieren Sie seinen Speicher mit der Adresse der ersten Implementierung und legen Sie die Admin-Adresse fest.
3. Stellen Sie sicher, dass der Proxy Aufrufe korrekt delegiert, indem Sie Testfunktionen aufrufen und bestätigen, dass die Rückgabewerte mit den erwarteten Ausgaben übereinstimmen.
4. Kompilieren und implementieren Sie beim Upgrade einen neuen Implementierungsvertrag mit geänderter Logik, aber identischem Speicherlayout.
5. Rufen Sie die upgradeTo-Funktion des Proxys mit der neuen Implementierungsadresse auf und stellen Sie sicher, dass nur der Administrator diese Transaktion auslöst.
Sicherheitsüberlegungen und Fallstricke
1. Fehlende oder falsche Ausrichtung des Speicherlayouts zwischen Implementierungen führt zu stiller Datenbeschädigung – Variablen können aus falschen Slots gelesen werden.
2. Wenn die Administratorrolle nicht gesichert wird, ist das gesamte System böswilligen Upgrades ausgesetzt. Es sollten Multi-Signatur-Wallets oder Zeitschlösser in Betracht gezogen werden.
3. Initialisierungsfunktionen müssen nach der Bereitstellung separat aufgerufen werden, da Konstruktoren nicht in Delegatecall-Kontexten ausgeführt werden.
4. Im Implementierungscode eingebettete externe Bibliotheksabhängigkeiten müssen ebenfalls konsistent aktualisiert werden, da ihr Bytecode Teil des Logikvertrags ist.
5. Das Wiedereintrittsrisiko steigt, wenn die Upgrade-Logik bei kritischen Übergängen nicht ordnungsgemäß vor rekursiven Delegatenaufrufen schützt.
Häufig gestellte Fragen
F: Kann ich die Administratoradresse nach der Bereitstellung ändern? Ja, die meisten Proxy-Implementierungen enthalten eine changeAdmin-Funktion, die das Aktualisieren der Administratoradresse ermöglicht, sofern der aktuelle Administrator den Anruf initiiert.
F: Was passiert, wenn ich vergesse, die aktualisierte Implementierung zu initialisieren? Der Vertragsstatus bleibt nicht initialisiert, wodurch kritische Variablen möglicherweise auf Standardwerten wie Null oder leeren Adressen zurückbleiben, was zu unerwartetem Verhalten führt.
F: Ist ein Downgrade auf eine frühere Implementierungsversion möglich? Ja, Downgrades werden technisch unterstützt, solange der vorherige Implementierungsvertrag noch in der Kette besteht und das kompatible Speicherlayout beibehält.
F: Werden während des Delegatecalls ausgegebene Ereignisse unter der Adresse des Proxys oder der Adresse der Implementierung angezeigt? Ereignisse werden unter der Adresse des Proxys ausgegeben, da die EVM beim Ausgeben von Ereignissen den aufrufenden Kontext und nicht das vom Delegaten aufgerufene Ziel protokolliert.
Haftungsausschluss:info@kdj.com
Die bereitgestellten Informationen stellen keine Handelsberatung dar. kdj.com übernimmt keine Verantwortung für Investitionen, die auf der Grundlage der in diesem Artikel bereitgestellten Informationen getätigt werden. Kryptowährungen sind sehr volatil und es wird dringend empfohlen, nach gründlicher Recherche mit Vorsicht zu investieren!
Wenn Sie glauben, dass der auf dieser Website verwendete Inhalt Ihr Urheberrecht verletzt, kontaktieren Sie uns bitte umgehend (info@kdj.com) und wir werden ihn umgehend löschen.
-
ETHFI Jetzt handeln$0.7524
21.23%
-
WLFI Jetzt handeln$0.05695
11.43%
-
JUP Jetzt handeln$0.2462
8.98%
-
SKY Jetzt handeln$0.06337
8.71%
-
PONS Jetzt handeln$0.6337
8.35%
-
STX Jetzt handeln$0.2711
7.92%
- CPEN Network Ink Token: Ein tiefer Einblick in Mobile Mining, Tokenomics und sein sich entwickelndes Erbe
- 2026-09-12 16:35:02
- XRP-Investoren stehen angesichts der Marktunsicherheit und wichtiger wirtschaftlicher Ereignisse vor einer kritischen Entscheidung
- 2026-09-12 16:40:01
- Ethereum-Wale heizen die ETH-Explosion inmitten der Marktvolatilität auf ein 8-Monats-Hoch an
- 2026-09-12 16:35:02
- Die sUSDe-Rendite, der Aave-Kreditsatz und die USDe-Schleife: Eine Gratwanderung im Big Apple von DeFi
- 2026-09-12 12:45:01
- USDC Bridge CCTP, Stablecoin Chain Change, Bridge Shutdown: Navigieren durch die neue Ära der kettenübergreifenden Transfers
- 2026-09-12 12:45:01
- Metaplanet kürzt den Executive-Aktienpool um 41,1 % aufgrund des Aufschreis der Investoren und des Rückzugs aus dem Incentive-Plan
- 2026-09-12 12:35:02
Verwandtes Wissen
Wie überprüft man das Futures-Volumen und das Open Interest von DOGE?
Sep 12,2026 at 08:39am
Verständnis des DOGE Futures-Volumens 1. Das Futures-Volumen bezieht sich auf die Gesamtzahl der DOGE Futures-Kontrakte, die innerhalb eines bestimmte...
Wie kann man das BTC-Futures-Volumen und das Open Interest überprüfen?
Sep 12,2026 at 03:19pm
Datenquellen für BTC-Futures-Metriken 1. CoinGlass API v4 liefert Echtzeit-Finanzierungsraten, Liquidations-Heatmaps und detaillierte Aufschlüsselunge...
Wie liest man das DOGEUSDT Perpetual Contract Chart?
Sep 11,2026 at 07:19pm
Preisbewegungen auf DOGEUSDT Perpetual Charts verstehen 1. Die Candlestick-Formation verrät die unmittelbare Marktstimmung – grüne Kerzen zeigen eine ...
Wie kann ich die Finanzierungsgebühr für BTC-Futures auf Binance überprüfen?
Sep 10,2026 at 08:00am
Auffinden der Anzeige der Förderrate 1. Navigieren Sie zur Handelsoberfläche von Binance Futures und wählen Sie den unbefristeten BTCUSDT-Kontrakt aus...
Wie berechnet man den Gewinn und Verlust von SOLUSDT-Futures?
Sep 10,2026 at 07:19pm
Verstehen der SOLUSDT-Futures-Kontraktspezifikationen 1. Jeder SOLUSDT-Futures-Kontrakt wird in USDT notiert und in USDT abgerechnet, was ihn zu einem...
Wie berechnet man den PnL für XRPUSDT-Futures?
Sep 09,2026 at 05:40pm
Verstehen der XRPUSDT-Futures-Kontraktspezifikationen 1. Jeder unbefristete XRPUSDT-Kontrakt wird in USDT notiert und in USDT abgerechnet, mit einem N...
Wie überprüft man das Futures-Volumen und das Open Interest von DOGE?
Sep 12,2026 at 08:39am
Verständnis des DOGE Futures-Volumens 1. Das Futures-Volumen bezieht sich auf die Gesamtzahl der DOGE Futures-Kontrakte, die innerhalb eines bestimmte...
Wie kann man das BTC-Futures-Volumen und das Open Interest überprüfen?
Sep 12,2026 at 03:19pm
Datenquellen für BTC-Futures-Metriken 1. CoinGlass API v4 liefert Echtzeit-Finanzierungsraten, Liquidations-Heatmaps und detaillierte Aufschlüsselunge...
Wie liest man das DOGEUSDT Perpetual Contract Chart?
Sep 11,2026 at 07:19pm
Preisbewegungen auf DOGEUSDT Perpetual Charts verstehen 1. Die Candlestick-Formation verrät die unmittelbare Marktstimmung – grüne Kerzen zeigen eine ...
Wie kann ich die Finanzierungsgebühr für BTC-Futures auf Binance überprüfen?
Sep 10,2026 at 08:00am
Auffinden der Anzeige der Förderrate 1. Navigieren Sie zur Handelsoberfläche von Binance Futures und wählen Sie den unbefristeten BTCUSDT-Kontrakt aus...
Wie berechnet man den Gewinn und Verlust von SOLUSDT-Futures?
Sep 10,2026 at 07:19pm
Verstehen der SOLUSDT-Futures-Kontraktspezifikationen 1. Jeder SOLUSDT-Futures-Kontrakt wird in USDT notiert und in USDT abgerechnet, was ihn zu einem...
Wie berechnet man den PnL für XRPUSDT-Futures?
Sep 09,2026 at 05:40pm
Verstehen der XRPUSDT-Futures-Kontraktspezifikationen 1. Jeder unbefristete XRPUSDT-Kontrakt wird in USDT notiert und in USDT abgerechnet, mit einem N...
Alle Artikel ansehen














