假设我要验证用户是否控制某些Ripple地址。对于比特币/以太坊,这很简单,因为他们使用单个加密曲线-我要求用私钥对消息签名,从签名中提取公钥,对其进行哈希处理以生成地址,并将地址与提供的地址进行比较。对于Tezos,这比较复杂,因为它使用3条曲线,但是从地址中您可以轻松了解要使用的曲线。
但是,根据https://xrpl.org/accounts.html#address-encoding,对于Ripple,地址编码未考虑加密曲线。如果使用Base58解码地址,则第一个字节始终为00,不会告诉您使用了哪个曲线。然后,我将要求用户确定使用哪条曲线从私钥中得出最终产生地址的公钥。我的理解正确吗?
此外,我是否正确地假设对于Ed25519,您无法在没有公共密钥的情况下验证签名,就像secp256k1那样,您可以从签名中提取公共密钥?