Lompat ke konten utama
Change page

Serangan dan pertahanan proof-of-stake Ethereum

Pembaruan terakhir halaman: 26 Februari 2026

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 bentuk yang lebih panjang (opens in a new tab).

Prasyarat

Beberapa pengetahuan dasar tentang proof-of-stake diperlukan. Selain itu, akan sangat membantu jika Anda memiliki pemahaman dasar tentang lapisan insentif Ethereum dan algoritma pilihan fork, 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 pribadi pengirim, pengirim memiliki saldo yang cukup, dll) atau jika tidak, mereka hanya akan dikembalikan. Ada tiga kelas hasil yang mungkin secara realistis ditargetkan oleh penyerang: reorg, finalitas ganda, atau penundaan finalitas.

Sebuah “reorg” adalah perombakan blok ke dalam urutan baru, mungkin dengan beberapa penambahan atau pengurangan blok dalam rantai kanonikal. Reorg yang berbahaya mungkin memastikan blok tertentu disertakan atau dikecualikan, memungkinkan pengeluaran ganda atau ekstraksi nilai dengan transaksi front-running dan back-running (MEV). Reorg juga dapat digunakan untuk mencegah transaksi tertentu dimasukkan ke dalam rantai kanonikal - sebuah bentuk penyensoran. Bentuk reorg yang paling ekstrem adalah "pembalikan finalitas" yang menghapus atau mengganti blok yang sebelumnya telah difinalisasi. Hal ini hanya mungkin terjadi 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 fork dapat difinalisasi secara bersamaan, menciptakan perpecahan permanen dalam rantai. Hal ini secara teoritis 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 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 menjadi lebih sulit.

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

Metode Serangan

Serangan Layer 0

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

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

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

  • Regulasi yang terlalu berlebihan juga dapat dianggap sebagai serangan pada Layer 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, sangat sedikit modal atau pengetahuan teknis yang diperlukan. Serangan Layer 0 bisa menjadi pengganda pada serangan kripto-ekonomi. 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 Layer 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 layer 1 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 sebuah narasi terhadap prinsip-prinsip inti ini, dan memeriksanya melalui putaran tinjauan berturut-turut dalam proses EIP (proposal pengembangan ethereum), 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 Layer 0. Etherean dengan kepentingan pribadi dalam keamanan jaringan harus memandang perilaku mereka secara online dan di dunia nyata (meatspace) sebagai kontributor langsung terhadap keamanan Layer 0 Ethereum.

Menyerang protokol

Siapa pun dapat menjalankan perangkat lunak klien Ethereum. Untuk menambahkan validator ke klien, pengguna diharuskan untuk men-stake 32 ether ke dalam kontrak deposit. Validator memungkinkan pengguna untuk berpartisipasi aktif dalam keamanan jaringan Ethereum dengan mengusulkan dan memberikan pengesahan pada blok baru. Validator sekarang memiliki suara yang dapat mereka gunakan untuk memengaruhi konten masa depan dari blockchain - 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 mengumpulkan 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 mengumpulkan 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 memberikan pengesahan/mengusulkan atau melakukannya terlambat) atau terlalu aktif (mengusulkan/memberikan pengesahan terlalu sering dalam satu slot). Dalam bentuknya yang paling dasar, tindakan ini mudah ditangani oleh algoritma pilihan fork dan lapisan insentif, tetapi ada cara cerdas untuk mempermainkan sistem demi keuntungan penyerang.

Serangan menggunakan sejumlah kecil ETH

reorg

