The easier solution only works when we're launching our own tokens, but if you want to create a bridge between tokens that someone else has launched, you would need to create the concept of a vault contract on either side of the bridge to manage balances and ensure that there are always the right number of tokens accounted for in total between both sides of the bridge.