I have a trivia game show that I run several times a week. There are 2 other hosts that run the game other than myself. Contestants can win money at this game. The controls for the show are operated by a HUD that the host wears.
Currently, the way it works - is I must be present in order to pay contestants that win. That, or the host needs to pay the contestant, and I reimburse the host (which sucks for the host).
I'm working on a way so that the host can use the HUD control to pay the contestant out of my account, without me neccesarily being present - and most importantly: safely. This also could have the added bonus of automatically tracking the total prizes I'm giving out (something I can't/don't do today).
Here are my assumptions/concerns:
1. I trust the 2 hosts completely. I have no worry that they will abuse this privlidge.
2. I need to make sure that the only folks who can authorize payment from my account are either me, or the hosts.
I've considered a couple different methods, all of which seem to have issues I'm uncomfortable with:
1. Have the game set itself process the payment with a bunch of secure linkmessages. I can run a check to make sure that payment can only be made if an authorized host is seated for the game, and only to a contestant seated for the game, and only for the amount listed on the prize board.
Problem: The game set is on an autorezzer. The hosts click an object owned by me to rez the set before the game starts. Since the set is rezzed on demand, and I may not be present - how could I grant PERMISSION_DEBIT on an object that isn't rezzed yet? (I can't).
2. Have an external object 'listening' to an instruction from the set to process payment that's always rezzed. This could be done either via a Listen, or via Email.
Problem: Couldn't someone spoof my listen if they figured out what channel I communicate on, or spoof the source Email address if they knew what I was filtering on - and thus hack my payment device?
Problem: Since the set is rezzed on demand, the external pay object has no idea what the set's key is. So I can't do a security check on the key of the object making the request.
If anyone has any ideas, it'd be much appreciated! Glad to provide any further information as well if what I'm explaining here isn't clear.
Thanks in advance for your advice!

