117 / 736ECL

Eclipse Attack

Node tetap terhubung, tetapi penyerang menutupi jaringan lainnya

Internet bekerja dan koneksi terbuka, tetapi node tidak melihat keadaan Bitcoin yang sebenarnya. Dalam Eclipse Attack, lawan menguasai jalurnya ke peserta lain dan memilih pesan yang boleh sampai.

Eclipse Attack sengaja mengisolasi node dari peer jujur sambil mempertahankan koneksi dengan penyerang. Full Node, perangkat lunak yang memeriksa aturan Bitcoin secara mandiri, tetap melakukan pemeriksaan itu, tetapi mungkin hanya menerima gambaran jaringan yang tidak lengkap atau usang. Serangan ini tidak mengesahkan data tidak sah; yang dimanfaatkan adalah hal yang tidak terlihat oleh node.

Anna menerima pembayaran bitcoin dan memantau node miliknya, yaitu komputer yang menjalankan perangkat lunak untuk berpartisipasi dalam jaringan Bitcoin. Node menunjukkan koneksi aktif, tetapi semua jalur penting ke luar dikuasai lawan. Pesan tetap datang, namun hanya yang boleh diperlihatkan kepadanya. Itulah inti Eclipse Attack. Satu koneksi jahat biasanya belum cukup: jalur yang berfungsi menuju node jujur dapat membawa blok tersembunyi dan mengganggu kendali penyerang. Blok mengelompokkan transaksi dalam satu kumpulan yang ditambahkan ke riwayat bersama. [1] [6]

Ethan Heilman, Alison Kendler, Aviv Zohar, dan Sharon Goldberg menjelaskan serangan terhadap jaringan Bitcoin saat itu pada 2015. Mereka meneliti cara mengisi tabel alamat node dengan alamat yang dikuasai penyerang agar saat tersambung kembali, node hanya terhubung ke komputer penyerang. Mereka memanfaatkan pemilihan koneksi tanpa membobol metode matematika yang melindungi antara lain tanda tangan digital. Penelitian itu juga mengusulkan pertahanan; hasil historisnya bukan ukuran keberhasilan terhadap Bitcoin Core versi masa kini. [1] [7]

Setelah berhasil mengisolasi node, penyerang memilih blok dan transaksi yang diteruskan kepada Anna atau ditahan. Ia juga dapat mencegah penyebaran transaksi Anna sendiri atau mengamati asalnya. Menguasai koneksi saja tidak memerlukan mayoritas daya penambangan. Namun, bukan berarti semua serangan lanjutan bisa dilakukan tanpa usaha tambahan: membuat blok baru, misalnya, membutuhkan kerja nyata. [1] [6]

Full Node Anna masih memeriksa tanda tangan, syarat pembelanjaan, dan imbalan penambang yang diizinkan. Menandatangani di sini berarti memakai kunci privat, sebuah nilai angka rahasia, untuk membuat bukti otorisasi pembayaran yang bisa diverifikasi. Orang lain dapat memeriksa tanda tangan tanpa mengetahui rahasia itu. Node Anna tidak menerima transaksi yang tidak sah hanya karena datang dari satu-satunya sumber yang tersedia. Akan tetapi, verifikasi tidak dapat mengungkap blok sah yang tidak pernah tiba. Anda juga bisa memastikan surat yang diterima asli tanpa mengetahui bahwa semua surat lebih baru ditahan seseorang. Keabsahan dan kelengkapan informasi yang tersedia adalah persoalan berbeda. [5] [9]

Node dapat bertahan pada blok terakhir yang diketahuinya sementara node lain melanjutkan. Penambang yang terisolasi bahkan bisa terus menambang cabang yang telah ditinggalkan dan kehilangan imbalan yang diharapkan. Namun, lama menunggu blok saja bukan bukti serangan: penambangan bersifat acak dan gangguan biasa juga menyebabkan masalah. Gabungan beberapa gejala lebih bermakna daripada layar yang lambat diperbarui saja. [1] [5] [8]

