市场分析不小心把QTUM发到LTC...

不小心把QTUM发到LTC地址怎么办? | 社区开发者专题

推荐文章

biquan-5cc5192c3cf75

原文作者:Jackson Belove

教程为第三方提供,仅供参考

近期,Qtum社群中有人不小心将QTUM发送到莱特币地址后,在热心的社区技术人员帮助下利用WIF的创建机制,尝试并找回了丢失QTUM,如果你也担心会出现这样的情况,不妨收藏本篇文章吧。

数字钱包的设计为了方便更多的社区用户,采用钱包导入格式(Wallet Import Format)来显示私钥。对于那些容易操作失误的人来说,私钥的某些特性可以让他们更加安全地使用加密钱包(见参考资料1),本文将会讲述WIF私钥的构造和分解,帮助找回发送到莱特币地址的QTUM。

1如果我的QTUM打到了莱特币地址怎么办?

 

如果你不小心把QTUM发送到了其他地址,通常情况下,这些QTUM肯定就永久丢失了。

这个案例较为特殊,错误的地址属于莱特币钱包,但是这个地址恰是可以找回的。为什么这么说呢?因为莱特币和Qtum从钱包底层技术来说是“同父异母的兄弟”。这两款钱包都基于比特币开发的代码和功能,并分别做了一些修改和更新。莱特币核心钱包默认创建SegWit(隔离见证-支付给脚本哈希隔离见证)地址;这些地址以“M”开头,与部分以“M”开头的Qtum地址一样。

biquan-5cc51946d8ba0

*图片来源自网络一定要确认好地址再发送!一定要确认好地址再发送!

一定要确认好地址再发送!

 

在找回QTUM之前,先快速回顾下WIF私钥的特点。WIF有三个特点使得它比原生的64位字符的私钥更安全:

  1. 删除了易混淆字符的Base58编码

  2. 用于标识区块链的1个字节

  3. 用于校验和的4个字节

 

2base58 编码

私钥是64个十六进制(以16为基数)数字。中本聪在设计时为了防止长字符串和数字的结合容易出错,尤其是出现这些容易混淆的字符时:

I – 大写字母“i”    l – 小写字母“L”

O – 大写字母   “o”0 – 数字0

/ – 正斜杠     = – 等号

为了减少难以区分的字符串使得不能记住私钥,中本聪团队提出了base58编码,它只是简单地舍去了这6个容易令人混淆的字符。

对于base58编码来说,表示字母和数字的64个字符被映射到一个由58个字符构成的数据集中。现在你知道为什么在加密地址中从来没有看到“I”、“l”、“O”和“0”了吧,中本聪十年前就再也不用了。(见参考资料2)

 

3区块链标识前缀

WIF的第一个字节(两个字符)将区块链定义如下:

biquan-5cc5196e50451

已注册的bip-0044前缀见已注册的bip-0044 Token 前缀:https://github.com/satoshilabs/slips/blob/master/slip-0044.md

 

4校验和

校验和是一种检测数字是否错误或损坏的技术。莱特币和Qtum使用SHA-256哈希算法为WIF私钥创建校验和,实际上他们应用了SHA-256算法两次。要获得正确的校验和结果,需要确保SHA-256哈希的输入是十六进制的数据,而不是ASCII文本。

将莱特币私钥更改为Qtum私钥的详细步骤见下面的步骤。如果您想复制这些步骤,这些私钥不会被混淆,他们对于莱特币和QTUM都是完全有效的。

 

5创建一个WIF

介绍完毕,下面是创建Qtum WIF的步骤,由一个原生私钥开始:

  1.  添加一个区块链前缀 (对于Qtum主网而言是0x80)

  2. 使用SHA-256 哈希

  3. 再次使用SHA-256 哈希

  4. 将第二个SHA-256哈希的前8个字符作为校验和

  5. 整体使用base58进行编码

  6. WIF生成完毕(见参考资料3)

  7.  丢失Qtum按照以下步骤执行,一步步地,将莱特币WIF转换为Qtum WIF 就可以找回来啦。

*私钥请保密,在线使用时请确保安全性

1、提取莱特币私钥

  • 在您的莱特币核心钱包(需要被解锁)的控制台(帮助-调试窗口-控制台)中使用dumpprivkey命令:

    dumpprivkey MALEJA87Syy9iTm14v7A7Jo7Sfx9J6jZZr

biquan-5cc519a213c5c

  • 该命令将返回一个私钥

  • 结果:

    TB85YEE8uu23cFc7wZDEPkLdT2mwoBHHU18RfkE9QhsUcPDmHxoU

  • 将私钥复制到文本文件并保存在计算机上.

  • 退出莱特币钱包.

 

 2、在你的电脑浏览器中载入这两个网址

  1. https://incoherency.co.uk/base58/

  2. https://anyhash.com/sha256

  • 这些站点加载完毕后,断开计算机的网络连接,这些站点仍然可以工作

