Üldised atribuutide testid ERC4626 varahoidlate PlatoBlockchain Data Intelligence jaoks. Vertikaalne otsing. Ai.

Üldised omaduste testid ERC4626 varahoidlate jaoks

Kuna DeFi kasvab ja küpseb, on skaleeritav infrastruktuur ja komponeeritavus arendajate jaoks esmatähtis. Ethereum Requests for Comments (või ERC-d) – standardiseeritud tööriistakomplektid Ethereumil põhinevate rakenduste loomiseks, näiteks laialdaselt kasutatav märgistandard ERC20 — täitma olulist rolli, andes arendajatele järjepidevaid suuniseid ökosüsteemi panustamiseks ilma nullist alustamata. Varem sel aastal, tokeniseeritud varahoidla standard ERC4626 loodi, et soodustada tootlust kandvate žetoonide ristühilduvust. Rakenduste üksikasjade standardimine võib lahendada ka pakilisi komponeerimisprobleeme, muutes protokollide integreerimise lihtsamaks ja lõpuks vähem veaohtlikuks.

Mitmed DeFi projektid on juba olemas vastu standardit, mille eesmärk on suurendada nende võlvide komponeeritavust, ja me eeldame laiemat kasutuselevõttu kogu ökosüsteemis. Olemasolevate võlvide kohandamine põhjustab siiski mõningaid kasvuvalusid; kriitiliselt võivad teatud teostusvead paljastada uued rünnakuobjektid. Isegi väikesed vead (nii väikesed kui standardse liidese valesti tõlgendamine) võivad avaldada märkimisväärset mõju nii turvalisusele kui ka kasutajakogemusele, rõhutades vajadust rohkemate turvatööriistade ja -meetmete järele, eriti paremini komponeeritavas DeFi ökosüsteemis. 

Õnneks võivad lihtsatel vigadel olla suhteliselt lihtsad lahendused, kui need tuvastatakse enne nende ärakasutamist (ja ideaaljuhul enne nende kasutuselevõttu). Selleks vabastasime ERC4626 omaduste testid häguseks ja sümboolseks täitmiseks, et aidata varahoidlate koostajatel tuvastada standardseid rikkumisi, mis võivad integratsiooni katkestada või viia haavatavuseni. Selles postituses selgitame motiveerivat probleemi, vaatame läbi oma lähenemisviisi ja lõpetame mõne praktilise nõuandega.

Kõigepealt natuke tausta ERC4626 standardist

Valmis märtsis, ERC4626 on sümboolsete varahoidlate standard. See võeti kasutusele, et laiendada laialdaselt kasutatavat ERC20 standard (praegu sadade žetoonide alus), julgustada standardimist tootlust kandvate võlvide vahel ning tagada nendega suhtlemiseks vajalike rakenduste ja protokollide (nt tulude koondajad) koostatavus. See tähendab, et mis tahes ERC4626 varale ehitatud rakendust saab hõlpsasti laiendada, et see töötaks mis tahes muu ERC4626 varaga. 

Tokeniseeritud varahoidlad võimaldavad kasutajatel varasid vabalt hoiustada varahoidla aktsiate vermimiseks ja hiljem need aktsiad lunastada, et võtta varahoidla põhiosa ja intressid välja. Need varahoidla aktsiad on ERC20 märgid ja seega saab nendega hõlpsasti kaubelda või kasutada tagatisena muude varade laenamiseks. Näiteks saavad kasutajad hoiustada oma varasid Yearni varahoidlatesse, et vermida yVaulti žetoone, mida saab seejärel Uniswapis kaubelda, panustada lisatulu saamiseks või kasutada laenuprotokollide tagatisena.

Tootluse genereerimise ja jaotamise (ja aktsiahinna määramise) äriloogika võib rakenduste lõikes erineda. Et katta võimalikult palju varahoidlaid (eesmärgiga muuta need koostalitlusvõimeliseks vs identseks), keskendub standard ERC4626 kasutajaliidese kirjeldamisele, jättes suurema osa juurutamise üksikasjadest täpsustamata. See võimaldab äriloogikas varieeruda seni, kuni varahoidla vastab liidese erinõuetele ja julgustab koostalitlusvõime paljude erinevate rakenduste ja tüüpi ERC4626 varahoidlate vahel.

Kuna rohkem varahoidlaid luuakse, eeldame, et neid rakendatakse algusest peale standardi ERC4626 järgi; kuid me oleme praegu mõnevõrra üleminekufaasis, kus arendajad, kes soovivad kasutada suuremat koostatavust, peavad värskendama olemasolevaid varahoidlaid, rakendusi ja protokolle, et need vastaksid standardile. Täiendamisel seisavad nad silmitsi mitme keerukuse ja väljakutsetega. 

