Lompat ke konten utama
Change page

Serangan dan pertahanan Bukti Kepemilikan (PoS) Ethereum

Pencuri dan penyabotase terus-menerus mencari peluang untuk menyerang perangkat lunak klien Ethereum. Halaman ini menguraikan vektor serangan yang diketahui pada lapisan konsensus Ethereum dan menguraikan bagaimana serangan tersebut dapat dipertahankan. Informasi di halaman ini diadaptasi dari versi yang lebih panjang (opens in a new tab).

Prasyarat

Beberapa pengetahuan dasar tentang Bukti Kepemilikan (PoS) diwajibkan. Selain itu, akan sangat membantu jika Anda memiliki pemahaman dasar tentang lapisan insentif Ethereum dan algoritme pilihan cabang, LMD-GHOST.

Apa yang diinginkan penyerang?

Kesalahpahaman yang umum adalah bahwa penyerang yang berhasil dapat menghasilkan Ether baru, atau menguras Ether dari akun mana pun. Keduanya tidak mungkin karena semua transaksi dieksekusi oleh semua klien eksekusi di jaringan. Mereka harus memenuhi kondisi dasar validitas (misalnya, transaksi ditandatangani oleh kunci privat pengirim, pengirim memiliki saldo yang cukup, dll) atau jika tidak, mereka hanya akan mengembalikan (revert). Ada tiga kelas hasil yang mungkin secara realistis ditargetkan oleh penyerang: reorganisasi, finalitas ganda, atau penundaan finalitas.

“Reorganisasi” adalah perombakan blok ke dalam urutan baru, mungkin dengan beberapa penambahan atau pengurangan blok dalam rantai kanonikal. Reorganisasi berbahaya mungkin memastikan blok tertentu disertakan atau dikecualikan, memungkinkan pengeluaran ganda atau ekstraksi nilai melalui transaksi front-running dan back-running (MEV). Reorganisasi juga dapat digunakan untuk mencegah transaksi tertentu dimasukkan ke dalam rantai kanonikal - sebuah bentuk penyensoran. Bentuk reorganisasi yang paling ekstrem adalah “pembalikan finalitas” yang menghapus atau mengganti blok yang sebelumnya telah difinalisasi. Ini hanya mungkin jika lebih dari ⅓ dari total Ether yang di-stake dihancurkan oleh penyerang - jaminan ini dikenal sebagai “finalitas ekonomi” - lebih lanjut tentang ini nanti.

Finalitas ganda adalah kondisi yang tidak mungkin tetapi parah di mana dua percabangan mampu difinalisasi secara bersamaan, menciptakan perpecahan permanen dalam rantai. Ini secara teoretis mungkin bagi penyerang yang bersedia mempertaruhkan 34% dari total Ether yang di-stake. Komunitas akan dipaksa untuk berkoordinasi secara offchain dan mencapai kesepakatan tentang rantai mana yang harus diikuti, yang akan membutuhkan kekuatan di lapisan sosial.

Serangan penundaan finalitas mencegah jaringan mencapai kondisi yang diperlukan untuk memfinalisasi bagian-bagian dari rantai. Tanpa finalitas, sulit untuk mempercayai aplikasi keuangan yang dibangun di atas Ethereum. Tujuan dari serangan penundaan finalitas kemungkinan besar hanya untuk mengganggu Ethereum daripada untuk mendapatkan keuntungan secara langsung, kecuali jika penyerang memiliki beberapa posisi jual (short) strategis.

Serangan pada lapisan sosial mungkin bertujuan untuk merusak kepercayaan publik terhadap Ethereum, mendevaluasi Ether, mengurangi adopsi, atau melemahkan komunitas Ethereum untuk membuat koordinasi di luar jalur (out-of-band) menjadi lebih sulit.

Setelah menetapkan mengapa musuh mungkin menyerang Ethereum, bagian berikut memeriksa bagaimana mereka mungkin melakukannya.

Metode Serangan

Serangan Lapisan 0

Pertama-tama, individu yang tidak berpartisipasi aktif dalam Ethereum (dengan menjalankan perangkat lunak klien) dapat menyerang dengan menargetkan lapisan sosial (Lapisan 0). Lapisan 0 adalah fondasi di mana Ethereum dibangun, dan dengan demikian ini mewakili permukaan potensial untuk serangan dengan konsekuensi yang menyebar ke seluruh tumpukan. Beberapa contoh mungkin termasuk:

  • Kampanye misinformasi dapat mengikis kepercayaan komunitas terhadap peta jalan Ethereum, tim pengembang, aplikasi, dll. Ini kemudian dapat mengurangi jumlah individu yang bersedia berpartisipasi dalam mengamankan jaringan, menurunkan desentralisasi dan keamanan ekonomi kripto.

  • Serangan yang ditargetkan dan/atau intimidasi yang diarahkan pada komunitas pengembang. Ini dapat menyebabkan keluarnya pengembang secara sukarela dan memperlambat kemajuan Ethereum.

  • Regulasi yang terlalu berlebihan juga dapat dianggap sebagai serangan pada Lapisan 0, karena dapat dengan cepat menghilangkan insentif partisipasi dan adopsi.

  • Infiltrasi aktor yang berpengetahuan luas tetapi berbahaya ke dalam komunitas pengembang yang tujuannya adalah untuk memperlambat kemajuan dengan diskusi yang tidak penting (bike-shedding), menunda keputusan penting, membuat spam, dll.

  • Suap yang diberikan kepada pemain kunci dalam ekosistem Ethereum untuk memengaruhi pengambilan keputusan.

