Neutrino adalah klien ringan Bitcoin buatan Lightning Labs, ditulis dalam Go dan dirancang juga untuk aplikasi seluler dengan Lightning Network. Neutrino menggunakan BIP 157 dan BIP 158 untuk filter blok ringkas. Ini nama pustaka perangkat lunak tertentu, bukan sebutan umum untuk semua dompet ringan atau pengganti Full Node yang memeriksa seluruh aturan sendiri.
Anna membuka dompet dan berharap melihat pembayaran yang diterimanya. Agar tampilan benar, aplikasi harus mengambil dan mengolah data jaringan Bitcoin. Neutrino dapat menangani bagian ini tanpa menyimpan seluruh rantai blok secara permanen di ponsel. Blok adalah kumpulan transaksi yang dicatat dalam riwayat bersama jaringan Bitcoin. Dalam program, layanan tersebut bernama ChainService: tugasnya mengelola koneksi, basis data lokal, dan sinkronisasi header. Header adalah ringkasan informasi dasar sebuah blok. Kunci privat adalah angka rahasia untuk membuat tanda tangan digital yang mengizinkan pembelanjaan dana. Namun, penggunaan Neutrino saja tidak menjelaskan siapa yang memegang kunci privat Anna atau menyetujui pengiriman. Pengelolaan kunci, layar aplikasi, dan cadangan pengguna menjadi tanggung jawab dompet yang memakai pustaka itu. [1]
Bayangkan filter ringkas sebagai indeks pencarian kecil untuk sebuah blok. Dompet mengunduhnya, lalu memeriksa kecocokan dengan pencariannya di perangkat sendiri. Yang dibandingkan sebenarnya adalah script, yaitu syarat untuk membelanjakan keluaran Bitcoin tertentu. Keluaran adalah bagian transaksi yang menetapkan jumlah dana dan syarat untuk membelanjakannya nanti. Dompet tidak perlu mengirim seluruh daftar alamatnya kepada pihak lain. Jika cocok, dompet mengambil blok terkait dan mencari transaksi sebenarnya. Filter yang dibuat dengan benar pun dapat menghasilkan positif palsu: blok diunduh sia-sia karena unsur yang dicari ternyata tidak ada. Kecocokan saja tidak membuktikan penerimaan, jumlah, atau kemampuan dompet membelanjakan uang itu. [1] [2] [3]
Anna mengganti ponsel dan memulihkan dompet. Mencari hanya mulai dari blok hari ini tidak cukup jika ia pernah menerima pembayaran sebelumnya. Aplikasi harus memberikan script pantauan yang benar dan titik awal yang cukup jauh ke belakang. Menurut dokumentasi, Rescan tanpa blok awal yang ditentukan dimulai dari blok terakhir yang diketahui, bukan otomatis dari awal seluruh riwayat. Filter yang berfungsi baik tidak dapat menemukan alamat yang tidak dicari dompet ataupun pembayaran lama dalam rentang yang dilewati. Karena itu, pemulihan selesai harus dibedakan dari pemindaian yang masih berjalan. Daftar kosong saat pemulihan tidak dengan sendirinya membuktikan dana hilang. [1]
Neutrino menyinkronkan header blok dan header filter. Header blok memungkinkan pemeriksaan keterkaitan serta Proof of Work, bukti kerja komputasi, dan pelacakan rantai dengan akumulasi kerja terbesar. Ini jauh lebih baik daripada menerima angka saldo server begitu saja, tetapi belum setara dengan memverifikasi setiap transaksi dan aturan secara mandiri seperti Full Node. Keduanya juga merupakan rantai header yang berbeda. Header blok Bitcoin tidak memuat komitmen langsung terhadap kebenaran filter tersebut. Memeriksa hash, sidik jari kriptografis, saja tidak menyingkirkan kemungkinan filter palsu yang konsisten secara internal. Penghematan pekerjaan memiliki batas kepercayaan yang jelas. [2] [4]
Peer adalah komputer lain di jaringan yang menyediakan data kepada klien. BIP 157 mengandalkan perbandingan jawaban dan setidaknya satu peer jujur agar filter keliru dapat terdeteksi. Jika semua koneksi dikuasai penyerang yang sama, jumlah komputer saja tidak membantu. Mereka bisa memberikan jawaban palsu yang sama atau menyembunyikan keadaan terbaru. Pemutusan akses ke sumber jujur seperti ini berkaitan dengan Eclipse Attack. Dompet membutuhkan sumber yang tersedia dan cukup independen, bukan sekadar koneksi. Ikon koneksi hijau tidak membuktikan bahwa riwayat pembayarannya sudah lengkap dan mutakhir. [2]
Jan baru mengirim uang kepada Anna. Transaksinya mungkin menunggu dahulu dalam Mempool, kumpulan lokal transaksi belum terkonfirmasi pada sebuah node, sebelum dimasukkan penambang ke blok. Notifikasi Neutrino recvtx dan redeemingtx yang dijelaskan dokumentasi datang saat konfirmasi dalam blok, bukan saat masuk Mempool. Aplikasi yang ingin menunjukkan pembayaran masuk sebelum konfirmasi membutuhkan mekanisme tambahan yang sesuai. Filter blok saja tidak bisa mengungkapkannya sebelum blok itu ada. Pengiriman, penerimaan oleh peer, dan konfirmasi adalah kejadian berbeda; belum adanya notifikasi tidak langsung berarti Jan tidak mengirim apa pun. [1]
Kecocokan filter baru berguna jika klien juga dapat mengambil blok yang dibutuhkan. Jika jaringan belum menyediakannya, kesimpulan yang benar adalah “data belum tersedia”, bukan “saldo nol”. Keadaan juga dapat berubah saat reorganisasi: jaringan beralih ke cabang lain dengan akumulasi kerja lebih besar dan melepaskan blok yang sebelumnya tersambung. Rescan melaporkan penyambungan dan pelepasan blok agar aplikasi bisa menghitung ulang catatannya. Privasi pun tidak mutlak: peer tidak menerima daftar alamat pantauan, tetapi melihat permintaan blok tertentu dan informasi jaringan tentang koneksi. Cara mengambil data tetap penting. [1] [2]
Lightning Network adalah jaringan pembayaran yang dibangun di atas Bitcoin. Dalam kanal pembayaran, dua peserta memperbarui pembagian dana bersama, alih-alih mencatat setiap pembayaran dalam blok Bitcoin. Neutrino memasok data rantai; Neutrino sendiri tidak menyimpan data pemulihan keadaan kanal terbaru atas nama pengguna. Memulihkan riwayat dompet dan memulihkan kanal merupakan dua tugas berbeda. README menjelaskan penyimpanan filter yang diminta serta pengambilan blok tanpa menyimpannya secara permanen; kebutuhan nyata harus dilihat berdasarkan versi dan konfigurasi aplikasi. Sebelum mengandalkan dompet seperti ini, pengguna perlu memahami prosedur pencadangan dan pemulihannya serta perilakunya ketika sumber data gagal. Basis data ponsel yang lebih kecil tidak menghapus tanggung jawab itu. [1] [4]
Untuk gambaran yang lebih utuh, baca entri ini bersama Compact Block Filters, Compact Block Filters, Full Node, Lightning Network, Eclipse Attack, Bitcoin. Entri ini juga dirujuk dari Compact Block Filters, Compact Block Filters.