Bitcoin Kerentanan Keamanan: Serangan Distorsi Waktu
Baru-baru ini, pengembang Bitcoin Antoine Poinsot mengajukan proposal soft fork yang disebut "Pembersihan Konsensus Besar". Proposal ini bertujuan untuk memperbaiki beberapa kerentanan dan kelemahan yang telah ada dalam protokol Bitcoin selama bertahun-tahun, termasuk masalah transaksi ganda yang baru-baru ini kita diskusikan, serta kerentanan "serangan distorsi waktu" yang lebih serius yang akan menjadi fokus pembahasan dalam artikel ini.
Mekanisme Perlindungan Timestamp Blok Bitcoin
Sebelum membahas serangan distorsi waktu, kita perlu memahami aturan perlindungan manipulasi waktu saat ini:
Aturan waktu tengah yang telah berlalu (MPT): Stempel waktu blok harus lebih baru daripada waktu tengah dari 11 blok sebelumnya.
Aturan waktu blok di masa depan: Stempel waktu blok tidak boleh lebih dari 2 jam di atas waktu median rekan node. Perbedaan maksimum yang diizinkan antara waktu node dan jam sistem lokal adalah 90 menit.
Aturan MPT mencegah stempel waktu blok terlalu jauh dari masa lalu, sedangkan aturan blok masa depan membatasi stempel waktu agar tidak terlalu memasuki masa depan. Perlu dicatat bahwa tidak mungkin menerapkan mekanisme serupa aturan blok masa depan untuk mencegah stempel waktu masa lalu, karena ini dapat mempengaruhi sinkronisasi blockchain awal. Serangan distorsi waktu justru memanfaatkan kemungkinan pemalsuan stempel waktu kuno.
Kesalahan "kurang satu" Satoshi Nakamoto
Periode penyesuaian kesulitan Bitcoin mencakup 2016 blok, yang dihitung berdasarkan waktu target pembuatan blok 10 menit, sekitar dua minggu. Dalam menghitung penyesuaian kesulitan penambangan, protokol akan menghitung selisih stempel waktu antara blok pertama dan terakhir dalam jendela 2016 blok yang relevan. Jendela 2016 blok ini sebenarnya mencakup 2015 interval blok (yaitu 2016 dikurangi 1). Oleh karena itu, waktu target yang benar seharusnya adalah 60 detik × 10 menit × 2015 interval = 1.209.000 detik. Namun, protokol Bitcoin menggunakan angka 2016 untuk menghitung target: 60 detik × 10 menit × 2016 = 1.209.600 detik. Ini adalah kesalahan tipikal kurang satu, yang mungkin membuat Satoshi Nakamoto bingung antara blok dan interval blok.
Kesalahan ini menyebabkan waktu target lebih lama 0,05% dari yang seharusnya. Sebenarnya, interval waktu target Bitcoin bukanlah 10 menit, melainkan 10 menit dan 0,3 detik. Meskipun kerentanan ini tampak sepele, sejak peluncuran Bitcoin, rata-rata interval blok selalu 9 menit 36 detik, yang jelas kurang dari 10 menit. Ini terutama karena sejak 2009, rata-rata daya komputasi terus meningkat. Ini juga menjelaskan mengapa peristiwa pengurangan setengah yang terbaru terjadi pada April 2024, dan bukan Januari 2025. Kita sebenarnya telah mempercepat kemajuan. Dalam jangka panjang, ketika harga dan daya komputasi cenderung stabil, kesalahan 0,3 detik ini mungkin akan membantu kita kembali ke kemajuan yang telah ditentukan.
Serangan Distorsi Waktu
Serangan distorsi waktu ditemukan pertama kali pada tahun 2011, yang memanfaatkan kesalahan Satoshi Nakamoto dalam perhitungan kesulitan. Misalkan penambangan sepenuhnya terpusat, para penambang dapat menetapkan cap waktu sembarang dalam batasan yang diizinkan oleh protokol. Penyerang akan mengatur cap waktu sebagian besar blok untuk hanya satu detik lebih awal dari blok sebelumnya, untuk memperlambat waktu blockchain seefisien mungkin, sambil mematuhi aturan MTP. Untuk meminimalkan kemajuan waktu, penambang dapat mempertahankan cap waktu yang sama untuk enam blok berturut-turut, lalu menambah waktu satu detik pada blok ketujuh, dan seterusnya.
Serangan ini akan menyebabkan waktu blockchain semakin tertinggal dari waktu yang sebenarnya, sementara kesulitan akan terus meningkat, membuat penambangan menjadi semakin sulit. Namun, untuk meningkatkan efek serangan, pada blok terakhir dari setiap periode penyesuaian kesulitan, para penambang akan mengatur cap waktu ke waktu dunia nyata. Setelah itu, cap waktu untuk blok pertama dari periode penyesuaian kesulitan yang baru akan diatur kembali ke masa lalu, hanya satu detik lebih awal dari blok kedua terakhir dari periode sebelumnya. Operasi ini masih sesuai dengan aturan MTP karena satu anomali tidak akan mempengaruhi median dari 11 blok.
Setelah melaksanakan serangan ini, kesulitan pada siklus pertama tidak akan terpengaruh. Namun, mulai dari siklus penyesuaian kedua, kesulitan akan mulai diturunkan. Pada saat ini, penambang dapat membuat blok dengan kecepatan yang sangat cepat, mungkin dalam waktu singkat menciptakan sejumlah besar Bitcoin, sehingga mendapatkan keuntungan yang tidak semestinya.
Kelayakan dan Tantangan Serangan
Meskipun serangan semacam ini secara teori memiliki konsekuensi yang menghancurkan, pelaksanaannya di lapangan menghadapi berbagai tantangan.
Mungkin perlu mengendalikan sebagian besar daya komputasi.
Kehadiran penambang yang jujur akan meningkatkan tingkat kesulitan serangan.
Aturan MTP dan cap waktu dari penambang jujur akan membatasi tingkat mundur dari cap waktu yang jahat.
Jika penambang yang jujur menghasilkan blok pertama dari jendela penyesuaian kesulitan, serangan pada siklus tersebut akan gagal.
Proses serangan terlihat oleh semua orang, yang mungkin memberikan komunitas cukup waktu untuk meluncurkan perbaikan soft fork darurat.
Solusi
Ada beberapa cara untuk memperbaiki kerentanan ini:
Mengubah algoritma penyesuaian kesulitan, menghitung rentang waktu antara blok dalam jendela 2016 yang berbeda, dan sepenuhnya memperbaiki kesalahan satu yang kurang. Namun, ini mungkin memerlukan hard fork.
Menghapus aturan MTP, yang mengharuskan waktu selalu bergerak maju di setiap blok. Namun, ini bisa menyebabkan waktu terjebak di masa depan yang jauh, dan menyulitkan para penambang yang menggunakan jam sistem.
Solusi yang lebih sederhana adalah meminta waktu blok pertama dari periode kesulitan baru tidak lebih awal dari jumlah menit tertentu sebelum blok terakhir dari periode sebelumnya. Dalam proposal pembersihan konsensus besar Poinsot, waktu ini ditetapkan menjadi 2 jam.
Keterbatasan 2 jam ini memiliki kelebihan berikut:
Meminimalkan risiko blok tidak valid yang tidak terduga.
Sesuai dengan aturan cap waktu blok masa depan
Dibandingkan dengan aturan saat ini, ini adalah perubahan yang lebih konservatif.
Rentang penyesuaian 0,6% cukup kecil
Meskipun ini masih memungkinkan penyerang untuk memanipulasi kesulitan sekitar 0,6% setiap periode, ini hanya akan menjadi perubahan satu kali yang tidak dapat diakumulasi. Secara keseluruhan, solusi ini mencapai keseimbangan yang baik antara melindungi keamanan jaringan dan mempertahankan stabilitas sistem.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
19 Suka
Hadiah
19
7
Bagikan
Komentar
0/400
ColdWalletGuardian
· 5jam yang lalu
Setelah bug ini diperbaiki, saya akan merasa tenang.
Lihat AsliBalas0
BridgeNomad
· 5jam yang lalu
sudah terbakar oleh cukup banyak eksploitasi bridge untuk mengetahui - vektor serangan ini membuat saya mengalami PTSD juno bridge fr
Lihat AsliBalas0
fren.eth
· 5jam yang lalu
Tidak ada yang bodoh, siapa yang tidak ingin mendapatkan sesuatu secara gratis.
Lihat AsliBalas0
NotAFinancialAdvice
· 5jam yang lalu
Setelah memperbaiki celah, penambang tidak boleh bermain lagi ya.
Lihat AsliBalas0
retroactive_airdrop
· 5jam yang lalu
Memperbaiki kesepian
Lihat AsliBalas0
GmGmNoGn
· 5jam yang lalu
Sekali lagi memperbaiki bug, satu teratasi satu lagi muncul.
Analisis Kerentanan Serangan Distorsi Waktu Bitcoin: Prinsip, Dampak, dan Solusi Perbaikan
Bitcoin Kerentanan Keamanan: Serangan Distorsi Waktu
Baru-baru ini, pengembang Bitcoin Antoine Poinsot mengajukan proposal soft fork yang disebut "Pembersihan Konsensus Besar". Proposal ini bertujuan untuk memperbaiki beberapa kerentanan dan kelemahan yang telah ada dalam protokol Bitcoin selama bertahun-tahun, termasuk masalah transaksi ganda yang baru-baru ini kita diskusikan, serta kerentanan "serangan distorsi waktu" yang lebih serius yang akan menjadi fokus pembahasan dalam artikel ini.
Mekanisme Perlindungan Timestamp Blok Bitcoin
Sebelum membahas serangan distorsi waktu, kita perlu memahami aturan perlindungan manipulasi waktu saat ini:
Aturan waktu tengah yang telah berlalu (MPT): Stempel waktu blok harus lebih baru daripada waktu tengah dari 11 blok sebelumnya.
Aturan waktu blok di masa depan: Stempel waktu blok tidak boleh lebih dari 2 jam di atas waktu median rekan node. Perbedaan maksimum yang diizinkan antara waktu node dan jam sistem lokal adalah 90 menit.
Aturan MPT mencegah stempel waktu blok terlalu jauh dari masa lalu, sedangkan aturan blok masa depan membatasi stempel waktu agar tidak terlalu memasuki masa depan. Perlu dicatat bahwa tidak mungkin menerapkan mekanisme serupa aturan blok masa depan untuk mencegah stempel waktu masa lalu, karena ini dapat mempengaruhi sinkronisasi blockchain awal. Serangan distorsi waktu justru memanfaatkan kemungkinan pemalsuan stempel waktu kuno.
Kesalahan "kurang satu" Satoshi Nakamoto
Periode penyesuaian kesulitan Bitcoin mencakup 2016 blok, yang dihitung berdasarkan waktu target pembuatan blok 10 menit, sekitar dua minggu. Dalam menghitung penyesuaian kesulitan penambangan, protokol akan menghitung selisih stempel waktu antara blok pertama dan terakhir dalam jendela 2016 blok yang relevan. Jendela 2016 blok ini sebenarnya mencakup 2015 interval blok (yaitu 2016 dikurangi 1). Oleh karena itu, waktu target yang benar seharusnya adalah 60 detik × 10 menit × 2015 interval = 1.209.000 detik. Namun, protokol Bitcoin menggunakan angka 2016 untuk menghitung target: 60 detik × 10 menit × 2016 = 1.209.600 detik. Ini adalah kesalahan tipikal kurang satu, yang mungkin membuat Satoshi Nakamoto bingung antara blok dan interval blok.
Kesalahan ini menyebabkan waktu target lebih lama 0,05% dari yang seharusnya. Sebenarnya, interval waktu target Bitcoin bukanlah 10 menit, melainkan 10 menit dan 0,3 detik. Meskipun kerentanan ini tampak sepele, sejak peluncuran Bitcoin, rata-rata interval blok selalu 9 menit 36 detik, yang jelas kurang dari 10 menit. Ini terutama karena sejak 2009, rata-rata daya komputasi terus meningkat. Ini juga menjelaskan mengapa peristiwa pengurangan setengah yang terbaru terjadi pada April 2024, dan bukan Januari 2025. Kita sebenarnya telah mempercepat kemajuan. Dalam jangka panjang, ketika harga dan daya komputasi cenderung stabil, kesalahan 0,3 detik ini mungkin akan membantu kita kembali ke kemajuan yang telah ditentukan.
Serangan Distorsi Waktu
Serangan distorsi waktu ditemukan pertama kali pada tahun 2011, yang memanfaatkan kesalahan Satoshi Nakamoto dalam perhitungan kesulitan. Misalkan penambangan sepenuhnya terpusat, para penambang dapat menetapkan cap waktu sembarang dalam batasan yang diizinkan oleh protokol. Penyerang akan mengatur cap waktu sebagian besar blok untuk hanya satu detik lebih awal dari blok sebelumnya, untuk memperlambat waktu blockchain seefisien mungkin, sambil mematuhi aturan MTP. Untuk meminimalkan kemajuan waktu, penambang dapat mempertahankan cap waktu yang sama untuk enam blok berturut-turut, lalu menambah waktu satu detik pada blok ketujuh, dan seterusnya.
Serangan ini akan menyebabkan waktu blockchain semakin tertinggal dari waktu yang sebenarnya, sementara kesulitan akan terus meningkat, membuat penambangan menjadi semakin sulit. Namun, untuk meningkatkan efek serangan, pada blok terakhir dari setiap periode penyesuaian kesulitan, para penambang akan mengatur cap waktu ke waktu dunia nyata. Setelah itu, cap waktu untuk blok pertama dari periode penyesuaian kesulitan yang baru akan diatur kembali ke masa lalu, hanya satu detik lebih awal dari blok kedua terakhir dari periode sebelumnya. Operasi ini masih sesuai dengan aturan MTP karena satu anomali tidak akan mempengaruhi median dari 11 blok.
Setelah melaksanakan serangan ini, kesulitan pada siklus pertama tidak akan terpengaruh. Namun, mulai dari siklus penyesuaian kedua, kesulitan akan mulai diturunkan. Pada saat ini, penambang dapat membuat blok dengan kecepatan yang sangat cepat, mungkin dalam waktu singkat menciptakan sejumlah besar Bitcoin, sehingga mendapatkan keuntungan yang tidak semestinya.
Kelayakan dan Tantangan Serangan
Meskipun serangan semacam ini secara teori memiliki konsekuensi yang menghancurkan, pelaksanaannya di lapangan menghadapi berbagai tantangan.
Solusi
Ada beberapa cara untuk memperbaiki kerentanan ini:
Mengubah algoritma penyesuaian kesulitan, menghitung rentang waktu antara blok dalam jendela 2016 yang berbeda, dan sepenuhnya memperbaiki kesalahan satu yang kurang. Namun, ini mungkin memerlukan hard fork.
Menghapus aturan MTP, yang mengharuskan waktu selalu bergerak maju di setiap blok. Namun, ini bisa menyebabkan waktu terjebak di masa depan yang jauh, dan menyulitkan para penambang yang menggunakan jam sistem.
Solusi yang lebih sederhana adalah meminta waktu blok pertama dari periode kesulitan baru tidak lebih awal dari jumlah menit tertentu sebelum blok terakhir dari periode sebelumnya. Dalam proposal pembersihan konsensus besar Poinsot, waktu ini ditetapkan menjadi 2 jam.
Keterbatasan 2 jam ini memiliki kelebihan berikut:
Meskipun ini masih memungkinkan penyerang untuk memanipulasi kesulitan sekitar 0,6% setiap periode, ini hanya akan menjadi perubahan satu kali yang tidak dapat diakumulasi. Secara keseluruhan, solusi ini mencapai keseimbangan yang baik antara melindungi keamanan jaringan dan mempertahankan stabilitas sistem.