It appears to have come from: 35nGJpcQr4pYVyFVR3BPbdaWUSk6NBryUD
But that's not a valid bitcoin address.
Yes, it is:
validateaddress 35nGJpcQr4pYVyFVR3BPbdaWUSk6NBryUD
{
"isvalid" : true,
"address" : "35nGJpcQr4pYVyFVR3BPbdaWUSk6NBryUD",
"ismine" : false
}
If your client says it's not valid, then that's a bug in your client.
Ok, now it is more understandable that blockexplorer script just tries to match "from" address by looking on blockchain.
No, that's not what's actually happening. Every input has to satisfy the conditions of a previous output (in most cases, the condition is "provides a digital signature that matches the public key"), and every output has an address. The only exception to this rule is newly mined coins, which have no inputs. As a result, every transaction which doesn't generate newly mined coins has one or more clearly defined "from" addresses. There is no "trying" to match addresses, nor is it possible to hide them. However, most clients do not display this information, or allow you to determine which address(es) you'll be sending from if you have multiple addresses. Ordinary users never have any need for this information, and if anyone asks you for this information they're doing something horribly wrong.