Доходчиво, спасибо. Про функцию "списать чужие токены" это типа украсть?
Ну и допустим, что все хорошо и честно, и к тому же токен добавили на биржу и я хочу их продать/торговать. С контракта они переводятся на биржу? И при начислении на мой аккаунт на бирже, они по прежнему "находятся в контракте" или уже на счету биржи?
Да, в некоторых контрактах видел функцию "украсть".

Только называлась она заумно, вроде "AntiCheatTransfer" или "ProtectContract"

Дилетант смотрит на это и думает: "смотрите, какие молодцы, контракт защищённее делают!".
При "переводе" на биржу токены по прежнему находятся в контракте. В контракте есть структура данных ("номер кошелька 1" => "количество токенов", "номер кошелька 2" => "количество токенов", ...) Просто внутри контракта вы инициируете транзакцию - в этой структуре вы со своего кошелька переводите на счёт биржи. Напротив номера вашего кошелька списывается определенное количество токенов, напротив номера кошелька биржи - записывается. И уже биржа через свой кошелёк может ваши токены перевести куда-то ещё точно таким же образом. Физически токены и их принадлежность кому-либо - это структура данных в этом контракте и методы работы с ней. Эти структуры и методы описаны в стандартах ERC20 и ERC223.