‘Spellen voor geld buiten de blockchain moeten sterven’

‘Spellen voor geld buiten de blockchain moeten sterven’

Dmitry Pichulin, bekend onder de bijnaam “deemru”, werd de winnaar van het spel Fhloston-paradijs, ontwikkeld door Tradisys op de Waves-blockchain.

Om binnen te winnen het spelmoest een speler de allerlaatste inzet plaatsen gedurende een periode van 60 blokken - voordat een andere speler een inzet deed, waardoor de teller op nul werd gezet. De winnaar ontving al het geld dat door andere spelers was ingezet.

De bot die hij creëerde bracht de overwinning naar Dmitry Patrouille. Dmitry plaatste slechts acht weddenschappen op één WAVES en won uiteindelijk 4700 GOLVEN (RUB 836300). In een interview sprak Dmitry over zijn bot en de vooruitzichten voor games op de blockchain.

Vertel ons een beetje over jezelf. Wat doe je? Wanneer raakte u geïnteresseerd in blockchain-technologie?

Ik ben een ontwikkelaar op het gebied van informatiebeveiliging. Ik kwam bij blockchain met de hype van 2017, begreep de technologie en bleef voor de technologie.

Wat was de belangrijkste motivatie om aan het spel deel te nemen?

Allereerst technische interesse. Ik wilde uitzoeken hoe het werkt, kwetsbaarheden vinden, het spel niet laten eindigen en natuurlijk de andere spelers 'trollen'.

Heeft u al besloten hoe u uw winst gaat besteden? Hoe bewaart u het als u besluit het nog niet uit te geven?

Ik wist niet wat ik met de winst moest doen. Ik had het niet verwacht, dus ik heb geen plannen. Voorlopig blijft het zoals het is. Misschien komt het terecht in een project op Waves.

Waarom besloot je om met een bot aan het spel deel te nemen? Hoe ontstond het idee voor Patrollo? Kunt u ons meer vertellen over de ontwikkeling ervan?

Met kwetsbaarheden lukte het niet. Ik pakte de game op het testnetwerk, speelde met mezelf, probeerde alle opties, maar alles bleek "hardwired", er waren geen kwetsbaarheden in het contract. Het werd duidelijk dat deze weg niet te winnen was.

Hoe heb je gezocht naar kwetsbaarheden? Wat waren jouw hypothesen? Kunt u een voorbeeldcode geven?

Er waren twee hypothesen. Ten eerste een aanval op gegevenstypecontroles in gegevenstransactierecords. Ik verwachtte bijvoorbeeld dat slechte codering de controle op hergebruik van transactie-ID's zou omzeilen. De tweede is een integer overflow-aanval. Ik dacht dat er een manier was om de hoogte te hoog of negatief in te stellen en te proberen in het verleden terecht te komen.

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

Wat deed u toen u zag dat niet aan uw kwetsbaarheidsverwachtingen werd voldaan?

In zijn telegramchat klaagde Tradisys dat, hoewel alles stil is op het netwerk, het spel eeuwig zal zijn, maar in verwarring (met knooppuntupdates of onverwachte forks) de kansen op goede bots toenemen. Daar, in de chat, ging ik de uitdaging aan om een ​​goede bot te schrijven, wat ik een paar dagen later deed. Ik schreef de Patrollo-code in PHP, gebaseerd op mijn raamwerk GolvenKit, waarin ik de beste technieken voor het werken met blockchain probeer vast te leggen.

Ik testte het op het testnetwerk, plaatste de code op github, lanceerde de bot op het hoofdnetwerk en vergat hem.

Mijn Patrollo-configuratie moest twee problemen oplossen: zo zelden mogelijk weddenschappen plaatsen en zo betrouwbaar mogelijk werken.

De eerste wordt beslist door extreem risicovolle weddenschappen, bij voorkeur in het allerlaatste blok. Uiteindelijk plaatste ik de bot toch op het voorlaatste blok, maar met een extra vertraging van 29 seconden. Hierdoor konden er tijdens het hele spel slechts acht weddenschappen worden geplaatst.

Waarom precies 29 seconden? Hoe ben je aan dit aantal gekomen?

