帐号
XRP账本中的“账户”负责持有XRP瑞波币和发送交易。账户的属性元素有:
- 识别地址,例如rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn
- 一个XRP余额(XRP balance)。一些XRP预留给Reserve。
- 一个起始序号(sequence number),从1开始,随着从该帐户发送的每个交易增加而增加。除非交易的序号与其发送方的下一个序号相匹配,否则交易不能包含在账本中。
- 交易历史(history of transactions),影响本账户及其余额。
- 一种或多种授权交易,可能包括:
在账本的数据树中,帐户的核心数据存储在AccountRoot账本对象类型中。一个帐户也可以是其他几种数据的所有者(或部分所有者)。
提示:XRP账本中的“账户”介于金融使用(如“银行账户”)和计算机的账户(如“UNIX账户”)之间。非XRP货币和资产不存储在XRP帐户帐户本身中; 每个这样的资产都存储在一个称为“信任线”的会计关系中,该关系连接双方。
创建帐户
没有一个专门的交易来“创建账户”。如一个支付交易发送大于等于预留数额(account reserve )的XRP到一个合法的地址,这个地址还没被使用的话,则会自动创建账户。这称为创建账户,并在账本中创建AccountRoot对象。除此外没有其他交易可以创建帐户。
警告:为账户提供资金不会为您提供该账户的任何特权。拥有与账户地址相对应的密钥的任何人都可以完全控制该账户及其包含的所有XRP。对于某些地址,可能没有人拥有秘密密钥,在这种情况下,帐户是黑洞,XRP永远丢失。
在XRP账本中创建帐户的典型方法如下:
- 使用强随机性生成密钥对并计算该密钥对的地址。(例如,您可以使用wallet_propose方法来执行此操作。)
- 让已有账户的人将XRP发送到您生成的地址。
- 例如,您可以在私人交易所购买XRP,然后将XRP从交易所撤回到您指定的地址。
警告:您第一次在您自己的XRP账本地址收到XRP时,您必须支付帐户预留(当前为20 XRP),无限期锁定XRP的数量。相比之下,私人交易通常将所有客户的XRP都保存在几个共享的XRP账户中,因此客户不必为交易所的个人账户支付保留金。在退出之前,考虑在XRP账本上直接拥有自己的账户是否物有所值。
地址
XRP账本中的帐户由base58 XRP账本地址标识。该地址来源于账户的主公钥,而后者又是从一个私钥中派生出来的。地址在JSON中表示为一个字符串,并具有以下特征:
- 长度在25到35个字符之间
- 从角色开始 r
- 使用字母数字字符,不包括数字“ 0”大写字母“ O”,大写字母“ I”和小写字母“ l”
- 区分大小写
- 包含一个4字节的校验和,从随机字符生成有效地址的概率约为1 / 2 ^ 32
有关更多信息,请参阅帐户。
任何有效的地址都可以通过创建成为XRP账户中的一个资金账户。您还可以使用尚未创建的地址来作为常规密钥或签名人列表的成员。只有资金账户才能成为交易的发送方。
创建一个有效的地址是一个以密钥对开始的严格的数学任务。您可以生成密钥对后完全离线,而无需与XRP账本或任何其他方通信。从公共密钥到地址的转换涉及单向散列函数,因此可以确认公钥与地址匹配,但无法单独从地址派生公钥。(这是签名交易包含公钥和发送方地址的原因之一。)
有关如何计算XRP账本地址的更多技术细节,请参阅地址编码。
特别地址
某些地址在XRP账本中具有特殊含义或历史用途。在很多情况下,这些是“黑洞”地址,这意味着地址不是从已知的密钥中派生出来的。由于仅从一个地址猜测秘密密钥实际上是不可能的,因此黑洞地址所拥有的任何XRP将永远丢失。
地址 |
名称 |
含义 |
黑洞 |
rrrrrrrrrrrrrrrrrrrrrhoLvTp |
ACCOUNT_ZERO |
一个地址,它是该值的base58编码0。在点对点通信中,rippled使用此地址作为XRP的发行者。 |
是 |
rrrrrrrrrrrrrrrrrrrrBZbvji |
ACCOUNT_ONE |
一个地址,它是该值的base58编码1。在账本中,RippleState条目使用此地址作为托管行余额发行人的占位符。 |
是 |
rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh |
起源说明 |
当rippled从头开始创建新创建账本(例如,在独立模式下)时,此帐户将保留所有XRP。该地址由硬编码的种子值“masterpassphrase”生成。 |
没有 |
rrrrrrrrrrrrrrrrrNAMEtxvNvQ |
Ripple名称预留黑洞 |
在过去,Ripple要求用户将XRP发送到该帐户作为预留数额。 |
是 |
rrrrrrrrrrrrrrrrrrrn5RM1rHd |
NaN地址 |
当base58编码值NaN时,先前版本的ripple-lib生成此地址。 |
是 |
账户永久性
一旦创建,账户将永远存在XRP账本的数据树中。这是因为交易的当前序号必须永久跟踪,以便旧交易不能再次处理。
与比特币和许多其他加密货币不同,XRP账本的公共账本链的每个新版本的账页都包含账本的全部状态,随着每个新账户的创建规模也会增加。出于这个原因,Ripple不鼓励创建新账户,除非完全有必要。代表许多用户发送和接收价值的机构可以使用“ 源标签(Source tags)”和“ 目的地标签(Destination tags)”来区分来自其客户的付款,同时仅使用XRP账本中的一个(或少数)帐户。
交易历史
在XRP账本中,交易历史是交易跟踪的“线索”,由交易的散列ID和账本索引连接的交易组成。该AccountRoot账本对象包含识别哈希和最近修改它的交易; 交易的元数据包括该AccountRoot节点的先前状态,因此可以以这种方式遍历单个帐户的历史记录。交易历史记录包括直接修改AccountRoot的所有交易,包括:
- 由帐户发送的交易,因为它们修改帐户的Sequence号