Pada 2025-08-03, SSP Wallet v1.25.0 mengirimkan dua perubahan yang, jika digabungkan, memperbaiki salah satu kelemahan terlama yang tak terucap dalam distribusi dompet: Anda tidak perlu lagi percaya bahwa biner di toko adalah biner di repositori. Rilis kini dibangun secara deterministik di dalam Docker dan ditandatangani dengan GPG. Siapa pun — bukan hanya kami, bukan hanya seorang auditor — bisa membangun ulang dari kode sumber dan memverifikasi bahwa hasilnya cocok, bita demi bita, dengan yang kami publikasikan.
Jangan percaya, verifikasi — diterapkan ke biner dompet
Maksim bitcoin «jangan percaya, verifikasi» biasa diucapkan tentang transaksi. Berlaku, dengan kekuatan yang sama, untuk perangkat lunak yang menandatangani transaksi tersebut. Kode sebuah dompet bisa terbuka dan diaudit dan tetap mengirim biner yang terkompromikan, karena jalur dari kode ke biner melewati server build, langkah pengemasan, kunci penandatanganan kode, dan unggahan ke toko. Mata rantai mana pun bisa diracuni. Token CI yang bocor, biner yang ditukar dalam pipeline, agen build yang dirusak — tak satu pun menyentuh repositori publik dan tak satu pun tampak dari git log.
Jawaban defensif terhadap model ancaman tersebut adalah biner itu sendiri harus dapat diverifikasi. Bukan «dapat diverifikasi karena kami berjanji». Dapat direproduksi oleh orang asing.
Build deterministik dengan Docker
Itulah yang dikirimkan v1.25.0. Setiap rilis SSP kini dibangun di dalam container Docker dengan image dasar terpinned, versi toolchain terpinned, dan lingkungan yang sepenuhnya terisolasi. Build tidak memiliki akses jaringan di tempat yang tidak diperlukan, tidak membocorkan sistem berkas host, tidak menanam timestamp atau jalur khusus mesin ke output. Output adalah fungsi deterministik dari input.
Konsekuensi praktis: kode sumber identik menghasilkan biner identik dengan checksum yang cocok. Ambil tag, bangun di container yang didokumentasikan pada mesin Anda, dan Anda akan mendapatkan SHA-256 yang sama dengan kami. Jika tidak, sesuatu telah menyimpang antara tag dan biner yang dipublikasikan — dan itulah sinyal yang Anda inginkan, karena satu-satunya hasil yang jujur adalah «biner cocok dengan kode» atau «tidak cocok».
Ini adalah mitigasi serangan rantai pasok. Ia tidak mengasumsikan bahwa server build jujur. Ia tidak mengasumsikan bahwa laptop pengembang bersih. Ia tidak mengasumsikan apa pun dan memberikan kepada orang asing alat untuk memeriksa.
Rilis yang ditandatangani GPG
Reproduksibilitas memberi tahu Anda bahwa sebuah biner berkaitan dengan satu pohon sumber. Ia sendiri tidak memberi tahu pohon sumber mana yang asli. Itulah yang diselesaikan tanda tangan GPG.
Setiap artefak v1.25.0 — bundle ekstensi, berkas checksum — ditandatangani dengan kunci rilis SSP. Tanda tangan dipublikasikan di samping rilis di GitHub. Untuk memverifikasi unduhan, Anda mengimpor kunci publik sekali, menjalankan gpg --verify terhadap tanda tangan, dan alat memberi tahu apakah berkasnya utuh dan apakah kunci yang menandatangani adalah yang Anda harapkan.
Kedua mekanisme komposisional. Tanda tangan GPG membuktikan «ini berkas yang dirilis SSP». Build deterministik membuktikan «berkas ini berkaitan dengan commit ini». Bersama-sama mereka menghapus celah kepercayaan antara commit dan instalasi.
Cara memverifikasi rilis sendiri
Halaman rilis di GitHub adalah sumber otoritatif untuk langkah-langkah persisnya — sidik jari kunci publik, nama berkas tanda tangan, perintah Docker untuk mereproduksi build. Versi singkat: impor kunci rilis SSP, ambil berkas checksum dan tanda tangannya, jalankan gpg --verify pada tanda tangan, lalu sha256sum -c checksum terhadap biner yang Anda unduh. Jika keduanya lulus, artefaknya utuh dan otentik.
Pengguna mahir yang ingin lebih jauh dapat meng-clone tag, menjalankan build Docker yang didokumentasikan, dan mengonfirmasi bahwa SHA-256 yang dihasilkan cocok dengan checksum yang dipublikasikan. Sebagian besar pengguna tidak akan pernah melakukan ini. Intinya adalah sebagian melakukannya, dan siapa pun di antara mereka yang menemukan ketidakcocokan langsung mengungkap serangan.
Apa yang diubah
SSP telah open source sejak v1.0.0 dan diaudit Halborn ujung-ke-ujung sejak peninjauan lengkap yang dipublikasikan awal 2025. v1.25.0 menutup sisi ketiga dari segitiga itu. Open source berarti Anda bisa membaca kodenya; diaudit berarti para pakar memeriksanya; reprodusibel ditambah ditandatangani berarti yang berjalan di mesin Anda memang kode yang Anda baca.
Ketiga jaminan independen dan komposisional. Biner open-source yang tidak reprodusibel masih dapat menyembunyikan kompromi di pipeline build. Proyek teraudit yang tidak reprodusibel masih dapat mengirim biner yang dirusak yang tidak pernah dilihat auditor. Dengan v1.25.0, «verifikasi sebelum memasang» berhenti menjadi aspirasi dan menjadi daftar konkret.
Itulah kisah rantai pasok dompet self-custody, dikisahkan dalam satu-satunya cara yang dapat dikisahkan dengan jujur.