„Игрите за пари извън блокчейна трябва да умрат“

„Игрите за пари извън блокчейна трябва да умрат“

Дмитрий Пичулин, известен под прякора „deemru“, стана победител в играта Fhloston Paradise, разработен от Tradisys върху блокчейна Waves.

За да спечелите в играта, играчът трябваше да направи последния залог за период от 60 блока - преди друг играч да направи залог, като по този начин нулира брояча на нула. Победителят получи всички пари, заложени от други играчи.

Създаденият от него бот донесе победа на Дмитрий патрул. Дмитрий направи само осем залога на една WAVES и в крайна сметка спечели 4700 ВЪЛНИ (836300 XNUMX рубли). В интервю Дмитрий говори за своя бот и перспективите за игри в блокчейна.

Разкажете ни малко за себе си. Какво правиш? Кога се заинтересувахте от блокчейн технологията?

Аз съм разработчик в областта на информационната сигурност. Дойдох в блокчейн с шума от 2017 г., разбрах технологията и останах за технологията.

Каква беше основната мотивация за участие в играта?

На първо място, технически интерес. Исках да разбера как работи, да намеря уязвимости, да не оставя играта да свърши и да „тролвам“ другите играчи, разбира се.

Решихте ли вече как ще похарчите печалбите си? Как ще го съхранявате, ако все още решите да не го харчите?

Не можех да разбера какво да правя с печалбите. Не го очаквах, така че нямам планове. Засега ще си остане така. Може би ще се влее в някой проект на Waves.

Защо решихте да участвате в играта с бот? Как се роди идеята за Patrollo? Бихте ли разказали повече за развитието му?

Не се получи с уязвимостите. Взех играта в тестовата мрежа, играх със себе си, изпробвах всички опции, но всичко се оказа „свързано“, нямаше уязвимости в договора. Стана ясно, че по този начин няма как да се спечели.

Как търсихте уязвимости? Какви бяха вашите хипотези? Бихте ли предоставили примерен код?

Имаше две хипотези. Първо, атака срещу проверки на типове данни в записите за транзакции с данни. Например, очаквах, че лошото кодиране ще заобиколи проверката за повторно използване на идентификатора на транзакция. Втората е атака с целочислено препълване. Реших, че има начин да задам височината твърде висока или отрицателна и да се опитам да свърша в миналото.

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

Какво направихте, когато видяхте, че очакванията ви за уязвимост не са изпълнени?

В своя телеграм чат Tradisys се оплака, че докато всичко е тихо в мрежата, играта ще бъде вечна, но в объркване (с актуализации на възли или неочаквани разклонения), шансовете за добри ботове се увеличават. Там, в чата, приех предизвикателството да напиша добър бот, което направих няколко дни по-късно. Написах кода Patrollo на PHP, базиран на моята рамка WavesKit, в който се опитвам да уловя всички най-добри техники за работа с блокчейн.

Тествах го в тестовата мрежа, публикувах кода в github, стартирах бота в основната мрежа и забравих за него.

Моята конфигурация Patrollo трябваше да реши два проблема: да правя залози възможно най-рядко и да работи възможно най-надеждно.

Първият се решава чрез изключително рискови залози, за предпочитане в последния блок. В крайна сметка все пак поставих бота на предпоследния блок, но с допълнително забавяне от 29 секунди. Това позволи да се направят само осем залога по време на цялата игра.

Защо точно 29 секунди? Как стигнахте до това число?

Постепенно се появиха 29 секунди. Отначало нямаше забавяне, но забелязах, че на предпоследния блок имаше случаи на едновременни залози - тоест нямаше смисъл да се залага. След това имаше забавяне - мисля, че беше 17 секунди, но и това не помогна: все още имаше едновременни залози. Тогава реших да рискувам повече, но със сигурност да не правя едновременни залози. Защо 17, 29 и т.н.? Просто любов към простите числа. 24, 25, 26, 27, 28, 30 - всички съединения. А повече от 30 секунди би било напълно рисковано.

Как беше решен проблемът с надеждността?

Надеждността беше разгледана главно чрез механизма за избор на работещ възел и, в по-малка степен, чрез извършване на трансферна транзакция за залога предварително, така че залогът в транзакцията с дата вече точно да препраща към съществуваща транзакция в блокчейна.

По време на всеки кръг от цикъла всички възли, посочени в конфигурацията, бяха анкетирани за тяхната текуща височина, възелът с най-висока текуща височина беше избран и с него се осъществи по-нататъшно взаимодействие. Според моето разбиране това трябваше да предпазва от разклонения, недостъпност, кеширане и възможни грешки на възлите. Има увереност, че именно този прост механизъм е довел до победата.

Кои според вас са основните характеристики и предимства на блокчейн игрите? Колко обещаващи са публичните блокчейни като цяло и блокчейнът Waves в частност за разработка на игри?

Основните предимства са известните, фиксирани и непроменливи правила на играта, плюс равни условия за достъп до играта от всяка точка на света.

Игрите с пари извън веригата трябва да умрат.

Waves има богата техническа функционалност, но има нюанси, както присъщи на всеки блокчейн, така и специфични. И двете все още не са много добре отразени в съществуващите инструменти за разработчици.

Например, ако се опитате да отговорите на транзакции в реално време, а не на разстояние от 5-10 потвърждения, ще научите за редки, но възникващи явления: транзакции, прескачащи от блок на блок, транзакции, липсващи в някои блокове и появяващи се в други . Всичко това е от решаващо значение за скоростта и надеждността на всяко приложение и трябва да бъде разрешено по общ начин, но засега всеки разработчик постига нивото на надеждност, от което се нуждае, сам. С течение на времето, разбира се, всичко това ще бъде решено, но засега има известна, доста висока бариера за навлизане и страх от спецификата на работата на наистина децентрализираните блокчейни като цяло.

Как играта FOMO е различна от другите блокчейн игри, които познавате? Какви са неговите предимства и недостатъци?

Това са дълги игри. Интересът към такива игри нараства с размера на печалбите, а сумата на печалбите нараства с времето.

В идеалния случай играта никога няма да свърши. Когато играта свърши е тъжно...

Наскоро бях стартира игра Fhloston Paradise 2. Планирате ли да участвате в него?

Да, ако имам време и интерес, ще предприема същите стъпки: анализ на уязвимостта, игра със себе си в тестова мрежа, бот, отворен код и т.н.

И накрая, моля, разкажете ни за вашите планове като разработчик.

Интересувам се от решаването на нерешени проблеми, а в темата за блокчейн има много нерешени проблеми. Това е истинско предизвикателство! И той беше приет.

Източник: www.habr.com

Добавяне на нов коментар