文章分类: Mixin Safe
本条还可参阅:

如何用 Bitcoin Core GUI 创建 Safe 金库

准备 Bitcoin Core GUI 钱包


您也可以选择 用 Bitcoin Core 命令行创建 Safe 金库
  • 打开 Bitcoin Core 用户界面




创建 Safe 金库


1、进入 Safe 后台,新建 Safe 金库


2、输入金库名称选择 Bitcoin 网络


3、钱包选择 Bitcoin Core



选择 Bitcoin Core 来管理 Safe 金库,需要在 Bitcoin Core 钱包里创建两个钱包:


  • 私钥钱包,管理密钥(私钥和公钥)
  • 脚本钱包,负责多签交易、管理 UTXO


3.1 创建私钥钱包



3.2 打开内置的控制台



3.3 生成私钥钱包地址


控制台输入 getnewaddress safe legacy 生成私钥钱包地址


  • 参数 safe:地址标签(label)
  • 参数 legacy:必须是 legacy 格式,否则 signmessage 不支持



3.4 获取 public key


控制台输入 getaddressinfo 1LAng6tNUobkNmD86KpuHg41j9o1R8ocwS 获取 public key, 1LAng6tNUobkNmD86KpuHg41j9o1R8ocwS 是步骤 3.3 生成的钱包地址。



3.5 复制 pubkey 粘贴到 safe 后台并下一步保存:



4、设置资产共管人


添加你信任的家人、朋友或者同事为资产共管人,并设置合理的共管模式。


5、预览并创建金库


6、激活金库


6.1 解码 Safe 金库数据



从 Safe 后台复制激活页面步骤 1 脚本数据,用 decodescript 命令解码数据:



6.2 创建脚本钱包



注意必须勾选 Disable Private Keys 、 Make Blank Wallet 和 Descriptor Wallet


6.3 导入描述符到脚本钱包


控制台切换钱包至 脚本钱包,将步骤 6.1 解码出来的数据里 segwit 下的 desc 按格式 '[{"desc":"xxx","timestamp":"now","internal":false}]’ 拼接为描述符导入脚本钱包:


importdescriptors '[{"desc":"wsh(thresh(2,pk(03b08eeab9826f10b68569ff9af26ea350675e9d5cf9274c1990cfe5d7cf2b186c),s:pk(0261300cb233f092c6c2f787139624b88ea4c774e779b3a257b36a2fcf186a09a7),sj:and_v(v:pk(026e37ea6e1e9a018753e3289387306d8d605351803497021c1a7cf7e6c0a8dab6),n:older(432))))#p6vc2x03","timestamp":"now","internal":false}]' 
[
{
"success": true
}
]




6.4 签名 Safe 金库数据



控制台切换钱包至 私钥钱包,按下面格式签名从 Safe 后台复制激活页面步骤 3 数据:


signmessage 1Gz4GoSjNV8MxLFt8bE8JTfqJp6b2bXhvZ APPROVE:c09c6f5f-4461-46a2-a172-4cd970aab955:bc1qpuecw70lwz5jxway09qtjymw7lm0t36jfdymkqddv6a2m8vgvnwqfnt0pq
IOs73u6gnEy9hIIH6zpEXLtaQncAUYkCk6hV8LQxwdxvQz3jOLbEDXJpo669P6sXQVHHpmnlbDbt22HHdgigeYs=


注意 signmessage 第一个参数是私钥钱包的地址。


6.5 激活钱包


复制 6.4 签名后的数据到激活页面步骤 5 输入框,点激活按钮:



等待约 30 秒钟 Safe 金库激活成功,控制台切换钱包至脚本钱包,你可以通过以下命令检测 Safe 金库的充值地址是否和脚本钱包的地址一致:


$ getaddressesbylabel ""
{
"bc1qpuecw70lwz5jxway09qtjymw7lm0t36jfdymkqddv6a2m8vgvnwqfnt0pq": {
"purpose": "receive"
}
}




Safe 金库创建好后就可以往这个地址里充值 BTC 了。


常见问题


  • importdescriptors is not available for non-descriptor wallets (code -4)


创建脚本钱包的时候,需要勾选 Descriptor Wallet 。


  • Error: Cannot obtain a lock on data directory /User/xxx/Library/Application Support/Bitcoin.Bitcoin Core is probably already running.


可能原因是因为比特币客户端可能在后台运行,尝试在终端输入 ./bitcoin-cli stop 后再打开 Bitcoin Core GUI 。


  • Private key not available (code -4)
    可能是因为签名激活金库时忘记切换钱包为私钥钱包。



更新于: 29/02/2024