Apa yang membuat serangan ini sangat berbahaya adalah bahwa dalam banyak kasus, hanya sedikit modal atau pengetahuan teknis yang diperlukan. Serangan Lapisan 0 bisa menjadi pengganda pada serangan ekonomi kripto. Misalnya, jika penyensoran atau pembalikan finalitas dicapai oleh pemangku kepentingan mayoritas yang berbahaya, merusak lapisan sosial mungkin membuatnya lebih sulit untuk mengoordinasikan respons komunitas di luar jalur.

Bertahan dari serangan Lapisan 0 mungkin tidak mudah, tetapi beberapa prinsip dasar dapat ditetapkan. Salah satunya adalah mempertahankan rasio sinyal terhadap kebisingan yang tinggi secara keseluruhan untuk informasi publik tentang Ethereum, yang dibuat dan disebarkan oleh anggota komunitas yang jujur melalui blog, server Discord, spesifikasi beranotasi, buku, podcast, dan YouTube. Di ethereum.org, kami berusaha keras untuk mempertahankan informasi yang akurat dan menerjemahkannya ke dalam sebanyak mungkin bahasa. Membanjiri ruang dengan informasi dan meme berkualitas tinggi adalah pertahanan yang efektif terhadap misinformasi.

Benteng penting lainnya terhadap serangan lapisan sosial adalah pernyataan misi dan protokol tata kelola yang jelas. Ethereum telah memposisikan dirinya sebagai juara desentralisasi dan keamanan di antara lapisan 1 (l1) kontrak pintar, sementara juga sangat menghargai skalabilitas dan keberlanjutan. Apa pun ketidaksepakatan yang muncul di komunitas Ethereum, prinsip-prinsip inti ini dikompromikan secara minimal. Menilai narasi terhadap prinsip-prinsip inti ini, dan memeriksanya melalui putaran tinjauan berturut-turut dalam proses EIP (Ethereum Improvement Proposal), mungkin membantu komunitas untuk membedakan aktor yang baik dari yang buruk dan membatasi ruang lingkup bagi aktor berbahaya untuk memengaruhi arah masa depan Ethereum.

Terakhir, sangat penting bahwa komunitas Ethereum tetap terbuka dan menyambut semua peserta. Komunitas dengan penjaga gerbang dan eksklusivitas adalah komunitas yang sangat rentan terhadap serangan sosial karena mudah untuk membangun narasi “kita dan mereka”. Tribalisme dan maksimalisme beracun merugikan komunitas dan mengikis keamanan Lapisan 0. Etherean dengan kepentingan pribadi dalam keamanan jaringan harus memandang perilaku mereka secara online dan di dunia nyata (meatspace) sebagai kontributor langsung terhadap keamanan Lapisan 0 Ethereum.

Menyerang protokol

Siapa pun dapat menjalankan perangkat lunak klien Ethereum. Untuk menambahkan validator ke klien, pengguna diwajibkan untuk men-stake 32 Ether ke dalam kontrak deposit. Validator memungkinkan pengguna untuk berpartisipasi aktif dalam keamanan jaringan Ethereum dengan mengusulkan dan melakukan atestasi pada blok baru. Validator sekarang memiliki suara yang dapat mereka gunakan untuk memengaruhi konten masa depan dari rantai blok - mereka dapat melakukannya dengan jujur dan menumbuhkan simpanan Ether mereka melalui hadiah atau mereka dapat mencoba memanipulasi proses untuk keuntungan mereka sendiri, mempertaruhkan stake mereka. Salah satu cara untuk melancarkan serangan adalah dengan mengakumulasi proporsi yang lebih besar dari total stake dan kemudian menggunakannya untuk mengalahkan suara validator yang jujur. Semakin besar proporsi stake yang dikendalikan oleh penyerang, semakin besar kekuatan suara mereka, terutama pada tonggak ekonomi tertentu yang akan kita jelajahi nanti. Namun, sebagian besar penyerang tidak akan dapat mengakumulasi Ether yang cukup untuk menyerang dengan cara ini, jadi sebagai gantinya mereka harus menggunakan teknik halus untuk memanipulasi mayoritas yang jujur agar bertindak dengan cara tertentu.

Pada dasarnya, semua serangan stake kecil adalah variasi halus pada dua jenis perilaku buruk validator: kurang aktif (gagal melakukan atestasi/mengusulkan atau melakukannya terlambat) atau terlalu aktif (mengusulkan/melakukan atestasi terlalu sering dalam satu slot). Dalam bentuknya yang paling standar, tindakan ini mudah ditangani oleh algoritme pilihan cabang dan lapisan insentif, tetapi ada cara cerdas untuk mempermainkan sistem demi keuntungan penyerang.

Serangan menggunakan sejumlah kecil ETH

reorganisasi

