- для проверки предоставления доступа к действию, на основе сравнения tx.origin с ранее сохранённым значением (например с адресом владельца контракта).
Допустим, юзер Юлий создал контракт "РогаКопыта", в котором сохранился owner = адрес Юлия, а в функции "отправитьВсёТуда(address)" есть такая проверка tx.origin == owner
Через неделю Юлий заходит на новый модный вебсайт "криптоёжики точка всё" и через веб-интерфейс вызывает у некоего контракта "Криптоёжики" функцию "погладьЁжика()".
А контракт "Криптоёжики" написан злодеем Зигфридом, читавшим контракт РогаКопыта, и в функции погладьЁжика() на самом деле идёт обращение к контракту РогаКопыта и вызов отправитьВсёТуда(адрес_Зигфрида).
tx.origin у нас кто? Юлий. Проверка проходит. отправитьВсёТуда(адрес_Зигфрида) проходит. ха-ха! =)
о, супер!!! понятное объяснение)))
#wiki
Обсуждают сегодня