在 XRP Ledger 上,“这个账户要几个人点头才算数”不是钱包软件的设置,而是写进账本的一条规则。官方文档把这套机制叫多签(multi-signing):用多个私钥的组合来授权交易。收非原生代币前先挂一条线:XRP Ledger 信任线怎么建、限额怎么读、怎么安全关闭 讲过账本怎么规定你能持有什么,这篇讲账本怎么规定谁能替你签字。
列表是一个账本对象,不是一串备注
多签的核心是账户上的 SignerList 对象,靠一笔 SignerListSet 交易来创建、替换或删除,该交易需要 MultiSign 修正案生效。字段只有两个关键项:SignerQuorum 是达标线,SignerEntries 是成员与各自权重的数组。官方文档对语义写得很明确:只有当所提供的签名对应的权重之和大于或等于这个值时,来自这份列表的多签才算有效。
配置限制要逐条核对。列表成员至少一名、至多三十二名(这个上限由 ExpandedSignerList 修正案更新);同一个地址不能出现两次;提交交易的那个账户本身不能写进列表。一笔成功的 SignerListSet 会整体替换账本上的 SignerList,此前不存在则新建,而且一个账户最多只能有一份签名人列表——想改就得重发一份完整的,没有”追加一个签名人”这种增量接口。

权重与阈值怎么配才有意义
单个签名人的权重不能超过 2 的 16 次方减 1。阈值必须大于 0,同时不能高于列表里所有权重的合计,官方文档的理由很直白:得让达标这件事在数学上有可能发生。文档给了几个可对照的例子:三人各权重 1、阈值 3,就是”三个人都要签”;共享账户可以阈值设为 1、每人权重 1,等于谁签都行;公司场景可以把 CEO 设为 3、三名副总裁各 2、三名主管各 1,阈值定 3,那么”三名主管""一副总裁加一主管""两名副总裁""CEO 单签”这四类组合都能通过。
由此能看出权重设计的真正含义:阈值决定需要凑够多少 authority,权重决定谁的分量更重。把阈值配得比可用权重合计还高,交易就永远签不过去;把所有可信签名人权重都设成 1 又把阈值设成 1,等于没做多签。
一笔多签交易长什么样
多签交易在字段上有几处硬要求。SigningPubKey(发起交易的公钥)要留空,签名信息全部放进 Signers 数组,每个条目带签名人地址、该签名人的公钥和它的签名。所提供的签名权重合计必须达到列表阈值。费用也更高:Fee 至少要等于普通交易费用的 (N+1) 倍,N 是提供的签名数量,三个人签就要按四倍基础费用付。
还有一个容易踩的点:所有字段必须在收集签名之前全部定稿,官方文档明确说不能自动补齐任何字段。因为每加一个签名,签的就是一份已经固定好的字节序列,事后回填 Fee、Sequence 或 LastLedgerSequence 会让先前收集的签名作废。提交时如果用二进制形式,Signers 数组要按签名地址的数值从小到大排序;走 JSON 则由 submit_multisigned 这类方法自动处理。
撤人与撤钥的先后顺序
多签、主密钥(master key pair)、常规密钥(regular key pair)三种授权方式可以并存,官方的唯一要求是至少启用一种。这带来两个实操判断。其一,把签名人列表当成找回通道时,别忘了它也可以被替换:任何人只要能凑够当前阈值的签名,就能重发一份 SignerListSet 把列表换掉,所以”谁在列表里”本身就是一项需要定期复核的配置。其二,删除列表的办法是把 SignerQuorum 设为 0 并省略 SignerEntries 字段,不这样写交易会失败。
顺序上更稳的做法是:先确认还剩哪条授权路径可用(主密钥是否启用、常规密钥是否还在手上、列表阈值是否还能凑齐),再动 SignerListSet;如果打算移除常规密钥,也要先确认多签列表能独立支撑交易,否则账户可能陷入无人能签的状态。以上是配置与机制层面的核对,涉及资产操作均有风险,不构成投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。