Beberapa makalah telah menjelaskan serangan pada Ethereum yang mencapai reorg 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 memberikan pengesahan pada blok (B) untuk slot tertentu n+1 tetapi menahan diri untuk tidak menyebarkannya ke node lain di jaringan. Sebaliknya, mereka menahan blok yang telah disahkan tersebut hingga slot berikutnya n+2. Validator yang jujur mengusulkan blok (C) untuk slot n+2. Hampir bersamaan, penyerang dapat merilis blok yang ditahannya (B) dan pengesahan yang ditahannya untuk itu, dan juga memberikan pengesahan bahwa B adalah kepala rantai dengan suara mereka untuk slot n+2, secara efektif menyangkal keberadaan blok jujur C. Ketika blok jujur D dirilis, algoritma pilihan fork 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 reorg 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 reorg 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 blok, dan ketika tiba saatnya mereka melakukan ekuivokasi dan mengusulkan dua blok. Mereka mengirim satu blok ke setengah dari kumpulan validator yang jujur dan blok lainnya ke setengah lainnya. Ekuivokasi akan dideteksi oleh algoritma pilihan fork dan pengusul blok akan mengalami pemotongan dan dikeluarkan dari jaringan, tetapi kedua blok tersebut akan tetap ada dan akan memiliki sekitar setengah dari kumpulan validator yang memberikan pengesahan pada setiap fork. Sementara itu, validator berbahaya yang tersisa menahan pengesahan mereka. Kemudian, dengan secara selektif merilis pengesahan yang mendukung satu atau fork lainnya ke validator yang cukup tepat saat algoritma pilihan fork dieksekusi, mereka memiringkan akumulasi bobot pengesahan untuk mendukung satu atau fork lainnya. Hal ini dapat berlanjut tanpa batas waktu, dengan validator penyerang mempertahankan pembagian validator yang merata di kedua fork. Karena tidak ada fork yang dapat menarik supermayoritas 2/3, jaringan tidak akan mencapai finalitas.

Serangan memantul (bouncing attacks) serupa. Suara kembali ditahan oleh validator penyerang. Alih-alih merilis suara untuk menjaga pembagian yang merata antara dua fork, mereka menggunakan suara mereka pada saat yang tepat untuk membenarkan checkpoint yang bergantian antara fork A dan fork B. Pembenaran yang bolak-balik antara dua fork ini mencegah adanya pasangan checkpoint sumber dan target yang dibenarkan yang dapat difinalisasi pada salah satu rantai, menghentikan finalitas.

Baik serangan memantul maupun penyeimbangan bergantung pada penyerang yang memiliki kontrol yang sangat halus atas waktu pesan di seluruh jaringan, yang mana tidak mungkin. Namun 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, algoritma pilihan fork diperbarui sehingga checkpoint yang dibenarkan terbaru hanya dapat beralih ke rantai alternatif selama 1/3 pertama dari slot di setiap epoch (opens in a new tab). Kondisi ini mencegah penyerang menyimpan suara untuk disebarkan nanti - algoritma pilihan fork hanya tetap setia pada checkpoint yang dipilihnya di 1/3 pertama epoch di mana sebagian besar validator yang jujur akan memberikan suara.

Jika 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 dapat menyebabkan algoritma pilihan fork beralih ke rantai lain. Setelah tenggat waktu yang sama, pengesahan yang tiba dari validator yang lambat akan diturunkan bobotnya dibandingkan dengan yang tiba lebih awal. Hal 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 "reorg 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% stake dapat menyebarkan suara mereka secara strategis untuk mengelabui validator yang jujur agar membangun di fork mereka, me-reorg 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.

Sebuah 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 ekuivokasi pada proposal blok mereka dan menyebarkan setiap blok ke sekitar setengah jaringan masing-masing, menyiapkan keseimbangan perkiraan antara fork. Kemudian, validator yang berkolusi melakukan ekuivokasi pada suara mereka, mengatur waktunya sehingga setengah jaringan menerima suara mereka untuk Fork A terlebih dahulu dan setengah lainnya menerima suara mereka untuk Fork B terlebih dahulu. Karena aturan LMD membuang pengesahan 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. Penulis menggambarkan aturan LMD memberikan musuh "kekuatan luar biasa" untuk melancarkan serangan penyeimbangan.

Vektor serangan LMD ini ditutup dengan memperbarui algoritma pilihan fork (opens in a new tab) sehingga membuang validator yang melakukan ekuivokasi dari pertimbangan pilihan fork sama sekali. Validator yang melakukan ekuivokasi juga memiliki pengaruh masa depan mereka yang didiskon oleh algoritma pilihan fork. Hal 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 subpohon yang sama dengan blok yang ditahan. Kemudian, blok yang ditahan dirilis sehingga mereka melakukan ekuivokasi secara maksimal. Penulis menyarankan bahwa peningkatan pengusul - pertahanan utama terhadap serangan penyeimbangan dan memantul - tidak melindungi dari beberapa varian serangan longsoran. Namun, penulis juga hanya mendemonstrasikan serangan pada versi algoritma pilihan fork Ethereum yang sangat diidealkan (mereka menggunakan GHOST tanpa LMD).

