Vector commitments and their applications