Mengapa smart contract bisa di-upgrade? Apa itu kontrak proxy, hak admin, dan risikonya?

🔄 Kode di blockchain tidak dapat diubah. Lalu, mengapa smart contract tetap bisa di-upgrade?
Cara yang umum bukan dengan mengubah kode kontrak asli, melainkan membagi sistem menjadi dua bagian:
Kontrak proxy: mempertahankan alamat akses pengguna, saldo, dan data status
Kontrak implementasi: menyediakan logika bisnis yang sebenarnya

Pengguna selalu berinteraksi dengan kontrak proxy; proxy menjalankan kode kontrak implementasi melalui delegatecall, tetapi lingkungan eksekusi, penyimpanan, dan saldo tetap menjadi milik proxy. Saat upgrade, admin hanya perlu mengganti alamat implementasi yang tercatat di proxy dari V1 ke V2.

Pola yang umum meliputi:
Transparent: mekanisme upgrade dan admin berada di sisi proxy
UUPS: logika upgrade berada di kontrak implementasi; _authorizeUpgrade harus dibatasi dengan ketat
Beacon: beberapa proxy membaca Beacon yang sama; memperbarui Beacon dapat sekaligus mengganti implementasi yang digunakan proxy-proxy tersebut

Mekanisme yang dapat di-upgrade memudahkan perbaikan kerentanan dan penambahan fitur, tetapi hak upgrade juga dapat mengubah aturan biaya, pembekuan, pencetakan token, dan transfer. Karena itu, perhatikan hal-hal berikut:
Siapa yang memiliki hak upgrade (satu penanda tangan, multisig, timelock, atau DAO)
Apakah kode sumber implementasi baru tersedia untuk umum dan telah diaudit
Apakah tata letak penyimpanan kompatibel (perubahan urutan atau tipe variabel dapat merusak data lama)
Apakah fungsi inisialisasi hanya dapat dijalankan sekali dan apakah kontrak implementasi sudah dikunci
Apakah peristiwa upgrade diumumkan secara publik dan pengguna diberi waktu untuk meninjaunya

⚠️ Dapat di-upgrade bukan berarti tidak perlu dipercaya. Meskipun alamat proxy tidak berubah, kode implementasi yang sedang ditunjuknyalah yang menentukan aturan sistem.

Pratinjau edisi berikutnya|Jumat · Kelas Teknologi Trading · Edisi ke-006
《Apa itu ATR? Bagaimana menggunakan volatilitas untuk menetapkan stop-loss, bukan persentase tetap?》