Tyrimai tvirtina, kad EOS tinklas gali užšalti, „Block.one“ paneigia klaidas

Per pastarąsias kelias savaites „EOS blockchain“ protokolo vartotojai periodiškai susiduria su prieiga prie tinklo. Neseniai straipsnis parašė slapyvardis „smart-contract“ kūrėjas ir saugumo inžinierius Dexaranas apibūdino akivaizdžią problemos šaknį: nebrangi technika, leidžianti įsilaužėliams „perkrauti“ tinklą – arba perkelti jį į mažo efektyvumo režimą – su vos kelių dolerių vertės EOS.

Atrodo, kad šis išnaudojimas leido įsilaužėliui anksčiau rugsėjo mėnesį pavogti daugiau nei 110 000 USD kriptovaliuta iš „EOS“ lošimų programos „EOSPlay“. Tačiau EOS patronuojančios įmonės „Block.one“ vadovai, nėra nusižengę, teigdamas, kad tinklas veikia „teisingai“.

EOS pagrindai: Valdymas, statymas ir perkrovos režimas

EOS.io yra „blockchain“ valdomas išmaniųjų sutarčių protokolas, skirtas kurti ir talpinti decentralizuotas programas (DApps). Joje naudojamas konsensuso modelis, vadinamas deleguotu akcijų paketo įrodymu (DPoS) ir valdomas pagal EOS vartotojo sutartį (EUA).

Pagal susitarimą tinklo pakeitimai gali būti atliekami, kai sutaria bent 15 iš 21 „Block Producers“ gamintojo, t. Y. Nepriklausomų subjektų, atsakingų už blokų apdorojimą „EOS blockchain“..

Protokolą palaiko jo pavadinta vietinė kriptovaliuta, kuri šiuo metu yra septinta pagal dydį pagal bendrą rinkos kapitalizaciją. Šie ženklai yra integruoto išteklių kaupimo mechanizmo esmė, vienas iš išskirtinių EOS bruožų. Kai operacija pateikiama EOS tinklui, „Block Producers“ turi ją apdoroti.

Laiko trukmė (matuojama mikrosekundėmis), kurios blokiniam gamintojui reikia operacijai patvirtinti, vadinama procesoriumi. Paprasčiau tariant, EOS vartotojai ir kūrėjai gali gauti prieigą prie grandinės procesoriaus ir pralaidumo išteklių, sukurdami savo žetonus. Blokai gaminami kas 500 milisekundžių. Kiekvienas bloko gamintojas turi 200 milisekundžių, kad patvirtintų bloką. Likusios 300 milisekundžių lieka paskirstymui per tinklą.

Pažymėtina, kad neviršijant 200 milisekundžių ribos, taip pat yra procentinė riba, nuo kurios greičio ribojimas prasideda visame tinkle. Kitaip tariant, kai blokas pasiekia 10% viso 200 milisekundžių vienam blokui leidžiamo procesoriaus ribą, jis sukelia procesoriaus paskirstymo algoritmas pereis į „perkrovos“ režimą.

„Prieš pasiekiant šią ribą, visi vartotojai gali laisvai atlikti operacijas tinkle, nes jis nėra„ perkrovos “režime“, – straipsnio autorius paaiškino. „Kai ši riba bus peržengta, vartotojai bus sugrąžinti į savo proporcingą dalį viso procesoriaus, tenkančio EOS, paskirstymui.“

Kaip nurodyta kitas straipsnis parašė „EOS Canada“, pagrindinis „EOS blockchain“ tinklo blokų gamintojas, jei tam tikru momentu procesoriui būtų skirta 1000 žetonų ir vienoje paskyroje būtų 20 žetonų, tada šiai sąskaitai būtų garantuota 2% viso procesoriaus tinklo pajėgumas.

Tačiau, jei tinklas nepasiekė ribos, kai yra įjungtas greičio ribojimas (ne „perkrovos“ režimu), tai leidžia tai paskyrai perkelti operacijas viršijant garantuotą 2% sumą. Kai ši riba bus peržengta, sąskaita negali viršyti paskirstymo. Be to, per "grūstis" fazėje kiekvieno vartotojo procesoriaus kiekis pradeda mažėti, kol kiekviena perkrovos šalis baigsis procesoriumi ir nustos atlikti procesoriaus reikalaujančius veiksmus.

Danielis Larimeris, EOS įkūrėjas ir „Block.one“ vyriausiasis technologijų vadovas, nurodo naudoti šį mechanizmą kaip „nemokamą tinklo naudą“:

„Nuosavybė ir„ #eos “statymas suteikia vartotojams proporcingą turimo pralaidumo dalį. Kai žmonės nenaudoja savo dalies, ji proporcingai nukreipiama kitiems. Esant intensyviam naudojimui vartotojai nebegauna šios nemokamos naudos “