3、 将步骤1中生成的私钥解码为原始十六进制数据

  • 在https://incoherency.co中,将步骤1中的私钥复制粘贴到右侧的“base58数据”(下图未显示),并按下解码按钮。(将单选按钮设置为十六进制)

  • 结果b0f0cf31978d2b92ca2a6f4b72de5458a944944f89cba3932bb2a6fd72eef891b501d19dc203

     

  • 删除前面的“b0”(用于莱特币主网)和尾部的8个字符“d19dc203”(校验和):

    f0cf31978d2b92ca2a6f4b72de5458a944944f89cba3932bb2a6fd72eef891b501

  • 这就是原生的64个十六进制的字符私钥

biquan-5cc519b518af4

4、创建一个Qtum WIF 私钥

  • 在前面添加字符“80”(80 -用于Qtum主网)

  • 结果:

    80f0cf31978d2b92ca2a6f4b72de5458a944944f89cba3932bb2a6fd72eef891b501

5、https://anyhash.com/sha256生成SHA256哈希

  • 请确保选中“十六进制”复选框

  • 复制粘贴第四步的结果到 “输入”框中:

biquan-5cc519c8c6f3f

  • 结果:

    b263d8dfa27c2558e41c125e79341a81067c6b0d32d077cc58df85fe7a9c8a24

6、生成第二个 SHA256 哈希

  • 将第五步的结果再次复制粘贴到AnyHash 站点的 “输入” 框中。

  • 结果:

    2e2a2aa01a55f8d928492f793d6e90b2fd24572494ac79d47a97136330b990d9

7、将2e2a2aa0作为校验和添加到上面步骤4中

  • 结果:

    80f0cf31978d2b92ca2a6f4b72de5458a944944f89cba3932bb2a6fd72eef891b5012e2a2aa0

8、在 https://incoherency.co.uk/base58/中进行base58 编码将步骤7的结果复制粘贴到左侧并按下编码按钮

biquan-5cc519dcee576

  • 结果:

    L5Hp6UvxWX3SqQyFPvGNBPoFWB8dj6GPeoEAowbbqjhK6VboC1QK

  • 这就是Qtum的WIF 私钥了, 复制并保存到文本文件中

  • 退出浏览器,重启计算机并且重新连接到网络

9、将此私钥导入至Qtum Core钱包中

  • 启动Qtum Core钱包,同步区块链并解锁钱包。

  • 在控制台中使用命令importprivkey并复制粘贴步骤8中的私钥:

    importprivkey L5Hp6UvxWX3SqQyFPvGNBPoFWB8dj6GPeoEAowbbqjhK6VboC1QK

biquan-5cc519ec1d729

biquan-5cc519f1d1eea

  • 钱包将重新扫描几分钟,读取整个区块链以获取新地址的余额,然后在控制台会显示结果“null”。如果你查看文件—接收地址,你应该会看到新地址:MALEJA87Syy9iTm14v7A7Jo7Sfx9J6jZZr

biquan-5cc51a02e7d54

  • 以“M”开头的Qtum地址是“p2sh-segwit”(支付给遗留包装的脚本哈希隔离见证)地址。导入私钥还会在钱包中创建另外两个以“Q”和“qc1”开头的地址:

    Qdkz3dRBC4YH8HjhDTE6UBN59MjhsfCFQZ — “legacy” 非隔离见证地址

    qc1qhskagsa2t763vhkqf8cq9ph07eynazxea4zml5 — “bech32” (比特币增强提案173) 原生的隔离见证地址

  • 以上三个都是有效的Qtum地址

10、发送QTUM (清除私钥)

因为该私钥已经暴露在钱包之外(在您计算机上的文本文件中),所以最好将这个新地址的全部余额发送到另一个地址(该地址的私钥没有被暴露)。

这可以是同一个钱包里的另一个地址,如果要这样做,选择发送,并在QTUM控制功能中,选择输入…按钮,然后选择从这个新地址发送。

 

参考资料

  1. 钱包输入格式:https://en.bitcoin.it/wiki/Wallet_import_format

  2. Base58编码:

    https://en.wikipedia.org/wiki/Base58

  3. 比特币私钥计算 :http://gobittest.appspot.com/PrivateKey

  4. 用WIF生成私钥的python代码:https://bitcoin.stackexchange.com/questions/58114/convert-wif-to-private-key

  5. 先前关于钱包和密钥的博客:https://medium.com/@jb395official/wallets-and-keys-july-23-2018-92abf2a2d2bf

LEAVE A REPLY

Please enter your comment!
Please enter your name here

14 − 9 =

最新文章

spot_img