Beberapa makalah telah menjelaskan serangan pada Ethereum yang mencapai reorganisasi atau penundaan finalitas hanya dengan sebagian kecil dari total Ether yang di-stake. Serangan ini umumnya bergantung pada penyerang yang menahan beberapa informasi dari validator lain dan kemudian merilisnya dengan cara yang bernuansa dan/atau pada saat yang tepat. Mereka biasanya bertujuan untuk menggusur beberapa blok jujur dari rantai kanonikal. Neuder et al 2020 (opens in a new tab) menunjukkan bagaimana validator penyerang dapat membuat dan melakukan atestasi pada sebuah blok (B) untuk slot tertentu n+1 tetapi menahan diri untuk tidak menyebarkannya ke node lain di jaringan. Sebaliknya, mereka menahan blok yang telah diatestasi tersebut hingga slot berikutnya n+2. Validator yang jujur mengusulkan sebuah blok (C) untuk slot n+2. Hampir bersamaan, penyerang dapat merilis blok yang ditahannya (B) dan atestasi yang ditahannya untuk blok tersebut, dan juga melakukan atestasi bahwa B adalah kepala rantai dengan suara mereka untuk slot n+2, secara efektif menyangkal keberadaan blok jujur C. Ketika blok jujur D dirilis, algoritme pilihan cabang melihat D yang dibangun di atas B lebih berat daripada D yang dibangun di atas C. Oleh karena itu, penyerang telah berhasil menghapus blok jujur C di slot n+2 dari rantai kanonikal menggunakan reorganisasi ex ante 1-blok. Penyerang dengan 34% (opens in a new tab) dari stake memiliki peluang yang sangat baik untuk berhasil dalam serangan ini, seperti yang dijelaskan dalam catatan ini (opens in a new tab). Namun secara teori, serangan ini dapat dicoba dengan stake yang lebih kecil. Neuder et al 2020 (opens in a new tab) menggambarkan serangan ini bekerja dengan stake 30%, tetapi kemudian terbukti layak dengan 2% dari total stake (opens in a new tab) dan kemudian lagi untuk validator tunggal (opens in a new tab) menggunakan teknik penyeimbangan yang akan kita periksa di bagian selanjutnya.

ex-ante re-org

Diagram konseptual dari serangan reorganisasi satu blok yang dijelaskan di atas (diadaptasi dari https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair (opens in a new tab))

Serangan yang lebih canggih dapat membagi kumpulan validator yang jujur ke dalam kelompok-kelompok terpisah yang memiliki pandangan berbeda tentang kepala rantai. Ini dikenal sebagai serangan penyeimbangan (balancing attack). Penyerang menunggu kesempatan mereka untuk mengusulkan sebuah blok, dan ketika saatnya tiba, mereka melakukan ekivokasi dan mengusulkan dua blok. Mereka mengirim satu blok ke separuh dari kumpulan validator yang jujur dan blok lainnya ke separuh lainnya. Ekivokasi akan dideteksi oleh algoritme pilihan cabang dan pengusul blok akan mengalami pemotongan dan dikeluarkan dari jaringan, tetapi kedua blok tersebut akan tetap ada dan akan memiliki sekitar separuh dari kumpulan validator yang melakukan atestasi pada setiap percabangan. Sementara itu, validator berbahaya yang tersisa menahan atestasi mereka. Kemudian, dengan secara selektif merilis atestasi yang mendukung satu atau percabangan lainnya kepada validator yang cukup tepat saat algoritme pilihan cabang dieksekusi, mereka memiringkan akumulasi bobot atestasi untuk mendukung satu atau percabangan lainnya. Ini dapat berlanjut tanpa batas waktu, dengan validator penyerang mempertahankan pembagian validator yang merata di kedua percabangan. Karena tidak ada percabangan yang dapat menarik mayoritas super 2/3, jaringan tidak akan difinalisasi.

Serangan memantul (bouncing attacks) serupa. Suara kembali ditahan oleh validator penyerang. Alih-alih merilis suara untuk menjaga pembagian yang merata antara dua percabangan, mereka menggunakan suara mereka pada saat yang tepat untuk menjustifikasi titik periksa yang bergantian antara percabangan A dan percabangan B. Pembalikan justifikasi antara dua percabangan ini mencegah adanya pasangan titik periksa sumber dan target yang terjustifikasi yang dapat difinalisasi pada salah satu rantai, menghentikan finalitas.

The game of reorgs in proof of stake Ethereum

Caspar Schwarz-Schilling presents research on block reorganization attacks in proof of stake Ethereum, covering attack vectors, defense mechanisms, and the protocol-level mitigations in place.

Tonton dengan transkrip 

Baik serangan memantul maupun penyeimbangan bergantung pada penyerang yang memiliki kontrol yang sangat halus atas waktu pesan di seluruh jaringan, yang mana tidak mungkin. Meskipun demikian, pertahanan dibangun ke dalam protokol dalam bentuk pembobotan tambahan yang diberikan pada pesan yang cepat dibandingkan dengan yang lambat. Ini dikenal sebagai peningkatan bobot pengusul (proposer-weight boosting) (opens in a new tab). Untuk bertahan dari serangan memantul, algoritme pilihan cabang diperbarui sehingga titik periksa terjustifikasi terbaru hanya dapat beralih ke rantai alternatif selama 1/3 pertama dari slot di setiap Epok (opens in a new tab). Kondisi ini mencegah penyerang menyimpan suara untuk disebarkan nanti - algoritme pilihan cabang hanya tetap setia pada titik periksa yang dipilihnya pada 1/3 pertama Epok di mana sebagian besar validator yang jujur akan memberikan suara.