Standardile vastavuse väljakutsed (ja mittevastavuse lõksud)

Uue standardi järgimine ei ole alati lihtne. Iga ERC4626 varahoidla peab täpselt (ja täpselt) rakendama kirjeldatud standardi nõudeid. Vastasel juhul muutub ERC4626 varahoidlate integreerimine erinevate variatsioonide arvessevõtmiseks üha keerulisemaks. See keerukus muudab integratsioonid oma olemuselt veaohtlikuks; ja kuna need ei ole piisavalt tulevikukindlad, võivad need aja jooksul põhjustada turvaauke.

Mittestandardsed ERC20 märgid (nt Tether USD) nõuavad, et paljud DeFi süsteemid kasutaksid žetoonide ülekandmisel täiendavat teeki (nt SafeERC20), et ohutult toime tulla lahkneva käitumisega (nt tagastamise asemel ei tagastata midagi, kui ülekanne õnnestub true). See tähendab, et kõik süsteemid, mis nende märkidega suhtlevad, võivad muutuda haavatavaks, kui süsteem ei ole loodud "puuduvate tagastamiste" juhtumite nõuetekohaseks käsitlemiseks. Need stsenaariumid võivad potentsiaalselt tekitada ühise turbelõksu ning suurendada üldisi arendus- ja hoolduskulusid (kui võtta arvesse probleemide leevendamiseks vajalikku täiendavat loogikat ja sõltuvusi). Standardile vastamine on seetõttu kriitilise tähtsusega mitte ainult üksikute rakenduste, vaid ka kogu ökosüsteemi turvalisuse jaoks. Üks haavatavus ühes süsteemis või sõltuvuses võib põhjustada ulatuslikke probleeme.

Ideaalis oleks standardid ametlikult määratletud ilma kahemõttelisuseta (nt ERC20 ametlik spetsifikatsioon) ja iga rakendust saab ametlikult kontrollida standardsete spetsifikatsioonide järgi. Praktikas ei ole seda aga kogukonnalt nõutavate kulude ja jõupingutuste tõttu lihtne lühikese aja jooksul saavutada.

Tutvustame käivitatava ERC4626 atribuute, et tuvastada vastavusprobleeme 

Kuna töötame ideaalse oleku poole (iga varahoidla on ametlikult kinnitatud rangete formaalsete spetsifikatsioonide alusel), oleme koostanud standardi ERC4626 omadused et tuvastada lahknevusi standardnõuete peentes ja kergesti tähelepanuta jäetud üksikasjades.  

Vaulti arendajad saavad testid käivitada, et tuvastada enne juurutamist võimalikud standardi rikkumised nende juurutamisel. Ja varade integraatorid saavad enne nende süsteemi integreerimist kontrollida, kas antud varahoidlad vastavad standardile. Atribuute saab testida ka põhivõrgus juba juurutatud elavate võlvide suhtes, kasutades põhivõrgu kahvli testimist. Reaalajas varahoidlate testimine võib olla kasulik, eriti kui varahoidlad on hiljuti kasutusele võetud või uuendatud, et tagada kõigi süsteemiparameetrite õige seadistamine. 

Valisime atribuudid käivitatavaks (ja seega testitavaks) omadustepõhised testid – mis on kirjutatud Foundrys ja valmis selle fuzzeri poolt käitamiseks. Tulevikus võidakse neid käivitada ka sümboolse täitmise või mudeli kontrollimise tööriistade abil, et ametlikult kontrollida, kas antud varahoidla vastab kõigi võimalike sisendite ja tingimuste omadustele.

Kirjutasime atribuudid nii, et need oleksid piisavalt üldised, et neid saaks rakendada paljudele varadele, mis rakendavad erinevat äriloogikat. Kasutasime ainult avaliku liidese funktsioone, et muuta need juurutamise üksikasjade suhtes agnostiliseks. (Selle piirangu tõttu jäeti aga atribuutidest välja teatud standardnõuded, mis viitavad juurutuspõhistele siseandmetele.)

