Awalnya saya mengira @NewtonProtocol terutama tentang kepatuhan yang bisa diprogram. Setelah menghabiskan lebih banyak waktu dengan arsitekturnya, saya mendapati diri saya lebih memperhatikan tempat kebijakan-kebijakan itu sebenarnya berada, bukan pada kebijakan-kebijakan individualnya. Pergeseran itu mengubah cara saya memandang protokol tersebut.

Desain ini memisahkan otorisasi dari eksekusi aplikasi, alih-alih menyematkan aturan bisnis langsung di dalam setiap smart contract. Kebijakan yang ditulis dalam Rego mendefinisikan logika otorisasi, sementara aplikasi individual menyediakan batasan operasional mereka sendiri melalui konfigurasi PolicyClient. Batas pengeluaran, penerima yang disetujui, pembatasan yurisdiksi, dan persyaratan serupa menjadi konfigurasi runtime yang terstruktur, bukan logika kebijakan yang dikodekan secara permanen.

Perbedaan itu terasa lebih signifikan daripada yang tampak pada awalnya. Sebuah kebijakan tunggal dapat tetap dapat digunakan kembali sementara aplikasi yang berbeda beroperasi dalam batas otorisasi yang berbeda hanya dengan mengubah konfigurasi. Kebijakan mendeskripsikan proses pengambilan keputusan. Aplikasi menyediakan konteks. Tanggung jawab tersebut sengaja dibuat independen.

Tapi ada sesuatu yang terus menggangguku.

Penggunaan ulang hanya berhasil jika otorisasi tetap terikat pada asumsi persis yang melahirkannya. Newton menangani hal ini dengan menghasilkan pengenal kebijakan baru setiap kali konfigurasi PolicyClient berubah. Attestation yang dihasilkan di bawah konfigurasi sebelumnya აღარ berlaku setelah pengenal kebijakan yang dirujuk berubah. Karena itu, otorisasi menjadi terhubung bukan hanya pada logika kebijakan, tetapi juga pada konfigurasi yang tepat yang ada saat persetujuan dibuat.

Desain ini mengubah batasnya.

Alih-alih memodifikasi kode aplikasi setiap kali kebutuhan operasional berubah, pengembang menyesuaikan kebijakan atau konfigurasi sambil mempertahankan logika aplikasi. Ini dapat menyederhanakan pemeliharaan di banyak aplikasi, tetapi juga menggeser tanggung jawab ke manajemen kebijakan. Konfigurasi itu sendiri menjadi bagian dari model keamanan, bukan sekadar detail penerapan. Informasi eksternal memperkenalkan lapisan tanggung jawab lain. PolicyData Oracles berjalan sebagai komponen WASM yang terisolasi, mengembalikan data runtime terstruktur yang dievaluasi secara deterministik oleh kebijakan. Runtime secara sengaja membatasi akses jaringan, dan kegagalan diperlakukan secara berbeda tergantung di mana kegagalan itu terjadi. Kesalahan aplikasi terstruktur tetap terlihat oleh evaluasi kebijakan, sementara kegagalan eksekusi menjadi peristiwa DataProviderError yang menghentikan otorisasi sepenuhnya alih-alih menghasilkan keputusan normal.

Ini tidak menghapus kepercayaan. Ini memindahkannya.

Kedaluwarsa attestation memperkenalkan keputusan operasional lain. Jendela persetujuan yang lebih pendek mengurangi peluang replay, sementara jendela yang lebih panjang memberi pengguna lebih banyak fleksibilitas sebelum eksekusi. Tidak ada pilihan yang ideal; keduanya adalah jendela kedaluwarsa yang menyeimbangkan ketahanan terhadap replay dengan kegunaan. Pada akhirnya, pengguna berinteraksi dengan attestation yang masa berlakunya mencerminkan baik versi kebijakan maupun konteks eksekusi, bukan hanya status kontrak.

Dilihat seperti ini, Newton tampak kurang berfokus pada penggantian logika smart contract dan lebih pada memindahkan tempat evolusi otorisasi saat kebutuhan aplikasi berubah.

Apakah memindahkan evolusi kebijakan menjauh dari kontrak yang telah diterapkan menyederhanakan keamanan jangka panjang, atau justru hanya menciptakan lapisan berbeda tempat kompleksitas operasional menumpuk?

$NEWT #Newt $SUI $ETH