Digabungkan, langkah-langkah ini menciptakan skenario di mana pengusul blok yang jujur memancarkan blok mereka dengan sangat cepat setelah dimulainya slot, kemudian ada periode ~1/3 dari slot (4 detik) di mana blok baru tersebut mungkin menyebabkan algoritme pilihan cabang beralih ke rantai lain. Setelah tenggat waktu yang sama, atestasi yang tiba dari validator yang lambat akan diturunkan bobotnya dibandingkan dengan yang tiba lebih awal. Ini sangat menguntungkan pengusul dan validator yang cepat dalam menentukan kepala rantai dan secara substansial mengurangi kemungkinan keberhasilan serangan penyeimbangan atau memantul.

Perlu dicatat, bahwa peningkatan pengusul saja hanya bertahan terhadap “reorganisasi murah”, yaitu, yang dicoba oleh penyerang dengan stake kecil. Faktanya, peningkatan pengusul itu sendiri dapat dipermainkan oleh pemangku kepentingan yang lebih besar. Penulis postingan ini (opens in a new tab) menjelaskan bagaimana penyerang dengan 7% dari stake dapat menyebarkan suara mereka secara strategis untuk mengelabui validator yang jujur agar membangun di atas percabangan mereka, mereorganisasi blok yang jujur. Serangan ini dirancang dengan asumsi kondisi latensi ideal yang sangat tidak mungkin. Peluangnya masih sangat kecil bagi penyerang, dan stake yang lebih besar juga berarti lebih banyak modal yang berisiko dan disinsentif ekonomi yang lebih kuat.

Serangan penyeimbangan yang secara khusus menargetkan aturan LMD (opens in a new tab) juga diusulkan, yang disarankan layak meskipun ada peningkatan pengusul. Penyerang menyiapkan dua rantai yang bersaing dengan melakukan ekivokasi pada proposal blok mereka dan menyebarkan setiap blok ke sekitar setengah jaringan masing-masing, menyiapkan keseimbangan perkiraan antara percabangan. Kemudian, validator yang berkolusi melakukan ekivokasi pada suara mereka, mengatur waktunya sehingga setengah jaringan menerima suara mereka untuk Percabangan A terlebih dahulu dan setengah lainnya menerima suara mereka untuk Percabangan B terlebih dahulu. Karena aturan LMD membuang atestasi kedua dan hanya menyimpan yang pertama untuk setiap validator, setengah jaringan melihat suara untuk A dan tidak ada untuk B, setengah lainnya melihat suara untuk B dan tidak ada untuk A. Para penulis menggambarkan aturan LMD memberikan musuh “kekuatan luar biasa” untuk melancarkan serangan penyeimbangan.

Vektor serangan LMD ini ditutup dengan memperbarui algoritme pilihan cabang (opens in a new tab) sehingga membuang validator yang melakukan ekivokasi dari pertimbangan pilihan cabang sama sekali. Validator yang melakukan ekivokasi juga memiliki pengaruh masa depan mereka yang didiskon oleh algoritme pilihan cabang. Ini mencegah serangan penyeimbangan yang diuraikan di atas sambil juga mempertahankan ketahanan terhadap serangan longsoran (avalanche attacks).

Kelas serangan lain, yang disebut serangan longsoran (avalanche attacks) (opens in a new tab), dijelaskan dalam makalah Maret 2022 (opens in a new tab). Untuk melancarkan serangan longsoran, penyerang perlu mengendalikan beberapa pengusul blok berturut-turut. Di setiap slot proposal blok, penyerang menahan blok mereka, mengumpulkannya hingga rantai jujur mencapai bobot sub-pohon yang sama dengan blok yang ditahan. Kemudian, blok yang ditahan dirilis sehingga mereka melakukan ekivokasi secara maksimal. Para penulis menyarankan bahwa peningkatan pengusul - pertahanan utama terhadap serangan penyeimbangan dan memantul - tidak melindungi dari beberapa varian serangan longsoran. Namun, para penulis juga hanya mendemonstrasikan serangan pada versi algoritme pilihan cabang Ethereum yang sangat diidealkan (mereka menggunakan GHOST tanpa LMD).

Serangan longsoran dimitigasi oleh bagian LMD dari algoritme pilihan cabang LMD-GHOST. LMD berarti “didorong oleh pesan terbaru” (latest-message-driven) dan ini merujuk pada tabel yang disimpan oleh setiap validator yang berisi pesan terbaru yang diterima dari validator lain. Bidang tersebut hanya diperbarui jika pesan baru berasal dari slot yang lebih baru daripada yang sudah ada di tabel untuk validator tertentu. Dalam praktiknya, ini berarti bahwa di setiap slot, pesan pertama yang diterima adalah yang diterimanya dan pesan tambahan apa pun adalah ekivokasi yang harus diabaikan. Dengan kata lain, klien konsensus tidak menghitung ekivokasi - mereka menggunakan pesan yang tiba pertama dari setiap validator dan ekivokasi dibuang begitu saja, mencegah serangan longsoran.

