Saya meluangkan waktu membaca panduan peningkatan Protokol Newton dan saya terus kembali ke satu detail implementasi Baru variabel penyimpanan selalu ditambahkan ke tata letak penyimpanan yang sudah ada, bukan dimasukkan ke dalamnya
Kedengarannya hampir sepele
Saya tidak berpikir itu sepele. Saya pernah melihat kontrak yang dapat ditingkatkan rusak karena seseorang meremehkan tata letak penyimpanan. Peningkatan melalui proxy berhasil, pengujian terlihat baik, lalu berminggu-minggu kemudian seseorang menemukan bahwa sebuah variabel telah ditimpa karena urutan penyimpanan berubah. Itu berantakan. Kontraknya tidak selalu langsung gagal. Kadang kontrak hanya mulai berperilaku berbeda, yang jauh lebih sulit untuk didiagnosis
Newton Protocol menghindari jebakan itu dengan memperlakukan tata letak penyimpanan sebagai sesuatu yang harus dipertahankan, bukan diatur ulang. Saya suka pendekatan ini karena menghormati betapa rapuhnya proxy yang dapat di-upgrade
Detail lain yang menonjol adalah flag newtonPolicyClientInitialized Tujuannya sederhana. Inisialisasi pasca-upgrade hanya bisa terjadi sekali. Newton Protocol juga merekomendasikan pengujian upgrade pada fork dan penggunaan timelock atau multisig saat mengeksekusi transaksi inisialisasi. Itu tidak terasa seperti nasihat boilerplate untuk saya. Itu terasa seperti pengakuan bahwa upgrade belum selesai saat implementasi baru dideployInisialisasi merupakan bagian dari upgrade
Sampai langkah itu selesai, logika otorisasi mungkin sudah ada di dalam kontrak, tetapi klien kebijakan masih belum terhubung ke TaskManager yang benar atau ditugaskan ke pemilik policy-client yang dimaksud Jika salah satu nilai itu keliru, lapisan otorisasi bisa gagal meskipun deployment itu sendiri terlihat berhasil
Itulah sebabnya saya berpikir flag inisialisasi satu kali itu penting
Ini mencegah seseorang menjalankan inisialisasi lagi, tetapi tidak melindungi dari menjalankan eksekusi pertama dengan salah Jika konfigurasi awal berisi kesalahan, menguncinya di balik bendera satu kali tidak serta-merta memperbaikinya. Ini hanya membuat eksekusi pertama menjadi salah satu momen paling sensitif dalam keseluruhan proses deploymentSaya juga memperhatikan bahwa Newton Protocol tidak membekukan setiap konfigurasi secara permanen setelah inisialisasi Pemilik klien kebijakan masih dapat memperbarui pengaturan kebijakan, mengubah alamat kontrak kebijakan, dan mentransfer kepemilikan nanti. Saya sebenarnya lebih menyukainya daripada berpura-pura sistem tidak pernah perlu berkembang. Perubahan infrastruktur. Perubahan tata kelola. Perubahannya adalah membuat memastikan izin-izin itu tetap terkontrol dengan baik dari waktu ke waktu
Kompatibilitas penyimpanan menciptakan kategori risiko yang berbeda sama sekaliHal yang saya hargai tentang Newton Protocol adalah bahwa ia memungkinkan tim menerapkan penegakan kebijakan tanpa membangun ulang aplikasi mereka dari nol. Itu pilihan desain yang praktis Tetapi peningkatan proxy tetap harus mempertahankan kompatibilitas penyimpanan dengan sempurna. Masukkan satu variabel ke posisi yang salah, dan lapisan otorisasi mungkin terlihat sepenuhnya sehat sementara status aplikasi yang tidak terkait diam-diam jadi rusak
Saya sudah melihat cukup banyak sistem yang bisa di-upgrade untuk tahu bahwa itu bukan kekhawatiran hipotetis. Detail lain yang menurut saya tidak boleh diabaikan adalah alur eksekusi Menambahkan fungsi baru yang dilindungi Newton tidak otomatis mengamankan fungsi lama yang melakukan tindakan yang sama. Setiap jalur yang seharusnya menerapkan otorisasi tetap harus memanggil validateAttestation atau validateAttestationDirect sebelum logika bisnis yang dilindungi dijalankan. Jika Anda melewatkan satu jalur eksekusi, Anda menciptakan jaminan keamanan yang tidak konsisten tanpa menyadarinya
Itu kemungkinan besar hal yang paling menarik yang saya temukan tentang Newton Protocol
Arsitektur memisahkan NewtonPolicyClient dari logika bisnis aplikasi, alih-alih memaksa developer untuk mendesain ulang semuanya di sekitar framework baru. Saya umumnya lebih menyukai pendekatan modular seperti itu karena sistem besar jarang ditulis ulang dari nol. Sistem tersebut berevolusi satu upgrade pada satu waktu
Pada saat yang sama. Saya terus bertanya-tanya apakah risikonya benar-benar menghilang
Atau apakah itu hanya bergerak saja
Newton Protocol membuat otorisasi lebih mudah diintegrasikan ke dalam kontrak yang bisa di-upgrade yang sudah ada. Saya pikir itu berharga. Tetapi itu juga berarti upgrade proxy, migrasi penyimpanan, dan panggilan inisialisasi yang pertama kali menjadi titik di mana hampir semua risiko operasional terkonsentrasi
Saya tidak melihat itu sebagai kelemahan desainSaya melihat itu sebagai pengingat bahwa arsitektur yang baik tidak menghilangkan keputusan sulit. Biasanya itu hanya membuat keputusan tersebut lebih mudah dikenali
#NEW $NEWT @NewtonProtocol #Newt
Setiap upgrade mengubah kode, tetapi tidak setiap upgrade memperkuat keamanan Bagi saya, Newton Protocol menunjukkan bahwa detail implementasi terkecil sering kali berdampak paling besar dalam membangun smart contract yang tangguh



#GillibrandCallsForDigitalAssetEthicsBan #NHHB639ProtectsDigitalAssetSelfCustody #BitcoinReboundsAbove$61K

