258 / 736BWH

Block Withholding Attack

Serangan menahan solusi blok

Bayangkan penambang yang rutin mengirim bukti kerja kepada sebuah pool. Namun, ketika menemukan hasil yang diperlukan untuk blok valid, ia menyembunyikannya. Di dasbor ia terlihat aktif, sementara pool kehilangan kesempatan mendapat imbalan. Itulah cara kerja Block Withholding Attack klasik. Serangan terhadap kerja sama penambang ini bisa tampak seperti nasib buruk biasa. Untuk memahaminya, kita perlu membedakan bukti kerja rutin, blok yang sebenarnya, dan aturan pembagian uang.

Block Withholding Attack terjadi ketika penambang mengirim bukti kerja biasa kepada pool, tetapi sengaja tidak menyerahkan solusi blok valid yang ditemukan. Pool dapat mencatat kontribusinya tanpa menerima kesempatan yang semestinya untuk memperoleh imbalan blok.

Mining Pool menggabungkan kerja para penambang dan membagi imbalan berdasarkan aturan yang disepakati. Pool tidak bisa menunggu setiap peserta kecil menemukan satu blok penuh. Seperti dijelaskan Bitcoin Developer Guide, pool memakai shares: hasil yang memenuhi syarat lebih mudah dan menjadi bukti kerja secara berkala. Hasil yang langka juga memenuhi syarat jaringan Bitcoin yang lebih ketat. Penyerang mengirim shares biasa, tetapi membuang temuan yang lebih berharga itu. Mesinnya benar-benar menghitung dan memakai listrik; ini bukan berpura-pura menambang tanpa biaya. [3]

Jawabannya bergantung pada model pembayaran. Meni Rosenfeld membedakan Pay Per Share (PPS), ketika operator membayar shares yang diterima, dengan Pay Per Last N Shares (PPLNS), ketika imbalan blok yang benar-benar diperoleh dibagi menurut shares yang baru-baru ini diterima dalam rentang yang ditentukan. Pada PPS, operator menanggung kekurangan pendapatan dari blok yang tidak diserahkan jika ia memenuhi janji pembayaran. Pada PPLNS, uang yang dibagikan kepada peserta, termasuk penyerang, menjadi lebih sedikit. Temuan yang sama-sama dibuang dapat merugikan pihak berbeda. Aturan pool yang konkret lebih penting daripada label “menambang” di dasbor. [1]

Membuang temuan saja bisa menjadi sabotase mahal. Penyerang membayar perangkat dan listrik serta melepaskan pendapatan yang bisa diperoleh dengan jujur. Ittay Eyal juga meneliti kasus lebih rumit: pool pesaing menambang dengan jujur memakai sebagian kapasitasnya, lalu menggunakan bagian lain untuk menyerang pool berbeda. Dengan asumsi tertentu, pembagian itu dapat meningkatkan pendapatan totalnya. Namun, hasil model matematika tidak menjanjikan laba setelah seluruh biaya. Kerugian korban saja tidak menunjukkan apakah penyerang menghasilkan keuntungan secara keseluruhan. [2]

Keduanya melibatkan blok yang belum dipublikasikan, tetapi nasib blok tersebut berbeda. Eyal dan Emin Gün Sirer menjelaskan Selfish Mining sebagai penambangan pada cabang rantai privat dengan publikasi blok secara strategis. Penyerang ingin cabangnya menang dan menghasilkan imbalan. Sebaliknya, Block Withholding Attack klasik di dalam pool membuang blok yang ditemukan; serangan ini tidak perlu membangun cabang privat pemenang. Varian lain hanya menunda penyerahan. Karena itu, saat membaca analisis kita perlu mengetahui strategi mana yang sebenarnya diteliti. [4]

Bayangkan periode ketika penambang jujur, dengan daya komputasi dan kesulitan tertentu, akan menemukan rata-rata 1 blok. Model Poisson, yang juga digunakan Rosenfeld, menggambarkan temuan acak yang saling independen dengan laju rata-rata yang diharapkan tetap. Model ini memberi peluang sekitar 37% untuk tidak menemukan satu pun. Jika jumlah yang diharapkan 3 blok, peluangnya sekitar 5%. Ini bukan probabilitas bersalah: kita menghitung peluang hasil nol dengan asumsi penambangan jujur, bukan peluang kecurangan setelah melihat nol. Contoh ini mengasumsikan kondisi stabil yang sesuai dan periode pengamatan yang ditentukan sebelumnya. Rata-rata bukan tenggat kedatangan blok. [1]

Eyal menyoroti sulitnya mengaitkan serangan dengan penambang kecil tertentu. Akun tanpa blok temuan saja tidak cukup. Shares yang diterima perlu dibandingkan dengan blok pada periode yang sama, dengan memperhitungkan kesulitan shares, yakni banyaknya kerja yang diwakilinya. Hashrate berarti kecepatan komputasi; perkiraannya dari bukti-bukti tersebut juga berfluktuasi. Gangguan, catatan yang hilang, dan perubahan kondisi harus diperiksa. Pool mungkin punya alasan menyelidiki masalah tanpa cukup bukti untuk menuduh seseorang. [2]

Eyal membahas bonus bagi penemu blok, pembangunan reputasi, serta tugas uji dengan solusi yang sudah diketahui. Namun, masing-masing mengubah sesuatu. Bonus mengalihkan lebih banyak imbalan kepada penemu dan dapat memperbesar fluktuasi pendapatan penambang kecil. Aturan reputasi menyulitkan perpindahan pool; tugas uji memerlukan pemeliharaan dan penilaian yang andal. Ini bukan perlindungan universal yang tinggal dinyalakan. Operator harus menilai efektivitas serta efek sampingnya dan jujur menjelaskan apa yang dapat dideteksi oleh langkah tersebut. [2]

Bitcoin Developer Guide membedakan penemuan blok dari validasinya oleh jaringan. Menyembunyikan temuan tidak mengubah aturan validitas transaksi dan tidak dengan sendirinya memungkinkan pengeluaran koin orang lain atau penulisan ulang riwayat terkonfirmasi. Kerugian utamanya mengenai ekonomi dan kepercayaan dalam kerja sama penambang. Tiga pertanyaan membantu: apa yang disembunyikan, siapa yang kehilangan uang menurut aturan yang disepakati, dan bukti apa yang benar-benar ada? Penjelasan mekanisme ini bukan tuduhan terhadap pool yang beroperasi sekarang. [3]

Untuk gambaran yang lebih utuh, baca entri ini bersama Mining Pool, Pay Per Last N Shares, Hashrate, Selfish Mining.

DOC · 001Rosenfeld — Analysis of Bitcoin Pooled Mining Reward SystemsSumber primer DOC · 002Eyal — The Miner’s DilemmaSumber primer DOC · 003Bitcoin Developer Guide — MiningDokumentasi DOC · 004Eyal and Sirer — Majority is not EnoughSumber primer
Direvisi: Utamakan sumber · Bukan nasihat investasi