Ada beberapa potensi peningkatan masa depan lainnya pada aturan pilihan cabang yang dapat menambah keamanan yang diberikan oleh peningkatan pengusul. Salah satunya adalah penggabungan pandangan (view-merge) (opens in a new tab), di mana pemberi atestasi membekukan pandangan mereka tentang pilihan cabang n detik sebelum dimulainya slot dan pengusul kemudian membantu menyinkronkan pandangan rantai di seluruh jaringan. Peningkatan potensial lainnya adalah finalitas slot tunggal (opens in a new tab), yang melindungi dari serangan berdasarkan waktu pesan dengan memfinalisasi rantai hanya setelah satu slot.

Penundaan Finalitas

Makalah yang sama (opens in a new tab) yang pertama kali mendeskripsikan serangan reorganisasi blok tunggal berbiaya rendah juga mendeskripsikan serangan penundaan finalitas (alias “kegagalan keaktifan”) yang bergantung pada penyerang yang menjadi pengusul blok untuk blok batas Epok. Ini sangat penting karena blok batas Epok ini menjadi titik periksa yang digunakan Casper FFG untuk memfinalisasi bagian-bagian dari rantai. Penyerang hanya menahan blok mereka sampai cukup banyak validator yang jujur menggunakan suara FFG mereka untuk mendukung blok batas Epok sebelumnya sebagai target finalisasi saat ini. Kemudian mereka merilis blok yang ditahan. Mereka melakukan atestasi pada blok mereka dan validator jujur yang tersisa juga melakukannya, menciptakan percabangan dengan titik periksa target yang berbeda. Jika mereka mengatur waktunya dengan tepat, mereka akan mencegah finalitas karena tidak akan ada mayoritas super 2/3 yang melakukan atestasi pada salah satu percabangan. Semakin kecil stake, semakin tepat waktu yang dibutuhkan karena penyerang mengendalikan lebih sedikit atestasi secara langsung, dan semakin rendah peluang penyerang mengendalikan validator yang mengusulkan blok batas Epok tertentu.

Serangan jarak jauh

Ada juga kelas serangan khusus untuk rantai blok Bukti Kepemilikan (PoS) yang melibatkan validator yang berpartisipasi dalam blok genesis yang mempertahankan percabangan terpisah dari rantai blok di samping yang jujur, yang pada akhirnya meyakinkan kumpulan validator yang jujur untuk beralih ke sana pada waktu yang tepat di kemudian hari. Jenis serangan ini tidak mungkin terjadi di Ethereum karena gawai finalitas yang memastikan semua validator menyetujui state dari rantai yang jujur pada interval reguler (“titik periksa”). Mekanisme sederhana ini menetralkan penyerang jarak jauh karena klien Ethereum tidak akan mereorganisasi blok yang difinalisasi. Node baru yang bergabung dengan jaringan melakukannya dengan menemukan hash state terbaru yang tepercaya (sebuah titik periksa “subjektivitas lemah (opens in a new tab)”) dan menggunakannya sebagai blok pseudo-genesis untuk dibangun di atasnya. Ini menciptakan 'gerbang kepercayaan' untuk node baru yang memasuki jaringan sebelum dapat mulai memverifikasi informasi untuk dirinya sendiri.

Penolakan Layanan (Denial of Service)

Mekanisme PoS Ethereum memilih satu validator dari total kumpulan validator untuk menjadi pengusul blok di setiap slot. Ini dapat dihitung menggunakan fungsi yang diketahui publik dan dimungkinkan bagi musuh untuk mengidentifikasi pengusul blok berikutnya sedikit lebih awal dari proposal blok mereka. Kemudian, penyerang dapat mengirim spam ke pengusul blok untuk mencegah mereka bertukar informasi dengan rekan-rekan mereka. Bagi seluruh jaringan, akan tampak bahwa pengusul blok sedang offline dan slot tersebut akan kosong begitu saja. Ini bisa menjadi bentuk penyensoran terhadap validator tertentu, mencegah mereka menambahkan informasi ke rantai blok. Menerapkan pemilihan pemimpin rahasia tunggal (SSLE) atau pemilihan pemimpin rahasia non-tunggal akan memitigasi risiko DoS karena hanya pengusul blok yang pernah tahu bahwa mereka telah dipilih dan pemilihan tersebut tidak dapat diketahui sebelumnya. Ini belum diimplementasikan, tetapi merupakan area aktif dari penelitian dan pengembangan (opens in a new tab).

Semua ini menunjuk pada fakta bahwa sangat sulit untuk berhasil menyerang Ethereum dengan stake kecil. Serangan yang layak yang telah dijelaskan di sini memerlukan algoritme pilihan cabang yang diidealkan, kondisi jaringan yang tidak mungkin, atau vektor serangan telah ditutup dengan tambalan yang relatif kecil pada perangkat lunak klien. Ini, tentu saja, tidak mengesampingkan kemungkinan adanya zero-day di alam liar (dalam praktiknya), tetapi ini menunjukkan standar kecakapan teknis, pengetahuan lapisan konsensus, dan keberuntungan yang sangat tinggi yang diperlukan agar penyerang dengan stake minoritas menjadi efektif. Dari sudut pandang penyerang, taruhan terbaik mereka mungkin adalah mengakumulasi Ether sebanyak mungkin dan kembali dengan bersenjatakan proporsi yang lebih besar dari total stake.

