Write up protocol for unlocking

We can actually move the `verify_fn` instantiation into the de/serialization methods -- I'll do that in my PR.