Perkenalan

Serangan gerhana adalah serangan yang relatif sederhana yang mungkin dilakukan oleh aktor jahat untuk mengganggu node di jaringan. Seperti namanya, serangan ini bertujuan untuk mengaburkan pandangan partisipan terhadap jaringan peer-to-peer, untuk menyebabkan gangguan umum, atau untuk mempersiapkan serangan yang lebih canggih.

Serangan Eclipse mungkin terdengar mirip, di permukaan, dengan serangan Sybil. Meskipun keduanya memiliki kesamaan tertentu – pelaku kejahatan akan membanjiri jaringan dengan rekan-rekan palsu – tujuan akhirnya berbeda. Serangan gerhana ditujukan pada satu node (untuk alasan yang dijelaskan di bagian selanjutnya), sedangkan serangan Sybil adalah serangan seluruh jaringan yang dirancang untuk mempermainkan sistem reputasi protokol.

Konsep ini dibahas panjang lebar dalam makalah tahun 2015, yaitu Eclipse Attacks on Bitcoin’s Peer-to-Peer Network, yang mana para peneliti dari Boston University dan Hebrew University melaporkan temuan mereka dari eksperimen mereka dalam meningkatkan serangan gerhana, serta kemungkinan tindakan pencegahan untuk memeranginya.


Cara kerja serangan gerhana

Penambang Bitcoin memerlukan peralatan khusus untuk menghasilkan blok baru, namun node non-penambangan (atau penuh) dapat dengan mudah dijalankan dengan daya komputasi minimal. Hal ini membantu desentralisasi Bitcoin, karena siapa pun dapat membuat node pada perangkat dengan spesifikasi rendah. Perangkat lunak ini memelihara database transaksi yang disinkronkan dengan rekan-rekan terdekatnya, agar tetap sejalan dengan jaringan.

Faktor pembatas bagi banyak node adalah bandwidth. Meskipun ada banyak sekali perangkat yang menjalankan perangkat lunak ini, rata-rata perangkat tidak dapat terhubung langsung ke banyak perangkat tersebut karena batasan yang ditetapkan dalam perangkat lunak Bitcoin (yang hanya mengizinkan maksimal 125 koneksi).

Dalam serangan gerhana, pelaku jahat akan memastikan bahwa semua koneksi target dibuat ke node yang dikendalikan penyerang. Entitas pertama-tama akan membanjiri target dengan alamat IP-nya sendiri, yang kemungkinan besar akan disambungkan oleh korban setelah perangkat lunak mereka dihidupkan ulang. Restart dapat dilakukan secara paksa (yaitu dengan serangan DDoS pada target), atau penyerang dapat menunggu hingga hal tersebut terjadi.

Jika hal ini terjadi, korban yang tidak menaruh curiga akan bergantung pada node berbahaya – tanpa melihat jaringan yang lebih luas, node tersebut dapat menerima data yang salah dari penyerang.


Konsekuensi dari serangan gerhana

Jika penyerang mengeluarkan sumber daya untuk mengasingkan rekannya dari jaringan, mereka mungkin mempunyai motif untuk melakukannya. Ada beberapa serangan berturut-turut yang dapat diluncurkan dengan lebih mudah setelah sebuah node tercekik.


0-konfirmasi pembelanjaan ganda

Jika seseorang menerima transaksi tanpa konfirmasi, mereka berisiko mengalami pembelanjaan ganda. Transaksi tersebut mungkin telah disiarkan, namun hingga transaksi tersebut dimasukkan ke dalam blok (dan karenanya berkomitmen pada blockchain), pengirim dapat dengan mudah membuat transaksi baru yang menghabiskan dana yang sama di tempat lain. Jika transaksi baru memiliki biaya yang lebih tinggi, penambang kemungkinan akan memasukkannya sebelum transaksi awal, sehingga membatalkan transaksi sebelumnya.

Beberapa bisnis dan individu menerima transaksi 0-konfirmasi ini. Misalnya seorang pedagang, Bob, yang menjual kendaraan kelas atas. Dia tidak menyadari bahwa Alice telah melampaui batasnya, dan tidak mencurigai apa pun saat dia memesan mobil sport mewah. Dia menciptakan transaksi, yang kemudian disiarkan Bob ke jaringan. Puas karena pembayaran sudah sampai, dia menyerahkan kunci mobil dan Alice melaju kencang.

Tentu saja, transaksi tersebut tidak disiarkan ke jaringan – Bob hanya meneruskannya ke node jahat Alice, yang tidak akan meneruskannya ke node jujur. Sementara transaksi ini berada dalam ketidakpastian, Alice membelanjakan dana yang sama di jaringan (sebenarnya), baik ke pihak lain atau ke alamat yang dimilikinya. Bahkan jika transaksi awal ke Bob pada akhirnya terlihat, transaksi tersebut akan ditolak karena koin telah dibelanjakan.