Serangan longsoran dimitigasi oleh bagian LMD dari algoritma pilihan fork LMD-GHOST. LMD berarti "didorong oleh pesan terbaru" (latest-message-driven) dan ini mengacu 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 ekuivokasi yang harus diabaikan. Dengan kata lain, klien konsensus tidak menghitung ekuivokasi - mereka menggunakan pesan yang tiba pertama dari setiap validator dan ekuivokasi dibuang begitu saja, mencegah serangan longsoran.

Ada beberapa potensi peningkatan masa depan lainnya pada aturan pilihan fork yang dapat menambah keamanan yang diberikan oleh peningkatan pengusul. Salah satunya adalah penggabungan pandangan (view-merge) (opens in a new tab), di mana pemberi pengesahan membekukan pandangan mereka tentang pilihan fork n detik sebelum dimulainya slot dan pengusul kemudian membantu menyinkronkan pandangan rantai di seluruh jaringan. Peningkatan potensial lainnya adalah finalitas slot tunggal (single-slot finality) (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 reorg blok tunggal berbiaya rendah juga mendeskripsikan serangan penundaan finalitas (alias "kegagalan liveness") yang bergantung pada penyerang yang menjadi pengusul blok untuk blok batas epoch. Hal ini penting karena blok batas epoch ini menjadi checkpoint 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 epoch sebelumnya sebagai target finalisasi saat ini. Kemudian mereka merilis blok yang ditahan. Mereka memberikan pengesahan pada blok mereka dan validator jujur yang tersisa juga melakukannya, menciptakan fork dengan checkpoint target yang berbeda. Jika mereka mengatur waktunya dengan tepat, mereka akan mencegah finalitas karena tidak akan ada supermayoritas 2/3 yang memberikan pengesahan pada salah satu fork. Semakin kecil stake, semakin tepat waktu yang dibutuhkan karena penyerang mengendalikan lebih sedikit pengesahan secara langsung, dan semakin rendah peluang penyerang mengendalikan validator yang mengusulkan blok batas epoch tertentu.

Serangan jarak jauh

Ada juga kelas serangan khusus untuk blockchain proof-of-stake yang melibatkan validator yang berpartisipasi dalam blok genesis yang mempertahankan fork terpisah dari blockchain 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 gadget finalitas yang memastikan semua validator menyetujui status rantai yang jujur pada interval reguler ("checkpoint"). Mekanisme sederhana ini menetralkan penyerang jarak jauh karena klien Ethereum tidak akan me-reorg blok yang telah difinalisasi. Node baru yang bergabung dengan jaringan melakukannya dengan menemukan hash status terbaru yang tepercaya (sebuah "checkpoint subjektivitas lemah (opens in a new tab)") dan menggunakannya sebagai blok pseudo-genesis untuk dibangun di atasnya. Hal 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. Hal ini dapat dihitung menggunakan fungsi yang diketahui publik dan dimungkinkan bagi musuh untuk mengidentifikasi pengusul blok berikutnya sedikit sebelum proposal blok mereka. Kemudian, penyerang dapat melakukan spam pada 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 blockchain. 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. Hal ini belum diimplementasikan, tetapi merupakan area aktif dari penelitian dan pengembangan (opens in a new tab).

Semua ini menunjukkan fakta bahwa sangat sulit untuk berhasil menyerang Ethereum dengan stake kecil. Serangan yang layak yang telah dijelaskan di sini memerlukan algoritma pilihan fork yang diidealkan, kondisi jaringan yang tidak mungkin, atau vektor serangan telah ditutup dengan patch yang relatif kecil pada perangkat lunak klien. Hal ini, tentu saja, tidak mengesampingkan kemungkinan adanya zero-day di luar sana, tetapi ini menunjukkan standar yang sangat tinggi dari bakat teknis, pengetahuan lapisan konsensus, dan keberuntungan yang diperlukan agar penyerang dengan stake minoritas menjadi efektif. Dari perspektif penyerang, taruhan terbaik mereka mungkin adalah mengumpulkan 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 mencapai finalitas tanpa harus mengontrol tindakan validator lain secara halus. Mereka semua bisa menghilang bersama-sama. Jika 1/3 atau lebih dari ether yang di-stake memberikan pengesahan secara berbahaya atau gagal memberikan pengesahan, maka supermayoritas 2/3 tidak dapat ada dan rantai tidak dapat difinalisasi. Pertahanan terhadap hal ini adalah kebocoran ketidakaktifan (inactivity leak). Kebocoran ketidakaktifan mengidentifikasi validator yang gagal memberikan pengesahan atau memberikan pengesahan yang bertentangan dengan mayoritas. Ether yang di-stake yang dimiliki oleh validator yang tidak memberikan pengesahan ini secara bertahap dikurangi 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 mencapai finalitas 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. Hal ini karena penyerang dapat melakukan ekuivokasi ketika mereka dipilih menjadi produsen blok, kemudian memberikan suara ganda dengan semua validator mereka. Hal ini menciptakan situasi di mana ada fork dari blockchain, masing-masing dengan 34% dari ether yang di-stake memberikan suara untuknya. Setiap fork hanya membutuhkan 50% dari validator yang tersisa untuk memberikan suara yang mendukungnya agar kedua fork didukung oleh supermayoritas, dalam hal ini kedua rantai dapat difinalisasi (karena 34% validator penyerang + setengah dari sisa 66% = 67% pada setiap fork). 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 fork dan mengabaikan yang lain.

Penyerang menggunakan ~50% dari total stake

Pada 50% dari ether yang di-stake, sekelompok validator yang nakal secara teoritis dapat membagi rantai menjadi dua fork berukuran sama dan kemudian hanya menggunakan seluruh 50% stake mereka untuk memberikan suara yang bertentangan dengan kumpulan validator yang jujur, dengan demikian mempertahankan dua fork dan mencegah finalitas. Kebocoran ketidakaktifan pada kedua fork 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 untuk mendapatkan lebih dari 50% membuka lebih banyak kekuatan.

Pada >50% dari total stake, penyerang dapat mendominasi algoritma pilihan fork. Dalam hal ini, penyerang akan dapat memberikan pengesahan dengan suara mayoritas, memberi mereka kendali yang cukup untuk melakukan reorg pendek tanpa perlu membodohi klien yang jujur. Validator yang jujur akan mengikutinya karena algoritma pilihan fork mereka juga akan melihat rantai yang disukai penyerang sebagai yang terberat, sehingga rantai dapat difinalisasi. Hal ini memungkinkan penyerang untuk menyensor transaksi tertentu, melakukan reorg 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 fork 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 fork pilihan mereka dan kemudian memfinalisasinya, hanya karena mereka dapat memberikan suara dengan supermayoritas yang tidak jujur. Sebagai pemangku kepentingan supermayoritas, penyerang akan selalu mengontrol konten dari blok yang difinalisasi, dengan kekuatan untuk membelanjakan, memutar ulang dan membelanjakan lagi, menyensor transaksi tertentu, dan me-reorg rantai sesuka hati. Dengan membeli ether tambahan untuk mengendalikan 66% daripada 51%, penyerang secara efektif membeli kemampuan untuk melakukan reorg 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 fork alternatif. Kita dapat menjelajahi ini lebih detail 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 memberikan pengesahan 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 - Layer 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 algoritma pilihan fork 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 fork blockchain Ethereum yang diterima komunitas yang mungkin, misalnya, telah melakukan fork 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) memberikan pengesahan 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 blockchain 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 dibatalkan (rolled back), mengganggu lapisan aplikasi, dan itu cukup merusak etika beberapa pengguna yang cenderung percaya "kode adalah hukum" (code is law). Bursa dan aplikasi kemungkinan besar akan menautkan tindakan offchain ke transaksi onchain yang sekarang mungkin dibatalkan, 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 mendapat manfaat dari rantai yang tidak jujur baik dengan menjadi cerdik atau karena kebetulan, dan mungkin menentang fork untuk melindungi keuntungan mereka. Telah ada seruan untuk melatih respons komunitas terhadap serangan >51% sehingga mitigasi terkoordinasi yang masuk akal dapat dieksekusi dengan cepat. 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 ditargetkan dan spesifik tentang menghukum penyerang dan meminimalkan efek bagi pengguna lain.

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

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

Ringkasan

Halaman ini menjelajahi beberapa cara penyerang mungkin mencoba mengeksploitasi protokol konsensus proof-of-stake Ethereum. Reorg 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 blockchain

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

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 proof-of-work. Hal 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 kontrol 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 patch 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 utama - serangan yang berhasil secara teknis masih dapat dinetralkan oleh komunitas yang setuju untuk mengadopsi fork 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 tas berat berisi 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

Apakah artikel ini membantu?