Näiteks järgmine omadus vastab ühele nõuetest convertToShares() funktsioon, "EI TOHI näidata helistajast olenevaid variatsioone.” Arvestades kahte konto aadressi ja summat, paneb see iga konto helistama convertToShares() sama summaga ja tagab, et kaks tagastusväärtust on võrdsed. See omadus ei sõltu rakenduse üksikasjadest convertToShares(), mis on võlvide lõikes erinev ja mida peavad rahuldama kõik võlvid, mis rakendavad ERC4626. Seda omadust saab käivitada, pakkudes konkreetseid sisendväärtusi (ühiku testimiseks), palju juhuslikke sisendeid (fuzz-testimiseks) või sümboolseid väärtusi (sümboolseks täitmiseks ja formaalseks kontrollimiseks). Seda saab käivitada ka kohapeal või võrgu hargi vastu (integratsiooni testimiseks).

Kasutusjuhtum: omadused, mis testivad ümardamisvigu

Näiteks ümardamisvead on oluline (näiliselt väiksemate) vigade klass, millel võib olla mõningaid seeriamõjusid. ERC4626 aluseks olev arvestusloogika, nt vermitavate aktsiate arvu või väljavõetavate varade arvu arvutamine, on realiseeritud fikseeritud punktiga aritmeetika abil – ümardamisvead on vältimatud. Sest turvalisusstandard määrab aga selgesõnaliselt iga liidese funktsiooni eelistatud ümardamissuuna, jättes samas veapiirid määratlemata ja rakendusest sõltuva. Täpsemalt, deposit() ja redeem() funktsioonid peaksid tagastama an all-täpse väärtuse lähendamine, samas kui mint() ja withdraw() funktsioonid peaksid tagastama an üle-lähendamine. Näiteks kui aktsia hetkehind (st varade arv aktsia kohta) on 2, siis deposit() 3 wei varaga tuleks vermida ainult kuni 1 wei aktsiaid (st floor(3/2)), kuigi withdraw() 3 wei varaga peaks põletama vähemalt 2 wei aktsiat (st. ceil(3/2)).

Kirjutasime ümardamisega seotud atribuudid sõltumatuks aluseks olevast raamatupidamisloogikast, käsitledes seda musta kastina. Täpsemalt sõnastasime need nn edasi-tagasi omadustena, mis kirjeldavad suhet kahe vastandliku funktsiooni vahel. Näiteks järgmine omadus täpsustab, et N aktsia vermimisel äsja deponeeritud vara väljavõtmine peab põlema vähemalt N aktsiat. Teisisõnu, keegi ei saa teenida tasuta kasumit varade ja väärtpaberite aktsiate edasi-tagasi konverteerimisega, korduvalt vermides ja välja võttes.

väljavõte ERC4626 varatestidest

Tõepoolest, leidsime, et mitmed põhivõrgu ERC4626 hoidlad ei rahulda ülaltoodud omadust ümardamisvigade tõttu. See tähendab, et igaüks võib teenida näiteks paar satoshi BTC-d (kirjutamise ajal 1 satoshi ~= 0.02 senti) lihtsalt (ja korduvalt) vermides ja välja võttes, tühjendades varahoidlat aeglaselt. See võib tegelikult teenida kasumit kettidele, millel on väga madalad gaasitasud (nt Fantom) või kui varade hind muutub tulevikus piisavalt kõrgeks.

ERC4626 standardi testimine looduses

Testisime oma omadusi põhivõrgus ~100 ERC4626 võlviga ja leidsime palju varasid, mis ei vastanud standardnõuetele – peamiselt ümardamisvigade tõttu (nt põranda ümardamine seal, kus soovitakse lage, nagu me kirjeldasime). Täpsemalt, teatud varahoidlad ei suutnud vermida täpset aktsiate arvu, mida taotles mint() funktsiooni, kuigi standard selgesõnaliselt nõuab see. Mõned neist avaldasid ka ebajärjekindlat Deposit sündmus, mille puhul logitud andmed erinevad tegelikult vermitutest. Meie üllatuseks ei vermitud mõnda võlvi kunagi kohapeal üldse; Selle asemel panevad nad rahapaja taotlused lihtsalt järjekorda ja töötlevad neid hiljem partiina eraldi tehinguna.

Kuigi need erinevad käitumisviisid ei olnud iseenesest ära kasutatavad, võivad need muutuda haavatavaks, kui integreeritakse teistesse süsteemidesse, mis eeldavad ainult standardset käitumist. Need probleemid muudavad varahoidlate integreerimise palju raskemaks, potentsiaalselt neutraliseerides käimasolevad jõupingutused ja ajendades motivatsiooni standardimise taga.

Kasutame meie atribuutide teste ja muid toimivaid samme standardile vastavuse saavutamiseks

