pub trait SignatureVerify { type PublicKey; fn verify( &self, msg: &HashValue, pub_key: &Self::PublicKey ) -> Result<(), Error>; }