“Permainan demi uang di luar blockchain harus mati”

“Permainan demi uang di luar blockchain harus mati”

Dmitry Pichulin, yang dikenal dengan julukan “deemru”, menjadi pemenang pertandingan tersebut Surga Fhloston, dikembangkan oleh Tradisys di blockchain Waves.

Untuk menang permainan, seorang pemain harus membuat taruhan terakhir selama periode 60 blok - sebelum pemain lain membuat taruhan, sehingga mengatur ulang penghitung ke nol. Pemenangnya menerima semua uang yang dipertaruhkan oleh pemain lain.

Bot yang ia ciptakan membawa kemenangan bagi Dmitry Patroli. Dmitry hanya membuat delapan taruhan pada satu GELOMBANG dan akhirnya menang 4700 GELOMBANG (RUB 836300). Dalam sebuah wawancara, Dmitry berbicara tentang botnya dan prospek game di blockchain.

Ceritakan sedikit tentang diri Anda kepada kami. Apa pekerjaanmu? Kapan Anda mulai tertarik dengan teknologi blockchain?

Saya seorang pengembang di bidang keamanan informasi. Saya datang ke blockchain dengan sensasi tahun 2017, memahami teknologinya dan tetap setia pada teknologi tersebut.

Apa motivasi utama berpartisipasi dalam permainan ini?

Pertama-tama, kepentingan teknis. Saya ingin mengetahui cara kerjanya, menemukan kerentanan, tidak membiarkan permainan berakhir, dan tentu saja “menjelek-jelekkan” pemain lain.

Sudahkah Anda memutuskan bagaimana Anda akan membelanjakan kemenangan Anda? Bagaimana Anda menyimpannya jika Anda memutuskan untuk tidak membelanjakannya dulu?

Saya tidak tahu apa yang harus saya lakukan dengan kemenangan itu. Saya tidak menduganya, jadi saya tidak punya rencana. Untuk saat ini akan tetap apa adanya. Mungkin itu akan mengalir ke beberapa proyek di Waves.

Mengapa Anda memutuskan untuk mengikuti permainan menggunakan bot? Bagaimana ide Patrollo muncul? Bisakah Anda ceritakan lebih banyak tentang perkembangannya?

Itu tidak berhasil dengan kerentanan. Saya mengambil permainan di jaringan uji, bermain sendiri, mencoba semua opsi, tetapi semuanya ternyata “terprogram”, tidak ada kerentanan dalam kontrak. Menjadi jelas bahwa cara ini tidak dapat dimenangkan.

Bagaimana Anda mencari kerentanan? Apa hipotesis Anda? Bisakah Anda memberikan contoh kode?

Ada dua hipotesis. Pertama, serangan terhadap pemeriksaan tipe data pada catatan transaksi data. Misalnya, saya berharap pengkodean yang buruk akan mengabaikan pemeriksaan penggunaan kembali ID transaksi. Yang kedua adalah serangan integer overflow. Saya pikir ada cara untuk mengatur ketinggian terlalu tinggi atau negatif dan mencoba untuk berakhir di masa lalu.

$tx = $wk->txBroadcast( $wk->txSign( $wk->txData( [ 'heightToGetMoney' => -9223372036854775807 ] ) ) );

Apa yang Anda lakukan saat melihat ekspektasi kerentanan Anda tidak terpenuhi?

Dalam obrolan telegramnya, Tradisys mengeluh bahwa meskipun semuanya tenang di jaringan, permainan akan abadi, tetapi dalam kebingungan (dengan pembaruan node atau percabangan yang tidak terduga), peluang bot yang baik meningkat. Di sana, dalam obrolan, saya menerima tantangan untuk menulis bot yang bagus, yang saya lakukan beberapa hari kemudian. Saya menulis kode Patrollo dalam PHP, berdasarkan kerangka kerja saya GelombangKit, di mana saya mencoba menangkap semua teknik terbaik untuk bekerja dengan blockchain.

Saya mengujinya di jaringan uji, memposting kode di github, meluncurkan bot di jaringan utama dan melupakannya.

Konfigurasi Patrollo saya harus menyelesaikan dua masalah: memasang taruhan sejarang mungkin dan bekerja seandal mungkin.

Yang pertama ditentukan oleh taruhan yang sangat berisiko, sebaiknya di blok terakhir. Pada akhirnya, saya tetap menempatkan bot di blok kedua dari belakang, tetapi dengan tambahan penundaan 29 detik. Ini memungkinkan hanya delapan taruhan yang dibuat sepanjang pertandingan.