Standardi täpne järgimine võib ära hoida lahknevat käitumist (ideaaljuhul enne nende kasutuselevõttu). Loodame, et meie atribuudid koos mõne täiendava tegevusega aitavad. Neile, kes arendavad ja/või integreerivad ERC4626 varahoidlaid:

  • Soovitame tungivalt oma kinnisvara haldada testid vastu teie varahoidlaid. Nad leiavad kiiresti probleemid, kui on selgeid standardi rikkumisi.
  • Soovitame ka meie omadused et kontrollida oma arusaamist standardnõuetest ja kohandada rakendust, kui ilmneb tahtmatu lahknevus.
  • Kui teie varahoidla peab standardist erinema, soovitame mittestandardsed käitumised selgelt dokumenteerida, et teised saaksid teie varahoidlaga integreerimisel nende kõrvalekalletega korralikult toime tulla. Pange tähele, et seda tuleks käsitleda viimase abinõuna.

***
ERC4626 varahoidlad võivad lähitulevikus saada DeFi oluliseks ehitusplokiks – ja komponeeritavuse huvides on oluline, et nii uued kui ka olemasolevad varahoidlad järgiksid standardit. Uued rakendused ilmuvad pärast standardit, seega pole paremat aega kui praegune olemasolevate varahoidlate standardimiseks. 

Kuna töötame ideaalse oleku poole (kus erinevad varahoidlad on ühtlaselt komponeeritavad), saab käivitada ERC4626 atribuutide testid, et hõlpsamini tuvastada varade rakendustes esinevaid standardseid rikkumisi. Vara testid (koos dokumentatsiooni ja näidetega) on kõik meie Githubis avalikult saadaval Hoidla. Ootame teie tagasisidet ja panust!

***
Siin väljendatud seisukohad on tsiteeritud AH Capital Management, LLC (“a16z”) üksikute töötajate seisukohad, mitte a16z ega tema sidusettevõtete seisukohad. Teatud siin sisalduv teave on saadud kolmandate osapoolte allikatest, sealhulgas a16z hallatavate fondide portfelliettevõtetelt. Kuigi a16z on võetud usaldusväärseteks peetud allikatest, ei ole a16z sellist teavet sõltumatult kontrollinud ega kinnita teabe praegust või püsivat täpsust ega selle sobivust antud olukorras. Lisaks võib see sisu sisaldada kolmandate isikute reklaame; aXNUMXz ei ole selliseid reklaame üle vaadanud ega toeta neis sisalduvat reklaamisisu.

See sisu on esitatud ainult informatiivsel eesmärgil ja sellele ei tohiks tugineda kui juriidilisele, äri-, investeerimis- ega maksunõustamisele. Nendes küsimustes peaksite konsulteerima oma nõustajatega. Viited mis tahes väärtpaberitele või digitaalsetele varadele on illustratiivse tähendusega ega kujuta endast investeerimissoovitust ega investeerimisnõustamisteenuste pakkumist. Lisaks ei ole see sisu suunatud ega mõeldud kasutamiseks ühelegi investorile ega potentsiaalsetele investoritele ning sellele ei tohi mingil juhul tugineda, kui tehakse otsus investeerida a16z hallatavasse fondi. (A16z fondi investeerimise pakkumine tehakse ainult sellise fondi erainvesteeringute memorandumi, märkimislepingu ja muu asjakohase dokumentatsiooni alusel ning neid tuleks lugeda tervikuna.) Kõik mainitud, viidatud investeeringud või portfelliettevõtted või kirjeldatud ei esinda kõiki a16z hallatavatesse sõidukitesse tehtud investeeringuid ning ei saa olla kindlust, et investeeringud on tulusad või et teised tulevikus tehtavad investeeringud on sarnaste omaduste või tulemustega. Andreessen Horowitzi hallatavate fondide tehtud investeeringute loend (v.a investeeringud, mille kohta emitent ei ole andnud A16z-le luba avalikustada, samuti etteteatamata investeeringud avalikult kaubeldavatesse digitaalvaradesse) on saadaval aadressil https://a16z.com/investments /.

Siin esitatud diagrammid ja graafikud on üksnes informatiivsel eesmärgil ja neile ei tohiks investeerimisotsuse tegemisel tugineda. Varasemad tulemused ei näita tulevasi tulemusi. Sisu räägib ainult märgitud kuupäeva seisuga. Kõik nendes materjalides väljendatud prognoosid, hinnangud, prognoosid, eesmärgid, väljavaated ja/või arvamused võivad muutuda ilma ette teatamata ja võivad erineda või olla vastuolus teiste väljendatud arvamustega. Olulist lisateavet leiate aadressilt https://a16z.com/disclosures

Ajatempel:

Veel alates Andreessen Horowitz