Suppose there is a smart contract for a phone. There is a smart contract of the phone on the blockchain. If the owner sells the phone to another and the transactions are invoked and the new owner gets updated on the smart contract. Is there any information saved about the previous owner of the phone (i.e if for audit a record of the lifecycle of the phone from owner to owner is maintained)? If yes, then how is it done? What kind of data structure is used to do so for minimal runtime while utilizing storage at best?