Pelajari tentang pembaruan Solana v1.16, pemutakhiran terbaru ke klien validator Solana Labs

Tentang Apa Artikel ini?

Jaringan validator Solana telah berhasil mencapai mayoritas super dalam penerapan versi 1.16, upgrade terbaru ke klien validator Solana Labs. Setelah periode audit yang melelahkan, didukung oleh upaya berdedikasi dari para sukarelawan dan canary node, pencapaian ini merupakan puncak dari pengembangan yang ketat selama hampir sepuluh bulan.

Pada bagian berikut, kita akan mempelajari bagaimana v1.16 diuji serta sistem gerbang fitur Solana; kerangka kerja yang mengatur bagaimana fitur-fitur baru dimasukkan ke dalam jaringan secara bertahap. Kemudian kita akan beralih ke fitur baru yang diterapkan di v1.16.

Bagaimana v1.16 Diuji

v1.16 telah menjalani pengujian ketat selama beberapa bulan terakhir. Rilis v1.16 telah berjalan di testnet sejak 7 Juni 2023, dan telah menjalani berbagai stress test. Selain itu, sebagian kecil node sukarelawan diperbarui ke v1.16 mulai tanggal 23 Agustus 2023. Para sukarelawan ini mampu mengidentifikasi dan menyelesaikan berbagai masalah seperti startup yang lambat untuk node RPC serta kesalahan perlindungan umum. Solana Labs juga menerapkan beberapa node canary ke mainnet-beta. Hal ini dilakukan untuk memantau stabilitas node v1.16 dalam kondisi dunia nyata. Untuk melihat aktivitas masa lalu dan kemajuan yang dibuat node canary ini, kunjungi saluran #canaries-monitoring di Solana Tech Discord.

Untuk menangkap kasus-kasus edge atau kondisi balapan yang jarang terjadi, beberapa fuzzer runtime telah digunakan untuk mengeksekusi transaksi yang diacak sebagian. Transaksi ini dieksekusi pada versi runtime yang berbeda untuk memastikan kinerja yang konsisten. v1.16 juga telah diaudit secara ekstensif oleh Halborn. Laporan audit dipublikasikan ke repositori ini saat tersedia seiring waktu.

Fitur Gerbang

Penting untuk diingat bahwa beberapa fitur yang akan kita bahas di bagian berikut ini belum aktif. Sebaliknya, fitur diluncurkan secara perlahan menggunakan sistem gerbang fitur. Fitur diaktifkan pada periode tertentu berdasarkan prioritas relatif, dan urutan pengaktifannya di jaringan lain. Penjadwalan aktivasi gerbang fitur sejauh ini bersifat ad-hoc berdasarkan daftar kriteria, yang dapat Anda temukan di sini. Intinya, gerbang ini harus diaktifkan terlebih dahulu di tesnet, diikuti oleh devnet, dan terakhir di mainnet-beta. Untuk mengaktifkan fitur, teknisi dengan pasangan kunci aktivasi yang diperlukan mengirimkan transaksi yang diproses dan membuat fitur tersebut aktif pada periode berikutnya. Hanya satu gerbang fitur yang harus diaktifkan pada satu waktu per jaringan untuk memastikan kinerja yang tepat. Penting untuk dicatat bahwa beberapa fitur mungkin memerlukan periode “perendaman”, yang dapat menunda aktivasi gerbang dengan prioritas lebih rendah.

Sistem gerbang fitur ini diterapkan untuk memastikan bahwa perubahan yang melanggar konsensus tidak menyebabkan validator yang menjalankan versi lebih baru terputus dari rantai kanonik dan terus memproduksi blok. Misalnya, validator v1.14 tidak mengetahui tentang fitur baru v1.16 dan dapat membuat jaringan crash jika timbul perselisihan. Komitmen yang digabungkan minggu ini ke basis kode Solana mendorong semua perubahan yang melanggar konsensus untuk memiliki Dokumen Peningkatan Solana (SIMD). Templat masalah gerbang fitur sekarang akan menyertakan permintaan ke SIMD masalah tersebut. Hal ini membantu dalam standarisasi proses pengembangan dan memberikan transparansi yang lebih besar melalui dokumentasi terhadap perubahan baru.

Transfer Rahasia

Transfer Rahasia, sebuah fitur yang diperkenalkan oleh Token2022, menggunakan bukti tanpa pengetahuan untuk mengenkripsi saldo dan jumlah transaksi token SPL. Fokus utama fitur ini adalah untuk meningkatkan privasi pengguna melalui penekanan pada kerahasiaan, bukan anonimitas.

