Problém: Náhodnost není náhoda
Na blockchainu se často setkáváme s tvrzením, že „náhodnost” je zaručená. Špatně. Bez prověřeného generátoru může být každý výsledek manipulován. Zde vstupuje Chainlink VRF – kryptografický strážce spravedlnosti, který slibuje pravou, nezpochybnitelnou náhodu.
Jak VRF funguje pod kapotou
Chainlink VRF (Verifiable Random Function) generuje seed, pak ho šifruje privátním klíčem a poskytuje veřejný proof. Ten lze ověřit přímo na chainu, bez důvěry v orákulum. Výsledek je deterministický, ale zároveň nepředvídatelný – to je podstata „provably fair”.
Klíčové komponenty
Seed – vstup od uživatele nebo kontraktu.Proof – kryptografický důkaz, že seed byl zpracován správně.Result – finální náhodné číslo, použitelné v loteriích, herních mechanikách či sázkových protokolech.
Audit kontraktu: Co zkontrolovat
Zapomeňte na „přečtěte si dokumentaci”. Musíte rozebrat, jestli kontrakt skutečně využívá VRF a ne nějakou napodobeninu. Zkontrolujte: volání requestRandomness, správné ukládání requestId, a hlavně, že výsledek z VRF je používán v logice, nikoli jen dočasně uloženo a zapomenuto.
Bezpečnostní pasti
Reentrancy – pokud výsledek VRF spustí další volání, může útočník vstoupit do smyčky.Front-running – pokud útočník může předvídat requestId, může manipulovat s podmínkami.Timeouty – nevyužitý request může zůstat viset a blokovat další generování.
Příklady z praxe
Projekt X použil VRF pro rozdělení tokenů, ale zapomněl kontrolovat, že se výsledek použije pouze jednou. Útočník získal dvojnásobek odměny. Projekt Y auditoval kód, přidal modifier „onlyVRFResponse” a problém zmizel.
Jak provést vlastní audit
1. Najděte funkci requestRandomness a sledujte, kde se vrací requestId.2. Vraťte se k funkci fulfillRandomness – to je místo, kde se generuje výsledek.3. Zajistěte, že výsledek je jednorázově použit a že žádná další logika není spouštěna před ověřením proof.
2. Ověřte, že kontrakt má nastavený správný LINK token balance – bez něj VRF nefunguje.3. Přidejte testy, které simulují selhání VRF a sledují, že kontrakt nezůstane v neplatném stavu.
Chainlink VRF a audit kontraktu
Pokud chcete mít jistotu, že váš projekt nebude padnout pod váhou manipulace, nechte si zkontrolovat VRF integraci odborníky. Nechte si napsat zprávu, která jasně ukáže, kde jsou slabiny, a jak je opravit. A tady je tip: Chainlink VRF a audit kontraktu vám otevře oči.
Actionable advice
Stop relying on vague promises – embed VRF proof checks, lock result usage, and run a full reentrancy audit before deployment. That’s it.