多重签名
以下知识库文章介绍了如何创建和使用 Haven Multisig CLI 钱包.
这些指令基于 2/3 多重签名,这意味着在总共三名授权签名者中,需要任意两名才能使交易有效。
简而言之,如果已经创建了多重签名钱包,那么创建和提交交易所需的步骤如下:
- 同步钱包 A 和 B。
- 从 A 导出多重签名密钥图像。
- 将多重签名密钥图像导入 B。
- 从 B 生成 TX。
- 将TX导入A,在那里签名,然后提交。
先决条件
本文假设您以前使用过 CLI。
如果不是这种情况,建议您先熟悉如何使用 CLI。请在我们的 KB 页面中搜索“cli”和“local node”以开始使用。
创建新钱包
- 下载 最新的 CLI 应用程序。
- 跑步 黑文 并确保守护进程完全同步。
- 每一方(本例中为 3 方)必须使用以下方式创建新钱包: haven-wallet-cli (确保未启用后台挖掘)。
- 退出钱包并备份种子并复制钱包文件(以防您需要重复这些步骤)。
- 重新登录钱包并运行以下命令:
设置启用多重签名实验 1
设置自动刷新 0
准备钱包
- 各方输入以下命令:
准备多重签名
. - 发送输出至 全部 其他方(使用 Element 等安全平台进行共享)。输出应如下所示:
MultisigxV2R1TYQNzErUgssPfURuXVvEq1M4QfUgpBLrz2HXGKkyaonPCH8Kv6jQLqEGEXUtuJNjELcqLUNHKfEopDqtsyzz4sEbCWhtRanxGm8amKYDHmfFjRCVsR3Xmot8RGLp6WN5KQNLUepsFNpePMkW8yomYrCFLpCkJ72fkjBUy1qx6TH8L3wQ
. - 各方输入以下命令:
make_multisig 2
在哪里和对应于 其他 各方在步骤 7 中共享的数据。
该命令应如下所示:
make_multisig 2 MultisigxV2R1TYQNzErUgssPfURuXVvEq1M4QfUgpBLrz2HXGKkyaonPCH8Kv6jQLqEGEXUtuJNjELcqLUNHKfEopDqtsyzz4sEbCWhtRanxGm8amKYDHmfFjRCVsR3Xmot8RGLp6WN5KQNLUepsFNpePMkW8yomYrCFLpCkJ72fkjBUy1qx6TH8L3wQ MultisigxV2R1MG7sQpykJTv4RMEuyQV6m1FBX9zVMPXva3dragVUh9F9FjTTmJ4DLvUNP57njearPRbHnFv1NvKMeL1yQTdbcy7nQ1r4rDvJQzHhNvUeCFzAm6TLhwwjAiqfUBtS6ajBFZ8XVsGwLhCc1S3jK7ffsAKaRF9cLyEzJgpaXNShnrsY4hEK
. - 将步骤 8 中生成的数据发送至 全部 其他各方。数据应如下所示:
MultisigxV2Rn1LWRyU32PL2D4MnPtp4w5YFS6KTkanCW18adkxUTdMVJDaqQ9E1gsTRQJTZFADurxZb6w2amhCpHtWHPcykirrk3AE1AS65NxkJG4zRgQJF26m8obGa39AVDYicUsFrL3LRMHF2DUKKckJoYZcRbCUeNP4PBrExea3na2TUm7FEw995ZL5N9n7nVxysH6JdwLfDjXaWDotxZtyPn1ifXvgJHJctsFPP
. - 各方运行以下命令(第 1 次传递):
exchange_multisig_keys
在哪里和与步骤 9 中共享的其他方数据相对应。
该命令应如下所示:
exchange_multisig_keys 多重签名MultisigxV2Rn1LV1jgtbFBZQJTZFADurxZb6w2amhCpHtWHPcykirrk3AE15GGTSNN6328nPGtUi3hDQdFr8rNk2aSpMNquYHSbxNhNZ7Q48j4TRAauoTVenC5ZmsS8EViFdieeHtzgPFwrg9cgAX93F7g4UHyAd82BeTRZb3cxsLGQ3nTZb6ey2HN8dJa6Y8ssCniTd6Kchn4cWhS9Qqz38whxCDNYd7UJCpGCa3k1
. - 将步骤 10 中生成的数据发送至 全部 其他各方。数据应如下所示:
MultisigxV2Rn1WC6rFTBNJkY4qjHv8UYXGifkHemhyRJmXnNVtQY8dcx4T2fZBnnCy2iMAFVerhacP1UytUMaGyAN5N5XvnXqqY7fyYAaBX639tG4zRgQJF26m8obGa39AVDYicUsFrL3LRMHF3XFVxmv3XjngbXYY47EXY1BgZk6UYxBAN12Ep2ETqR6rpTvUB8QJmQkrdUpiiu146zoiHieUj2He4KwCgkPj9vK7Y
. - 各方运行以下命令(第二遍):
exchange_multisig_keys
在哪里和与步骤11中共享的其他签名者的数据相对应。
此步骤应生成多重签名钱包并提示您钱包地址。
. - 将钱包地址与各方进行比较,确保它们相同。
如果它们不一样,则说明出现了问题,您需要使用步骤 4 中备份的钱包文件重新开始。
. - 类型 种子 并备份种子字符串,其形式如下(多重签名种子与通常的种子不同):
020000000300000005cd2e5a01ef0830eb666b838d8402795ae8f24f6e3cf2068ff8e48899aed11f500473d4c3a9b9bb9451f19facfff91def79172ed466b808f9fa2173a25d149e4a1c1161be6c029b2c4d0ca5fc806ddc1d46edc7dc3d0727a68ad2f6d24bf6086d269cfd2255f73375939820a71802e25e12abd220271a16505059cb168ce90367c23b78dda9038037406aafa4e6d8ed363f998209ab2a6432c78e5597411a0fb43da66388574bda7edbe6122ee6e8ce987a5eb553ccf3cac170b8031448aa05436d4f88e749ea315b12c6c3b93e5905d63bd6f29df0ba3f4cc888318a1f49c45813af87c6d890797fd36bb2c61ec3f0cd009ec413d1e10d71b19e4f6b893381d6a58526d2f35a1726e847e4bed22ea71f7deb2dc7aff8c7c12505345af8611a
. - 关闭钱包并备份钱包文件。
- 其中一方需要将资金发送到共享地址。
- 重新登录并同步钱包,以确保各方都已收到并确认资金。
发送准备
- 为了准备发送,人员 1 输入以下命令:
导出多重签名信息
<filename> 只是您要导出的文件的名称,它应该是简单的名字。
生成的文件称为 关键图像,是钱包输出的快照。
. - 将导出的文件发送给第 2 个人。第 3 个人也可以这样做,但不是必须的。
. - 第 2 个人和/或第 3 个人下载共享的文件并将其放在与 CLI 应用程序相同的目录中。
. - 第二个人或第三个人输入命令:
导入多重签名信息
<filename> 与步骤 18 中创建并在步骤 19 中共享的文件相同。
. - 在步骤 21 中导入密钥图像的任何人现在都可以创建交易。
正在发送
- 第 2 个人或第 3 个人通过输入以下内容以通常的方式创建交易:
转移
这将创建一个名为 multisig_haven_tx 并将其发回给第 1 个人。
. - 人员 1 下载上述文件并将其放入与 CLI 应用程序相同的目录中,然后输入以下命令:
sign_multisig multisig_haven_tx
. - 一旦成功签名,人员 1 输入以下命令来提交 TX:
submit_multisig multisig_haven_tx
笔记
如果第 1 个人和第 2 个人进行了一笔或多笔交易,而第 3 个人不在场,则当第 3 个人同步保险库时,将不会显示正确的金额。
为了解决这个问题,第 3 个人必须使用步骤 20 中的命令从任一参与者导入第 19 步中共享的最新密钥图像。导入后,第 3 个人可以进行“刷新”,然后就会显示正确的钱包余额。
如果准备发送(共享密钥图像)和创建 TX 之间花费的时间太长,该过程可能会超时,您必须再次执行此阶段。