SLIP-39 adalah spesifikasi SatoshiLabs untuk bagian mnemonik interoperabel berdasarkan Shamir's Secret Sharing. Ia menstandarkan pembagian, metadata, pemeriksaan galat dan passphrase; bagian tidak dapat dipertukarkan dengan frasa BIP 39.
Untuk cadangan dompet BIP 32, rahasia utama adalah seed masukannya, bukan akar privat diperluas. Encrypted master secret (EMS) dibuat terlebih dahulu, kemudian bagian-bagiannya. Perhitungan memakai GF(256) per byte; spesifikasi menyimpan rahasia pada f(255) dan, untuk ambang minimal 2, digest verifikasi pada f(254). [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes] [BIP 32 — Hierarchical Deterministic Wallets]
Ambang anggota setiap kelompok yang dibutuhkan harus terpenuhi terlebih dahulu, lalu ambang kelompok. Contoh: 2 dari 3 kelompok, masing-masing 2 dari 3 anggota. Dua bagian A dan dua B cukup; tiga A dan satu B tidak, walau sama-sama empat. Skema sederhana 2-dari-3 memakai satu kelompok. [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes]
Daftar memiliki 1024 kata Inggris dan tidak diterjemahkan mengikuti antarmuka. Rahasia 128 bit menghasilkan bagian 20 kata, rahasia 256 bit 33 kata. Bagian juga memuat pengenal, flag extendable, eksponen iterasi, indeks dan ambang. Penggabungan memeriksa kesamaan metadata dan keunikan indeks anggota; dua salinan bagian yang sama bukan dua anggota. [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes]
Tiga kata terakhir membentuk RS1024, yang menjamin deteksi galat pada paling banyak tiga kata. Kata-kata itu tidak membuktikan asal atau wewenang pemegang; spesifikasi tidak menyarankan koreksi otomatis. Digest rekonstruksi membantu mendeteksi kumpulan keliru. Pemeriksaan 32 bit tersebut membuat klaim ideal kebocoran nol di bawah ambang tidak dapat diterapkan pada SLIP-39 tanpa kualifikasi. [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes]
Enkripsi memakai empat putaran Feistel dengan PBKDF2-HMAC-SHA256, masing-masing 2500×2^e iterasi. Spesifikasi mengizinkan ASCII tercetak 32–126 dan string kosong bila tanpa passphrase. Passphrase yang benar tidak bisa diperiksa langsung: yang lain menghasilkan rahasia utama berbeda. Bagian valid tidak memastikan dompet yang dimaksud; periksa alamat yang sudah dikenal. [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes]
BIP 39 memiliki daftar kata, checksum, dan konversi frasa ke seed berbeda. Membagi kata-katanya ke beberapa kertas tidak menciptakan SLIP-39 atau perlindungan ambangnya. Menjaga dompet yang sama saat migrasi memerlukan seed BIP 32 dan konteks derivasi yang tepat; sekadar mengodekan ulang entropi awal dengan kata lain tidak menjaminnya. Verifikasi prosedur khusus yang didukung. [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes] [BIP 39 — Mnemonic code for generating deterministic keys]
Flag extendable bernilai 1 menghilangkan pengenal dari salt enkripsi. Ini memungkinkan pembagian ulang EMS yang sama dengan pengenal baru tanpa mengetahui passphrase. Trezor menjelaskan perluasan cadangan satu bagian yang kompatibel menjadi banyak bagian. Kumpulan baru tidak membatalkan yang lama: kombinasi awal yang cukup tetap memulihkan rahasia yang sama. [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes] [Trezor — Multi-share Backup]
SLIP-39 menyusun kembali satu rahasia saat pemulihan; tidak menciptakan Multisig atau persetujuan on-chain setiap transaksi. Penempatan harus membatasi kehilangan bersama dan penyerang memperoleh kombinasi yang cukup. Uji pemulihan pada perangkat tepercaya, simpan passphrase dan konteks dompet, serta periksa kompatibilitas dengan implementasi referensi dan vektor uji. Jumlah bagian saja tidak cukup. [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes] [Trezor — python-shamir-mnemonic reference implementation]
Untuk gambaran yang lebih utuh, baca entri ini bersama Shamir Secret Sharing, BIP 39, Trezor, Multisig, HD Wallet. Entri ini juga dirujuk dari BIP 39, Pavol “Stick” Rusnák, Shamir Secret Sharing.