Penyerang menggunakan >= 33% dari total stake

Semua serangan yang disebutkan sebelumnya dalam artikel ini menjadi lebih mungkin berhasil ketika penyerang memiliki lebih banyak Ether yang di-stake untuk memberikan suara, dan lebih banyak validator yang mungkin dipilih untuk mengusulkan blok di setiap slot. Oleh karena itu, validator yang berbahaya mungkin bertujuan untuk mengendalikan sebanyak mungkin Ether yang di-stake.

33% dari Ether yang di-stake adalah tolok ukur bagi penyerang karena dengan jumlah yang lebih besar dari ini mereka memiliki kemampuan untuk mencegah rantai difinalisasi tanpa harus mengontrol tindakan validator lain secara halus. Mereka semua bisa menghilang bersama-sama. Jika 1/3 atau lebih dari Ether yang di-stake melakukan atestasi secara berbahaya atau gagal melakukan atestasi, maka mayoritas super 2/3 tidak dapat ada dan rantai tidak dapat difinalisasi. Pertahanan terhadap hal ini adalah kebocoran ketidakaktifan. Kebocoran ketidakaktifan mengidentifikasi validator yang gagal melakukan atestasi atau melakukan atestasi yang bertentangan dengan mayoritas. Ether yang di-stake yang dimiliki oleh validator yang tidak melakukan atestasi ini secara bertahap dikuras hingga akhirnya mereka secara kolektif mewakili kurang dari 1/3 dari total sehingga rantai dapat difinalisasi lagi.

Tujuan dari kebocoran ketidakaktifan adalah untuk membuat rantai difinalisasi lagi. Namun, penyerang juga kehilangan sebagian dari Ether yang di-stake mereka. Ketidakaktifan yang terus-menerus di seluruh validator yang mewakili 33% dari total Ether yang di-stake sangat mahal meskipun validator tidak mengalami pemotongan.

Dengan asumsi bahwa jaringan Ethereum bersifat asinkron (yaitu, ada penundaan antara pesan yang dikirim dan diterima), penyerang yang mengendalikan 34% dari total stake dapat menyebabkan finalitas ganda. Ini karena penyerang dapat melakukan ekivokasi ketika mereka dipilih menjadi produsen blok, kemudian memberikan suara ganda dengan semua validator mereka. Ini menciptakan situasi di mana percabangan rantai blok ada, masing-masing dengan 34% dari Ether yang di-stake memberikan suara untuknya. Setiap percabangan hanya membutuhkan 50% dari validator yang tersisa untuk memberikan suara yang mendukungnya agar kedua percabangan didukung oleh mayoritas super, dalam hal ini kedua rantai dapat difinalisasi (karena 34% validator penyerang + setengah dari sisa 66% = 67% pada setiap percabangan). Blok yang bersaing masing-masing harus diterima oleh sekitar 50% dari validator yang jujur sehingga serangan ini hanya layak ketika penyerang memiliki tingkat kendali tertentu atas waktu pesan yang menyebar melalui jaringan sehingga mereka dapat mendorong setengah dari validator yang jujur ke setiap rantai. Penyerang harus menghancurkan seluruh stake mereka (34% dari ~10 juta Ether dengan kumpulan validator saat ini) untuk mencapai finalitas ganda ini karena 34% dari validator mereka akan memberikan suara ganda secara bersamaan - pelanggaran yang dapat dipotong dengan penalti korelasi maksimum. Pertahanan terhadap serangan ini adalah biaya yang sangat besar untuk menghancurkan 34% dari total Ether yang di-stake. Pemulihan dari serangan ini akan mengharuskan komunitas Ethereum untuk berkoordinasi “di luar jalur” dan setuju untuk mengikuti salah satu percabangan dan mengabaikan yang lain.

Penyerang menggunakan ~50% dari total stake

Pada 50% dari Ether yang di-stake, sekelompok validator yang nakal secara teoretis dapat membagi rantai menjadi dua percabangan berukuran sama dan kemudian hanya menggunakan seluruh stake 50% mereka untuk memberikan suara yang bertentangan dengan kumpulan validator yang jujur, dengan demikian mempertahankan dua percabangan dan mencegah finalitas. Kebocoran ketidakaktifan pada kedua percabangan pada akhirnya akan menyebabkan kedua rantai difinalisasi. Pada titik ini, satu-satunya pilihan adalah kembali pada pemulihan sosial.

Sangat tidak mungkin bahwa kelompok validator musuh dapat secara konsisten mengendalikan tepat 50% dari total stake mengingat tingkat fluktuasi dalam jumlah validator yang jujur, latensi jaringan, dll - biaya besar untuk melancarkan serangan semacam itu dikombinasikan dengan rendahnya kemungkinan keberhasilan tampaknya menjadi disinsentif yang kuat bagi penyerang yang rasional, terutama ketika investasi tambahan kecil dalam memperoleh lebih dari 50% membuka lebih banyak kekuatan.

