我的意思是离线生成交易本身,假设我事先知道UTXO有多少比特币。换句话说,不需要查询网络上的UTXO余额。
然后我还要签那个tx,也离线。
最后,我可以通过蓝牙将签名的发送信息传递给某人,然后他可以开车到互联网连接,并广播发送信息。
我很确定没有一个钱包可以做到这一点,所以这需要一些特殊的脚本或一系列cli命令
原始事务
离线
分享
改进这个问题
跟随
15小时前问的
菠萝29
11544青铜徽章
添加评论
2个答案
0
假设我事先知道UTXO有多少比特币
比特币核心中的createrawtransaction需要tx id和vout,如果您知道它和将用于输出的地址,则可以脱机创建事务。
然后我还要签那个tx,也离线
签名将需要私钥或带私钥的钱包,具体取决于您喜欢使用的RPC命令:signrawtransactionwithwallet或signrawtransactionwithkey
最后,我可以通过蓝牙将签名的发送信息传递给某人,然后他可以开车到互联网连接,并广播发送信息。
当然。这是可能的。我甚至还参与过一个附带项目,可以用短信发送比特币(互联网不起作用,但短信起作用)。您甚至可以将签名的事务十六进制编码为单词。
相关问答:问题解码的话交易十六进制
我很确定没有一个钱包可以做到这一点,所以这需要一些特殊的脚本或一系列cli命令
许多人使用冷库(使私钥离线),在冷库中事务签名是离线完成的。只要您有创建交易所需的信息,就可以在任何设备或钱包(在线/离线)上创建交易。例如:您试图花费的UTXOs的tx id和vout。
创建PSBT的RPC也需要相同的信息。我不确定不同钱包的兼容性,因此在一个钱包中创建交易并在另一个钱包中登录可能会有问题。然而,我在这个问答中尝试了创建一个事务并在Electrum中签名:使用bitcoin core在手表钱包中创建unsigned tx(PSBT),在Electrum中签名并使用bitcoin core进行广播
你可以尝试一个实验:
打开Electrum钱包。复制一个事务id。在资源管理器中打开它。
断开互联网连接。
开放比特币核心。
使用createrawtransaction创建事务
使用converttopsbt转换为PSBT
复制结果并在Electrum Wallet中加载事务。签名并复制交易记录。
关闭所有钱包。打开https://blockstream.info/tx/push在任何在线机器的浏览器中。
广播此事务
0
部分签名比特币交易(PSBT)满足您的大部分需求。然而,psbt要求签名者拥有完整的UTXO,而不仅仅是事务ID、输出索引和数量。
有许多库支持psbt或简单的事务创建和签名。使用它们不需要连接到完整的比特币节点。
我用得最多的是比特币JS。它有一个干净的API、良好的文档和单元测试,可以作为示例使用。您可以导出十六进制格式的事务,准备广播。
它还有一个用于PSBT和事务创建和签名的Web用户界面。如果您想离线构建事务,只需克隆GitHub repo并打开索引.html文件。
免责声明:我是Web UI的贡献者
分享
改进这个答案
跟随
4小时前回答的
弗拉德斯坦
3144青铜徽章
添加评论