N-konfirmasi pembelanjaan ganda

Pembelanjaan ganda N-konfirmasi mirip dengan pembelanjaan 0-konfirmasi, namun memerlukan lebih banyak persiapan. Banyak bisnis lebih memilih menunggu sejumlah konfirmasi sebelum menandai pembayaran sebagai valid. Untuk mengatasi hal ini, penyerang harus mengalahkan penambang dan pedagang. Setelah penyerang mengatur pesanan dengan pedagang, mereka menyiarkan transaksi ke penambang (yang dikalahkan). Transaksi tersebut dikonfirmasi dan dimasukkan ke dalam blockchain – tetapi blockchain ini bukanlah rantai yang diamati oleh sebagian besar jaringan, karena penambangnya terputus.

Dari sana, penyerang meneruskan versi blockchain ini ke pedagang, yang melepaskan barangnya dengan keyakinan bahwa transaksi telah dikonfirmasi. Setelah node yang dikalahkan bergabung kembali dengan jaringan sebenarnya, blockchain yang mereka yakini valid secara keliru akan menjadi yatim piatu oleh blockchain yang sedang dikerjakan oleh seluruh jaringan (ini memiliki beberapa kesamaan dengan serangan 51%).


Melemahkan penambang pesaing

Node yang mengalami gerhana akan terus beroperasi, tanpa menyadari fakta bahwa node tersebut telah dipisahkan dari jaringan. Penambang akan terus menambang blok sesuai aturan yang ditetapkan oleh protokol, namun blok yang ditambahkan akan dibuang saat disinkronkan dengan rekan yang jujur.

Secara teoritis, serangan gerhana skala besar terhadap penambang besar dapat digunakan untuk memfasilitasi serangan 51%. Saat ini, biaya untuk mengambil alih sebagian besar kekuatan hashing Bitcoin terlalu tinggi bahkan bagi penyerang yang paling pandai sekalipun – pada ~80TH/dtk, entitas akan memerlukan lebih dari 40TH/dtk untuk mencoba melakukan manuver seperti itu.

Dalam skenario hipotetis di mana kekuatan hashing ini didistribusikan antara 10 pihak (masing-masing pihak memiliki 8TH/s), penyerang dapat secara signifikan menurunkan persyaratan serangan sebesar 51% dengan memutus pihak-pihak tersebut dari jaringan. Jika lima terlampaui, 40TH/dtk dikeluarkan dari perlombaan untuk menemukan blok berikutnya, dan penyerang sekarang hanya perlu memperoleh sedikit lebih dari 20TH/dtk untuk mengambil kendali.

Sabotase lain yang dapat dicapai dengan melampaui target termasuk manipulasi node untuk penambangan egois, atau rekayasa balapan antar penambang untuk menemukan blok berikutnya.


Mitigasi

Dengan alamat IP yang cukup, penyerang dapat mengalahkan node mana pun. Metode paling mudah untuk mencegah hal ini terjadi adalah dengan memblokir koneksi masuk, dan hanya membuat koneksi keluar ke node tertentu (seperti node yang telah masuk daftar putih oleh rekan lainnya). Namun, seperti yang ditunjukkan oleh makalah penelitian, pendekatan ini tidak akan berhasil dalam skala besar – jika semua peserta mengadopsi langkah-langkah ini, node-node baru tidak akan dapat bergabung dalam jaringan.

Penulis mengusulkan beberapa penyesuaian pada perangkat lunak Bitcoin, beberapa di antaranya telah terintegrasi sejak makalah ini diterbitkan. Hal ini membuat serangan Eclipse lebih mahal melalui sedikit modifikasi pada kode, seperti pemilihan koneksi baru secara acak dan kapasitas yang lebih besar untuk menyimpan alamat.


Serangan Eclipse dilakukan pada tingkat jaringan peer-to-peer. Jika digunakan sebagai serangan mandiri, mereka bisa menjadi gangguan. Efektivitas mereka yang sebenarnya adalah dalam mempotensiasi serangan lain yang berdampak pada target secara finansial, atau memberikan keuntungan bagi penyerang dalam bidang penambangan.

Di alam liar, belum ada konsekuensi serius akibat serangan gerhana, namun ancaman masih tetap ada meskipun tindakan penanggulangan sudah terintegrasi ke dalam jaringan. Seperti kebanyakan vektor serangan yang ada pada Bitcoin dan mata uang kripto lainnya, pertahanan terkuat adalah pertahanan yang membuat pihak jahat tidak mampu secara finansial untuk mencobanya.