This topic continues from thinking about key loggers.
The SAFE network is constructed such that the network does not need to trust any single client, and no client needs to trust the network. However as a human user, I still need to trust my client, as he is the endpoint to the cryptographic chain.
So I disassembled the the problem back to first principles, and then it is pretty clear: the verification chain should not end at the client, but it should end in the only private place: my brain.
Of course it is clear that I cannot remember a private key. Nor can I, when presented a 4000 characters long challenge from the network, compute cryptographic functions on this challenge with my remembered private key, to produce a result the network can verify.
It does however open a question. A question I have not answered yet, but I present to you already:
The human brain is (on average) very strong visually: can we invent a (visual) challenge, that I can ‘solve’ in my head (easily) given the private information - ive never given out - to produce an answer to be transmitted to the network.
Preferably, this operation is not invertible (ie, no trivial rearranging at least). And the network needs to have a way to check the result with an equivalent of a public key. I know the question sounds ridiculous, and one would think it is impossible.
I argue though that the security of this ‘public private brain key infrastructure’ does not have to be as waterproof as the standard PKI. Firstly, it complements the rock-solid cryptographic fortress of the SAFE network. Secondly, it is firstly intended to shoot beyond the client; this way the mathematical PKI infrastructure ends at the client software, but the (weaker) visual PKI extends into the inner most private part: your brain.
So agreed, it is rather mysterious or unsolvable, my question. It might seem more easy to handle if you think about it as an extended captcha: just some private information stored in your brain.
For example (and this is not good enough): I remember my color is blue: the network presents a captcha with different letters in different colours. Only I know that I’m only supposed to type the blue letters and ignore the rest. For the client this could be already hard to solve: the letters are already distorted as with a normal captcha, but the letters don’t have to be in a single color blue - blue is a wider term for humans; and letters can also contain minor parts of other colours, as long as it’s easily visible for the human which letters are blue. Think Pointillism here, from a distance the human eye blurs it into a picture, but the computer only sees the dots, not even mentioning the standard distortion. – So this somewhat solves the criteria that the challenge should be hard to invert for the client software.
The other criteria is that the network should be able to verify the answer with a ‘public’ key; that they get from the client. That does not satisfy for this example.
Crunch those brains of yours, and help us solve this end-point problem !