119 / 736PROP

Block Propagation

Bagaimana blok baru menyebar

Ketika penambang menemukan blok, peserta lain perlu mengetahuinya. Ikuti perjalanan kabar itu, mengapa data yang sudah dikenal tidak perlu dikirim ulang, dan mengapa pengiriman cepat tidak menggantikan pemeriksaan.

Block Propagation adalah penyebaran blok baru antarkomputer dalam jaringan Bitcoin. Pengiriman menyediakan data; node penerima tetap harus memeriksa apakah blok itu sah dan dapat menjadi bagian dari riwayat yang diterimanya.

Bayangkan Anna menjalankan usaha penambangan dan baru menemukan blok berisi transaksi. Blok mengelompokkan transaksi dalam satu kumpulan yang ditambahkan ke riwayat bersama. Bitcoin tidak memiliki kantor pusat yang mengirimkannya kepada semua orang sekaligus. Node Anna memberi tahu tetangganya, yaitu komputer yang terhubung dengannya. Kabar itu diteruskan dan sampai kepada tiap peserta pada waktu berbeda. Perjalanan inilah Block Propagation. Kecepatannya memengaruhi berapa lama peserta lain masih bekerja berdasarkan riwayat sebelumnya. [1] [6]

Peter menjalankan Full Node di rumah: perangkat lunak yang memeriksa blok dan transaksi Bitcoin berdasarkan aturan. Sekadar menerima pemberitahuan tentang blok baru tidaklah cukup. Ia memerlukan seluruh isinya untuk memeriksa blok tersebut. Ia dapat mengunduh semuanya atau menyusunnya dari pesan yang diterima dan transaksi yang sudah dimiliki. Ibarat menerima daftar halaman buku lalu mengambil halaman itu dari perpustakaan sendiri: lebih sedikit data dikirim, tetapi buku akhirnya harus sama. [1] [7]

Blok memiliki bagian ringkas bernama Block Header. Bagian ini antara lain merujuk ke blok sebelumnya dan memungkinkan pemeriksaan Proof of Work, bukti kerja komputasi yang diwajibkan dalam penambangan. Penambang mencari bukti ini melalui perhitungan berulang; peserta lain dapat memeriksa hasilnya dengan cepat. Ini pemeriksaan awal yang berguna, bukan bukti bahwa setiap pembayaran sah. Header saja tidak memberi tahu Peter apakah tanda tangan transaksi sah atau apakah dana yang dibelanjakan tersedia dan belum pernah digunakan. Tanda tangan digital membuktikan otorisasi pembayaran menggunakan kunci privat, sebuah nilai angka rahasia, tanpa mengungkap kunci itu. UTXO adalah keluaran transaksi yang belum dibelanjakan: catatan jumlah dana dan syarat untuk membelanjakannya. [6] [8]

Peter telah menerima banyak transaksi sebelum blok ditambang. Ia menyimpannya di Mempool, kumpulan transaksi lokal yang belum mendapat konfirmasi. Compact Blocks dalam BIP 152 memanfaatkan hal ini: pesan terutama membawa pengenal singkat beserta beberapa transaksi lengkap, alih-alih mengirim semuanya lagi. Peter menyusun bagian yang sudah dikenal dalam urutan yang benar. Yang mengecil adalah pesan jaringan, bukan blok yang diperiksa; aturan keabsahannya tetap sama. [2] [7]

Tidak ada satu Mempool bersama untuk seluruh dunia. Tiap node dapat mengenal transaksi yang sedikit berbeda, sehingga Peter mungkin belum memiliki sebagian isinya. Ia meminta data yang kurang atau kembali mengunduh blok lengkap. Permintaan dan balasannya menambah waktu perjalanan di jaringan. Itu bukan alasan untuk menebak isi atau melewati pemeriksaan. Penghematan nyata juga bergantung pada banyaknya transaksi yang sudah dikenal penerima. [2] [7]

Mode BIP 152 yang lebih cepat mengizinkan penerusan sebelum semua pemeriksaan transaksi selesai. Bukan berarti mengirim secara membabi buta: pengirim harus memeriksa, antara lain, hubungan dengan rantai yang telah divalidasi, Proof of Work, serta kecocokan kriptografis header dengan transaksi yang dikirim. Pengiriman dan pemeriksaan lanjutan kemudian dapat berlangsung bersamaan. Namun, Full Node tetap harus memeriksa blok sepenuhnya sebelum memasukkannya ke riwayat aktifnya. [2] [4] [7]

Sebelum blok Anna sampai kepada semua peserta, penambang lain mungkin menemukan blok yang melanjutkan pendahulu yang sama. Sebagian jaringan sesaat melihat satu cabang yang sah, sementara bagian lain melihat cabang lainnya. Akumulasi kerja berikutnya menentukan pilihan di antara cabang sah, bukan pemungutan suara komputer. Blok sah yang ditinggalkan disebut Stale Block. Penyebaran lebih cepat mempersempit kesempatan terjadinya persaingan ini, tetapi tidak menghilangkannya. [6] [8]

Jika blok Anna menyebar lambat, kemungkinan peserta lain melanjutkan blok pesaing meningkat, sehingga bloknya berada di luar rantai yang diterima. Dalam riwayat itu, ia tidak memperoleh imbalan dari blok tersebut. Koneksi baik berarti lebih dari kenyamanan. Keunggulannya dapat mendorong pemusatan penambangan pada operator yang lebih terhubung. Namun, satu koneksi lambat bukanlah ukuran sentralisasi maupun bukti serangan. [7] [8]

FIBRE merupakan contoh sistem khusus untuk mengirim blok dengan cepat. Sistem ini berupaya mengurangi keterlambatan jaringan, termasuk akibat hilangnya paket, yaitu bagian kecil dari pesan yang dikirim. Jalur semacam itu bisa mengantarkan blok lebih awal, tetapi operatornya tidak berhak menentukan keabsahan atas nama Peter. Full Node milik Peter harus memeriksa aturan yang sama, dari jalur mana pun datanya datang. [3] [9]

Jaringan juga perlu mempertimbangkan volume data, privasi, dan ketahanan koneksi. Bergantung pada satu jalur tetap merupakan kelemahan meskipun jalurnya cepat. Setiap peningkatan pun memiliki tugas berbeda: BIP 330, salah satu komponen Erlay, membantu node bertetangga menemukan perbedaan di antara kumpulan pengumuman transaksi. Ini tidak menggantikan pengiriman blok BIP 152. Tujuan bersama ialah komunikasi lebih efisien sambil mempertahankan pemeriksaan mandiri oleh setiap node. [1] [5]

Untuk gambaran yang lebih utuh, baca entri ini bersama Compact Blocks, Selfish Mining, Eclipse Attack, Initial Block Download, Bitcoin, Full Node. Entri ini juga dirujuk dari Sybil Attack, Eclipse Attack, Selfish Mining, Compact Blocks.

DOC · 001Bitcoin Developer Guide — P2P NetworkDokumentasi DOC · 002BIP 152 — Compact Block RelaySpesifikasi DOC · 003Bitcoin FIBREDokumentasi DOC · 004Bitcoin Core v29.0 — net processingDokumentasi DOC · 005BIP 330 — ErlaySpesifikasi DOC · 006Satoshi Nakamoto — Bitcoin whitepaperSumber primer DOC · 007Bitcoin Core — Compact Blocks FAQDokumentasi DOC · 008Bitcoin Developer Guide — Block ChainDokumentasi DOC · 009FIBRE — project overviewSumber primer
Direvisi: Utamakan sumber · Bukan nasihat investasi