Keunggulan nyata dari model eksekusi ganda Dusk bukanlah kompatibilitas EVM. Itu adalah pilihan arsitektural.
@Dusk memisahkan penyelesaian (settlement) dari eksekusi: DuskVM menjalankan kontrak Rust/WASM secara langsung di Dusk L1, sementara DuskEVM menyediakan eksekusi yang kompatibel dengan EVM dengan settlement dan ketersediaan data melalui DuskDS.
Konsekuensi yang lebih mendalam adalah pengembang dapat memilih di mana logika aplikasi berada, alih-alih memaksa setiap beban kerja masuk ke satu model eksekusi.
Jika sebuah kontrak membutuhkan akses langsung ke model transaksi L1 Dusk, privasi, atau kemampuan zero-knowledge, DuskVM adalah jalur aslinya. Jika prioritasnya Solidity, dompet yang sudah ada dan ekosistem tooling Ethereum, DuskEVM menurunkan hambatan migrasi. Dusk secara eksplisit menampilkan dua jalur tersebut sebagai pilihan berdasarkan kebutuhan aplikasi.
Namun fleksibilitas itu memunculkan pertanyaan arsitektural yang menurut saya lebih menarik daripada kompatibilitas:
Di mana sebuah invarian harus berada?
Menurut saya, aturan yang hanya terkait dengan satu lingkungan eksekusi dapat tetap bersifat lokal di lingkungan tersebut. Aturan yang menjangkau lintas jalur eksekusi atau bergantung pada settlement memerlukan kepemilikan dan batas koordinasi yang eksplisit.
Pembedaan ini penting karena lapisan Dusk tidak dapat saling dipertukarkan. DuskDS menyediakan konsensus, finalitas, settlement, dan ketersediaan data, sementara DuskVM dan DuskEVM menyediakan lingkungan eksekusi yang berbeda.
Jembatan membuat batasnya menjadi nyata. Dalam alur penarikan (withdrawal) DuskEVM Testnet yang terdokumentasi, sebuah penarikan dimulai di DuskEVM, lalu dibuktikan dan difinalisasi di Dusk L1. Oleh karena itu, alurnya melewati lapisan eksekusi, bukan berperilaku seperti satu operasi monolitik.
Kesimpulan saya: modularitas tidak sekadar mengurangi kompleksitas. Modularitas memungkinkan pengembang menentukan di mana kompleksitas seharusnya berada.
Untuk aplikasi keuangan, itu bisa menjadi keunggulan arsitektural yang berarti: pertahankan logika yang spesifik eksekusi tetap lokal, sambil memperlakukan aturan lintas-lapis (Cross-layer) sebagai batasan arsitektur yang eksplisit.
Aturan mana yang harus tetap berada di dalam satu lingkungan eksekusi, dan aturan mana yang cukup penting untuk ditegakkan di seluruh arsitektur?
$DUSK #dusk
@Dusk memisahkan penyelesaian (settlement) dari eksekusi: DuskVM menjalankan kontrak Rust/WASM secara langsung di Dusk L1, sementara DuskEVM menyediakan eksekusi yang kompatibel dengan EVM dengan settlement dan ketersediaan data melalui DuskDS.
Konsekuensi yang lebih mendalam adalah pengembang dapat memilih di mana logika aplikasi berada, alih-alih memaksa setiap beban kerja masuk ke satu model eksekusi.
Jika sebuah kontrak membutuhkan akses langsung ke model transaksi L1 Dusk, privasi, atau kemampuan zero-knowledge, DuskVM adalah jalur aslinya. Jika prioritasnya Solidity, dompet yang sudah ada dan ekosistem tooling Ethereum, DuskEVM menurunkan hambatan migrasi. Dusk secara eksplisit menampilkan dua jalur tersebut sebagai pilihan berdasarkan kebutuhan aplikasi.
Namun fleksibilitas itu memunculkan pertanyaan arsitektural yang menurut saya lebih menarik daripada kompatibilitas:
Di mana sebuah invarian harus berada?
Menurut saya, aturan yang hanya terkait dengan satu lingkungan eksekusi dapat tetap bersifat lokal di lingkungan tersebut. Aturan yang menjangkau lintas jalur eksekusi atau bergantung pada settlement memerlukan kepemilikan dan batas koordinasi yang eksplisit.
Pembedaan ini penting karena lapisan Dusk tidak dapat saling dipertukarkan. DuskDS menyediakan konsensus, finalitas, settlement, dan ketersediaan data, sementara DuskVM dan DuskEVM menyediakan lingkungan eksekusi yang berbeda.
Jembatan membuat batasnya menjadi nyata. Dalam alur penarikan (withdrawal) DuskEVM Testnet yang terdokumentasi, sebuah penarikan dimulai di DuskEVM, lalu dibuktikan dan difinalisasi di Dusk L1. Oleh karena itu, alurnya melewati lapisan eksekusi, bukan berperilaku seperti satu operasi monolitik.
Kesimpulan saya: modularitas tidak sekadar mengurangi kompleksitas. Modularitas memungkinkan pengembang menentukan di mana kompleksitas seharusnya berada.
Untuk aplikasi keuangan, itu bisa menjadi keunggulan arsitektural yang berarti: pertahankan logika yang spesifik eksekusi tetap lokal, sambil memperlakukan aturan lintas-lapis (Cross-layer) sebagai batasan arsitektur yang eksplisit.
Aturan mana yang harus tetap berada di dalam satu lingkungan eksekusi, dan aturan mana yang cukup penting untuk ditegakkan di seluruh arsitektur?
$DUSK #dusk
