"Permainan untuk wang di luar rantaian blok mesti mati"

"Permainan untuk wang di luar rantaian blok mesti mati"

Dmitry Pichulin, yang dikenali dengan nama samaran "deemru", menjadi pemenang permainan Fhloston Paradise, dibangunkan oleh Tradisys on the Waves blockchain.

Untuk menang dalam permainan, pemain perlu membuat pertaruhan terakhir dalam tempoh 60 blok - sebelum pemain lain membuat pertaruhan, dengan itu menetapkan semula pembilang kepada sifar. Pemenang menerima semua wang pertaruhan oleh pemain lain.

Bot yang diciptanya membawa kemenangan kepada Dmitry Rondaan. Dmitry membuat hanya lapan pertaruhan pada satu WAVES dan akhirnya menang 4700 GELOMBANG (RUB 836300). Dalam temu bual, Dmitry bercakap tentang botnya dan prospek untuk permainan di blockchain.

Beritahu kami sedikit tentang diri anda. Apa yang awak buat? Bilakah anda mula berminat dengan teknologi blockchain?

Saya seorang pembangun dalam bidang keselamatan maklumat. Saya datang ke blockchain dengan gembar-gembur 2017, memahami teknologi dan kekal untuk teknologi.

Apakah motivasi utama untuk mengambil bahagian dalam permainan?

Pertama sekali, kepentingan teknikal. Saya mahu memikirkan cara ia berfungsi, mencari kelemahan, tidak membiarkan permainan tamat, dan sudah tentu "troll" pemain lain.

Adakah anda sudah memutuskan bagaimana anda akan membelanjakan kemenangan anda? Bagaimanakah anda akan menyimpannya jika anda memutuskan untuk tidak membelanjakannya lagi?

Saya tidak dapat memikirkan apa yang perlu dilakukan dengan kemenangan. Saya tidak menjangkakannya, jadi saya tidak mempunyai rancangan. Buat masa ini ia akan kekal seperti sedia ada. Mungkin ia akan mengalir ke dalam beberapa projek di Waves.

Mengapa anda memutuskan untuk mengambil bahagian dalam permainan menggunakan bot? Bagaimanakah idea untuk Patrollo tercetus? Bolehkah anda memberitahu kami lebih lanjut tentang perkembangannya?

Ia tidak berjaya dengan kelemahan. Saya mengambil permainan di rangkaian ujian, bermain dengan diri saya sendiri, mencuba semua pilihan, tetapi semuanya ternyata "terkawal", tidak ada kelemahan dalam kontrak. Ia menjadi jelas bahawa cara ini tidak boleh dimenangi.

Bagaimanakah anda mencari kelemahan? Apakah hipotesis anda? Bolehkah anda memberikan contoh kod?

Terdapat dua hipotesis. Pertama, serangan ke atas jenis data menyemak rekod transaksi data. Sebagai contoh, saya menjangkakan bahawa pengekodan yang buruk akan memintas semakan penggunaan semula ID transaksi. Yang kedua ialah serangan limpahan integer. Saya fikir ada cara untuk menetapkan ketinggian terlalu tinggi atau negatif dan cuba berakhir pada masa lalu.

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

Apakah yang anda lakukan apabila anda melihat bahawa jangkaan kelemahan anda tidak dipenuhi?

Dalam sembang telegramnya, Tradisys mengadu bahawa walaupun semuanya senyap di rangkaian, permainan akan kekal, tetapi dalam kekeliruan (dengan kemas kini nod atau garpu yang tidak dijangka), peluang bot yang baik meningkat. Di sana, dalam sembang, saya menerima cabaran untuk menulis bot yang baik, yang saya lakukan beberapa hari kemudian. Saya menulis kod Patrollo dalam PHP, berdasarkan rangka kerja saya WavesKit, di mana saya cuba menangkap semua teknik terbaik untuk bekerja dengan blockchain.

Saya mengujinya pada rangkaian ujian, menyiarkan kod pada github, melancarkan bot pada rangkaian utama dan melupakannya.

Konfigurasi Patrollo saya terpaksa menyelesaikan dua masalah: letak pertaruhan sejarang mungkin dan kerja sebolehpercaya yang mungkin.

Yang pertama diputuskan oleh pertaruhan yang sangat berisiko, sebaik-baiknya di blok terakhir. Pada akhirnya, saya masih meletakkan bot pada blok kedua terakhir, tetapi dengan kelewatan tambahan selama 29 saat. Ini membenarkan hanya lapan pertaruhan dibuat semasa keseluruhan permainan.

