VICOINDAO

发布于 2023-03-06到 Mirror 阅读

【财富密码】BTC 私钥丢失后的恢复方案

哈哈,大家好!我是号称行业“区块链王一博”的拓拓哥~

最近以太坊推出了抽象账户的概念和实现,即eip4437。在你的资产存在eth 抽象账户的合约中的前提下,如果你的私钥或助记词丢失,可用4437 来恢复,这个实现类似于多签名,同一合约的签署者可以联名恢复你对合约里资产的控制权

那么对于比特币来说有没有类似的方案,比特币地址私钥忘记后,能不能恢复?其实对于比特币来说,解决方式更加彻底和简单,即使用时间锁功能即可。ETH 目前的普通交易是不能设置时间锁的,只能在智能合约里面实现

什么是BTC 交易的时间锁?

nTimeLock 时间锁是指,在一笔交易中,你可以设置交易被区块链打包确认的时间,提前于这个时间来广播交易都无得到网络确认

时间锁有什么用

设置了nTimelock,你可以提前签名好若干笔交易。并把这些交易保存起来,以后即使你的私钥丢失,也能广播这些交易把冷钱包的币发到指定的地址上

这里有两点要注意的:

加上时间锁的交易签名后,原地址上的币是不能再次发送新交易的,否则会破坏原地址的UTXO结构,使得加了时间锁的交易无效 。

恢复地址的私钥需要你保存好,恢复地址可以是交易所地址,多签地址,当然最好是自己的备用恢复地址 。

带了时间锁的交易你可以签署任意多笔,在时间锁失效后,需要哪一笔确认,广播哪一笔即可

BTC 交易如何设置时间锁

我们用electrum 为例 首先,设置好你的恢复地址,图中39NQ 开头的地址就是我们的恢复地址,点击支付:

进入高级设置,里面的 LockTime 就是我们要设置的

你可以选择日期或者区块链高度来设置,比如你可以设置在2024年1月1号以后,这笔交易才能被广播确认,或者区块高度为100万以后,此交易才能确认 注意。如果你使用区块高度来设置确认时间的话,你需要进行计算,比如一百天后的区块高度为目前的高度+144*100 因为比特币一天大概144个区块,所以需要乘以100

设置完高度以后,插入你的trezor,点击签名

签名后的内容,我们叫做raw tx,你需要把raw tx保存起来。在你签名时,trezor 或其他硬件钱包会再次确认你的时间设置 签名完成后,点击上图左下角的导出,把raw tx 文本导出来保存即可

在时间锁的日期到达后,你可以通过electurm 加载你的raw tx井广播到网络确认,如下图

把事先保存好的raw tx 拿出来,贴到输入框,点击载入交易即可

RAW TX 需要保密么? rawtx是私钥签名后的文本文件,你可以存在哪里都可以,签名后的交易是无法泄露你的私钥的,所以,你的raw tx 甚至被别人知道也无所谓,比如我上面签名的raw tx是: 0200000000010143ec0bb3ee0a059d923005809c4a25a75589decbcaffd333e8e171328 df56e80000000017160014e6b8415c6595f55553484ec19f86727c1a883576fdffffff011a1306000000000017a914543c05063ded36f50284b4d9c42c2ac99f5fd53b8702473044022022653182e616327ffdh7a9579d11663ed6e55ef67f4d695940bcdhc7e5b33eca02203167 f2ee67d7d23a405b1319e138ba2314fa600633a6316a15382e8946f8ff012103d9298b0c0 dc364c3f2675690a8734d53d8a115483b28a9c838b7ee94669d59c85f28cf64 这个raw tx 你们可以加载到你的electrum 里面,看看能不能广播成功 试过以后你会发现,这是无法成功被确认的,因为这笔交易无法在 LockTime:1691297887 (2023-08-06 11:58:07)之前确认,就算在时间锁失效以后广播成功了,bte 也是转移到我设定好的恢复地址上,其他人无法更改恢复地址 加上了时间锁后的签名 raw tx文本是用来在你丢失私钥的情况下恢复你的资产的,你可以保存在任何地方,在你知道恢复地址私钥的前提下,保存的地方越多越好

微信1:victeam005

微信2:shijie20170405

Telegream:https://t.me/VICOINDAOCHAT