Okosszerződések olvasása
Programozói tudás nélkül is sok minden kiderül egy szerződésről – ki hozta létre, mit tud, és milyen jogai vannak a készítőjének.
Ha a nyomkövetés során egy okosszerződésbe ütközünk, nem kell feladnunk. A szerződések kódja nyilvános, és a blokkböngészők olyan felületet adnak hozzá, amelyen programozói tudás nélkül is sok hasznos információ kiolvasható.
A szerződés adatlapja
Egy szerződésfiók oldalán a blokkböngésző általában megmutatja:
- hogy szerződésről van szó (Contract), és ha ismert, a nevét;
- a létrehozó címet (Contract Creator) és a létrehozó tranzakciót – ebből kiderül, melyik EOA telepítette a szerződést, és mikor;
- a szerződés ether- és tokenegyenlegét;
- és egy külön „Contract” fület, amelyen a szerződés kódja olvasható – ha a készítő közzétette és a böngésző ellenőrizte (verified). A nem ellenőrzött, rejtett kódú szerződés önmagában is gyanús lehet.
Lekérdezés: a „Read Contract” fül
A szerződés kódjában lévő lekérdező funkciókat a böngészőben közvetlenül meg lehet hívni, díj és tárca nélkül. A funkciók neve többnyire beszédes, és a szabványos funkciók minden hasonló szerződésben megvannak. Egy ERC-20 token esetében például:
totalSupply– mennyi token létezik összesen;balanceOf– egy megadott cím egyenlege (ezt a böngésző is ebből számolja);owner– ki a szerződés tulajdonosa (ha a kód ismer ilyen szerepet).
A különleges, szerződésre jellemző funkciók még többet elárulnak. Ha egy token szerződésében találunk például isBlackListed (vagy hasonló) funkciót, azzal ellenőrizhető, hogy egy cím befagyasztott-e, és az is biztos, hogy a kibocsátó képes befagyasztani – vagyis érdemes vele felvenni a kapcsolatot.
Utasítás: a „Write Contract” fül
A módosító funkciók is látszanak egy külön fülön. Ezek használatához már egy csatlakoztatott tárca és díj kell, és a kód dönti el, ki hívhatja meg őket: vannak, amelyeket bárki, és vannak, amelyeket csak a szerződés tulajdonosa. Nyomozati szempontból akkor is érdemes végignézni őket, ha nem használjuk: megmutatják, milyen lehetőségei vannak a szerződés tulajdonosának. Egy stablecoinnál például láthatjuk, hogy a kibocsátó új tokent bocsáthat ki, feketelistára tehet címeket, és a befagyasztott címek tokenjeit megsemmisítheti – tehát elméletileg segíthet a károsultak kártalanításában.
Mikor kell szakértő?
Az egyszerű kérdésekre (ki hozta létre, mennyi a token, befagyasztható-e) a böngésző felülete választ ad. Bonyolultabb kérdésekben – például hogy egy szerződés tartalmaz-e rejtett csapdát, hogyan működött egy támadás, vagy pontosan mit csinált egy összetett tranzakció – szakértő bevonása szükséges, aki a kódot elemzi. Fontos tudni, hogy erre mindig van lehetőség: a kód nyilvános és megváltoztathatatlan, a szerződés minden múltbeli viselkedése rekonstruálható.
Megjegyzés: egy csaló token vagy egy feltört szerződés esetében a létrehozó cím az egyik legértékesebb nyom. A szerződés telepítéséhez díj kellett, ezért a létrehozó címre valahonnan ethernek kellett érkeznie – ezt visszakövetve gyakran egy tőzsdéhez, és így egy azonosítható személyhez jutunk. A tapasztalt elkövetők ezt keverővel próbálják elkerülni, de nem mindig sikerül nekik.
Ellenőrizd a tudásod
A kvíz betöltése…