The best application I have seen recently is the voting systems. It seems like a very natural way of doing things: we want everyone to be able to verify that the election was not fraudulent, but the catch is that you don’t want everyone to know who you voted for. So you need to have some sort of API and interface to the blockchain that anonymises your vote, but you are still able to see that the vote was correctly registered.
One of the ideas we had in our research group was that you go to a voting machine, and you enter your vote, and you get a printout with a fake name, and that fake name has voted for you. Let’s say I, Mansoor, go to vote, and I get the fake name Jack Linden. And then, once the voting is over and the counting is done, the blockchain can have the votes, and I can see that yes, Jack Linden voted for the person that I actually wanted to vote for. That way everyone can verify that there votes were counted, and that way there is no debate about the election results anymore. That seems like an area we should explore.