在baybylon staking guide 文档中,提供测试网质押操作的功能 <https://btcstaking.babylonchain.io/> (目前不可用)。需要Keplr Wallet 连接 Babylon 链,OKX Wallet 连接 bitcoin Signet 测试网,在 discord faucet 频道领取测试币。 1. 选择要质押的PoS 链(当前只有Babylon chain 可用) 2. 选择一个 finality provider 3. 输入要质押的BTC的数量和天数 点击预览,有5个弹出窗,分别签名5个交易: 1. bitcoin 上的质押交易。将质押数量的BTC发送到一个taproot地址,这个地址有3个花费路径 2. staking covenant and unbonding transaction. perform covenant emulation 3. unbonding transaction. 4. unbonding covenant transaction. 5. Link your Babylon and Bitcoin accounts for reward. 签署后质押成功。这个页面目前没有开源。 另提供命令行程序 btc-staker,包括 stakerd 和 stakerctl 两个 binary,stakerctl 发送rpc请求给stakerd,stakerd和链交互。stakerctl 提供stake,unstake,unbond等子命令,stake 子命令需要提供质押数量,finality providers 的公钥,锁定时间(BTC blocks)等,执行后质押成功。 根据 btc-staker 及 finality-provider 的代码,可以看到: 1. 用户质押BTC获得的签名区块的权力委托(delegation)给了 finality provider 2. 用户质押时必须发送要质押的BTC到指定的taproot地址,这个地址有3个花费路径,分别是 ```bash timeLock unbonding slashing ``` 3. slash subscript 由staker, finality provider, covenant emulation 3方签名,并且staker预签名,covenant emulation 去执行,故 finality provider 的私钥泄露时,该utxo 就可以被持有 finality provider 私钥者花费。