29 seconden verschenen geleidelijk. In eerste instantie was er geen vertraging, maar ik merkte dat er in het voorlaatste blok gevallen waren van gelijktijdige weddenschappen - dat wil zeggen dat het geen zin had om in te zetten. Toen was er een vertraging - ik denk dat het 17 seconden was, maar het hielp ook niet: er waren nog steeds gelijktijdige weddenschappen. Toen besloot ik meer risico te nemen, maar zeker geen gelijktijdige weddenschappen te sluiten. Waarom 17, 29, enz.? Gewoon een voorliefde voor priemgetallen. 24, 25, 26, 27, 28, 30 - alle verbindingen. En meer dan 30 seconden zou volkomen riskant zijn.

Hoe werd het betrouwbaarheidsprobleem opgelost?

De betrouwbaarheid werd voornamelijk aangepakt door het mechanisme voor het selecteren van een werkend knooppunt en, in mindere mate, door vooraf een overdrachtstransactie voor de weddenschap uit te voeren, zodat de weddenschap in de datumtransactie al nauwkeurig zou verwijzen naar een bestaande transactie op de blockchain.

Tijdens elke ronde van de cyclus werden alle in de configuratie gespecificeerde knooppunten ondervraagd naar hun huidige hoogte, het knooppunt met de hoogste huidige hoogte werd geselecteerd en er vond verdere interactie daarmee plaats. Naar mijn mening moest dit bescherming bieden tegen forks, onbeschikbaarheid, caching en mogelijke fouten op de knooppunten. Er bestaat vertrouwen dat dit eenvoudige mechanisme tot de overwinning heeft geleid.

Wat zijn naar jouw mening de belangrijkste kenmerken en voordelen van blockchain-spellen? Hoe veelbelovend zijn publieke blockchains in het algemeen en de Waves-blockchain in het bijzonder voor game-ontwikkeling?

De belangrijkste voordelen zijn de bekende, vaste en onveranderlijke spelregels, plus gelijke voorwaarden voor toegang tot het spel waar ook ter wereld.

Geldspellen buiten de keten moeten sterven.

Waves heeft een rijke technische functionaliteit, maar er zijn nuances, zowel inherent aan elke blockchain als specifiek. Beide zijn nog niet zo goed terug te vinden in de bestaande ontwikkelaarstools.

Als u bijvoorbeeld in realtime op transacties zou proberen te reageren, en niet op een afstand van 5-10 bevestigingen, zou u zeldzame maar voorkomende verschijnselen leren kennen: transacties die van blok naar blok springen, transacties die in sommige blokken ontbreken en in andere verschijnen. . Dit alles is van cruciaal belang voor de snelheid en betrouwbaarheid van elke applicatie en moet op een algemene manier worden opgelost, maar voorlopig bereikt elke ontwikkelaar zelf het niveau van betrouwbaarheid dat hij nodig heeft. In de loop van de tijd zal dit alles natuurlijk worden opgelost, maar voorlopig is er een zekere, vrij hoge toegangsdrempel en angst voor de specifieke kenmerken van het werk van echt gedecentraliseerde blockchains in het algemeen.

Hoe verschilt het FOMO-spel van andere blockchain-spellen die je kent? Wat zijn de voor- en nadelen ervan?

Dit zijn lange spellen. De belangstelling voor dergelijke spellen groeit met de hoeveelheid winst, en de hoeveelheid winst groeit in de loop van de tijd.

Idealiter zal het spel nooit eindigen. Als het spel eindigt, is het triest...

Onlangs was ik dat gelanceerd spel Fhloston-paradijs 2. Bent u van plan hieraan deel te nemen?

Ja, als ik tijd en interesse heb, zal ik dezelfde stappen ondernemen: kwetsbaarheidsanalyse, met mezelf spelen op een testnetwerk, bot, open source, etc.

Vertel ons tot slot wat je plannen zijn als ontwikkelaar.

Ik ben geïnteresseerd in het oplossen van onopgeloste problemen, en er zijn veel onopgeloste problemen op het gebied van blockchain. Dit is een echte uitdaging! En hij werd aangenomen.

Bron: www.habr.com

Voeg een reactie