Come detto sopra il problema è la possibilità che l'owner blocchi i conti.
Le funzioni di trasferimento invece sono le erc20 standard quindi niente di strano su questo.
e come si fa a sapere se il proprio conto è bloccato oppure no? c'è un sistema?
mapping (address => bool) private _lockByPass;
il mapping dei conti bloccati è privato, quindi non è accessibile agevolmente tramite altri contratti o interfaccia, ma sulla blockhain è comunque tutto disponibile, con un po' di impegno si potrebbe ricavare il valore guardando lo storage.