Penyerang bisa menunjukkan kepada Anna cabang pribadi sah berisi pembayarannya, sambil membelanjakan dana yang sama dengan cara lain di bagian lain jaringan Bitcoin. Setelah koneksi pulih, node dapat beralih ke cabang sah dengan kerja terakumulasi lebih besar. Inilah Reorg, yakni penggantian sebagian riwayat yang sudah diterima. Pembayaran di cabang yang ditinggalkan mungkin kehilangan konfirmasinya. Tetapi penyerang tetap harus menyediakan Proof of Work untuk bloknya. Ini adalah hasil yang dapat diverifikasi dari pencarian yang membutuhkan banyak komputasi; blok-blok itu juga harus memenuhi syarat tersebut. Pekerjaan yang diperlukan juga dapat berasal dari penambang yang telah diisolasi oleh penyerang. Angka konfirmasi karangan tidak dapat menipu Full Node; keberhasilan juga bergantung pada lama isolasi dan sumber daya lawan. [1] [5] [6]

Pertahanan berupaya agar semua koneksi tidak berakhir pada lawan yang sama. Bitcoin Core mengelompokkan alamat yang dikenal dan mendorong keragaman jaringan saat memilih koneksi keluar. Alamat IP menunjukkan lokasi di jaringan yang dituju program saat membuat koneksi. Namun, alamat IP berbeda masih bisa dimiliki satu operator atau melewati infrastruktur yang sama. Langkah ini mengurangi pemusatan dan mempersulit serangan, bukan membuktikan bahwa setiap peer independen. [3] [4]

Bitcoin Core memakai koneksi singkat bernama feeler untuk memeriksa apakah alamat lain dapat dijangkau. Koneksi penerusan blok tambahan memiliki peran berbeda: dapat membawa header blok baru — catatan teknis ringkas blok — dan sudut pandang lain tentang kelanjutan rantai. Karena itu, tidak tepat mengatakan setiap feeler langsung mengunduh riwayat terbaru. Kode Bitcoin Core 29.0 yang dirujuk menunjukkan pertahanan berbeda ini; tidak satu pun menjamin berakhirnya isolasi dengan sendirinya. [4] [8]

Peer dikenal yang ditambahkan manual bisa membuka jalur lain jika tersedia dan benar-benar terhubung ke bagian lain jaringan Bitcoin. Namun, beberapa koneksi melalui satu penyedia belum tentu independen. Memakai perangkat lunak yang masih didukung dan memahami pengaturan lebih masuk akal daripada menyalin daftar alamat orang lain begitu saja. Verifikasi sendiri tetap berlaku: mempercayai ketersediaan sumber tidak memberinya izin mengirim blok tidak sah. [2] [4] [6]

Sybil Attack berarti satu lawan menggunakan banyak identitas, yang dapat membantu Eclipse Attack. Eclipse menggambarkan keberhasilan memutus node atau kelompok tertentu dari sumber jujur. Pemisahan jaringan yang lebih luas memisahkan wilayah-wilayah jaringan dan tidak harus terjadi dengan cara itu. Bagi pengguna, intinya adalah Full Node memberikan verifikasi mandiri, tetapi juga membutuhkan informasi di luar kendali penyerang. [1] [6]

Untuk gambaran yang lebih utuh, baca entri ini bersama Sybil Attack, Block Propagation, Compact Blocks, Nakamoto Consensus, Bitcoin, Full Node. Entri ini juga dirujuk dari Pembelanjaan ganda, Byzantine Generals Problem, Nakamoto Consensus, Sybil Attack.

DOC · 001Heilman et al. — Eclipse Attacks on BitcoinSumber primer DOC · 002Bitcoin Developer Guide — P2P NetworkDokumentasi DOC · 003Bitcoin Core v29.0 — addrmanDokumentasi DOC · 004Bitcoin Core v29.0 — Peer connectionsDokumentasi DOC · 005Bitcoin Developer Guide — Block ChainDokumentasi DOC · 006Bitcoin Optech — Eclipse attacksDokumentasi DOC · 007USENIX Security 2015 — Eclipse Attacks on Bitcoin’s Peer-to-Peer NetworkSumber primer DOC · 008Bitcoin Core v29.0 — Message processingDokumentasi DOC · 009Bitcoin Core v29.0 — Block validationDokumentasi
Direvisi: Utamakan sumber · Bukan nasihat investasi