Analisis celah serangan distorsi waktu Bitcoin dan rencana perbaikan untuk pembersihan Konsensus besar

robot
Pembuatan abstrak sedang berlangsung

Kerentanan serangan distorsi waktu dalam protokol Bitcoin dan solusi perbaikannya

Pada tanggal 26 Maret 2025, pengembang Bitcoin mengusulkan sebuah proposal soft fork bernama "Pembersihan Konsensus Besar", yang bertujuan untuk memperbaiki beberapa celah dan kelemahan yang telah ada lama dalam protokol Bitcoin. Salah satu celah penting disebut "serangan distorsi waktu", dan artikel ini akan fokus membahas masalah ini.

Mekanisme Perlindungan Timestamp Blok Bitcoin

Sebelum membahas serangan distorsi waktu, kita perlu memahami aturan perlindungan manipulasi waktu dalam protokol Bitcoin saat ini:

  1. Waktu median yang telah berlalu (MPT) aturan: Cap waktu blok harus lebih baru dari waktu median 11 blok sebelumnya.

  2. Aturan waktu blok di masa depan: Cap waktu blok tidak boleh lebih dari 2 jam lebih awal dari waktu median sejawat node. Selain itu, selisih maksimum yang diizinkan antara waktu yang diberikan oleh node dan jam sistem lokal adalah 90 menit.

Aturan-aturan ini bertujuan untuk mencegah cap waktu blok terlalu menyimpang dari waktu yang sebenarnya, tetapi mereka tidak dapat sepenuhnya mencegah terjadinya serangan distorsi waktu.

Bitcoin keamanan celah: serangan distorsi waktu

Kerentanan dalam Algoritma Penyesuaian Kesulitan

Siklus penyesuaian kesulitan Bitcoin mencakup 2016 blok, yang secara teoritis sekitar dua minggu. Dalam menghitung penyesuaian kesulitan penambangan, protokol akan menghitung selisih cap waktu antara blok awal dan akhir dalam dua jendela 2016 blok yang berdekatan. Namun, karena kesalahan perhitungan kecil, waktu target yang digunakan secara aktual lebih lama 600 detik dibandingkan dengan kondisi ideal. Ini mengakibatkan waktu target blok Bitcoin yang sebenarnya adalah 10 menit dan 0,3 detik, bukan 10 menit yang diharapkan.

Meskipun kesalahan 0,3 detik ini tampak sepele, ia terkait dengan masalah yang lebih serius. Perhitungan kesulitan didasarkan pada blok pertama dan terakhir dalam setiap jendela 2016 blok, bukan perbedaan antara blok terakhir dari dua jendela yang berdekatan. Cara perhitungan ini menciptakan kemungkinan untuk serangan distorsi waktu.

Bitcoin keamanan celah: serangan distorsi waktu

Prinsip Serangan Distorsi Waktu

Serangan distorsi waktu memanfaatkan celah ini dalam perhitungan kesulitan. Penyerang dengan memanipulasi cap waktu blok, membuat blockchain maju secara temporal jauh lebih lambat daripada kecepatan berlalu waktu yang sebenarnya. Secara spesifik:

  1. Sebagian besar cap waktu blok hanya bertambah 1 detik dibandingkan blok sebelumnya.
  2. Setiap enam blok baru akan menambah cap waktu 1 detik, untuk mematuhi aturan MPT.
  3. Pada blok terakhir dari setiap siklus penyesuaian kesulitan, gunakan waktu dunia nyata sebagai cap waktu.
  4. Timestamp blok pertama dari periode penyesuaian kesulitan baru diatur 1 detik lebih awal dari blok kedua terakhir pada periode sebelumnya.

Operasi ini membuat waktu blockchain secara bertahap tertinggal dari waktu nyata, menyebabkan kesulitan terus menurun, sehingga penyerang dapat membuat blok dengan sangat cepat dan mendapatkan banyak Bitcoin.

Bitcoin keamanan celah: serangan distorsi waktu

Kelayakan dan Batasan Serangan

Meskipun secara teori serangan distorsi waktu dapat menyebabkan konsekuensi yang serius, pelaksanaannya menghadapi banyak tantangan:

  1. Perlu mengendalikan sebagian besar daya komputasi.
  2. Keberadaan penambang yang jujur akan meningkatkan tingkat kesulitan serangan.
  3. Aturan MTP dan cap waktu penambang yang jujur akan membatasi tingkat mundur cap waktu yang jahat.
  4. Proses serangan dapat diamati secara publik, mungkin memicu perbaikan darurat.

Bitcoin keamanan celah: serangan distorsi waktu

Solusi

Untuk memperbaiki kerentanan serangan distorsi waktu, solusi berikut diajukan:

  1. Ubah algoritma penyesuaian kesulitan, menggunakan selisih waktu antara dua blok terakhir dari jendela 2016 yang berdekatan untuk perhitungan.
  2. Menghapus aturan MTP, yang mengharuskan timestamp setiap blok harus lebih besar dari blok sebelumnya.
  3. Atur batas waktu minimum timestamp untuk block pertama dari siklus kesulitan baru.

Di antara ketiga solusi tersebut, solusi ketiga dianggap yang paling sederhana dan efektif. Saat ini, proposal menyarankan untuk menetapkan batas waktu ini menjadi 2 jam, yaitu stempel waktu blok pertama dari periode kesulitan baru tidak boleh lebih awal dari 2 jam setelah stempel waktu blok terakhir dari periode sebelumnya. Pembatasan ini dapat secara efektif mencegah serangan distorsi waktu, sekaligus berpengaruh kecil terhadap penambangan normal.

Dengan menerapkan langkah perbaikan ini, jaringan Bitcoin akan dapat lebih baik melawan serangan distorsi waktu, meningkatkan keamanan dan stabilitas secara keseluruhan.

Bitcoin keamanan kerentanan: serangan distorsi waktu

BTC-2.18%
Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
  • Hadiah
  • 5
  • Posting ulang
  • Bagikan
Komentar
0/400
ser_ngmivip
· 4jam yang lalu
Kecepatan perbaikan celah ini, apakah node verifikasi semua tertidur?
Lihat AsliBalas0
ChainDetectivevip
· 4jam yang lalu
Soft Fork perbaikan? Jadi sebelumnya yang diserang tidak ada yang menyadari?
Lihat AsliBalas0
DegenWhisperervip
· 4jam yang lalu
Bahaya sebesar ini? Tahan saja, saya sangat terkejut.
Lihat AsliBalas0
HashBardvip
· 4jam yang lalu
waktu hanyalah sebuah konstruksi... pengembang btc akhirnya memperbaiki matriks fr fr
Lihat AsliBalas0
SnapshotStrikervip
· 4jam yang lalu
Sudah bilang penambangan curang, siapa yang tidak bisa?
Lihat AsliBalas0
  • Sematkan
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)