Bitcoin: A Work in Progress adalah buku pengembang Sjors Provoost tentang perkembangan teknis Bitcoin. Buku ini menjelaskan persoalan yang jarang terlihat oleh pengguna: bagaimana dompet membaca alamat, bagaimana node menerima kabar dari jaringan, dan mengapa perubahan kecil pun perlu kehati-hatian.
Anda dapat memakai Bitcoin tanpa memahami kode programnya. Itu tidak berarti tidak ada lagi yang perlu diperbaiki. Sjors Provoost, kontributor Bitcoin Core, memperkenalkan pekerjaan yang memungkinkan jaringan terus berkembang. Purple Dunes menerbitkan edisi cetak pertama pada 2022. Buku ini membahas persoalan teknis pada masanya; revisi berkas sumber yang lebih baru tidak mengubah tanggal penerbitan awal. [1] [2]
Bayangkan seorang teman mengirim alamat, lalu Anda menempelkannya ke dompet. Bagi Anda, pembayaran dimulai. Bagi pengembang, ada pula pertanyaan tentang cara mendeteksi salah ketik dan menyampaikan tujuan pembayaran kepada dompet tanpa kerancuan. Contoh yang kami buat ini menjadi jalan masuk ke buku tanpa perlu bisa memprogram. Isinya bergerak dari alamat, komunikasi antarnode, hingga perubahan aturan. Bab yang lebih sulit lebih mudah dipahami setelah landasan ini jelas. [2]
Alamat adalah bentuk penyajian yang dipakai dompet untuk menyusun syarat pembelanjaan suatu jumlah di kemudian hari. Syarat tersebut dicatat dalam keluaran transaksi, yaitu bagian baru yang dibuat oleh pembayaran. Untuk membelanjakannya nanti, pemenuhan syarat harus dibuktikan, biasanya dengan tanda tangan digital yang valid. Karena itu, jaringan tidak perlu mengelola rekening bank atas nama Anda. Bab Provoost membantu membedakan alamat yang dipertukarkan orang dari aturan yang diperiksa komputer. [3]
Alamat memuat checksum yang membantu dompet mendeteksi kesalahan penyalinan. Namun, checksum tidak memastikan siapa pemilik alamat itu. Dalam contoh kita, Anda bisa keliru menempelkan alamat orang lain yang ditulis dengan benar dan tetap lolos pemeriksaan. Jadi, penerima yang dimaksud juga perlu diverifikasi. Jika dompet melaporkan kesalahan, meminta kembali alamat yang benar lebih aman daripada menebak karakter mana yang harus diperbaiki. [3] [4]
Berikut detail yang lebih teknis: Bech32 dan Bech32m merupakan format pengodean alamat. BIP 350 menetapkan Bech32 untuk alamat native dengan witness versi 0, sedangkan versi 1 sampai 16 menggunakan Bech32m. Versi witness adalah angka yang membedakan aturan validasi untuk jenis keluaran ini. Format baru mengatasi kelemahan checksum terkait penyisipan karakter. Hal itu tidak membuat semua alamat lama menjadi tidak valid atau berarti pengguna harus mengonversinya secara manual. [4]
Node adalah program yang terhubung ke jaringan Bitcoin; Full Node memeriksa sendiri aturan transaksi dan blok. Namun, data baru harus diterimanya dari suatu tempat. Dalam Eclipse Attack, penyerang mengendalikan seluruh koneksi node dan dapat menyembunyikan sebagian aktivitas jaringan. Node tetap menolak blok tidak valid, tetapi informasinya tidak lengkap. Buku ini menunjukkan perbedaan penting: memvalidasi data yang diterima tidak sama dengan memiliki akses ke semua data yang diperlukan. [5]
Penyerang tidak bisa begitu saja memaksakan blok sembarang kepada node yang terisolasi. Untuk menunjukkan konfirmasi pembayaran yang valid, ia juga membutuhkan blok valid yang memenuhi Proof of Work, yaitu bukti kerja komputasi yang disyaratkan. Setelah terhubung kembali, node dapat menemukan cabang valid lain dengan lebih banyak kerja terakumulasi. Node beralih ke cabang itu; jika pembayaran semula tidak ada di dalamnya, konfirmasi terdahulu tidak lagi berlaku. Keamanan karena itu mencakup validasi aturan serta koneksi jaringan yang tahan terhadap serangan. [5]
Mulailah dari pertanyaan yang dekat dengan pengalaman Anda, misalnya tentang alamat. Lalu ikuti apa yang dimungkinkan oleh solusinya dan di mana batasnya. Ikhtisar ini memakai halaman hak cipta, daftar isi resmi, bagian publik terpilih tentang alamat dan Eclipse Attack, serta BIP 350. Ini bukan ulasan seluruh buku atau podcast yang menjadi dasarnya. Angka jaringan historis dan tahap pengembangan saat itu perlu dibedakan dari perangkat lunak sekarang. [1] [2] [3] [4] [5]
Untuk gambaran yang lebih utuh, baca entri ini bersama Bitcoin Core, Taproot, Aturan konsensus, Dompet.
01Apakah saya harus bisa memprogram untuk belajar dari buku ini?+
Anda tidak perlu bisa memprogram untuk memahami pertanyaan seputar alamat atau isolasi node. Namun, buku ini juga berisi bab teknis tingkat lanjut. Mulailah dengan situasi yang dikenal dan tambahkan detail secara bertahap; ikhtisar ini hanya menjelaskan topik terpilih.
02Apakah alamat yang benar dan Full Node sendiri menjamin pembayaran aman?+
Keduanya menangani masalah berbeda. Checksum tidak memverifikasi penerima, dan menjalankan node sendiri tidak menghilangkan kebutuhan untuk menerima data jaringan. Verifikasi alamat, kepatuhan pada aturan, dan konfirmasi dalam rantai saling berkaitan, tetapi tidak dapat saling menggantikan.