
Kaspa segera hadir di SSP, dan pustaka di baliknya bersifat open source
Dukungan Kaspa sedang dalam perjalanan ke SSP. Ini akan menjadi multisig 2-dari-2 yang sama dengan yang sudah Anda gunakan untuk Bitcoin, Ethereum, dan Solana: satu kunci di SSP Wallet, satu di SSP Key, dan tidak ada yang berpindah kecuali keduanya setuju. Vault enterprise juga akan mendapatkan Kaspa.
Untuk sampai ke sini, kami harus membangun sesuatu yang belum ada. Hari ini kami bisa membagikan bagian yang sudah publik: @runonflux/kaspa-core, pustaka TypeScript open source untuk transaksi dan multisig Kaspa, dirilis di bawah lisensi MIT.
Mengapa kami membangun pustaka terlebih dahulu
Saat mempertimbangkan penambahan Kaspa, kami meninjau setiap paket JavaScript Kaspa yang bisa kami temukan. Tidak satu pun yang benar-benar mampu membangun dan menandatangani transaksi multisig Kaspa dari awal hingga akhir, padahal itulah yang paling dibutuhkan SSP.
Jalur resminya adalah kode Rust milik Kaspa yang dikompilasi ke WebAssembly. Itu perangkat lunak yang sangat baik, tetapi kurang cocok untuk SSP. SSP Key berjalan di React Native, yang tidak menyediakan WebAssembly, dan ekstensi browser harus tetap ringan: bundel WebAssembly-nya saja lebih dari 11 MB.
Jadi kami menulis ulang aturan transaksi Kaspa dari nol dalam TypeScript murni: alamat, script, multisig M-dari-N, hash tanda tangan, penandatanganan Schnorr, perhitungan biaya dan "massa", serta pemilihan input. Pustaka ini memiliki dua dependensi runtime, yaitu pustaka kriptografi @noble yang banyak digunakan dan telah diaudit, dan berjalan tanpa perubahan di browser, ekstensi, Node, dan React Native.
Cara kami memeriksanya
Untuk kode dompet, "sepertinya berfungsi" bukanlah standar. Pustaka ini dibangun agar terbukti identik dengan node Kaspa itu sendiri:
- Diperiksa terhadap kode Kaspa sendiri. Rangkaian pengujian menjalankan setiap fungsi yang kritis bagi konsensus terhadap rusty-kaspa, implementasi node referensi, dan mengeksekusi transaksi yang ditandatangani pustaka melalui mesin script aslinya, termasuk setiap kombinasi M-dari-N dari 1-dari-1 hingga 15-dari-15.
- Data mainnet nyata. ID transaksi dan tanda tangan yang sudah ada di mainnet direproduksi secara persis.
- Transaksi mainnet dengan dana nyata. Lima belas transaksi nyata, di antaranya pengeluaran 2-dari-2 ala SSP, satu 2-dari-3, serta multisig ala enterprise 4-dari-7, 6-dari-10, dan 10-dari-15, dibangun dan ditandatangani dengan pustaka ini lalu diterima oleh jaringan. Untuk setiap transaksi, perhitungan massa transaksi oleh node sama persis dengan perhitungan kami.
- Tinjauan adversarial. Beberapa putaran tinjauan keamanan secara khusus mencari cara untuk mengelabui penanda tangan atau menggelembungkan biaya. Tidak ditemukan masalah kritis, dan setiap temuan telah diperbaiki disertai uji regresi. Laporannya dipublikasikan bersama kodenya.
Kode terbuka adalah bagian dari prinsip yang sama dengan build yang dapat direproduksi: Anda tidak seharusnya harus memercayai kata-kata kami tentang apa yang menandatangani transaksi Anda.
Seperti apa Kaspa di SSP nantinya
Vault Kaspa Anda akan berupa alamat multisig Kaspa (diawali dengan kaspa:p), yang diturunkan dari kedua perangkat Anda pada jalur derivasi SSP yang biasa. Pengiriman bekerja seperti pada chain lain: SSP Wallet menyiapkan dan menandatangani bagiannya, SSP Key menampilkan penerima, jumlah, dan biaya, dan baru setelah Anda menyetujuinya di sana transaksi mencapai jaringan. Ini adalah model 2-dari-2 yang sama, di chain baru.
Beberapa detail khas Kaspa membentuk desainnya:
- Setiap perangkat memeriksa jumlahnya sendiri. Tanda tangan Kaspa hanya berkomitmen pada jumlah input yang ditandatanganinya, sehingga perangkat yang memercayai jumlah yang diberikan kepadanya bisa dikelabui soal biaya. Di SSP, setiap perangkat mencari sendiri koin yang dibelanjakan sebelum menandatangani, dan hanya menandatangani untuk vault-nya sendiri.
- ID transaksi sudah diketahui sebelum penandatanganan. ID transaksi Kaspa tidak menyertakan tanda tangan, sehingga SSP dapat mengunci transaksi ke ID finalnya sebelum salah satu kunci menandatanganinya.
- Batas atas biaya sudah terpasang. Biaya dibatasi, sehingga estimasi biaya yang buruk tidak bisa berubah menjadi kesalahan yang mahal.
Untuk bisnis, vault SSP Enterprise akan mendukung Kaspa dengan persetujuan M-dari-N, hingga batas standar Kaspa yaitu 15 kunci per vault.
Yang tidak ada di rilis pertama
Kami lebih suka merilis hal kecil dengan baik daripada hal besar secara asal-asalan. Rilis pertama mencakup KAS itu sendiri di mainnet. Token KRC-20, testnet Kaspa, penandatanganan pesan Kaspa, dan WalletConnect untuk Kaspa tidak disertakan saat peluncuran.
Kapan
Dukungan Kaspa telah diimplementasikan di SSP Wallet, SSP Key, dan SSP Enterprise, dan saat ini sedang menjalani pengujian akhir. Kami akan mengumumkannya di sini, beserta catatan rilis, saat sudah tersedia. Sampai saat itu, tidak ada yang perlu diaktifkan dan tidak ada yang perlu diunduh, dan siapa pun yang mengatakan sebaliknya bukanlah kami.
Sementara itu, para pengembang sudah bisa menggunakan pustaka ini hari ini: tersedia di npm sebagai @runonflux/kaspa-core dan di GitHub di RunOnFlux/kaspa-core.


