While you might be able to identify the machine of every account with some sort of unique tag.. there's always the possibility of the user changing the hardware or removing whatever "identifier" a java applet puts up and checks for before creating an account.
The multiuser thing throws in another problem to this scheme, but I think this is trying to solve the wrong problem also.
A user may have access to more than one PCs to verify with [don't use the word donate that's misleading, it implies you're physically sending your PC somewhere.]
Or more than one users might be forced to use the same PC.
The problem you really want to solve is to identify the user... to determine that one person is unique.. You need to collect uniquely-identifying information name, address, etc, and verify it as you would if you were a Digital Cert. authority
IOW, preventing multiple accounts while not hurting legitimate users trying to create one account is not this simple.