<h1>Smart Contract Upgradability</h1>

Smart contract upgradability, deployed contract'ın davranışını tam bir yeniden dağıtım olmadan geliştirme olanağı tanır, state ve harici etkileşimleri korur. Proxy tabanlı mimarilere ve titiz yönetişime dayanır.

Smart contract upgradability, dağıtılmış sözleşmelerin depolanan state'lerini kaybetmeden veya devam eden etkileşimleri kesintiye uğratmadan temel mantıklarında değişiklikler alabilme yeteneğidir. Bu genellikle depolamayı mantıktan ayırarak ve çağrıları bir proxy gibi yükseltilebilir bir katman aracılığıyla yönlendirerek elde edilir. Proxy tüm state'i depolar, delegasyon çağrıları ise bir implementation contract'tan mantık yürütür. Upgradeable pattern'ler arasında şeffaf proxy'ler ve UUPS bulunur, genellikle OpenZeppelin Upgrades gibi framework'lerle uygulanır. Temel hususlar arasında depolama düzenini korumak, constructor'lar yerine güvenli başlatmayı sağlamak ve yükseltmeler için sağlam erişim kontrolü ve yönetişim uygulamak yer alır. Güvenlik riskleri arasında admin anahtarının ele geçirilmesi, yükseltme veto etmeleri ve yanlış yapılandırma bulunur. Doğrulama ve testler esastır, formal verification bir yükseltme mekanizması olmaktan çok bir doğruluk disiplini olarak hizmet eder. Pratik rehberlik, yükseltme yollarını denetlemeyi, canary yükseltmelerini prova etmeyi ve depolama uyumluluğu ile başlatma güvenliğini zorlayan yerleşik araç zincirlerini kullanmayı içerir.

        graph LR
  Center["<h1>Smart Contract Upgradability</h1>"]:::main
  Rel_smart_contract_wallets["smart-contract-wallets"]:::related -.-> Center
  click Rel_smart_contract_wallets "/terms/smart-contract-wallets"
  Rel_smart_contract_security_auditing["smart-contract-security-auditing"]:::related -.-> Center
  click Rel_smart_contract_security_auditing "/terms/smart-contract-security-auditing"
  Rel_smart_contract_exploits["smart-contract-exploits"]:::related -.-> Center
  click Rel_smart_contract_exploits "/terms/smart-contract-exploits"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 5 yaşındaki gibi açıkla

Generated ELI5 content

🤓 Expert Deep Dive

Generated expert content

❓ Sık sorulan sorular

Why is smart contract upgradability important?

It enables security patches and feature updates without breaking existing state or user interactions.

What are common upgrade patterns?

Proxy based patterns such as Transparent Proxy and UUPS, with storage preserved in the proxy and logic in the implementation. Standards like EIP 1967 guide slot layout.

What are main risks?

Admin key compromise, storage layout mismatch, upgrade vetting failures, and governance risks can lead to breaches or broken state.

How can I upgrade securely?

Use battle tested frameworks like OpenZeppelin Upgrades, perform thorough testing, adopt timelocks or multisig governance, and validate storage compatibility.

How does initialization differ from constructors?

Upgradeable contracts use initializer functions to set up state since constructors execute only on deployment and do not run after upgrades.

Is formal verification required for upgrades?

Formal verification helps establish correctness but is not required for upgrading; it complements testing and review.

📚 Kaynaklar