Pada >50% dari total stake, penyerang dapat mendominasi algoritme pilihan cabang. Dalam hal ini, penyerang akan dapat melakukan atestasi dengan suara mayoritas, memberi mereka kendali yang cukup untuk melakukan reorganisasi singkat tanpa perlu membodohi klien yang jujur. Validator yang jujur akan mengikutinya karena algoritme pilihan cabang mereka juga akan melihat rantai yang disukai penyerang sebagai yang terberat, sehingga rantai tersebut dapat difinalisasi. Ini memungkinkan penyerang untuk menyensor transaksi tertentu, melakukan reorganisasi jarak pendek, dan mengekstrak MEV maksimum dengan menyusun ulang blok untuk keuntungan mereka. Pertahanan terhadap hal ini adalah biaya besar dari stake mayoritas (saat ini tepat di bawah $19 miliar USD) yang dipertaruhkan oleh penyerang karena lapisan sosial kemungkinan akan turun tangan dan mengadopsi percabangan minoritas yang jujur, mendevaluasi stake penyerang secara dramatis.

Penyerang menggunakan >=66% dari total stake

Penyerang dengan 66% atau lebih dari total Ether yang di-stake dapat memfinalisasi rantai pilihan mereka tanpa harus memaksa validator yang jujur. Penyerang cukup memberikan suara untuk percabangan pilihan mereka dan kemudian memfinalisasinya, hanya karena mereka dapat memberikan suara dengan mayoritas super yang tidak jujur. Sebagai pemangku kepentingan mayoritas super, penyerang akan selalu mengontrol konten blok yang difinalisasi, dengan kekuatan untuk membelanjakan, memutar ulang dan membelanjakan lagi, menyensor transaksi tertentu, dan mereorganisasi rantai sesuka hati. Dengan membeli Ether tambahan untuk mengendalikan 66% daripada 51%, penyerang secara efektif membeli kemampuan untuk melakukan reorganisasi ex post dan pembalikan finalitas (yaitu, mengubah masa lalu serta mengendalikan masa depan). Satu-satunya pertahanan nyata di sini adalah biaya yang sangat besar dari 66% dari total Ether yang di-stake, dan opsi untuk kembali ke lapisan sosial untuk mengoordinasikan adopsi percabangan alternatif. Kita dapat menjelajahi ini secara lebih rinci di bagian selanjutnya.

Orang-orang: garis pertahanan terakhir

Jika validator yang tidak jujur berhasil memfinalisasi versi rantai pilihan mereka, komunitas Ethereum ditempatkan dalam situasi yang sulit. Rantai kanonikal mencakup bagian yang tidak jujur yang tertanam dalam sejarahnya, sementara validator yang jujur pada akhirnya dapat dihukum karena melakukan atestasi pada rantai alternatif (jujur). Perhatikan bahwa rantai yang difinalisasi tetapi salah juga dapat muncul dari bug di klien mayoritas. Pada akhirnya, jalan keluar terakhir adalah mengandalkan lapisan sosial - Lapisan 0 - untuk menyelesaikan situasi tersebut.

Salah satu kekuatan konsensus PoS Ethereum adalah bahwa ada berbagai strategi pertahanan (opens in a new tab) yang dapat digunakan komunitas dalam menghadapi serangan. Respons minimal bisa berupa mengeluarkan validator penyerang secara paksa dari jaringan tanpa penalti tambahan. Untuk masuk kembali ke jaringan, penyerang harus bergabung dengan antrean aktivasi yang memastikan kumpulan validator tumbuh secara bertahap. Misalnya, menambahkan cukup validator untuk menggandakan jumlah Ether yang di-stake membutuhkan waktu sekitar 200 hari, secara efektif membelikan validator yang jujur 200 hari sebelum penyerang dapat mencoba serangan 51% lainnya. Namun, komunitas juga dapat memutuskan untuk menghukum penyerang dengan lebih keras, dengan mencabut hadiah masa lalu atau membakar sebagian (hingga 100%) dari modal yang di-stake mereka.

Apa pun penalti yang dikenakan pada penyerang, komunitas juga harus memutuskan bersama apakah rantai yang tidak jujur, meskipun disukai oleh algoritme pilihan cabang yang dikodekan ke dalam klien Ethereum, pada kenyataannya tidak valid dan bahwa komunitas harus membangun di atas rantai yang jujur sebagai gantinya. Validator yang jujur dapat secara kolektif setuju untuk membangun di atas percabangan rantai blok Ethereum yang diterima komunitas yang mungkin, misalnya, telah bercabang dari rantai kanonikal sebelum serangan dimulai atau validator penyerang dikeluarkan secara paksa. Validator yang jujur akan diberi insentif untuk membangun di rantai ini karena mereka akan menghindari penalti yang diterapkan pada mereka karena gagal (dengan benar) melakukan atestasi pada rantai penyerang. Bursa, on-ramp, dan aplikasi yang dibangun di Ethereum mungkin lebih suka berada di rantai yang jujur dan akan mengikuti validator yang jujur ke rantai blok yang jujur.