Transfer Rahasia memanfaatkan Enkripsi Twisted ElGamal untuk operasi matematika pada jumlah yang dienkripsi. Transfer ini divalidasi menggunakan Protokol Sigma, kategori khusus bukti tanpa pengetahuan di mana satu pihak (pemeriksa) dapat menunjukkan kepada pihak lain (verifikator) bahwa mereka mengetahui suatu rahasia tertentu tanpa benar-benar mengungkapkan rahasia itu sendiri. Pastikan untuk membaca artikel kami Apa itu Token2022? untuk mempelajari lebih dalam seluk-beluk Transfer Rahasia.

Fitur bagus yang menyertai peluncuran Transfer Rahasia adalah penambahan dukungan Command Line Interface (CLI). Perintah create-token telah diperluas untuk menyertakan tanda --enable-confidential-transfers, yang memungkinkan pengguna membuat token dengan transfer rahasia diaktifkan. Selain itu, perintah update-confidential-transfer-settings telah ditambahkan untuk mengaktifkan perubahan dinamis pada konfigurasi transfer rahasia untuk jangka waktu tertentu. Hal ini memungkinkan kunci auditor dan pengaturan persetujuan diperbarui.

Dukungan Runtime yang Lebih Baik untuk Bukti Tanpa Pengetahuan

Rilis v1.16 meningkatkan kemampuan zero-knowledge Solana dengan dukungan runtime yang ditingkatkan untuk komputasi zero-knowledge, khususnya operasi kurva elips 128-bit. v1.16 memperkenalkan syscall alt_bn128, yang sangat penting untuk menghasilkan bukti secara efisien.

alt_bn128 mengacu pada implementasi spesifik kurva elips yang digunakan untuk operasi kriptografi yang dikenal sebagai kurva Barreto-Naehrig (BN-128). BN-128 adalah jenis kurva elips ramah pasangan khusus yang memungkinkan penerapan zk-SNARKs (Argumen Pengetahuan Non-Interaktif Ringkas Nol-Knowledge) secara efisien. Selain itu, kurva elips dianggap “ramah berpasangan” jika memungkinkan penghitungan tertentu dilakukan dengan lebih efisien. Jadi, dalam kasus kami, menggunakan kurva BN-128 membuat pengerjaan matematika dan pembuktian tanpa pengetahuan menjadi jauh lebih cepat.

Syscall, atau panggilan sistem, digunakan untuk meminta layanan dari kernel sistem operasi. Dalam konteks Solana, syscall memungkinkan program yang berjalan di Solana Virtual Machine (SVM) berinteraksi dengan sumber daya luar.

Jadi, syscall alt_bn128 adalah panggilan yang dapat digunakan program Solana untuk berinteraksi dengan kurva BN-128 yang sangat efisien. Hal ini membuat verifikasi bukti tanpa pengetahuan menjadi lebih efisien, menawarkan fitur keamanan dan privasi yang lebih baik di Solana. alt_bn128 syscall g1 dan g2 juga ditambahkan baru-baru ini, yang memungkinkan kompresi bukti Groth16. Hal ini penting karena jenis bukti ini memerlukan 256 byte data instruksi per bukti dan program Solana pribadi (PSP) saat ini perlu memverifikasi dua bukti Groth16. Dengan kompresi g1 dan g2, byte yang diperlukan per bukti dapat dikurangi setengahnya menjadi 128 byte, yang sangat penting untuk efisiensi ruang.

Selain itu, kontrak berbasis Soliditas menghadapi masalah kompatibilitas dengan Solana jika kontrak tersebut berisi panggilan ke kontrak yang telah dikompilasi berikut untuk operasi kurva elips:

  • bn256Add - Melakukan penambahan pada operasi kurva elips

  • bn256ScalarMult - Melakukan perkalian skalar pada operasi kurva elips

  • bn256Pairing - Operasi pemasangan kurva elips untuk melakukan verifikasi zkSNARKs dalam batas gas blok

Operasi ini distandarisasi pada Ethereum melalui EIP-196, EIP-197, dan EIP-198. Pengenalan syscall alt_bn128 merupakan lompatan signifikan dalam menjembatani kesenjangan kompatibilitas. Kontrak soliditas yang mengandalkan operasi kurva elips ini sekarang mungkin lebih mudah untuk bertransisi atau bahkan berinteroperasi dengan Solana.

Dimasukkannya syscall alt_bn128 dalam pembaruan Solana v1.16 menandai kemajuan besar dalam kemampuan Solana untuk menangani bukti tanpa pengetahuan secara efisien dan aman.