Terlepas dari PoW Bukti Beban Kerja, PoS Bukti Ekuitas, atau DPoS Bukti Ekuitas yang Didelegasikan, selama ada masalah konsensus, secara teoritis, 51% serangan tidak dapat dihindari. Penyerang mengontrol jaringan utama melalui 51% blok yang dapat dibalik, menghasilkan bunga ganda.

Pengetahuan latar belakang

Sebagai sistem penyimpanan data publik terdistribusi yang terdesentralisasi, blockchain tidak memiliki organisasi manajemen pusat untuk pengelolaannya, melainkan dikelola bersama oleh node terdistribusi menggunakan protokol kriptografi, dan setiap node memelihara keseluruhan sistem protokol konsensus yang mendasarinya. Blockchain memiliki kegunaan praktis yang berbeda dalam skenario kehidupan nyata yang berbeda, seperti rantai publik, rantai swasta, dan rantai aliansi. Rantai yang berbeda menggunakan algoritma konsensus yang berbeda, seperti konsensus PoW yang digunakan oleh Bitcoin dan konsensus PoW yang digunakan oleh Ethereum, DPoS konsensus yang digunakan oleh EOS, dan keamanan yang terlibat dalam algoritma konsensus yang berbeda berbeda-beda.

Artikel ini akan merinci risiko serangan yang ada dalam protokol konsensus PoW yang digunakan oleh Bitcoin dan Ethereum.

Mekanisme konsensus PoW

Pertama mari kita lihat apa yang dimaksud dengan protokol konsensus PoW.

Dari perspektif sistem buku besar yang terdesentralisasi, setiap node yang bergabung dengan sistem harus menyimpan buku besar yang lengkap, tetapi setiap node tidak dapat menyimpan akun pada saat yang sama karena node berada di lingkungan yang berbeda dan menerima informasi yang berbeda node mana yang berhak menyimpan akun. Blockchain Bitcoin dan Ethereum memecahkan masalah konsistensi sistem akuntansi terdesentralisasi melalui akuntansi kompetitif, yaitu mekanisme yang menggunakan kekuatan komputasi setiap node, yaitu, "kekuatan komputasi" untuk bersaing mendapatkan hak akuntansi adalah "menambang". 

Namun, dalam sistem desentralisasi, siapa yang berhak menentukan hasil persaingan? Sistem blockchain Bitcoin dan Ethereum dicapai melalui mekanisme konsensus yang disebut Proof of Work (PoW).

PoW (Proof of Work), yaitu “Proof of Work”. Sederhananya, PoW adalah sertifikat yang menegaskan bahwa pihak yang bekerja telah melakukan sejumlah pekerjaan. Pihak yang bekerja perlu melakukan sejumlah pekerjaan sulit untuk mendapatkan hasil, dan pemverifikasi menggunakan hasilnya untuk memeriksa apakah pihak yang bekerja telah melakukan pekerjaan yang sesuai.

Dalam penambangan melalui konsensus bukti kerja, ada tiga aturan yang harus diikuti:

  • Hanya satu orang yang berhasil mencatat akun dalam jangka waktu tertentu

  • Bersaing untuk mendapatkan hak akuntansi tunggal dengan memecahkan teka-teki kriptografi (yaitu bukti kerja)

  • Node lain memverifikasi dan menyalin hasil akuntansi

  

Misalnya, dengan string "blockchain", persyaratan beban kerja yang kami berikan adalah kami dapat menggabungkan string nilai integer yang disebut nonce setelah string ini, dan melakukan operasi hash SHA256 pada string gabungan tersebut form) dimulai dengan beberapa angka 0, kemudian verifikasi dilewati. Untuk mencapai tujuan pembuktian kerja ini, kita perlu terus meningkatkan nilai nonce dan melakukan operasi hash SHA256 pada string baru yang diperoleh.

Hash (nilai Hash sebelumnya, kumpulan informasi catatan transaksi) = 29329385BNDH749 Hash (nilai Hash sebelumnya, kumpulan informasi catatan transaksi, nomor acak nonce) = 000029329385BNDH749

Misalnya, hash dari tinggi blok 512884 di Bitcoin adalah:

0000000000000000000188d44fd53064469b17c3590a0c4df8e90626d11e25a69

Bukti kerja yang diperlukan untuk menghasilkan blok ini melalui akuntansi adalah 16**18 perhitungan hash, yang merupakan jumlah perhitungan yang sangat besar.

51% serangan

Setelah memperkenalkan secara singkat prinsip-prinsip sederhana blok pengemasan dan PoW melalui akuntansi, mari kita kembali ke pertanyaan kita, apa yang dimaksud dengan serangan 51% dan apa yang dimaksud dengan serangan pembelanjaan ganda?

Serangan pembelanjaan ganda mengacu pada serangan di mana token digunakan melalui beberapa metode pembayaran, yang berarti mata uang yang sama dibelanjakan beberapa kali. Ada banyak cara untuk melancarkan serangan pembelanjaan ganda, antara lain dengan cara sebagai berikut:

  • 51% serangan

  • Serangan rasial

  • Serangan vektor 76

  • serangan sejarah alternatif

Artinya, jika penyerang menguasai lebih dari 50% daya komputasi seluruh jaringan, ia dapat menerapkan pembelanjaan ganda melalui serangan 51%.

Disini kami hanya menganalisis proses serangan 51%.

Serangan 51%, juga dikenal sebagai serangan Mayoritas. Serangan ini menghasilkan pembelanjaan ganda dengan mengendalikan daya komputasi jaringan. Jika penyerang mengendalikan lebih dari 50% daya komputasi di jaringan, maka selama periode ketika ia mengendalikan daya komputasi, ia dapat membalikkan blok, melakukan transaksi terbalik, dan mencapai pembelanjaan ganda.

