秘钥管理
使用路印API之前,您需要了解如何获取和更改您账号的EdDSA公秘钥对和ApiKey。调用API时,ApiKey需要通过HTTP头传递给路印的中继;EdDSA秘钥用来在客户端对链下请求做数字签名。
获取
首先您需要在路印交易所的网页界面(Loopring.io)注册一个账号。注册好账号之后,您可以使用『导出账号』功能将账号相关的信息通过JSON格式导出。这些信息包括EdDSA公秘钥对和ApiKey。
导出的JSON看起来应该类似于:
{
"exchangeName": "LoopringDEX: Beta 1",
"exchangeAddress": "0x944644Ea989Ec64c2Ab9eF341D383cEf586A5777",
"exchangeId": 2,
"accountAddress": "0xe9577b420d96adfc97ff1e9e0557f8c73d7247fe",
"accountId": 12345,
"apiKey": "qXJpfTKrF0O5jIDPYIu7YkVgLFbvm5uIgPKBmHP2kBpcdKZjgfFKhIlE8evo9lKa",
"publicKeyX": "20230748339558541226323870947000799026059173889124399831342481595010628000129",
"publicKeyY": "4980637490279511620100245514492532318691849019959343538108355525575855311214",
"privateKey": "1242957328515765470505817310060337585626176314364086438653683782645761561015"
}
其中的前4项是常量,和路印交易所的版本相关;其它数据项和您的账号相关。其中publicKeyX
与publicKeyY
合起来是您账号的EdDSA公钥,privateKey
是EdDSA秘钥。
请您一定妥善保管EdDSA秘钥和ApiKey。如果这些信息不慎泄漏,会导致您资产的丢失。 在任何情况下,路印交易所和其API均不会向您询问EdDSA私钥。
更改
您可以通过路印交易所的『更改密码』功能更改您账号的EdDSA公秘钥对。由于涉及到以太坊交易确认和零知识证明,新的EdDSA公秘钥对需要等待一段才会生效。您可以通过/api/v2/account
接口获取账号信息,如果其中的frozen
项为true
,表明您的账号由于正在更新EdDSA公秘钥对,通过旧的EdDSA公秘钥对和新的EdDSA公秘钥对均无法下单。
如果您通过Loopring.io页面更改密码,您的ApiKey也会被自动更新。另外ApiKey还可以通过路印的API接口更改。
EdDSA派生算法
路印协议对EdDSA的生成方式不做任何限制。在路印交易所,每个账号的EdDSA公秘钥对是由这个账号的以太坊地址和交易密码派生计算出来的。由于地址是公开信息,因此您的交易密码的强度对于您交易资产的安全至关重要。
如果您使用路印交易所网站来设置交易密码,您的密码应该足够强大,无需担心被暴力破解;否则您需要特别注意不要使用简单密码。和中心化交易所不同,暴力破解您的EdDSA秘钥可以不必经过路印的中继系统 - 您的EdDSA公钥存储在以太坊上,黑客可以将其读取出来做暴力破解的对比参照。
EdDSA的派生算法如下所示:
seed = keccakHash('LOOPRING' + address.toLowerCase() + keccakHash(password))
keyPair = myEdDSAGenerator.generate(seed)
其中keccakHash
返回kecca256运算后的16进制字符串。
ApiKey生成方式
ApiKey是在注册账号时由路印中继随机生成的一个全局唯一字符串,与您的账号一对一绑定。