Saya terus kembali ke satu hal kecil dalam rancangan Newton yang tidak bisa saya lepas begitu saja: eksekusi tidak diperlakukan sebagai otorisasi.
Sebuah smart contract dapat menerima sebuah transaksi, tetapi tetap meminta sesuatu lagi sebelum logika yang dilindungi dijalankan. Tanda tangan menyatakan siapa yang memanggil. Bukti kebijakan menyatakan apakah tindakan spesifik ini diizinkan. Pembedaan itu terdengar sederhana, tetapi mengubah segalanya.
Awalnya terlihat rapi. Dompet bisa valid, namun transfer di atas batas pengeluaran tetap akan diblokir. Seorang agen bisa memiliki izin untuk melakukan perdagangan, tetapi tidak untuk merutekan dana ke tempat yang melanggar aturan risiko. Otorisasi tidak lagi diasumsikan; otorisasi menjadi sesuatu yang didapat pada saat transaksi terjadi.
Namun di sinilah halnya menjadi tidak nyaman. Mekanismenya memblokir tindakan langsung—tetapi aturan-aturan di sekelilingnya masih bisa membengkokkannya. Jika ada jalur darurat yang dapat melewati pemeriksaan kebijakan, gerbang ketat itu berubah menjadi sebagian bersifat seremonial. Jika sinyal oracle yang memberi makan kebijakan sudah usang atau terlalu luas, pernyataan/attestation bisa saja valid sementara realitas sudah bergerak. Transaksi yang diblokir mudah dipahami. Yang diizinkan namun dibangun di atas asumsi yang dilunakkan tidak.
Pemeriksaan kebijakan bersifat ketat. Jalur pengecualiannya mungkin tidak.
Eksekusi mengikuti kode. Otorisasi mengikuti konteks.
Kontrol yang terlihat paling aman hanya sekuat apa pun yang masih boleh berbicara setelahnya. Jadi pertanyaan sesungguhnya bukan apakah contract memeriksa otorisasi—melainkan apa yang masih dapat membentuk ulang otorisasi itu sebelum eksekusi terjadi.
@NewtonProtocol #Newt $NEWT #compaign #trading #views #like_comment_follow