easy way to link an (offline) payment to a participant
Not sure I understand the question 100%, but Civi can be configured with ACH payment processing (e.g. using iATS: http://home.iatspayments.com/) - this will allow for users to register themselves online and will link the event payment with the participant record. For cash payments, you can use "Pending (Pay Later)" either from the front end (by enabling this as an option in the event configuration on the amounts tab - e.g. pay at the door) or back end (creating a back office registration and recording a contribution with a status of pending pay later).

 

Hope this helps!
Tamar