В контракте Tronix (большой ICO, перечисленный на многих биржах) лежит этот модификатор, который используется для всех передач токенов:
modifier validAddress {
assert(0x0 != msg.sender);
_;
}
Я понимаю, как контракт может писать напрямуюв регистр, что передача токена осуществляется с 0x0000000000000000000000000000000000000000, но в этом случае сообщение все еще привязано к существующему контракту или закрытому ключу.
Что это значит?Как msg.sender
может быть равно 0 в добытой транзакции?(исключая гипотетический случай, когда обнаружено столкновение хеша keccak256)
Полный код контракта Tronix можно найти здесь: https://etherscan.io/address/0xf230b790e05390fc8295f4d3f60332c93bed42e2#code