Namun, ini akan menjadi tantangan tata kelola yang substansial. Beberapa pengguna dan validator tidak diragukan lagi akan merugi sebagai akibat dari peralihan kembali ke rantai yang jujur, transaksi dalam blok yang divalidasi setelah serangan berpotensi dikembalikan, mengganggu lapisan aplikasi, dan itu cukup merusak etika beberapa pengguna yang cenderung percaya “kode adalah hukum”. Bursa dan aplikasi kemungkinan besar telah menautkan tindakan offchain ke transaksi onchain yang sekarang mungkin dikembalikan, memulai serangkaian penarikan dan revisi yang akan sulit diurai secara adil, terutama jika keuntungan haram telah dicampur, disetorkan ke DeFi atau derivatif lain dengan efek sekunder bagi pengguna yang jujur. Tidak diragukan lagi beberapa pengguna, mungkin bahkan pengguna institusional, akan sudah mendapat manfaat dari rantai yang tidak jujur baik dengan menjadi cerdik atau karena kebetulan, dan mungkin menentang percabangan untuk melindungi keuntungan mereka. Ada beberapa diskusi berguna oleh Vitalik di ethresear.ch di sini (opens in a new tab) dan di sini (opens in a new tab) dan di Twitter di sini (opens in a new tab). Tujuan dari respons sosial yang terkoordinasi harus sangat tertarget dan spesifik tentang menghukum penyerang dan meminimalkan efek bagi pengguna lain.

Tata kelola sudah menjadi topik yang rumit. Mengelola respons darurat Lapisan-0 terhadap rantai finalisasi yang tidak jujur tidak diragukan lagi akan menantang bagi komunitas Ethereum, tetapi itu telah terjadi - dua kali - dalam sejarah Ethereum).

Meskipun demikian, ada sesuatu yang cukup memuaskan dalam jalan keluar terakhir yang berada di dunia nyata (meatspace). Pada akhirnya, bahkan dengan tumpukan teknologi fenomenal di atas kita ini, jika yang terburuk pernah terjadi, orang-orang nyata harus mengoordinasikan jalan keluar dari hal tersebut.

Ringkasan

Halaman ini menjelajahi beberapa cara penyerang mungkin mencoba mengeksploitasi protokol konsensus Bukti Kepemilikan (PoS) Ethereum. Reorganisasi dan penundaan finalitas dieksplorasi untuk penyerang dengan proporsi yang meningkat dari total Ether yang di-stake. Secara keseluruhan, penyerang yang lebih kaya memiliki lebih banyak peluang sukses karena stake mereka diterjemahkan menjadi kekuatan suara yang dapat mereka gunakan untuk memengaruhi konten blok masa depan. Pada jumlah ambang batas tertentu dari Ether yang di-stake, kekuatan penyerang meningkat:

33%: penundaan finalitas

34%: penundaan finalitas, finalitas ganda

51%: penundaan finalitas, finalitas ganda, penyensoran, kendali atas masa depan rantai blok

66%: penundaan finalitas, finalitas ganda, penyensoran, kendali atas masa depan dan masa lalu rantai blok

Ada juga berbagai serangan yang lebih canggih yang membutuhkan sejumlah kecil Ether yang di-stake tetapi bergantung pada penyerang yang sangat canggih yang memiliki kendali halus atas waktu pesan untuk memengaruhi kumpulan validator yang jujur agar menguntungkan mereka.

Secara keseluruhan, terlepas dari vektor serangan potensial ini, risiko serangan yang berhasil adalah rendah, tentu saja lebih rendah daripada padanan Bukti Kerja (PoW). Ini karena biaya besar dari Ether yang di-stake yang dipertaruhkan oleh penyerang yang bertujuan untuk membanjiri validator yang jujur dengan kekuatan suara mereka. Lapisan insentif “wortel dan tongkat” (carrot and stick) bawaan melindungi dari sebagian besar pelanggaran, terutama untuk penyerang dengan stake rendah. Serangan memantul dan penyeimbangan yang lebih halus juga tidak mungkin berhasil karena kondisi jaringan nyata membuat kendali halus pengiriman pesan ke subset validator tertentu sangat sulit dicapai, dan tim klien telah dengan cepat menutup vektor serangan memantul, penyeimbangan, dan longsoran yang diketahui dengan tambalan sederhana.

Serangan 34%, 51%, atau 66% kemungkinan akan membutuhkan koordinasi sosial di luar jalur untuk diselesaikan. Meskipun ini kemungkinan akan menyakitkan bagi komunitas, kemampuan komunitas untuk merespons di luar jalur adalah disinsentif yang kuat bagi penyerang. Lapisan sosial Ethereum adalah penahan terakhir - serangan yang berhasil secara teknis masih dapat dinetralkan oleh komunitas yang setuju untuk mengadopsi percabangan yang jujur. Akan ada perlombaan antara penyerang dan komunitas Ethereum - miliaran dolar yang dihabiskan untuk serangan 66% mungkin akan dilenyapkan oleh serangan koordinasi sosial yang berhasil jika disampaikan cukup cepat, meninggalkan penyerang dengan kantong berat Ether yang di-stake yang tidak likuid pada rantai tidak jujur yang diketahui yang diabaikan oleh komunitas Ethereum. Kemungkinan bahwa ini pada akhirnya akan menguntungkan bagi penyerang cukup rendah sehingga menjadi pencegah yang efektif. Inilah sebabnya mengapa investasi dalam mempertahankan lapisan sosial yang kohesif dengan nilai-nilai yang selaras sangat penting.

Bacaan Lebih Lanjut