Serangan Hipotetis pada Cryptocurrency
Dalam panduan ini kita akan menganalisis berbagai serangan yang dapat terjadi pada cryptocurrency Anda (kebanyakan bitcoin). Walaupun benar bahwa sebagian besar serangan yang akan kita bicarakan murni bersifat hipotesis, kita telah melihat contoh nyata dari beberapa serangan yang dijelaskan di sini (Gunung Gox dan kelenturan Transaksional). Sebelum kita mulai, teriakan besar untuk video “Teori permainan dan serangan Jaringan” oleh “Blockchain di Berkley” karena memberikan inspirasi untuk artikel tersebut.
Serangan Hipotetis pada Cryptocurrency
Catatan: Kami akan menggunakan dua istilah ini banyak dalam artikel di bawah ini jadi mari kita definisikan sekarang:
- Blok anak yatim alias anak yatim: Blok yang tidak bisa ditambahkan ke rantai utama meskipun berhasil ditambang.
- Hashrate: Pada dasarnya berarti seberapa kuat sumber daya komputasi penambang itu.
Jadi tanpa basa-basi, mari kita mulai.
Apa itu kolam penambangan?
Sebelum kita masuk ke deskripsi berbagai serangan, mari kita pahami apa itu kumpulan penambangan (di bagian ini kita akan berbicara secara eksklusif dengan BTC). Seluruh blockchain berfungsi karena jaringan “penambang”. Para penambang pada dasarnya “menambang” untuk blok-blok baru di blockchain dengan memecahkan teka – teki kriptografi yang kompleks menggunakan kekuatan komputasi mereka. Sebagai hasil dari ini, mereka mendapatkan hadiah penambangan sebesar 12,5 BTC.
Begitu mereka berhasil menambang blok, mereka mendapatkan kekuatan untuk melakukan transaksi di dalam blok. Itu pada dasarnya bagaimana transaksi terjadi di semua cryptocurrency, seorang penambang memasukkan catatan transaksi di dalam blok.
Sekarang ingat satu hal, hanya ada sejumlah bitcoin yang dibuat (21 juta koin). Satoshi Nakamoto, pencipta bitcoin, membayangkan bahwa semakin banyak penambang yang masuk, tingkat penambangan bitcoin akan meningkat secara eksponensial, sedemikian rupa sehingga semua bitcoin yang tersedia dapat ditambang dalam beberapa tahun!
Sekarang, ini bisa menjadi bencana bagi bitcoin , karena seperti semua komoditas ekonomi, nilai bitcoin terletak pada penawaran dan permintaan. Jika pasokan bitcoin tiba-tiba meningkat, maka itu akan menurunkan permintaan, yang pada gilirannya akan menurunkan nilainya. Hubungan penawaran-permintaan adalah salah satu konsep ekonomi yang paling kritis, berikut ini yang terlihat seperti grafik permintaan-penawaran:
Untuk mencegah pasokan bitcoin keluar dari kendali dan menjadikannya model yang lebih berkelanjutan, Satoshi menerapkan sistem penyesuaian kesulitan.
Apa itu penyesuaian kesulitan? Semakin banyak blok yang ditambang, kesulitan teka-teki kriptografi meningkat secara eksponensial. Pada dasarnya, semakin banyak bitcoin yang Anda tambang, semakin sulit proses penambangannya. Para penambang segera mengetahui bahwa mereka tidak dapat lagi menambang secara efisien sendiri, prosesnya menjadi semakin mahal. Jadi, mereka memutuskan untuk mengumpulkan sumber daya mereka bersama dan membentuk klik dan grup untuk menambang bitcoin lebih efisien. Kelompok penambang ini disebut “kolam penambangan”.
Keuntungan dan Kerugian dari kolam penambangan
Keuntungan
- Kolam dikelola oleh manajer kolam. Jauh lebih mudah untuk memutakhirkan jaringan keseluruhan karena alih-alih berkoordinasi dengan penambang independen acak, pengelola kumpulan dapat dengan mudah memutakhirkan jaringan sendiri.
- Mengurangi variasi dalam imbalan penambangan: Salah satu alasan terbesar mengapa penambang bergabung dengan kumpulan adalah untuk mengurangi variasi dalam imbalan penambangan mereka. Untuk memahami apa arti varians dan bagaimana hal itu memengaruhi penambang, kita perlu melakukan beberapa matematika. Penghargaan untuk LM Goodman dan artikel mediumnya untuk penjelasannya. Pertama, mari kita pahami apa distribusi Bernoulli. Distribusi Bernoulli pada dasarnya menyatakan bahwa untuk setiap distribusi diskrit yang memiliki dua hasil “sukses” dan “gagal” jika probabilitas keberhasilan adalah p (di mana, 0 <p <1), maka probabilitas kegagalan adalah 1-p. Sekarang, mari kita terapkan ini dalam bitcoin. Jika seorang penambang mengontrol sebagian “p” dari kekuatan penambangan secara keseluruhan dan sebagai hasilnya, memiliki kemungkinan p menambang blok baru di mana 0 <p <1, maka, pada menerapkan distribusi Bernoulli, ia memiliki kemungkinan ( 1-p) BUKAN menambang blok baru. Dalam distribusi Bernoulli: variance = p * (1-p) Sekarang, mari kita lihat berapa banyak blok yang ditambang dalam setahun. Setiap 10 menit, 1 blok ditambang. Yang berarti setiap jam 6 blok, setiap hari 24 * 6 blok dan setiap tahun 365 * 24 * 6 blok ditambang.Pada dasarnya, untuk penambang yang memiliki “p” probabilitas menambang blok, diharapkan untuk menambang 365 * 24 * 6 * p blok per tahun. Itu harapan mereka.Demikian pula, keseluruhan varian standar yang akan mereka hadapi sepanjang tahun adalah: 365 * 24 * 6 * p * (1-p).Sekarang, kita akan mendefinisikan “standar deviasi”. Deviasi standar adalah istilah yang didefinisikan oleh seberapa banyak anggota suatu kelompok terdistribusi berbeda dari rata-rata kelompok.
Dalam konteks blockchain dan contoh ini, standar deviasi adalah seberapa banyak hadiah penambang ini akan menyimpang dari hadiah yang diharapkan.
Simpangan baku = varians [sqrt] / pengembalian yang diharapkan.
Sekarang, seperti yang kita ketahui:
- varians = 365 * 24 * 6 * p * (1-p)
- pengembalian yang diharapkan = 365 * 24 * 6 * p
Jadi, saat mengganti nilai-nilai ini kita dapatkan:
- Simpangan baku = [sqrt] (365 * 24 * 6 * p * (1-p)) / 365 * 24 * 6 * p
Sekarang mari kita ambil contoh. Misalkan penambang memiliki 0,01% dari tingkat hash dalam jaringan. (Artinya p = 0,0001).
Jika Anda mengganti nilai sesuai dengan persamaan standar deviasi maka Anda akan mendapatkan standar deviasi 0,4364 ATAU 43,6% !! Penyimpangan 43,6% dari hadiah yang diharapkan atau penambang yang memiliki tingkat hash 0,01%.
Satu-satunya solusi untuk mengurangi penyimpangan dan varians ini adalah untuk mengumpulkan sumber daya untuk bersama-sama meningkatkan persentase tingkat hash keseluruhan, yang persis apa yang ditawarkan kolam penambangan.
Cons
- Banyak hal tergantung pada etika manajer kolam renang.
- Sentralisasi: Kritik terbesar yang dihadapi sebagian besar kumpulan adalah bahwa mereka mengarah pada sentralisasi koin. Mari kita lihat apa yang kita maksud dengan itu. Lihat distribusi hashrate bitcoin:
Gambar milik: Blockchain.info ~ 50% dari pasokan bitcoin dunia ditambang oleh 4 kelompok !! !? Hanya 4 Bitcoin seharusnya menjadi mata uang yang terdesentralisasi, tapi bagaimana desentralisasi dapat benar-benar jika hampir setengah dari itu dikendalikan oleh 4 kolam Sayangnya, ini bukan masalah eksklusif untuk Bitcoin, checkout grafik distribusi hashrate dari Monero :
- Di Monero, 42,6% persediaan dikendalikan oleh 1 grup yang tidak diketahui !!Ketika sekelompok besar mengambil lebih banyak dan lebih banyak saham dalam bagan distribusi hashrate, mereka mengalahkan tujuan desentralisasi. Kita telah melihat betapa pentingnya penambang dalam konteks blockchain. Ketika sekelompok penambang mengendalikan hashrate, mereka cenderung menjadi otoritas pusat sendiri. Bahkan, ketika sekelompok penambang mengambil alih 51% dari hashrate jaringan, mereka secara otomatis memulai serangan yang disebut “Serangan 51%”.
Apa serangan 51%?
Serangan 51% terjadi ketika 51% dari hashrate jaringan berada di bawah satu entitas. Entitas itu bisa berupa kumpulan penambangan atau figur otoritas. Saat 51% dari hashrate dikepung, pada dasarnya menghancurkan sifat desentralisasi dan membuka jaringan ke sejumlah besar serangan:
- Penambangan egois.
- Membatalkan semua transaksi.
- Pengeluaran Ganda.
- Garpu acak.
Sekarang, sebelum kita membahas setiap serangan itu, mari kita lihat bagaimana dan kapan serangan 51% terjadi.
Kasus 1: Kelompok penambangan menjadi terlalu besar
Bentuk serangan 51% yang paling umum dapat terjadi ketika kumpulan penambangan menjadi terlalu besar dan mendapatkan lebih dari 51% hashrate. Sebenarnya, ini sudah terjadi dengan bitcoin sekali sebelumnya. Pada Juli 2014, kumpulan penambangan populer GHash.io melewati hashrate 51%. Mereka kemudian secara sukarela memotong diri mereka sendiri dan secara eksplisit menyatakan bahwa mereka tidak akan pernah melewati 39,99% hashrate.
Pada Agustus 2016, Krypton dan Shift yang merupakan dua blockchains berdasarkan Ethereum, menderita serangan 51%.
Kasus 2: Memiliki modal tanpa batas
Entitas yang kuat dengan modal tanpa batas (seperti negara atau miliarder) dapat membeli peralatan yang cukup untuk mengambil alih blockchain. Variasi lain yang menarik dari ini adalah “serangan jari emas”.
Bayangkan ini, anggaplah Anda adalah entitas yang bermusuhan dan Anda memiliki modal tak terbatas yang Anda inginkan. Secara teori, Anda dapat membeli semua ASIC dan GPU yang diperlukan untuk memulai pengambilalihan 51% rantai. Anda kemudian dapat melanjutkan untuk menghancurkan nilai koin dengan baik memulai pengeluaran ganda atau dengan membengkak rantai dengan transaksi spam.
Kasus 3: Bukti masalah pengambilalihan pekerjaan
Ini adalah skenario yang sangat menarik dan jahat. Vitalik Buterin memberikan contoh yang bagus tentang ini dengan menunjukkan bagaimana masalah pengambilalihan dapat terjadi di Ethereum .
Misalkan, seseorang membuat kontrak pintar hipotetis untuk suatu kegiatan. Ketentuan kontraknya seperti ini:
- Setiap penambang dapat bergabung dengan aktivitas dengan mengirimkan setoran yang sangat besar ke dalam kontrak.
- Para penambang harus mengirimkan bagian dari sebagian blok yang telah mereka selesaikan ke dalam kontrak dan kontrak memverifikasinya dan juga memverifikasi bahwa Anda adalah seorang penambang dan bahwa Anda memiliki kekuatan hash yang cukup.
- Sebelum 60% penambang di sistem bergabung, Anda dapat pergi kapan saja.
- Setelah 60% penambang bergabung, Anda akan terikat pada kontrak sampai 20 blok telah ditambahkan ke rantai hardfork alias rantai merah.
Tidak hanya rantai baru akan tumbuh lebih besar dan lebih lama, karena 60% dari seluruh penambang terikat secara kontrak ke dalam rantai baru ini, ini akan dengan cepat membuat rantai lama yang asli alias rantai biru tidak relevan.
Sekarang, Anda mungkin bertanya mengapa para penambang bergabung dalam pengambilalihan?
Baiklah, mari kita lihat insentif mereka untuk bergabung:
- Kemungkinan hadiah di akhir.
- Tidak ada risiko bergabung di pihak mereka.
Apa insentif mereka untuk menindaklanjuti kontrak?
- Jumlah besar yang mereka setorkan pada awalnya.
- Sekali lagi, kemungkinan hadiah yang besar.
Jadi, ini singkatnya adalah contoh-contoh tertentu tentang bagaimana 51% hashrate dapat diambil alih oleh satu entitas. Sekarang, mari kita lihat dampak dari serangan semacam itu.
Apa dampak dari serangan 51%?
Seperti dibahas di atas, 4 serangan utama yang dapat terjadi secara langsung sebagai akibat dari serangan 51% adalah:
- Penambangan egois.
- Membatalkan transaksi.
- Pengeluaran Ganda.
- Garpu acak.
Penambangan egois
Ketika suatu entitas berhasil mendapatkan lebih dari 51% dari kekuatan hashing, keunggulan komputasi yang mereka miliki atas pesaing mereka benar-benar mengejutkan. Seperti yang telah kita bahas sebelumnya, penambang menambang untuk koin dengan menemukan dan menambahkan blok ke blockchain. Cara ini terjadi adalah mereka memecahkan teka-teki kriptografi yang sangat rumit. Saat menemukan blok, seluruh jaringan (atau setidaknya mayoritas) perlu mengakui bahwa ia memenuhi bukti kriteria kerja yang diperlukan, dan kemudian menjadi bagian dari rantai utama.
Sekarang, anggaplah Alice dan Bob adalah dua penambang. Ada kemungkinan bahwa mereka berdua memecahkan teka-teki pada saat yang sama untuk kedua blok masing-masing. Setelah itu, semua tentang siapa yang dipilih jaringan dan disetujui untuk ditambang. Misalnya. Jika 80% dari jaringan memilih untuk menambang di blok Alice, maka ada kemungkinan lebih tinggi mereka datang dengan blok berikutnya daripada 20% yang memihak Bob (karena tingkat hash yang lebih tinggi). Ketika ini terjadi, blok Alice akan menjadi bagian dari rantai sementara Bob menjadi blok yatim (blok tidak melekat pada rantai utama).
Sekarang pikirkan ini. Misalkan Bob memiliki 51% dari nilai hash dalam Bitcoin yang dimilikinya. Dia hanya dapat menambang untuk blok dan terus menambang di atasnya tanpa menunggu persetujuan jaringan karena dia sendiri mewakili mayoritas (karena dia memiliki 51% dari nilai hash). Jadi dia bisa terus menambang di atas bloknya tanpa repot-repot membiarkan jaringan tahu dan mengumpulkan semua hadiah dan biaya transaksi.
Membatalkan Transaksi
Bagaimana transaksi terjadi dalam cryptocurrency ? Singkat cerita, jika Alice mengirim 1 BTC ke Bob, maka Alice harus mengirim transaksi setelah menandatanganinya ke penambang, yang kemudian dapat memverifikasi dan memasukkannya ke dalam blok mereka. Dengan begitu Bob bisa mendapatkan 1 BTC-nya. Sekarang jika bitcoin berada di bawah serangan 51% maka kemungkinan mayoritas blok akan ditambang oleh penyerang. Dalam kasus seperti itu, penyerang akan layak sepenuhnya untuk tidak menerima transaksi apa pun ke blok mereka (yang bisa menjadi semua blok di masa depan dalam rantai). Jika ini terjadi maka akan menghancurkan bitcoin .
Pengeluaran Ganda
Salah satu dari banyak peran penting yang dimiliki para penambang adalah pencegahan “pengeluaran ganda”. Pengeluaran ganda pada dasarnya berarti menghabiskan koin yang sama persis pada lebih dari satu transaksi pada saat yang sama. Masalah ini bisa diselidiki karena penambang. Dalam blockchain, transaksi terjadi hanya ketika penambang menempatkan transaksi di blok yang telah mereka ranjau.
Jadi misalkan, Alice mengirim 1 bitcoin ke Bob dan kemudian dia mengirim koin yang sama ke Charlie, para penambang akan melakukan satu transaksi di dalam blok dan, dalam prosesnya, menimpa yang lain, mencegah pengeluaran ganda dalam proses. Namun, ini hanya berfungsi ketika para penambang tidak dikompromikan.
Dalam serangan 51%, para penambang telah dikompromikan. Seperti yang telah dinyatakan sebelumnya, dalam serangan 51% penyerang kemungkinan besar akan menjadi orang yang menambahkan blok baru ke blockchain. Mereka kemudian dapat melakukan pembelanjaan ganda dimana mereka dapat menghabiskan koin yang sama untuk melakukan lebih dari satu transaksi.
Serangan ini umumnya dilakukan untuk mendevaluasi koin. Seperti disebutkan di atas, entitas yang bermusuhan dapat memulai serangan “Jari Emas” untuk menggandakan pengeluaran koin tanpa pandang bulu dan menghancurkan nilainya. Pengeluaran ganda juga dapat terjadi melalui “forking”.
Garpu acak
Jadi, apa itu garpu?
Garpu adalah suatu kondisi di mana keadaan blockchain menyimpang ke dalam rantai di mana bagian dari jaringan memiliki perspektif yang berbeda pada sejarah transaksi daripada bagian yang berbeda dari jaringan. Itu pada dasarnya apa garpu, itu adalah perbedaan dalam perspektif keadaan blockchain.
Pada contoh di atas rantai merah adalah garpu dari rantai biru utama.
Jadi, mengapa mata uang seperti bitcoin, di bawah serangan 51%, ingin memotong dari rantai utama? Misalkan penyerang menghabiskan 20 BTC di blok 51 untuk membeli 400 Ethereum (skenario hipotetis). Mereka kemudian dapat dengan mudah melakukan fork di blok 50 untuk menuju ke blok 51. Ketika Anda fork, Anda akan mendapatkan jumlah mata uang yang tepat yang Anda miliki di blok sebelumnya di blok yang baru bercabang. Pada dasarnya, jika penyerang memiliki 20 BTC di blok 50, di blok biru 51 mereka akan memiliki 400 ETH dan di blok merah 51 mereka masih akan memiliki 20 BTC.
Jadi, setelah garpu, mereka masih memiliki 20 BTC dan tambahan 400 ETH! Ini adalah pengeluaran ganda yang terjadi melalui forking.
Ada skenario lain yang menarik di mana penyerang dapat memilih untuk melakukan fork. Ingat, seperti yang kami katakan, di bawah serangan 51% sebagian besar, jika tidak semua, blok akan ditambang oleh penyerang sendiri? Apa yang akan terjadi, jika dengan sedikit keberuntungan, beberapa penambang acak berhasil membuat blok baru? Nah, penyerang hanya akan memotong rantai sebelum blok baru ini dan melanjutkan penambangan pada rantai baru!
Sekarang, Anda mungkin berpikir, apa yang akan membuat sisa dari 49% itu ada di rantai baru? Jawabannya ada pada permainan koordinasi. Ingat, sebagian besar dari 49% penambang akan tersebar dan mandiri. Mereka ingin mencari kepentingan diri mereka sendiri. Jadi, dalam konteks ini kita melihat teori permainan, khususnya permainan koordinasi, untuk jawaban.
Mari kita ambil contoh permainan koordinasi:
Misalkan kita ingin mengubah bahasa menjadi bahasa berbasis simbol. Misalnya:
- Pernyataan asli: “Beri aku nomor Anda?”
- Pernyataan baru: “#?”
Jika saja Anda berbicara menggunakan bahasa ini, itu akan gagal karena mayoritas tidak akan mengerti apa yang Anda bicarakan dan Anda akan dijauhi dari percakapan alias imbalan untuk Anda sangat rendah dan Anda tidak memiliki insentif untuk berubah.
Namun, jika mayoritas masyarakat Anda beralih ke bahasa ini dan menggunakannya secara eksklusif, Anda harus mengubah bahasa Anda jika tidak, Anda tidak akan pernah bisa menyesuaikan diri. Sekarang insentif bagi Anda untuk bergabung adalah tinggi.
Gunakan logika yang sama di sini. Mayoritas tingkat hash sudah di rantai bercabang. Anda menjadi penambang independen ingin berada di rantai yang sama dengan mayoritas.
Seberapa besar kemungkinan bitcoin bisa rentan terhadap serangan 51%?
Seperti yang telah kami sebutkan sebelumnya, bitcoin memang menghadapi skenario ini ketika Ghash pool melebihi 51%, namun kemungkinan yang terjadi kecil sekarang. Bagi penyerang untuk memulai serangan 51%, insentif (awalnya) sangat rendah. Jumlah modal yang dibutuhkan untuk melakukan 51% pada bitcoin sangat mengejutkan. Sebenarnya, dalam kasus seperti ini, harga pasar bitcoin adalah perisai yang bagus. Semakin tinggi harga pasar, semakin besar hashing power dibayar, dan semakin mahal serangan karena sumber daya semakin mahal.
Sekarang mari kita lihat lebih banyak cara bahwa blockchain dapat diserang yang tidak ada hubungannya dengan serangan 51%. Ingat, sebagian besar contoh ini murni bersifat hipotesis, jadi jangan berbunyi lonceng alarm!
Apa itu “Kanibalisasi kolam”?
Mari kita lakukan eksperimen pemikiran.
Misalkan, total hashrate bitcoin adalah 100 di mana 30 adalah milik Anda. Anda secara efektif memiliki hashrate 30%. Sekarang, anggaplah hadiah penambangan adalah 1 BTC, yang berarti, mengingat Anda memiliki tingkat hash 30%, Anda juga diharapkan mendapatkan 30% dari hadiah penambangan yaitu: 0,3 BTC.
Sekarang, Anda memiliki dua opsi:
Opsi 1: Anda membeli lebih banyak peralatan pertambangan
Misalkan Anda membeli peralatan pertambangan yang meningkatkan milik Anda dan hashrate jaringan sebesar 1.
Yang berarti, pada awalnya kami mengasumsikan bahwa hashrate jaringan menjadi 100 dan hashrate Anda menjadi 30.
Sekarang hashrate jaringan adalah 101 dan milik Anda 31 yang berarti 31/101 Anda sendiri * 100 = 30,69% dari hashrate jaringan. Jadi itu juga berarti bahwa Anda mendapatkan 30,69% dari hadiah penambangan, yaitu 0,3069 BTC. Jadi, ini berarti, untuk setiap 1% SDM yang Anda tambahkan ke gudang senjata Anda, Anda mendapatkan keuntungan 0,0069 BTC (0,3069 – 0,3000).
Opsi 2: Anda mengkanibal pool
Jadi, dalam contoh sebelumnya, Anda menambahkan 1% hashrate ke gudang senjata Anda sendiri, bagaimana jika Anda mendistribusikan hashrate secara merata di antara semua penambang dan Anda menahan semua blok valid yang Anda miliki juga? Kami akan memperluas pada “blokir pemotongan” nanti, tetapi untuk hanya memberi Anda ide singkat, itu pada dasarnya berarti bahwa Anda menambang blok tetapi Anda tidak mengungkapkannya ke jaringan dan hanya menyimpannya untuk diri sendiri.
Mari kita lihat matematika di baliknya sekarang:
Jika kami mengambil 30% hashrate Anda (karena Anda menahan blok Anda, Anda tidak akan mendapatkan imbalan melalui hashrates Anda sendiri), sisa jaringan secara keseluruhan memiliki 70% hashrate.
Yang berarti, biasanya mereka mendapatkan 70% dari hadiah blok yang, dalam hal ini, 70% dari 1 BTC = 0,7 BTC. Tapi sekarang, karena Anda telah mendistribusikan 1% hashrate tambahan tersebut dengan penambang lainnya, seperti inilah keadaannya sekarang:
- Total hashrate tidak termasuk bagian Anda = 71.
- Hashrate jujur = 70.
- Hashrate tidak jujur = 1.
Karena Anda memiliki 1/71 dari semua hashrate lainnya, Anda mendapatkan:
1/71 * 0,7 = 0,0098 Pendapatan BTC dari pekerjaan yang telah dilakukan penambang lain.
Sekarang, mari kita bandingkan keduanya. Jika Anda melakukan penambangan yang jujur, Anda mendapatkan 0,0069 BTC, dan jika Anda tidak jujur maka Anda mendapatkan 0,0098 BTC. Jadi, lebih menguntungkan untuk mengkanibalkan kolam daripada jujur!
Apa itu Block Withholding?
Blokir adalah bentuk lain dari penambangan egois. Bayangkan skenario ini, Anda adalah penambang di jaringan bitcoin yang menggunakan ASIC paling canggih dan terhebat. Menambang balok adalah tugas yang sangat mudah bagi Anda.
Jadi, misalkan Anda menambang bock, tetapi Anda tidak mengungkapkannya ke jaringan. Alih-alih mengumumkan ke jaringan dan mengumpulkan hadiah Anda, Anda menyimpan blok rahasia dan milikku di atas blok itu. Seperti inilah tampilannya:
“Blok rahasia” adalah yang telah Anda ranjau dan tahan dari sisa jaringan. Ketika Anda menemukan blok lain, Anda dapat mengungkapkan dua blok ke jaringan. Apa yang akan dilakukan adalah sebagai berikut:
- Gandakan ganjaran yang bisa Anda kumpulkan.
- Jadilah diktator blok dalam dua blok alih-alih satu dan karenanya gandakan jumlah yang dapat Anda peroleh melalui biaya transaksi.
Alasan mengapa itu disebut “egois”, adalah karena Anda menentang gagasan “peluang yang sama untuk semua” yang merupakan kepanjangan dari penambangan. Setiap orang harus memiliki goyangan yang adil di pertambangan dan menemukan blok mereka sendiri. Plus, ini juga dapat menyebabkan monopoli jaringan.
Bagaimanapun, ada dua cara yang bisa dilakukan:
Skenario # 1: Seorang penambang menambang satu blok setelah Anda sudah menambang dua blok
Jadi, apa yang terjadi jika seorang penambang berhasil menambang satu blok setelah Anda sudah menambang 2 blok secara rahasia? Anda berdua akan menyiarkan informasi ke jaringan. Jaringan akan melihat bahwa Anda memiliki rantai yang lebih panjang dan akan memberi Anda anggukan pada blok soliter lainnya. Yang berarti bahwa blok itu akan menjadi yatim:
Skenario # 2: Seorang penambang menambang blok sebelum Anda bisa menambang blok kedua
Apa yang akan terjadi jika Anda tidak dapat menambang blok kedua dari yang pertama dan seseorang sudah dapat menambang blok?
Anda berdua akan menyiarkan ini ke jaringan dan menghasut perlombaan untuk persetujuan.
Namun, masalahnya adalah Anda masih memiliki kemungkinan 50% untuk mendapatkan blok Anda yang disetujui yang masih merupakan peluang yang bagus untuk dikerjakan.
Apa itu P + Epsilon Attack
Bukti sistem kerja rentan terhadap jenis serangan tertentu yang disebut “serangan P + epsilon”. Untuk memahami bagaimana serangan ini bekerja, kita harus mendefinisikan beberapa istilah sebelumnya. Un-Coordinated Choice Model: Model pilihan yang tidak terkoordinasi adalah model di mana semua peserta tidak memiliki insentif untuk bekerja satu sama lain. Peserta dapat membentuk kelompok tetapi tidak ada waktu adalah kelompok yang cukup besar untuk menjadi mayoritas.
Model pilihan terkoordinasi: Ini adalah model di mana semua peserta berkoordinasi karena insentif bersama.
Sekarang diasumsikan bahwa blockchain adalah model yang tidak terkoordinasi, tetapi bagaimana jika ada insentif bagi penambang untuk melakukan tindakan yang bertentangan dengan integritas blockchain? Bagaimana jika ada suap yang terlibat untuk membuat para penambang mengambil tindakan tertentu? Di sinilah model penyerang suap masuk
Apa model penyerang suap?
Bayangkan sebuah model yang tidak terkoordinasi. Sekarang bagaimana jika seorang penyerang memasuki sistem dan memberi insentif kepada para penambang untuk berkoordinasi satu sama lain setelah memberi mereka suap? Model baru ini disebut model penyerang suap. Agar berhasil menyuap sistem, penyerang harus memiliki dua sumber daya:
- Anggaran: Jumlah total uang yang dimiliki penyerang yang bersedia mereka bayar untuk membuat para penambang mengambil tindakan tertentu.
- Biaya: Harga yang sebenarnya dibayar oleh penambang.
Namun, jika seorang penyerang memutuskan untuk menyerang blockchain, kami tiba di sebuah teka-teki yang menarik … dan ini adalah tempat “p + epsilon attack” masuk. Untuk referensi lihat tabel ini:
Gambar milik: Presentasi Vitalik Buterin.
Bayangkan skenario sederhana seperti pemilihan. Jika orang-orang memilih orang tertentu jika mereka memilih dengan cara yang sama setiap orang memilih, maka mereka mendapat imbalan tetapi sebaliknya mereka tidak. Sekarang bayangkan, bahwa seorang penyuap memasuki sistem dan menetapkan kondisi ini kepada seorang individu. Jika Anda memilih DAN yang lainnya tidak memilih, maka Anda akan mendapatkan hasil dari “P + ε”. Imbalan biasa DAN suap ekstra ε di atas itu.
Jadi sekarang, matriks hasil terlihat seperti ini:
Gambar milik: Presentasi Vitalik Buterin.
Sekarang bayangkan skenario ini, semua orang yang terlibat dalam skenario ini mengetahui bahwa jika mereka tetap memilih, maka ada kemungkinan mereka mendapat imbalan, tetapi jika mereka tidak memilih maka ada peluang 50-50 untuk mendapat hasil.
Menurut Anda apa yang akan dilakukan para pemain? Tentu saja mereka akan memilih untuk mendapatkan hasil yang dijamin. Sekarang di sinilah segalanya menjadi menarik. Seperti yang dapat dilihat dalam matriks, penyuap hanya harus membayar suap “ε” ketika hanya orang yang memberikan suara sedangkan yang lain tidak. Namun, dalam situasi ini karena semua orang memilih, keseimbangan Nash bergeser ke:
Itu benar, penyuap itu bahkan tidak perlu membayar suap!
Jadi, mari kita dekati masalah ini dari POV penyuap:
- Meyakinkan kelompok untuk memilih dengan cara tertentu.
- Mencapai tujuan tanpa harus membayar suap.
Ini adalah skenario win-win yang sangat besar bagi penyuap dan ini memiliki implikasi besar pada blockchain terutama dalam sistem proof-of-work. Mari kita periksa lagi blockchain hipotetis lama kita:
Misalkan penyuap benar-benar menginginkan rantai untuk bekerja keras dan menyatakan bahwa sekelompok penambang yang memilih untuk bergabung dengan rantai baru akan menerima suap sebesar ε, ini akan mendorong seluruh komunitas penambang untuk berkoordinasi dan bergabung dengan rantai baru.
Jelas suap harus sangat tinggi untuk hal seperti ini terjadi, tetapi seperti yang telah kita lihat dalam model penyerang suap di atas, penyerang bahkan tidak perlu membayar jumlah tersebut. Menurut Vitalik Buterin ini adalah salah satu masalah terbesar dari bukti sistem kerja, kerentanannya terhadap serangan epsilon P +.
Solusinya terletak pada bukti kepemilikan.
Solusi untuk bentuk serangan yang didorong oleh insentif ini terletak pada bukti kepemilikan. Dalam sistem ini, para penambang harus meletakkan sebagian kekayaan pribadi mereka dan menginvestasikannya dalam blok-blok masa depan. Sebagai sistem ekonomi, ini jauh lebih baik karena hukuman di dalamnya jauh lebih berat. Alih-alih mendapatkan hak-hak mereka diambil dan pergi dengan “ketukan pada buku-buku jari mereka”, para penambang sekarang menghadapi kemungkinan yang sangat nyata dari pasak dan kekayaan mereka diambil.
Jadi, bagaimana ini membantu dalam mencegah serangan P + epsilon? Tempatkan dirimu pada posisi penambang. Anda memiliki bagian dari kekayaan Anda yang diinvestasikan di dalam blok yang akan ditambahkan dalam rantai utama. Sekarang seorang penyuap datang dan memberi tahu Anda bahwa Anda bisa mendapatkan hasil tambahan jika Anda membuat blok Anda bergabung dengan rantai utama. NAMUN, jika rantai itu tidak disetujui maka ada risiko besar Anda kehilangan semua uang yang telah Anda investasikan di blok tersebut. Plus, seperti yang dinyatakan oleh serangan P + Epsilon, Anda bahkan tidak akan mendapatkan hasil tambahan dari suap. Untuk seorang penambang, begitu mereka telah menginvestasikan sebuah saham, tidak ada alasan bagi mereka untuk melanjutkan dalam rantai utama dan tidak terlibat dalam aktivitas jahat apa pun.
Apa itu daftar hitam?
Daftar hitam adalah bentuk serangan terhadap satu entitas. Bayangkan ada entitas yang sangat menonjol yang memiliki banyak modal dan mereka mengeluarkannya untuk lelaki bernama Jake ini dan mereka ingin memasukkannya ke dalam jaringan. Bahkan, mari kita asumsikan bahwa entitas ini adalah negara yang memiliki banyak kumpulan dalam kendali mereka, mari kita sebut negara ini Aliceland.
Sebelum kita melanjutkan, mari kita buat legenda:
Ini adalah apa yang terlihat seperti blok normal:
Seperti inilah bentuk blok yang ditambang oleh Aliceland:
Dan inilah blok yang termasuk transaksi Jake alias blok Jake:
Oke, jadi ada dua cara yang bisa dilakukan Aliceland untuk masuk daftar hitam Jake:
- Fork hukuman
- Forking bulu.
Kasus # 1: Punitive Forking
Ada dua strategi berbeda yang bisa Anda lakukan melalui forking hukuman.
Strategi 1:
Karena Aliceland adalah sebuah negara, ia dapat dengan mudah memesan semua kumpulan untuk tidak memasukkan transaksi apa pun oleh Jake dalam blok mereka. Sekarang ini adalah strategi yang naif karena agar berhasil, ada banyak hal yang perlu mereka pertimbangkan.
Pertama, mereka perlu mengendalikan 100% kolam di negara mereka. Jika bahkan satu kumpulan berada di luar kendali mereka, maka mereka dapat memasukkan transaksi Jake di blok mereka. Maksimum yang dapat mereka capai dengan melakukan ini adalah menyebabkan banyak penundaan dan ketidaknyamanan.
Strategi 2:
Sekarang bagaimana jika, Aliceland ingin melakukan forking hukuman DAN memiliki> 51% dari kekuatan pertambangan dunia? Ini adalah saat persamaan benar-benar terbalik. Inilah yang harus mereka lakukan.
Pertama, mereka akan mengumumkan kepada dunia bahwa mereka tidak akan mengizinkan transaksi apa pun yang menyertakan Jake di blockchain lagi dan bahwa tidak satu pun dari kumpulan mereka akan bekerja pada rantai yang memiliki “Blok Jake” di dalamnya. Dengan kata lain, saat balok Jake muncul, Aliceland akan melakukan fork.
Misalkan seperti ini bentuk blockchain:
Sekarang, bayangkan salah satu penambang di luar kendali Aliceland menambahkan transaksi Jake ke dalam blok mereka dan menciptakan blok Jake:
Aliceland melihat ini akan segera memulai garpu. Karena mereka sudah memiliki mayoritas 51%, mereka dapat memulai garpu tanpa persetujuan dari siapa pun.
Karena mereka telah mengumumkan niat mereka sebelumnya dan karena mereka memiliki mayoritas 51%, tidak ada yang berani melawan mereka dan bahkan jika mereka memberontak dan memasukkan blok Jake, mereka akan dipaksa untuk menjadi yatim piatu karena Aliceland hanya dapat menggunakan hak mereka mayoritas untuk bercabang dan melanjutkan.
Kasus # 2: Feather Forking
Jadi, kita telah melihat di atas bagaimana setiap orang dengan mayoritas 51% dapat melakukan backlist siapa pun yang menggunakan fork hukuman. Sekarang, apa yang dapat Anda lakukan jika Anda ingin memasukkan seseorang ke dalam daftar hitam tetapi Anda tidak memiliki mayoritas 51%? Aliceland sebenarnya masih bisa daftar hitam Jake tua miskin dengan metode yang disebut forking bulu. Mari kita lihat apa artinya itu.
Aliceland dapat menyatakan bahwa setiap kali blok Jake ditambahkan, mereka akan berusaha melakukan fork, tetapi menyerah setelah sejumlah konfirmasi (Konfirmasi = jumlah blok yang ditambang di atas blok yang diperebutkan). Ini berbeda dari forking hukuman dalam arti bahwa Aliceland tidak mengancam garpu permanen, mereka malah mengatakan bahwa mereka akan bercabang setiap kali TETAPI juga akan kembali setelah sejumlah konfirmasi.
Mari kita lihat sebuah contoh:
Jadi apa yang terjadi di sini?
Ketika blok Jake ditambahkan ke sistem, Aliceland melakukan garpu dan menunggu konfirmasi. Dalam hal ini, konfirmasi adalah 1 blok. Saat balok itu ditambahkan ke blok Jake, Aliceland mengosongkan garpu dan bergabung dengan rantai utama lagi.
Sekarang Anda mungkin berpikir, “Itu tidak terlalu buruk.” Tapi mari kita melihat ke dalam matematika dari semuanya.
Misalkan Aliceland memiliki kekuatan hashing “q” di mana 0 <q <1.
Kemudian, berdasarkan distribusi Bernoulli, peluang menambang blok dan forking adalah q ^ 2.
Mengikuti contoh kami, kami akan menganggap bahwa Aliceland hanya menunggu 1 konfirmasi.
Misalkan, Aliceland memiliki 20% dari kekuatan hashing dunia, jadi q = 0,2 dan peluang menambang blok adalah 0,2 ^ 2 = 0,04 = 4%.
Kesempatan 4% mungkin tidak tampak setinggi itu, tetapi para penambang lain sekarang sadar bahwa ada 4% peluang blok mereka menjadi yatim piatu JIKA mereka memasukkan blok Jake.
Jadi, berapa nilai yang diharapkan (EV) yang bisa didapat para penambang JIKA mereka memasukkan / tidak menyertakan blok Jake?
- EV (termasuk blok Jake) = (1-q ^ 2) * blok hadiah + biaya transaksi Jake.
- EV (tidak termasuk Jake block) = Block Reward.
Jadi, bagi para penambang untuk mendapatkan EV yang sama dari kedua skenario, Jake harus membayar biaya transaksi yang setara dengan q ^ 2 * blok hadiah. Mari kita lihat seberapa banyak itu dalam konteks bitcoin.
Blokir hadiah = 12,5 btc dan dalam contoh ini q ^ 2 = .04.
Mengganti nilai dalam persamaan ini:
- q ^ 2 * blokir hadiah
- Dan kami mendapatkan: .04 * 12.5 = 0,5 BTC.
- 0,5 BTC, pada saat penulisan, sama dengan $ 2091.
Itulah jumlah yang harus dibayar Jake dalam biaya transaksi SETIAP kali untuk menjadikannya berharga bagi para penambang untuk menempatkan blok Jake ke rantai utama. Bukan skenario yang paling nyaman untuk sedikitnya!
Apa itu kelenturan transaksi?
Mari kita mulai dengan ikhtisar singkat tentang apa fungsi hashing. Fungsi hashing dapat mengambil input apa saja dari panjang apa pun, tetapi output yang diberikannya selalu panjang tetap.
Namun, ada fungsi hashing penting lainnya yang perlu Anda ketahui untuk memahami “bug kelonggaran transaksi” seperti yang disebut. Setiap perubahan kecil pada data input akan secara drastis mengubah hash output.
Misalnya. Periksa tes ini yang kami lakukan dengan SHA-256 alias algoritma hashing yang digunakan dalam bitcoin:
Kami baru saja mengubah “T” dari huruf besar ke huruf kecil, dan lihat apa yang terjadi pada output!
Satu hal lagi yang perlu Anda pahami tentang blockchain adalah bahwa itu tidak dapat diubah, artinya, begitu data telah dimasukkan dalam sebuah blok, itu tidak akan pernah dapat diubah. Sementara ini membuktikan jaring pengaman terhadap korupsi, ada satu kelemahan yang tak terlihat oleh siapa pun.
Bagaimana jika, data dirusak sebelum bahkan memasuki blok? Bahkan jika orang mengetahuinya nanti, tidak ada yang bisa dilakukan siapa pun tentang itu karena data yang pernah dimasukkan dalam blok tidak akan pernah bisa dikeluarkan! Yang pada intinya adalah mengapa kelenturan transaksi adalah masalah seperti itu.
Sekarang, mengapa kelenturan transaksi terjadi?
Ternyata tanda tangan yang sesuai dengan data input dapat dimanipulasi, yang pada gilirannya dapat mengubah ID transaksi. Bahkan, itu bisa membuatnya tampak seperti transaksi bahkan tidak terjadi sejak awal. Misalnya. Misalkan Anda memiliki satu set blok yang mengatakan “3 + 1 = 4” dan kemudian seseorang datang dan mengubahnya menjadi “2 + 2 = 4”, hasilnya masih sama di kedua kasus “4”, tetapi bagian dalam detail transaksi semuanya sangat kacau sebagai akibatnya.
Mari kita lihat ini dalam contoh terkait blockchain.
Misalkan Bob ingin Alice mengirimnya 3 BTC. Alice memulai transaksi 3 BTC ke alamat publik Bob dan kemudian mengirimkannya ke penambang untuk disetujui. Sementara transaksi menunggu dalam antrian, Bob menggunakan kelenturan transaksi untuk mengubah tanda tangan Alice dan mengubah ID transaksi.
Sekarang ada kemungkinan transaksi yang dirusak ini akan disetujui sebelum Alice disetujui, yang pada gilirannya menimpa transaksi Alice. Ketika Bob mendapatkan 3 BTC-nya, ia bisa memberi tahu Alice bahwa ia tidak mendapatkan 3 BTC yang menjadi kewajibannya. Alice kemudian akan melihat bahwa transaksinya tidak melalui dan akankah mereka mengirimnya kembali. Akibatnya, Bob akan berakhir dengan 6 BTC, bukan 3 BTC.
Salah satu contoh paling terkenal dari serangan lunak transaksi adalah serangan Mt Gox 2014. Mt. Gox adalah salah satu pertukaran bitcoin terbesar di dunia dan sekitar $ 450 juta bitcoin dicuri darinya.
Sekarang inti bitcoin telah memulai Segwit, itu akan menghentikan kelenturan transaksi di BTC.
Apa itu timejacking?
Kemungkinan serangan terakhir yang ingin kita bicarakan adalah “timejacking”. Sistem bitcoin menggunakan jaringan node untuk menyampaikan pesan dan informasi. Setiap node perlu melacak waktu DAN itu harus selaras dengan node rekan lainnya. Cara melakukannya adalah dengan menjaga sistem jam internal yang kebetulan sama dengan waktu jam rata-rata yang dihitung dari semua rekan-rekannya. Jika waktu rata-rata ini berbeda lebih dari 70 menit dari waktu sistemnya, maka jam internal menyesuaikan dan kembali ke waktu sistem.
Jadi, sebagai tindakan pencegahan, dan ini sangat penting untuk memahami serangan itu, node menolak blok apa pun yang lebih dari 120 menit lebih awal dari jam internal. Sekarang anggaplah ada seorang penyerang yang ingin menyerang target node tertentu. Bagaimana mereka melakukannya?
- Pertama, mereka meluncurkan serangan Sybill pada jaringan bitcoin. Serangan Sybill adalah serangan di mana penyerang memiliki kontrol atas beberapa node dalam jaringan, ini dapat terjadi dengan menelurkan ribuan node palsu dan melampirkannya ke jaringan. Dengan melakukan serangan, penyerang memanipulasi perangko waktu dari node sedemikian rupa. cara bahwa simpul target adalah 70 menit di belakang jam sementara setiap simpul lainnya adalah 70 menit di depan (Mengapa 70? Sehingga masih di bawah batas 70 menit dan bahwa jam tidak kembali). Ini pada dasarnya menciptakan celah 140 menit antara node target dan seluruh jaringan.
- Sekarang, penyerang, menggunakan kekuatan hashrate mereka, sebuah blok baru dengan cap waktu 190 menit lebih awal dari waktu sebenarnya.
- Ketika blok baru ini disiarkan, node target segera menolaknya karena, menurut mereka, itu tidak dalam batas 120 menit. Untuk node target, bloknya adalah (190 + 70), 260 menit di belakang.
- Namun, setiap node lain menerima blok karena berada dalam batas 120 menit (190-70 = 120) dan penambang di semua node lain mulai menambang di atasnya.
- Jadi, penyerang kini telah berhasil mempartisi node target dari sisa jaringan. Node target mulai bekerja pada rantai mereka sendiri sementara semua orang lain mengerjakannya.
- Penyerang sekarang dapat menambang lebih banyak blok gratis dari node target dan terlibat dalam pengeluaran ganda. Bahkan, jika mereka terus menyesuaikan timejack, mereka dapat tetap berjalan tanpa batas waktu.
Timejacking adalah proposisi yang sangat menakutkan. Bahkan, sekelompok penambang jahat dapat mengatur waktu sekelompok penambang dan mengeluarkan mereka dari sistem dan meningkatkan persentase hashrate mereka dalam proses.
Serangan Hipotetis pada Kesimpulan Cryptocurrency
Jadi, itulah daftar kemungkinan serangan yang dapat terjadi pada cryptocurrency. Ingat, serangan-serangan ini, atau paling tidak sebagian besar, bersifat murni hipotesis. Idenya adalah untuk tidak meningkatkan paranoia; idenya adalah untuk mendidik semua orang tentang cryptocurrency dan teknologi di baliknya. Jika Anda dapat memikirkan kemungkinan serangan hipotetis yang belum kami sebutkan, lakukan komentar di bawah ini dan beri tahu kami dan semua orang.