Как можно проверить реализацию токена ERC20?

Стандарт токенов ERC20 хорош тем, что он позволяет кошелькам, биржам и клиентским реализациям предоставлять пользователям возможность взаимодействовать с различными токенами обычным способом. Но как один из этих клиентов может проверить, что базовая реализация маркера за интерфейсом действительно соответствует ожиданиям, определенным стандартом?

Например, любой контракт, который реализует интерфейс ERC20, может реализовать transfer(address to, uint256 value)функцию, которая просто игнорирует toпараметр и передает на жестко заданный адрес.

Я думаю, что одним из решений является проверка того, что байт-код контракта токена действительно соответствует эталонной реализации, и я полагаю, что именно это Consensys сделала со своим примером HumanStandardTokenFactory.sol . Это имеет большой смысл.

Но когда вы смотрите на примеры, которые хотят расширить функциональность токена, но при этом должны рассматриваться в соответствии со стандартом, например, Beercoin (который также великолепен) ... это единственный способ убедиться, что эта реализация соответствует стандарту. стандарт через социальную инспекцию и аудит? Выполняют ли поставщики кошельков, биржи и т. д. какой-либо другой тип доказуемой проверки перед предоставлением чего-либо «статуса токена» или просто отмечают, что они реализовали несколько функций интерфейса?

Ответы (2)

Я думаю, что в конечном итоге это должна быть человеческая проверка, если только она точно не соответствует существующему контракту, который уже был проверен людьми. Даже если все функции, которые должны быть в стандарте, есть и делают то, что должны, вы не можете быть уверены, что кто-то не сделал что-то неожиданное в другой части кода .

Вероятно, небезопасно полагаться на биржи, чтобы добавить данный токен для проверки кода контракта, хотя, безусловно, было бы хорошо иметь для этого какой-то процесс.

В вашем случае достаточно простого тестового контракта для отправки небольшого количества эфира или токенов, отправленных из функции передачи исходного контракта. Потом проверить баланс, куда его должны были отправить, все равно ноль? Это означает, что это мошенничество.