tradingview
0 2 8 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Reentrancy

⏱️ Czas czytania: 1 min

Definicja:

Reentrancy (podatność) to jeden z najstarszych i najgroźniejszych błędów w smart kontraktach. Polega na tym, że kontrakt pozwala na ponowne wywołanie tej samej funkcji, zanim poprzednie wywołanie się zakończy. Atakujący może w ten sposób wielokrotnie wypłacić środki, zanim kontrakt zaktualizuje swój stan.

Znaczenie:

Najgłośniejszym przykładem tego ataku był The DAO hack z 2016 roku, który doprowadził do utraty milionów dolarów i ostatecznie do hard forka Ethereum. Od tamtej pory reentrancy jest podstawowym przypadkiem testowym przy audytach smart kontraktów.

Ochrona:

Aby bronić się przed reentrancy, stosuje się wzorce programistyczne takie jak checks-effects-interactions, czyli najpierw sprawdzanie warunków, potem aktualizacja stanu, a dopiero na końcu wysyłanie środków. Coraz więcej języków i frameworków (np. Solidity z reentrancyGuard) wspiera programistów w unikaniu tego błędu.
Zobacz też: Smart contract, Exploit, Flash loan.