The solution is to make it so that the two steps- accepting input, and testing that input- can never happen at the same time. When those two steps cannot interact with each other, a well-designed lock will never reveal information about the correct positions of its individual parts, nor can they be made to ‘fall into’ their unlocked positions through manipulation.

Source: Enclave

Interesting! This seems like a great idea.