本文主要是介绍瑞波加密密钥,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在XRP分类帐中,数字签名证明交易有权执行特定的一组操作。只有已签署的交易可以提交给网络并包含在经过验证的分类账中。
每个数字签名均基于与交易的发送账户相关联的加密密钥对。密钥对可以使用任何XRP分类帐支持的加密签名算法生成。无论使用什么算法生成密钥,密钥对都可以用作主密钥对,常规密钥对或签名者列表的成员。
警告:保持私钥的适当安全非常重要。数字签名是向XRP Ledger验证您有权发送交易的唯一方式,并且没有特权管理员可撤销或撤消已应用于分类帐的任何交易。如果其他人知道您的XRP账户的私钥,该人可以创建数字签名来授权任何交易,尽可能相同。
生成密钥
您使用该wallet_propose
方法生成密钥对。以下是一个示例wallet_propose
回应:
{"result": {"account_id": "rDGnaDqJczDAjrKHKdhGRJh2G7zJfZhj5q","key_type": "secp256k1","master_key": "COON WARN AWE LUCK TILE WIRE ELI SNUG TO COVE SHAM NAT","master_seed": "sstV9YX8k7yTRzxkRFAHmX7EVqMfX","master_seed_hex": "559EDD35041D3C11F9BBCED912F4DE6A","public_key": "aBQXEw1vZD3guCX3rHL8qy8ooDomdFuxZcWrbRZKZjdDkUoUjGVS","public_key_hex": "0351BDFB30E7924993C625687AE6127034C4A5EBA78A01E9C58B0C46E04E3A4948"},"status": "success","type": "response"
}
该响应包含一个密钥对(一个私钥和一个公钥,以各种格式)以及一个account_id
。
私钥
该master_key
,master_seed
和master_seed_hex
是各种格式的私钥,所有这些都可以用来签署交易。尽管有前缀master_
,但这些密钥不一定是帐户的主密钥。在这种情况下,master_
前缀更多地指的是密钥作为私钥的角色。这master_seed
是所有其他有关此帐户信息的主要种子。
公钥
该public_key
和public_key_hex
在各种格式的公钥,与public_key_hex
是对应于签订该交易的私钥的公钥。无论是public_key
与public_key_hex
直接从所导出的master_seed
。
帐户ID
这account_id
是从公钥导出的,并指定了在XRP分类帐中创建帐户的潜力。重要的是要知道,尽管account_id
存在,但在XRP账簿中不存在实际账户,直到account_id
收到第一笔XRP付款。此外,account_id
只有在收到资金并创建帐户的交易后,才能发送任何交易。
但是,account_id
(没有资金账户)可以用作常规密钥或签名者列表的成员,以授权另一个确实存在的帐户进行交易。
创建存储在总帐存款账户时,account_id
必须接受Payment
交易,提供足够的XRP满足准备金要求。
有关wallet_propose
响应的更多信息,请参阅wallet_propose
。
您可以使用以下三种方式之一使用此生成的密钥对:作为主密钥对,常规密钥对或签署者列表成员。
密钥类型
该字段key_type
指示使用什么加密签名算法来生成该密钥对。您可以key_type
使用该wallet_propose
命令指定何时发出请求以生成密钥对。
主密钥对
主密钥对由私钥和公钥组成。除了能够签署常规密钥对可以使用的所有事务之外,主密钥对的私钥是唯一可用于执行以下操作的密钥:
禁用主公钥。
永久放弃冻结的能力。
发送成本为0的密钥重置事务。
用于帐户的主密钥对的生成wallet_propose
响应account_id
与主密钥对授权签署交易的帐户的响应相同。由于主密钥对在相同的响应产生的,它是内在联系的account_id
,它是从所导出的public_key_hex
。
这与使用该wallet_propose
方法生成的常规密钥对相反,但必须将其明确指定为帐户的常规密钥对。由于常规密钥对是明确分配的,因此它与其account_id
授权签署交易的帐户本质上没有关系。有关更多信息,请参阅常规密钥对。
警告:主密钥对不能更改,但可以禁用。这意味着如果您的主密钥被泄露,而不是改变它,您必须禁用它。
由于主密钥对无法更改,只能在发生危害时才能禁用,因此这是使主密钥对保持脱机状态并设置常规密钥对以便为您的帐户中的交易签署的强制性原因。
使主密钥对保持离线状态意味着不要将主密钥放在恶意角色可以访问的地方。例如,这可能意味着将其保存在永不连接互联网的空隙机器上,保存在保险箱中的一张纸上,或者一般来说,保存在与整个互联网互动的计算机程序的范围内。理想情况下,主密钥对仅在最值得信赖的设备上使用,并仅用于紧急情况,例如在发生可能或实际的危害时更改常规密钥对。
常规密钥对
XRP账簿允许账户授权一个称为常规密钥对的二级密钥对来签署未来的交易,同时保持您的主密钥对离线。如果常规密钥对的私钥遭到破坏,您可以删除或替换它,而无需更改帐户的其余部分并重新建立与其他帐户的关系。您也可以主动旋转常规密钥对。(这些东西都不可能用于帐户的主密钥对,该帐户内部链接到该帐户的地址。)
您使用该wallet_propose
方法生成密钥对以用作常规密钥对。但是,与使用与其支持的帐户并行生成的主密钥对不同account_id
,您必须明确创建常规密钥对与您希望为其签署交易的帐户之间的关系。您使用该SetRegularKey
方法将常规密钥对分配给帐户。
有关分配常规密钥对的教程,请参阅使用常规密钥对。
将常规密钥对分配给帐户后,该帐户有两个与其关联的密钥对:
- 与帐户内在相关
account_id
且您保持离线的主密钥对。 - 您已明确分配给该帐户的常规密钥对,以及用于为帐户签署交易的密钥对。
您可以将一个常规密钥对分配给一个帐户,并将其用于签署所有交易,但为主密钥对保留的交易除外。
您可以随时移除或更改常规密钥对。这意味着,如果普通私钥遭到破坏(但不是主密钥),只需删除或更改常规密钥对,即可重新获得对您帐户的控制权。
有关更改或删除常规密钥对的教程,请参阅使用常规密钥对。
签署算法
加密密钥对总是绑定到特定的签名算法,该算法定义私钥和公钥之间的数学关系。密码签名算法具有这样的性质,即鉴于密码技术的当前状态,使用私钥来计算匹配公共密钥是“容易的”,但是通过从公钥开始计算匹配的私钥是不可能的。
XRP分类帐支持以下加密签名算法:
密钥类型 | 算法 | 描述 |
---|---|---|
secp256k1 | ECDSA使用椭圆曲线secp256k1 | 这是比特币中使用的方案。XRP分类帐默认使用这些密钥类型。 |
ed25519 | EdDSA使用椭圆曲线Ed25519 | 这是一个更新的算法,具有更好的性能和其他方便的属性。由于Ed25519公钥比secp256k1键短一个字节,因此rippled 前缀Ed25519公钥的字节,0xED 因此这两种公钥都是33字节。 |
使用该wallet_propose
命令生成密钥对时,可以指定key_type
选择使用哪种加密签名算法来导出密钥。如果您生成了除默认值之外的其他密钥类型,则还必须指定key_type
签署事务时的类型。
受支持的密钥对类型可在整个XRP分类帐中互换使用,作为主密钥对,常规密钥对和签名者列表的成员。派生地址的过程对于secp256k1和Ed25519密钥对是相同的。
注意:目前,您无法使用Ed25519密钥签署付款渠道声明。这是一个错误。
未来的算法
未来,Ripple期望在XRP分类账中添加新的加密签名算法,以跟上加密技术的发展。例如,如果看起来使用Shor算法(或类似的)的量子计算机很快就会足够实用以破坏椭圆曲线密码体系,Ripple可以添加一个不易破碎的密码签名算法。截至2018年初,这种“量子抗性”签名算法相对不切实际,量子计算机更加不切实际,因此Ripple没有立即计划添加任何特定算法。
这篇关于瑞波加密密钥的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!