Problema: perkrovos režimą suaktyvinti yra per lengva

Dexaranas teigė, kad problema yra ta, kad perkrovos režimas yra per lengvai įjungiamas. Atlikęs analizę, išmaniųjų sutarčių kūrėjas kiekvienos valandos pradžioje pastebėjo didelius procesoriaus naudojimo šuolius, kuriuos tariamai sukėlė lažybos „DApp“ pavadinimu „EOSBetDice“. Tada Dexaranas nusprendė įvertinti, kiek procesoriaus reikia, kad tinklas būtų perkrautas.

Eksperimentui kūrėjas įtraukė 7156 EOS procesoriui. Tokią EOS sumą galima pasiskolinti iš išteklių mainų už mažą dviejų EOS per mėnesį kainą (mažiau nei 6 USD), pabrėžė Dexaranas. Norėdami sužinoti, kaip testas paveiks vidutinius EOS tinklo vartotojus, saugos inžinierius iš anksto pasirinko tris atsitiktines vartotojų paskyras, kurios internete žaidė „EOSKnights DApp“ prieš pat sesijos pradžią..

Tada kūrėjas įvykdė sutartį, kuri sudarė daug atidėtų operacijų su vienos sekundės vėlavimu, kiekvienai operacijai sunaudojant „25–27 ms procesoriaus“. Monopolizavus procesoriaus naudojimą visą minutę, sutartis EOS tinklą perkėlė į perkrovos režimą. Todėl visos trys pavyzdinės sąskaitos buvo be procesoriaus ir todėl „visiškai užšaldytos“ – iš esmės tai reiškia, kad visi atsitiktiniai „EOS“ vartotojai tuo metu negalėjo bendrauti su jokiais DApps tinkle..

Praėjus dviem minutėms, minėtas „EOSBetDice DApp“, kuris kas valandą sukėlė reguliarius procesoriaus šuolius, nepriklausomai nuo eksperimento, pradėjo veikti pagal grafiką. Suvartodamas dar daugiau procesoriaus iš tinklo tuo metu, kai jis jau buvo perkrautas, jis nevalingai prisidėjo prie „Dexaran“ inicijuotų spūsčių. “Kuo daugiau procesoriaus suvartosite iš eilės, tuo” gilesnis “bus perkrovos režimas, ir ilgiau užtruks, kol tinklas atkurs įprastą režimą”, – pažymėjo kūrėjas..

Todėl EOS tinklas pateko į dar „gilesnę“ spūstį, ir pranešama, kad procesorių prieinamumas visiems EOS vartotojams sumažėjo 35 kartus. „Nesvarbu, kiek EOS skyrėte procesoriui – jei sunaudojote daugiau nei 3%, būsite užšaldytas“, – pastebėjo Dexaranas..

Po to, kai Dexarano sutartis ir „EOSBetDice“ pabrėžė tinklą iš viso penkias minutes, neva kitas 10 minučių jis liko paralyžiuotas. Praėjus dar šešioms minutėms, jis iš esmės atsigavo, tačiau EOS skolinimo kaina biržose vis dar buvo maždaug tris kartus didesnė nei įprasta, o tai rodo, kad dėl streso testo tinklui tuo metu buvo reikalingi dideli procesoriuje paskirstytų žetonų kiekiai..

Tinklas visiškai atkurtas praėjus tik 30 minučių po paskutinio "kenkėjiškas" veiksmas. Tai suteikia vartotojams „25 minučių langą iki kito perkrovos seanso“, pažymėjo Dexaranas, nes ataką galima atlikti kas valandą, atsižvelgiant į kūrėjo vertinimus. „Pakanka 7000 EOS, kad tinkamam laikui EOS tinklas būtų perkeltas į perkrovos režimą“, – apibendrino tyrėjas ir pridūrė:

„Aprašyta perkrovos sesija sukels problemų tik (1) vartotojams, kurie išleido tam tikrą dalį savo procesoriaus pralaidumo, (2) vartotojams, kurie įtraukė labai mažą procesoriaus pralaidumą. Aprašyta perkrovos sesija neturi įtakos (1) DApps, kuriuose yra daug procesoriaus, 2) vartotojams, kurie nevykdo jokios veiklos ir jų procesorius yra visiškai prieinamas (darant prielaidą, kad šie vartotojai turi pakankamai procesoriaus, kad galėtų sukurti vieną tx ). “

Be to, Dexaranas pabrėžė, kad nors kai kurie EOS vartotojai galėtų jį vadinti a "įsilaužėlis" dėl tyčinio tinklo perkrovimo: „Aš darau visiškai priešingai: saugau savo ir jūsų investicijas“.

Pažymėtina, kad likus kelioms dienoms iki Dexarano įrašo apie EOS perkrovą paskelbimo, kūrėjas Christophas Michelis parašė tinklaraščio įrašą susiejant naujausią „EOSPlay“ kazino įsilaužimą su tinklo perkrovomis, taip parodant, kaip tinklo problema gali būti naudojama siekiant pelno.