Dalam protokol konsensus PoW, sistem blockchain memungkinkan beberapa rantai bercabang ada pada saat yang sama, dan setiap rantai dapat menyatakan kepada dunia luar bahwa itu benar. Namun, ada prinsip yang paling efektif dalam konsep desain blockchain: “Tidak peduli pada titik manakah rantai terpanjang dianggap sebagai rantai utama dengan pekerjaan paling banyak?”

Mari kita simulasikan secara singkat proses serangan 51%:

Jika ada penyerang seperti itu, ia dengan sengaja menyiarkan transaksi pertama ke separuh jaringan, dan menyiarkan transaksi kedua ke separuh jaringan lainnya, dan kemudian ada dua penambang di kedua sisi untuk mendapatkan hak akuntansi pada waktu yang hampir bersamaan. waktu, dan hak akuntansi masing-masing adalah Blok tersebut disiarkan ke semua orang. Anda dapat memilih buku besar mana pun saat ini, buku besar terpadu yang asli telah bercabang dua.

Selanjutnya, jika penambang berikutnya memilih untuk melanjutkan akuntansi berdasarkan A, cabang A akan lebih panjang dari cabang B. Menurut aturan blockchain, cabang terpanjang akan dikenali, cabang pendek akan ditinggalkan, dan buku besar akan tetap ada. be akan kembali menjadi satu, dan hanya satu transaksi yang valid.

Pada saat ini, cabang A dikenali dan transaksi terkait dikonfirmasi. Jika penyerang mendapatkan produk tersebut, ia segera berubah menjadi penambang dan memenangkan dua hak akuntansi berturut-turut, dan kemudian menambahkan dua blok ke cabang B.

Kemudian cabang B menjadi cabang yang diakui. Pada saat ini, cabang A ditinggalkan. Transaksi di cabang A tidak lagi dilakukan. Mata uang pembayaran penyerang di cabang A berlaku kembali, tetapi penyerang telah memperoleh barang ganda. serangan pembelanjaan telah berhasil diselesaikan. Ada masalah. Ketika cabang B tertinggal, sangat sulit untuk memaksanya mengungguli cabang A. Kenyataannya, kemungkinan keberhasilannya sangat rendah. Namun, jika penyerang menguasai lebih dari 50% daya komputasi seluruh jaringan, bahkan jika tertinggal, Banyak, dan hanya masalah waktu sebelum dia menyusul. Ini adalah "serangan 51%" yang disebutkan di atas.

Analisis Kasus Serangan Bitcoin Gold 51%.

Di dunia nyata blockchain, ada banyak pembelanjaan ganda yang disebabkan oleh serangan 51%.

Misalnya, masalah pembelanjaan ganda di Bitcoin Gold (koin BTG) adalah serangan 51%, proses serangannya adalah sebagai berikut:

  1. Penyerang mengendalikan lebih dari 51% daya komputasi di jaringan Bitcoin Gold. Selama periode pengendalian daya komputasi, dia mengirimkan sejumlah BTG ke dompetnya di bursa.

  2. Pada saat yang sama, dia mengirimkan BTG ini ke dompet lain yang dia kendalikan. Kami menamai cabang ini cabang B.

  3. Setelah transaksi di cabang A terkonfirmasi, penyerang langsung menjual BTG dan mendapatkan uang tunai. Saat ini, cabang A menjadi rantai utama.

  4. Kemudian, penyerang menambang di cabang B. Karena ia mengendalikan lebih dari 51% daya komputasi, penyerang memiliki kemungkinan besar untuk mendapatkan hak akuntansi, sehingga panjang cabang B akan melebihi rantai utama (yaitu, panjang cabang). A), maka cabang B akan menjadi rantai utama, dan transaksi di cabang A akan dibatalkan untuk mengembalikan data ke keadaan terakhir yang benar.

  5. Dengan kata lain, cabang A dikembalikan ke keadaan sebelum penyerang memulai transaksi pertama, dan BTG yang sebelumnya diubah penyerang menjadi uang tunai kembali ke tangannya.

  1. Akhirnya, penyerang mengirimkan BTG ini ke dompetnya yang lain. Dengan cara ini, penyerang mengendalikan lebih dari 51% daya komputasi untuk mencapai "pengeluaran ganda" dari token yang sama.

Menurut laporan data blockchain dari serangan ini, penyerang berhasil membalikkan 22 blok. Alamat Bitcoin Gold yang terlibat dalam serangan ini telah menerima lebih dari 388,200 $BTG. Dengan asumsi bahwa semua transaksi ini terkait dengan pembelanjaan ganda, penyerang Hingga $18.6 juta senilai dana mungkin telah dicuri dari bursa

Selain masalah pembelanjaan ganda yang terjadi pada Bitcoin Gold, ada banyak kasus serangan pembelanjaan ganda yang disebabkan oleh serangan 51%:

  • Mata uang digital anonim tersebut pernah secara jahat menambang lebih dari 35 juta #xvg hanya dalam beberapa jam, bernilai sekitar US$1,75 juta.

  • Mata uang kripto Jepang, Monacoin, tampaknya terkena serangan pengurangan blok setelah seorang penambang memperoleh hingga 57% kekuatan hash jaringan.

  • Berita resmi Litecoin Cash (LCC), LCC mengalami serangan 51%.

  • Mata uang digital #zen juga mengalami serangan sebesar 51%.

  • Baru-baru ini, Ethereum Classic #etc mengalami serangan sebesar 51%.