45 / 691REORG

Reorg

Reorganisasi rantai

Reorganisasi rantai mengganti ujung aktif blockchain sebuah node dengan cabang valid lain yang memiliki proof of work kumulatif lebih besar; blok di ujung lama dilepas dan cabang pemenang dihubungkan.

Reorg adalah perubahan chainstate lokal, bukan perubahan aturan konsensus Bitcoin. Full Node menerapkan aturan validasinya sendiri dan mengaktifkan cabang dengan chainwork kumulatif terbesar yang lolos aturan tersebut. Jika cabang itu berpisah sebelum ujung saat ini, node membatalkan perubahan UTXO dari blok yang dilepas, menerapkan cabang alternatif dan mengevaluasi ulang transaksi yang terdampak terhadap mempool.

Bitcoin Core tidak sekadar memilih cabang tertinggi atau terpopuler. Rantai kandidat harus memenuhi aturan konsensus node saat aktivasi; chainwork yang lebih besar tidak membuat blok tidak valid menjadi valid. FindMostWorkChain memilih kandidat dengan pekerjaan terbesar yang belum diketahui tidak valid. Ini belum berarti validasi lengkap: pemeriksaan tambahan berlangsung saat blok dihubungkan dalam ActivateBestChain. Cabang yang diketahui tidak valid dikeluarkan. [Bitcoin Core v29.0 — chain activation and mempool reconciliation]

Titik percabangan adalah blok terakhir yang sama pada rantai aktif saat ini dan cabang alternatif. Kedalaman Reorg biasanya dinyatakan sebagai jumlah blok di ujung aktif yang harus dilepas agar kembali ke leluhur bersama tersebut. Reorg satu blok mengganti ujung rantai; Reorg yang lebih dalam menggulung balik beberapa blok terkonfirmasi. Kedalaman bergantung pada sudut pandang node tertentu. [Bitcoin Core v29.0 — chain activation and mempool reconciliation]

DisconnectTip dan logika validasi terkait membatalkan dampak blok yang dilepas dalam urutan terbalik. UTXO yang telah dibelanjakan dipulihkan, sedangkan output yang dibuat oleh blok yang dihapus kehilangan status terkonfirmasi. Karena itu Bitcoin Core menyimpan data pembatalan agar dapat merekonstruksi set UTXO tepat di titik percabangan. [Bitcoin Core v29.0 — chain activation and mempool reconciliation]

Setelah rollback, ConnectTip menghubungkan blok cabang dengan chainwork lebih besar dalam urutan maju. Setiap transaksi divalidasi ulang terhadap set UTXO yang direkonstruksi dan aturan yang berlaku pada ketinggian tersebut. Hasilnya adalah chainstate yang sesuai dengan satu riwayat tertentu, bukan campuran transaksi dari kedua cabang. [Bitcoin Core v29.0 — chain activation and mempool reconciliation]

Transaksi dari blok yang dilepas tidak harus hilang. Bitcoin Core mencoba mengembalikan transaksi non-coinbase yang memenuhi syarat ke mempool. Sebagian mungkin sudah ada di cabang baru, mengalami konflik, kehilangan input, tidak lagi memenuhi kondisi waktu atau kebijakan mempool. Karena itu dompet harus memperhitungkan bahwa Reorg dapat membatalkan konfirmasi. [Bitcoin Core v29.0 — chain activation and mempool reconciliation]

Transaksi coinbase merupakan pengecualian: setelah blok dilepas, transaksi itu tidak kembali ke mempool. Menurut aturan konsensus, output coinbase yang dibuat pada ketinggian h paling awal dapat dibelanjakan di blok h + 100. Saat ujung rantai berada di h + 99, blok asal memiliki 100 konfirmasi dan syarat kematangan mengizinkan transaksi pembelanjaan dimasukkan ke blok berikutnya. Jika Reorg menghapus blok yang memuat coinbase, imbalan blok tersebut hilang dari chainstate aktif. Transaksi turunan yang bergantung pada riwayat yang dihapus juga dapat menjadi tidak valid. [Bitcoin Core v29.0 — chain activation and mempool reconciliation] [Bitcoin Core v29.0 — coinbase maturity validation] [Bitcoin Core v29.0 — confirmation depth]

Jumlah konfirmasi mencakup blok yang memuat transaksi dan semua blok sesudahnya dalam rantai aktif node tersebut. Transaksi di ujung rantai saat ini memiliki satu konfirmasi. Setiap blok tambahan biasanya meningkatkan pekerjaan yang dibutuhkan untuk mengganti riwayat, tetapi tidak ada jumlah konfirmasi berhingga yang menghasilkan finalitas mutlak secara matematis. Bursa dan pedagang karena itu memilih ambang berdasarkan nilai pembayaran dan model risiko mereka. [Bitcoin Core v29.0 — confirmation depth] [Bitcoin whitepaper — Sections 5 and 11]

Reorg pendek dapat terjadi secara alami ketika dua penambang menemukan blok yang bersaing hampir bersamaan dan bagian jaringan yang berbeda mengikuti ujung berbeda untuk sementara; cabang dengan chainwork lebih kecil kemudian berada di luar rantai aktif. Serangan Double Spend menggunakan mekanisme yang sama secara sengaja. Prosedur teknis pemilihan rantai sama, tetapi penyebab dan tujuan ekonominya berbeda. [Bitcoin Developer Guide — Block Chain] [Bitcoin whitepaper — Sections 5 and 11]

Reorg terjadi di dalam satu set aturan: node memilih di antara cabang yang dianggapnya valid. Hard Fork mengubah aturan validitas sehingga perangkat lunak lama dan baru dapat berbeda penilaian tentang apakah suatu blok valid. Jadi reorganisasi itu sendiri tidak mengubah konsensus. [Bitcoin Developer Guide — Block Chain]

Dalam Bitcoin Core v29.0, tahapannya jelas: FindMostWorkChain mencari kandidat dengan chainwork terbesar yang belum diketahui tidak valid, ActivateBestChainStep dapat melepas ujung saat ini, ConnectTip memvalidasi dan menghubungkan blok alternatif, dan MaybeUpdateMempoolForReorg memeriksa ulang transaksi dari blok yang dilepas. Aktivasi dapat menemukan ketidakvalidan kandidat lalu melanjutkan pencarian cabang lain. Reorg besar memerlukan pemrosesan lebih banyak blok yang dilepas dan dihubungkan, sehingga dapat memperpanjang pemrosesan ActivateBestChain. [Bitcoin Core v29.0 — chain activation and mempool reconciliation]

Untuk gambaran yang lebih utuh, baca entri ini bersama Konfirmasi, Proof of Work, Stale Block, Pembelanjaan ganda, Full Node, UTXO. Entri ini juga dirujuk dari Konfirmasi, Pembelanjaan ganda, Transaksi coinbase, Soft Fork.

DOC · 001Bitcoin Core v29.0 — chain activation and mempool reconciliationSumber primer ↗DOC · 002Bitcoin Core v29.0 — coinbase maturity validationSumber primer ↗DOC · 003Bitcoin Core v29.0 — confirmation depthSumber primer ↗DOC · 004Bitcoin Developer Guide — Block ChainDokumentasi ↗DOC · 005Bitcoin whitepaper — Sections 5 and 11Sumber primer ↗
Utamakan sumber · Bukan nasihat investasi