Pasak Michelio, užpuolikas išsinuomojo EOS žetonus iš REX, centrinių procesorių ir NET išteklių nuomos rinkos, o po to sukrovė juos, kad padidintų tiek savo, tiek „EOSPlay“ procesorių, kad kazino veiktų tinkamai – todėl ir toliau galės sumokėti savo statymus. Tada įsilaužėlis šlamštavo tinklą operacijomis, panašiomis į „Dexaran“, ir žaidė keletą kauliukų žaidimų „EOSPlay“, lažindamasis dėl 50/50 rezultatų. Atsižvelgiant į tai, kad „EOSPlay“ žiūri į bloko maišos rezultatą ir ima pirmuosius du simbolius – pradedant nuo dešinės ir tarp nulio ir devynių – kauliukams riedant, norint laimėti žaidimą, reikia numatyti rezultato bloko blokinę maišos versiją..

“Vieninteliai nežinomi prognozėje yra sandoriai, įtraukti į blokus”, – paaiškino Michelis. “Bet kas, jei kas nors galėtų tiesiog šlamšti ir perpildyti tinklą, kad niekas kitas negalėtų siųsti operacijų?”

Kūrėjo teigimu, būtent todėl užpuolikas pasiskolino EOS šlamštui tinkle: kad galėtų kontroliuoti tinklą ir todėl galėtų numatyti blokų maišos ir laimėti daugumą savo statymų. Neteisingai prognozavus, užpuolikas galėjo nusiųsti dar vieną atsitiktinę operaciją į bloką ir taip turėti papildomą „monetos apvertimą“, žymiai pagerindamas šansus..

Galų gale įsilaužėlis panaudojo tik 300 EOS, kurių vertė šiek tiek viršijo 1000 USD, kuriuos jis galėjo išsinuomoti už porą dolerių. Mainais už fiksuotą laimėjimą gausu daugiau nei 30 000 EOS arba maždaug 110 000 USD.

EOS kūrėjai užtikrina, kad tinklas „tinkamai veiktų“, ne visi sutinka

„Dexaran“ perkrovos eksperimentai neliko nepastebėti, nes daugelis vartotojų pranešė apie „procesoriaus problemas“ „Twitter“ ir Reddit. Išmaniųjų sutarčių kūrėjų komandos „Graphene Lab“ generalinis direktorius Denisas Bredikhinas „Cointelegraph“ patvirtino, kad per pastarąsias savaites jo pokerio pagrindu veikiančių „EOS“ lažybų „DApp“ vartotojai taip pat patyrė problemų, nors pati programa nebuvo pažeista. Bredichinas sakė:

„Šlamšto piko metu žaidėjai, net turėdami 8–10 tūkst. EOS, paskirstytų procesoriui, negalėjo atlikti jokių operacijų.“

Pasak jo, nuo spalio 1 dienos žaidėjai turi skirti „iki 10 000 EOS“ procesoriuje, kad žaidimas jiems nesustotų per šlamšto sesijas. Tuo tarpu „Block.one“ narys Larimeris patraukė į „Twitter“, kad įtikintų bendruomenę, jog EOS „veikia tinkamai“. Jis parašė:

„Tai nesiskiria nuo tada, kai užpuolikai užplūsta etą ar bitkoiną su dideliu mokesčiu už sandorių šlamštą. Žetonų turėtojams tinklas neužšaldė, tiesiog nebuvo jokio papildomo pralaidumo, kurį būtų galima naudoti nemokamai. “

Kai kurie bendruomenės nariai vis dėlto skiriasi. „Skirtumas tarp šios atakos prieš EOS ir didelio mokesčio šlamšto BTC ar ETH yra tas, kad vis tiek galite mokėti daugiau, jei norite siųsti operaciją BTC ar ETH“, ginčijosi Robas Finchas, JAV įsikūrusio „EOS Block Producer CypherGlass“ generalinis direktorius. Jis pridėjo:

„Daugelis„ EOS “vartotojų neturėjo pakankamai procesoriaus, kad išsinuomotų daugiau procesoriaus, todėl jiems užšaldė. „Tvarkingai veikti“ nėra geriausias atsakas į TJO. “

Kitas EOS vartotojas, „blockchain“ verslininkas Jaredas Moore’as, patvirtino kad tinklas buvo netinkamas naudoti „DApps“ ar jo piniginei. Jis taip pat domėjosi, ar „Block.one“ „padės EOS bendruomenei paskelbti gaires, kaip užkirsti kelią REX atakoms“.

„Cointelegraph“ kreipėsi į „Block.one“, kad gautų daugiau komentarų, ir atnaujins straipsnį, kai bus gauta daugiau informacijos.