Mengapa tepatnya 29 detik? Bagaimana Anda sampai pada nomor ini?

29 detik muncul secara bertahap. Pada awalnya tidak ada penundaan, tetapi saya perhatikan bahwa di blok kedua dari belakang ada kasus taruhan simultan - yaitu, tidak ada gunanya bertaruh. Lalu ada penundaan - menurut saya 17 detik, tapi itu juga tidak membantu: masih ada taruhan simultan. Kemudian saya memutuskan untuk mengambil lebih banyak risiko, tetapi tentu saja tidak bertaruh secara bersamaan. Mengapa 17, 29, dst? Hanya kecintaan pada bilangan prima. 24, 25, 26, 27, 28, 30 - semua senyawa. Dan lebih dari 30 detik akan sangat berisiko.

Bagaimana cara mengatasi masalah keandalan?

Keandalan diatasi terutama melalui mekanisme pemilihan node yang berfungsi dan, pada tingkat lebih rendah, dengan melakukan transaksi transfer untuk taruhan terlebih dahulu, sehingga taruhan pada tanggal transaksi sudah secara akurat merujuk pada transaksi yang ada di blockchain.

Selama setiap putaran siklus, semua node yang ditentukan dalam konfigurasi disurvei untuk mengetahui ketinggiannya saat ini, node dengan ketinggian saat ini tertinggi dipilih, dan interaksi lebih lanjut terjadi dengannya. Dalam pemahaman saya, ini seharusnya melindungi terhadap percabangan, tidak tersedianya, caching dan kemungkinan kesalahan pada node. Ada keyakinan bahwa mekanisme sederhana inilah yang membawa kemenangan.

Menurut Anda, apa saja fitur dan kelebihan utama dari game blockchain? Seberapa menjanjikankah blockchain publik pada umumnya dan blockchain Waves pada khususnya untuk pengembangan game?

Keuntungan utamanya adalah aturan permainan yang diketahui, tetap dan tidak berubah, ditambah kondisi yang sama untuk akses ke permainan dari mana saja di dunia.

Permainan uang di luar rantai harus mati.

Waves memiliki fungsionalitas teknis yang kaya, tetapi ada perbedaan, baik yang melekat pada blockchain mana pun, maupun spesifik. Keduanya belum tercermin dengan baik pada alat pengembang yang ada.

Misalnya, jika Anda mencoba merespons transaksi secara real time, dan bukan pada jarak 5-10 konfirmasi, Anda akan mengetahui tentang fenomena yang jarang terjadi namun terjadi: transaksi melompat dari blok ke blok, transaksi hilang di beberapa blok dan muncul di blok lain. . Semua ini penting untuk kecepatan dan keandalan aplikasi apa pun dan harus diselesaikan secara umum, tetapi untuk saat ini setiap pengembang mencapai tingkat keandalan yang mereka perlukan sendiri. Seiring berjalannya waktu, tentu saja, semua ini akan teratasi, namun untuk saat ini terdapat hambatan tertentu yang cukup tinggi untuk masuk dan ketakutan akan hal-hal spesifik dari kerja blockchain yang benar-benar terdesentralisasi secara umum.

Apa bedanya game FOMO dengan game blockchain lainnya lho? Apa kelebihan dan kekurangannya?

Ini adalah pertandingan yang panjang. Minat terhadap permainan semacam itu tumbuh seiring dengan jumlah kemenangan, dan jumlah kemenangan bertambah seiring waktu.

Idealnya, permainan ini tidak akan pernah berakhir. Ketika pertandingan berakhir, itu menyedihkan.

Baru-baru ini saya diluncurkan permainan Surga Fhloston 2. Apakah Anda berencana untuk mengambil bagian di dalamnya?

Ya, jika saya punya waktu dan minat, saya akan mengambil langkah yang sama: analisis kerentanan, bermain sendiri di jaringan pengujian, bot, sumber terbuka, dll.

Terakhir, beri tahu kami tentang rencana Anda sebagai pengembang.

Saya tertarik untuk memecahkan masalah yang belum terpecahkan, dan ada banyak masalah yang belum terpecahkan dalam topik blockchain. Ini adalah tantangan nyata! Dan dia diterima.

Sumber: www.habr.com

Tambah komentar