Mengapa tepat 29 saat? Bagaimana anda mendapat nombor ini?

29 saat muncul secara beransur-ansur. Pada mulanya tidak ada kelewatan, tetapi saya perhatikan bahawa pada blok kedua terakhir terdapat kes pertaruhan serentak - iaitu, tidak ada gunanya pertaruhan. Kemudian berlaku kelewatan - saya rasa ia adalah 17 saat, tetapi ia tidak membantu sama ada: masih terdapat pertaruhan serentak. Kemudian saya memutuskan untuk mengambil lebih banyak risiko, tetapi pastinya tidak mempunyai pertaruhan serentak. Mengapa 17, 29, dan lain-lain? Hanya suka nombor perdana. 24, 25, 26, 27, 28, 30 - semua sebatian. Dan lebih daripada 30 saat akan berisiko sepenuhnya.

Bagaimanakah isu kebolehpercayaan diselesaikan?

Kebolehpercayaan ditangani terutamanya oleh mekanisme untuk memilih nod yang berfungsi dan, pada tahap yang lebih rendah, dengan menjalankan transaksi pemindahan untuk pertaruhan terlebih dahulu, supaya pertaruhan dalam urus niaga tarikh akan merujuk dengan tepat urus niaga sedia ada pada blockchain.

Semasa setiap pusingan kitaran, semua nod yang dinyatakan dalam konfigurasi telah ditinjau untuk ketinggian semasa mereka, nod dengan ketinggian semasa tertinggi telah dipilih, dan interaksi selanjutnya berlaku dengannya. Pada pemahaman saya, ini sepatutnya melindungi daripada garpu, tidak tersedia, caching dan kemungkinan ralat pada nod. Terdapat keyakinan bahawa mekanisme mudah inilah yang membawa kepada kemenangan.

Apakah, pada pendapat anda, ciri utama dan kelebihan permainan blockchain? Sejauh manakah blok blok awam secara amnya menjanjikan dan blok Waves khususnya untuk pembangunan permainan?

Kelebihan utama ialah peraturan permainan yang diketahui, tetap dan tidak berubah, serta syarat yang sama untuk akses kepada permainan dari mana-mana sahaja di dunia.

Permainan wang luar rantai mesti mati.

Gelombang mempunyai fungsi teknikal yang kaya, tetapi terdapat nuansa, kedua-duanya wujud dalam mana-mana blockchain dan khusus. Kedua-duanya masih belum dapat dilihat dengan baik dalam alat pembangun sedia ada.

Sebagai contoh, jika anda cuba membalas urus niaga dalam masa nyata, dan bukan pada jarak 5-10 pengesahan, anda akan belajar tentang fenomena yang jarang berlaku tetapi berlaku: urus niaga melompat dari satu blok ke satu blok, urus niaga hilang dalam beberapa blok dan muncul dalam yang lain. . Semua ini penting untuk kelajuan dan kebolehpercayaan mana-mana aplikasi dan mesti diselesaikan secara umum, tetapi buat masa ini setiap pembangun mencapai tahap kebolehpercayaan yang diperlukannya sendiri. Dari masa ke masa, sudah tentu, semua ini akan diselesaikan, tetapi buat masa ini terdapat halangan tertentu, agak tinggi, untuk masuk dan ketakutan terhadap spesifik kerja blok yang benar-benar terdesentralisasi secara umum.

Bagaimanakah permainan FOMO berbeza daripada permainan blockchain lain yang anda tahu? Apakah kelebihan dan kekurangannya?

Ini adalah permainan yang panjang. Minat dalam permainan sedemikian bertambah dengan jumlah kemenangan, dan jumlah kemenangan bertambah dari semasa ke semasa.

Sebaik-baiknya, permainan tidak akan pernah berakhir. Apabila permainan berakhir, ia sedih ...

Baru-baru ini saya dilancarkan permainan Fhloston Paradise 2. Adakah anda merancang untuk mengambil bahagian di dalamnya?

Ya, jika saya mempunyai masa dan minat, saya akan mengambil langkah yang sama: analisis kelemahan, bermain dengan diri saya pada rangkaian ujian, bot, sumber terbuka, dsb.

Akhir sekali, sila beritahu kami tentang rancangan anda sebagai pembangun.

Saya berminat untuk menyelesaikan masalah yang tidak dapat diselesaikan, dan terdapat banyak masalah yang tidak dapat diselesaikan dalam topik blockchain. Ini adalah cabaran sebenar! Dan dia diterima.

Sumber: www.habr.com

Tambah komen